Styly a efekty
6. květen 2009 • Napsal Petr Barták
Úvod do skriptů
Základní vlastnosti
Skripty jsou textové soubory, které lze psát a kompilovat ve Skript editoru (menu
Program – Skript). Je však nutné dodržet následující syntaxi. Systém je citlivý
na velikost písmen, výjimkou jsou pouze některé příkazy.
Každý příkaz musí být na samostatné řádce => není nutné používat žádné jiné oddělovače.
Vše napravo od středníku je ignorováno => možnost psaní komentářů.
Po naprogramování vlastního skriptu nebo úpravě stávajícího je možné skript uložit
a přeložit (okamžitě se začne se používat). Nové styly a efekty lze
přepínat pomocí přepínačů.
Princip
Každý skript obsahuje definice stylů a efektu. Styl je soubor reakcí na jednotlivé
události (např.: OnBeat) ve skladbě. Jako reakce je spuštěn nebo zastavován efekt
(naprogramovaná scéna), který jste v právě zvoleném stylu přiřadili k dané události.
Přiřadit je možno i více efektů k jedné události. Za každý efekt se uvádí typ spuštění
(viz sekce Styl). Efekt je chronologický seznam příkazů (krok scény), které se po
spuštění efektu mají provést. Před příkaz je možné do hranatých závorek napsat jméno
pluginu, pro který chceme příkaz použít. Pokud závorky nenapíšeme, bude příkaz použit
pro všechny pluginy. Počet stylů, efektů a příkazů v efektu není nijak omezen.
Příklad
!EFEKT Zableskni; Definice efektu
Strobe(1); Záblesk všemi stroboskopy
!EFEKT Setmi
ColorLight(0,0,0,20); Setmi všechna světla
[mujplugin]TraffiLight(0); zhasni semafor připojený k pluginu „mujplugin“
!STYL TmaAZablesk; Definice Stylu
OnLoad=Setmi(play); Po načtení udělá tmu
OnBeat=Zableskni(play); Při úderu bubnu blikne stroboskop
Tvorba Efektů
Syntaxe
!EFEKT jmeno
prikaz
[plugin]prikaz
[plugin]prikaz
prikaz
Jmeno je možné použít jakékoliv slovo bez mezer, diakritiky a specielních znaků.
Jména se nesmí opakovat! Počet prikazu není nijak omezen a lze použít nasledující:
|
Sleep(Time)
|
Uspí efekt na požadovaný čas Time zadaný v ms.
|
|
ColorLight(Red, Green, Blue, Time)
|
Nastaví požadované osvětlení za určitý čas. Kde Red, Green, Blue je intenzita jednotlivých
složek v rozsahu 0 až 1 a Time čas v ms
|
|
Strobe(intensity)
|
Vyvolá záblesk stroboskopu(ů) o žádané intenzitě intensity (0÷1) (je-li stroboskopů
více).
|
|
TrafficLight(intensity)
|
Změní rozložení svítících žárovek semaforů podle aktuálního stylu semaforu viz.
níže. Počet rozsvícených žárovek závisí na intensity (0 (nic) až 1 (vše))
|
|
TrafficStyle(style)
|
Přepíná metody, podle kterých se mění rozložení svítících a zhaslých žárovek na
semaforu. 0 = Posun doprava, 1 = Posun doleva, 2 = Náhodné rozložení, 3 = Plnění
zprava, 4 = Plnění zleva.
|
|
Fog(Density)
|
Nastavuje hustotu Density (0÷1) mlhy.
|
|
RotationLight(intensity, spin)
|
Řízení intensity osvětlení (0÷1) a rychlosti otáčení resp.směru Spin (-1÷1)
|
Je možné na místo číselných parametrů použít proměnné parametry. Jejich okamžité
hodnoty se stále mění. Při zápisu se uvozují znakem dolaru $ a následuje název.
Syntaxe zápisu
prikaz($nazev)
K dispozici jsou tyto proměnné:
|
Bass
|
aktuální síla basů ve skladbě, rozsah 0÷1
|
|
Middle
|
aktuální síla středů ve skladbě, rozsah 0÷1
|
|
Treble
|
aktuální síla výšek ve skladbě, rozsah 0÷1
|
|
RandomR
|
náhodně generovaná hodnota v rozsahu -1÷1
|
Tvorba Stylů
Syntaxe
!STYL jmeno
Udalost=JmenoEfektu(TypSpusteni)
Udalost=JmenoEfektu(TypSpusteni)
JinaUdalost=JmenoEfektu(TypSpusteni)
Udalost je generována při splnění určitých podmínek a k jejímu ošetření je možno
vyvolat určitý, předem definovaný efekt. Spuštění nebo zastavení více efektů stejnou
událostí se provádí pomocí více řádků, kde jméno události je stejné a za rovnítko
se napíše název dalšího efektu, který chceme spustit nebo zastavit (podle parametru
TypSpusteni). Události jsou:
|
OnLoad
|
je vyvolána, když uživatel změní aktuální styl prostředí na tento (při aktivaci)
|
|
UnLoad
|
je vyvolána, když uživatel změní aktuální styl prostředí na jiný (při deaktivaci)
|
|
OnBeat
|
vyvolána v okamžiku úderu bubnu
|
|
BeginBeat
|
na začátku pasáže s bubny (při prvním úderu)
|
|
EndBeat
|
na konci pasáže s bubny (po posledním úderu)
|
|
OnCymbal
|
vyvolána v okamžiku úderu činelu |
JmenoEfektu je název některého dříve definovaného Efektu ve skriptu.
TypSpusteni je parametr říkající co se má s efektem udělat nastane-li událost, ke
které je efekt přiřazen. Typy spuštění jsou:
|
Play
|
efekt proběhne jen jednou, další spuštění bude, až nastane opět událost ke které
je přiřazen, (implicitní parametr)
|
|
Start
|
efekt se nastartuje a bude se neustále opakovat dokud se nevyvolá tento efekt s
parametrem Sto
|
|
Stop
|
zastaví provádění efektu, který byl nastartován pomocí parametru Start
|