forum

Guida allo Storyboarding tramite Script

posted
Total Posts
3
Topic Starter
Card N'FoRcE
Con il permesso dell'autore, ecco a voi la guida ufficiale allo storyboarding manuale tradotta in italiano.
Personalmente ho anche apportato delle piccole migliorie per rendere il tutto più chiaro.

Storyboarding by Scripting

Il file .osb di una qualunque mappa si presenta sempre nella seguente struttura:
[Events]
//Background and Video events
//Storyboard Layer 0 (Background)
//Storyboard Layer 1 (Fail)
//Storyboard Layer 2 (Pass)
//Storyboard Layer 3 (Foreground)
//Storyboard Sound Samples

layers (I livelli, su cui potete distribuire gli oggetti):
- Background (Sfondo)
- Fail (Se in una combo non sono ottenuti tutti 300 oppure se nella fase di pausa si ha poca vita rimanente)
- Pass (Se in una combo ottenete tutti 300 o se nella fase di pausa avete molta vita rimanente)
- Foreground (Primo Piano)
Nota: BackGround e ForeGround sono sempre visibili; Pass e Fail solo nei casi specificati.
Nota2: Gli spazi vuoti possono essere sostituiti da underscoore ( cioè "_" )
Nota3: In ogni livello, l'ordine di apparizione è regolato dall'ordine con cui gli oggetti sono elencati (primo oggetto in lista appare dietro a tutti gli altri)


Sprites and Animations

Immagine statica:
Sprite,"layer","origin","filepath",x,y
_event, easing, starttime, endtime, [params]
_event, [...]
_event, [...]


Animazioni:
Animation,"layer","origin","filepath",x,y,frameCount,frameDelay,looptype
_event,easing,starttime,endtime,[params]
_event, [...]
_event, [...]

N.B.:
Per le animazioni il nome va specificato come nelle Immagini statiche ( esempio: "sliderball.png"), ma i file usati sono da rinominarsi aggiungendo come desinenza il numero del fotogramma (esempio: da "sliderball0.png" a "sliderball9.png" per una animazione di 10 fotogrammi).

- frameCount: numero dei fotogrammi dell'animazione
- frameDelay: durata di ogni fotogramma (in millisecondi)
- looptype: tipo di ripetizione dell'animazione: LoopForever (default) - ripetizione infinita; LoopOnce - l'animazione si interromperà all'ultimo fotogramma.


origin (L'origine, il punto che sarà preso come riferimento per l'utilizzo dell'oggetto):
- TopLeft (Angolo in alto a sinistra)
- TopCenter (Il punto più alto e centrale)
- TopRight (Angolo in alto a destra)
- CentreLeft (Il punto più centrale a sinistra)
- Centre (Il centro esatto)
- CentreRight (Il punto più centrale a destra)
- BottomLeft (Angolo in basso a sinistra)
- BottomCentre (Il punto più basso e centrale
- BottomRight (Angolo in basso a destra)
Nota: Non solo la posizione, ma anche altri valori come Scale (ridimensionamento) e Rotate (rotazione) sono influenzati dall'origine.

filepath: percorso relativo dell'oggetto utilizzato (relativo significa che la cartella è da considerarsi come "disco", quindi se dovete usare delle sottocartelle dovrete usare questa struttura: "/cartellaesempio/file.jpg")
Nota: Il percorso è da scriversi con le virgolette.

x, y: la posizione dell'oggetto; Il campo di gioco ha una dimensione pari a 640*480, dove 0*0 è l'angolo in alto a sinistra.

Eventi

Dopo aver specificato l'oggetto da utilizzare seguendo le specifiche elencate in precedenza, è ora di "programmare" le azioni da fargli compiere.
Codice tipico di un evento:
_"evento", easing, starttime, endtime, "parametri"
Dove "evento" inice il tipo di azione e "parametri" le specifiche caratteristiche varianti per ogni evento (entrambi da specificare senza virgolette)

Tipi di eventi:
F - fade (dissolvenza)
M - move (Spostamento)
S - scale (ridimensionamento)
V - vector scale (ridimensionamento per specifiche non omogenee)
R - rotate (rotazione)
C - colour (colore)
L - loop (cicli di eventi)
T - Event-triggered loop (cicli di eventi scatenati da un'altro evento)
P - Parameters (parametri)

easing (il tipo di velocità che deve avere l'evento):
0 - uniforme
1 - veloce all'inizio, lento alla fine
2 - lento all'inizio, veloce alla fine

starttime, endtime: l'intervallo di tempo in cui si deve verificare l'evento (in millisecondi)

parametri specifici:

_F,[...],startopacity,endopacity

startopacity: opacità iniziale
endopacity: opacità finale
Nota: Sono accettati valori tra 0 e 1 (0 - invisibile, 1 - completamente visibile) e sono ammessi valori decimali (come ad esempio 0.55, opaco al 55%)

_M,[...],startx,starty,endx,endy
_MX,[...],startx,endx
_MY,[...],starty,endy

startx, starty: posizione iniziale
endx, endy: posizione finale
Nota: Come specificato prima, il campo è 640*480, ma sono accettati anche valori maggiori o negativi, se è necessario che l'oggetto compia un movimento fino ad uscire proprio dal campo (esempio ...,-50,-40,800,560)

_S,[...],startscale,endscale

startscale: valore dello zoom iniziale
endscale: valore dello zoom finale
Nota: Valori accettati solo se positivi. Sono accettati i valori decimali (1= 100% = dimensione originale, 2.34 = 234% e così via)

_V,[...],startx,starty,endx,endy

startx, starty: valori di zoom orizzontale e verticale iniziale
endx, endy: valori di zoom orizzontale e verticale finale
Nota: Come per lo Scale, valori accettati solo se positivi. Sono accettati i valori decimali (1= 100% = dimensione originale, 2.34 = 234% e così via)

_R,[...],startangle,endangle

startangle: l'angolo di rotazione iniziale, in radianti
endangle: l'angolo di rotazione finale, in radianti
Per una rotazione in senso orario, endangle > startangle. Sono accettati valori negativi e decimali.

_C,[...],r1,g1,b1,r2,g2,b2

r1, g1, b1: componenti cromatiche iniziali
r2, g2, b2: componenti cromatiche finali

r = componente rossa; g = componente verde; b = componente blu; il sistema di colorazione è sottrattivo (di conseguenza 255,255,255 , valore masimo che equivalrebbe al bianco, lascerà come risultato l'immagine con la colorazione originale; 0,0,0 la renderà totalmente nera). Questo evento è comodo se è necessario colorare in più modi una singola immagine in scala di grigi.

_P,[...],p

p: il tipo di parametro da applicare:
  • H - effetto specchio orizzontale (alto-basso / basso-alto)
    V - effetto specchio verticale (sinistra-destra / destra-sinistra)
Loops

_L,starttime,loopcount
__event, [...]
__event, [...]

starttime: il momento di inizio del loop, in millisecondi
loopcount: numero di ripetizioni del loop

N.B.: Gli eventi elencati sotto un Loop sono da considerarsi con "starttime" come se fosse 0ms. Creare un evento a 0ms sotto il loop comporterà l'inizio dell'evento a "starttime" nella barra temporale.

_T,triggerName,start,end
__event, [...]
__event, [...]

start: momento da cui l'attivazione del trigger è valida, in millisecondi
end : momento da cui l'attivazione del trigger non è più valida, in millisecondi

Attuali eventi trigger supportati per "triggerName":
HitSoundClap (quando c'è un suono Clap assegnato)
HitSoundFinish (quando c'è un suono Finish assegnato)
HitSoundWhistle (quando c'è un suono Whistle assegnato)
Passing (durante il gioco: in una combo sono stati ottenuti tutti 300; in break time: quando il livello di HP è alto)
Failing (durante il gioco: in una combo sono stati ottenuti uno o più 100/50/X; in break time: quando il livello di HP è basso)

Gli eventi trigger sono eventi scatenati salla situazione specificata in "triggerName". Se il trigger viene scatenato mentre gli eventi sono ancora in corso, questi saranno interrotti per iniziarli nuovamente. Un evento trigger non viene attivato se va a sovrapporsi ad un evento simile in corso.

Effetti Sonori

Sample,time,layer,"filepath",volume

time: the time in milliseconds to start playing the sound effect

layer:
Background = 0
Fail = 1
Pass = 2
Foreground = 3

filepath: Percorso relativo del file (la root / è la cartella che contiene la beatmap); il percorso del file deve comprendere le virgolette.
volume: volume del file contenente il suono. Valori accettati: da 1 a 100.
N.B.: questi eventi sono validi unicamente sotto "//Storyboard Sound Samples".

Notazioni speciali

Variabili:
E' possibile impostare variabili semplici tramite il codice seguente:
[Variables]
$white=255,255,255
$beat=354
In modo da non dover ricordare forzatamente valori usati più di una volta. I nomi e i valori assegnati sono liberamente selezionabili e utilizzabili dovunque, ma siccome il valore specificato sarà sempre sostituito durante i salvataggi nell'editor, si consiglia di farlo per valori piuttosto particolari/lunghi (esempio con il codice sopra: se una sezione presenta 35468 come valore, sarà sostituito con $beat68 e quindi non sarà valido).

Scorciatoie:
E' possibile utilizzare delle scorciatoie per evitare di dover scrivere più volte valori che si ripetono:
Ad esempio, quando i valori dell'evento sono uguali:
_M,0,1000,2000,320,240,320,240
può essere sintetizzato in:
_M,0,1000,2000,320,240

Addirittura, se anche starttime e endtime sono uguali (cioè l'evento è istantaneo),
si può ridurre ulteriormente da:
_M,0,1000,1000,320,240
a:
_M,0,1000,,320,240
N.B. è importante che la doppia virgola sia presente!


Per ora è tutto!
C'è una sola scorciatoia che ancora non riesco a capire e che quindi non ho potuto aggiungere, lo farò appena possibile.
Per il resto la guida è completa, sono apprezzati suggerimenti!

Buono Storyboarding!
MetaSlash
Omfg non pensavo si potesse. Bella guidah :D
Luxary

MetaSlash wrote:

Omfg non pensavo si potesse. Bella guidah :D
Scripting is da uei, mah boi. u_u

Fabio sei un win, sarà utilissima ad un sacco di persone :D (io ormai come al solito ho sofferto imparando da solo xD)
Lavoraci ogni tanto che voglio vederla finita :D
Please sign in to reply.

New reply