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ářů.

Editor stylů a efektů

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