Event Player ve Spectoda Studiu
Tvorba úplných per-ID Cue a upload jednoho statického player.show s deterministickými SEB řetězci pro firmware 0.12.11.
Event Player vytváří diskrétní změny eventových hodnot na společné timeline Projektu. Hodnoty lze editovat přímo nebo zachytit z nativního WASM EventStore. Studio ukládá editovatelný model do Projektu a kompiluje jej do NetworkStorage souborů pro přehrávání.
Kde hodnoty žijí
Section titled “Kde hodnoty žijí”Editovatelným zdrojem je Event Player Project schema v2 uvnitř Studio Projektu. Obsahuje file base, délku, Tracky, persistované definice eventů, volby Capture, Cue a jejich hodnoty. Uložení a znovunačtení, duplikace, řešení konfliktů i export/import zachovávají authoring data.
Zkompilované <base>.show a .seb jsou deployment artefakty. Nejsou
editovatelnou zálohou a nemají se měnit ručně. SEB obsahuje zakódované eventové
hodnoty/záznamy; jejich landing vyvolá běžné zpracování EventStateUpdate přes
EventStore.
Track, definice eventu a Cue
Section titled “Track, definice eventu a Cue”- Jeden Track patří právě jednomu unikátnímu Spectoda ID. Volitelný název Tracku je authoring metadata, ne event label.
- Track ukládá definice eventů:
label,valueType,priority,enableda členství v Capture. - Cue je jeden čas timeline a úplná hodnota každého enabled eventu Tracku.
- Na jednom Tracku smí být v jednom čase právě jedno Cue.
- Každý enabled Track potřebuje úplné Cue v
0 ms. - Jedno úplné Cue smí obsahovat 1–340 eventových hodnot. Studio jej nikdy nerozdělí.
ID255 je globální Track a každý zapojený Controller jej vybírá automaticky. ID 0–254 jsou lokální Tracky; v Berry volání nastavte jen ID vlastněná daným Controllerem.
Timeline a editace
Section titled “Timeline a editace”Event Player používá stejnou timeline a stejný transport jako Workspace. Nemá druhé hodiny ani vlastní Player start, pause, seek nebo loop příkaz.
- Kliknutím na pravítko uděláte seek; při focusu fungují šipky,
HomeaEnd. - Rewind, Play, Pause a
Spaceovládají společnou timeline. - Dvojklikem do lane přidáte Cue.
- Diamant Cue lze přetáhnout; tažením přes lanes vyberete skupinu.
DeleteiBackspacesmažou výběr. Hromadné smazání se nejdřív potvrdí.- Po rozbalení Tracku lze v připnutých řádcích editovat labely a hodnoty ovládacím prvkem podle jejich typu.
Když do již vyplněného Tracku přidáte event, potřebuje hodnotu ve všech existujících Cue. Neúplné Cue zastaví kompilaci s přesnou cestou k chybě.
Capture z nativního EventStore
Section titled “Capture z nativního EventStore”- Připojte správný Network a nastavte společný playhead.
- V živém panelu EventStore vyberte přesná Capture IDs.
- Na každém Tracku vyberte potřebné Capture events.
- Klikněte na Capture Cue.
- Zkontrolujte označenou svislou skupinu Cue, případně ji posuňte a uložte.
Výběr je součástí Projektu: zůstane při opětovném otevření Capture, reloadu i dalším Capture. Nově objevené eventy začínají nezaškrtnuté a dočasně chybějící zvolený event se sám neodškrtne.
Capture použije pro každé přesné ID jedno konzistentní nativní WASM EventStore čtení a pozici společné timeline odečte jednou za operaci. Nic nezapisuje do Controllerů. Neexistuje fallback na JS mirror EventState: nedostupné nativní čtení, chybějící požadovaná hodnota nebo změna typu zastaví Capture před jakoukoliv změnou Cue.
Přidání kanonického Berry pluginu
Section titled “Přidání kanonického Berry pluginu”Použijte copy-ready
player.be
z příkladu
statického Complete-Cue Event Playeru.
Stejný source-locked příklad obsahuje Spectoda Creator Kit; jediným
editovatelným zdrojem zůstává Examples.
- Vložte
player.bedo projektového bloku BERRY SCRIPT. - Zavolejte
Playerse stejným file base jako v Event Playeru a s lokálními ID tohoto Controlleru. - Projekt uložte a nahrajte běžnou Studio Project cestou.
Player({"base": "show01", "ids": [1, 7], "debug": false})Používejte jen unikátní lokální ID 0–254. ID255 nepřidávejte; plugin jej vybere
automaticky, pokud je v show01.show. Plugin potřebuje každý zapojený
Controller, ale seznam ids se může lišit.
Kompilace a upload
Section titled “Kompilace a upload”File base má 1–11 ASCII znaků [A-Za-z0-9_-]. Pro show01 Studio vytvoří:
- jeden statický Show Index
show01.show; - deterministické per-ID segmenty, například
show01.001.000.sebashow01.255.000.seb.
Generované názvy mají nejvýše 23 bajtů. Show Index má nejvýše 4 096 bajtů; jedno SEB nejvýše 4 092 bajtů a 340 záznamů. Track dostane další segment před tím, než by Cue překročilo počet záznamů nebo offsetové rozpětí 65 535 ms.
Při každé změně dodržte tento postup:
- Pozastavte společnou timeline. Za běhu Studio upload nepovolí.
- Klikněte na Upload. Studio zapíše změněné deterministické soubory a ověří jejich přesné bytes na připojeném App Controlleru.
- Počkejte na běžnou NetworkStorage propagaci v instalaci.
- Klikněte na Rewind Player.
- Spusťte společnou timeline.
Všechny Player soubory se stále synchronizují na všechny Controllery přes
existující globální NetworkStorage union. Per-ID soubory zmenšují rozsah změny;
Berry otevírá jen ID255 a nakonfigurovaná lokální ID. Staré deterministické
soubory, na které <base>.show už neodkazuje, Player ignoruje a do odstranění
stávající NetworkStorage cestou dál zabírají kapacitu.
Chování Playeru
Section titled “Chování Playeru”Projektový plugin polluje timeline.getState() a volá
SEB.land(filename,{"source":"networkStorage",...}). EventStore zůstává
jedinou autoritou stavu.
- Dopředné přehrávání landne jen splatná Cue a žádnou budoucí hodnotu.
- Pauza nevolá SEB. Externí EventStateUpdate zůstane rozhodující do dalšího Cue nebo explicitní diskontinuity timeline.
- Resume odvodí novou časovou projekci a znovu nelandne už spotřebované Cue.
- Seek, rewind, loop a 24hodinový wrap vyberou poslední úplné Cue v čase menším nebo rovném cíli, landnou jej v kauzálním čase seeku a pokračují dalším Cue.
- Jeden turn pluginu udělá nejvýše jeden SEB příspěvek. Chybějící relevantní soubor se zkouší znovu bez posunu Tracku.
Scéna je samostatná
Section titled “Scéna je samostatná”Scéna je obecné mixed-ID SEB s nulovými offsety. Landne se přímo z NetworkStorage v kauzálním lokálním millis času trigger eventu a nezávisí na stavu Player timeline. Viz SEB scény a Event Player ve FW 0.12.11.