Просмотр полной версии : Скриптование эффектов и дем
Кто как делает сабж?
У меня для выбора частей таблица: время начала части, время конца части, а для скриптования самого эффекта таблица: время вызова процедуры, адрес процедуры.
Код может быть примерно такой (часто пишу его с нуля, каждый раз получается разный):
ld hl,(timer)
scripttime=$+1
ld bc,0
or a
sbc hl,bc
jr c,NOSCRIPT
scriptaddr=$+1
ld hl,tscript
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
inc hl
ld (scriptaddr),hl
ld (scripttime),bc
exd
call jphl
NOSCRIPT
...
jphl
jp (hl)
...
tscript
dw reter ;вызывается сразу
dw 192*2,proc
dw 192*4,proc2
...
И процедуры типа:
proc
ld hl,move1
ld (moveaddr),hl
ret
proc2
ld a,2
ld (xspeed),a
ret
---------- Post added at 14:06 ---------- Previous post was at 13:57 ----------
Вместо proc, proc2 обычно говорящие названия, имеющие отношение к внешнему виду эффекта :)
denpopov
16.02.2014, 14:11
У меня для выбора частей таблица: время начала части, время конца части
а как ты определяешь время начала и конца?
В каждую часть передаются эти два числа, а она сама следит, когда начать эффект, а когда закончить.
Сами эти числа подбираются вручную с запасом на подготовку к эффекту и подготовку к выходу из эффекта.
denpopov
16.02.2014, 14:28
В каждую часть передаются эти два числа,
Ну я видел другой вариант - в векторе прерывания идет счетчик, по которому части демы привязываются. А потом(не помню где) прочитал спор о синхронизации дем что лучше: по счетчику или по привязке к переменным ПроТрекера.
---------- Post added at 14:28 ---------- Previous post was at 14:28 ----------
exd
мне эта команда незнакома, что такое exd?
прочитал спор о синхронизации дем что лучше: по счетчику или по привязке к переменным ПроТрекера.
а не одна фигня?
denpopov
16.02.2014, 18:36
а не одна фигня?
я не нашел источника, но суть спора была в том, что лучше счетчик, другой уперся в счетчик нот ПроТрекера. вот я и не знаю, что фигня.
вот я и не знаю, что фигня.
при постоянной скорости проигрывания (что встречается чаще) одно в другое пересчитывается легко.
Помнится мне подобную статью публиковал еще Flying/DR
но у него там свой метод был чем то похожий.
denpopov
16.02.2014, 19:53
при постоянной скорости проигрывания (что встречается чаще) одно в другое пересчитывается легко
каждый раз счетчик интов проверять?
Помнится мне подобную статью публиковал еще Flying/DR
Да, что-то было вроде.
Ну я видел другой вариант - в векторе прерывания идет счетчик, по которому части демы привязываются.
timer - это как раз и есть такой счётчик.
мне эта команда незнакома, что такое exd?
ex de,hl
introspec
16.02.2014, 21:01
а не одна фигня?
Я не вполне компетентен в этом вопросе, но точку зрения - имею :)
Мне кажется, что привязка эффектов напрямую к музыке гораздо прогрессивнее. Во-первых, это означает более естественную работу с фиксом, когда конкретные музыкальные фигуры привязываются к конкретным модификациям эффектов. Во-вторых, насколько подсказывает мне мой ограниченный опыт, добиться флоу, не сделав демку, не умеет никто. Правки "по-живому" в числах - возможны, конечно, но сложны, по сравнению с правками в муз. треке. Кроме этого, привязки к треку означают, что можно в последний момент поправить музыку и не поресчитывать все константы оптом.
В mgdma фикса как такового нет - там скрипт описывает музыку и эффекты одновременно. Это было очень удобно при работе над скриптом, т.к. позволило двигать вещи вне зависимости друг от друга. В suprematism loop фикс сделан отсчётом фреймов от предыдущей опорной точки - это дико неудобно, потому что правки задержек в начале скрипта сбивают фикс во всех последующих частях, никогда больше так не сделаю. В будущем, я надеюсь обзавестись механизмом контроля скрипта через музыкальный плейер. Сейчас у меня таких возможностей нет.
denpopov
16.02.2014, 21:35
Сейчас у меня таких возможностей нет.
у Vortex'a проигрывателя есть две переменные для привязки к музыке.
introspec
16.02.2014, 21:39
у Vortex'a проигрывателя есть две переменные для привязки к музыке.
Ну, для моих нынешних задач мне нужен проигрыватель ровный по тактам, так что просто к вортексу привязаться мне не хватит. Но спасибо в любом случае, обязательно попробую поэкспериментировать с вортексом тоже и посмотреть, как это всё выглядит.
Кроме этого, привязки к треку означают, что можно в последний момент поправить музыку и не поресчитывать все константы оптом.
это уже речь не только о времени, но и о данных музона. можно привязываться к содержимому регистров ау, например, мигать под ударники. но это как бы параллельные вещи, не свяанные, т.е. и то, и другое может юзаться одновременно.
introspec
16.02.2014, 21:49
это уже речь не только о времени, но и о данных музона. можно привязываться к содержимому регистров ау, например, мигать под ударники. но это как бы параллельные вещи, не свяанные, т.е. и то, и другое может юзаться одновременно.
Можно, но это немного "грязно". Ну сам всё понимаешь, лень проговаривать даже.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot