Autore originale: Gabor Varga
Link originale: N/A
Tradotto da: TheFactor82
In questa sezione approfondiremo il discorso sul File di Comando, fornendo alcuni esempi e studiando la sintassi di scrittura del file.
Il file di comando non può essere scritto come ci pare e piace, ma ha una sua struttura che va rispettata. Le varie parti del File di Comando vengono chiamate DICHIARAZIONI, e ce ne sono 5 categorie.
Ogni Dichiarazione è formata da una parola chiave o dal nome di un file, eventualmente seguito da un blocco di istruzioni comprese tra due parentesi tonde (...). Soltanto i commenti possono essere inseriti in qualsiasi posizione.
1. Parola chiave CREATE
La Dichiarazione CREATE deve essere seguita da una parentesi aperta, il nome di un file di base e una parentesi chiusa. Esempio:
Codice: Seleziona tutto
create ( fnamebase )
2. Sezione GLOBAL
La sezione GLOBAL è un Gruppo Opzioni Instance (Vedi Punto 7) speciale che viene utilizzato per le Instances non menzionate nel Gruppo Opzioni Instance reale (Vedi File di comando - ESEMPI - Es. 8).
3. Sezione DEFINE
Anche la sezione DEFINE è un Gruppo Opzioni Instance speciale, che viene usato per archiviare liste di opzioni per un uso successivo.
4. Nome file.w
La presenza del nome di un file.w comporta che Rvglue legga questo file e lo includa nei files di uscita. Può essere seguito da un Set di opzioni (Vedi Punto 6, Vedi File di comando - ESEMPI - Es. 1).
5. Nome file.fin
La presenza del nome di un file.fin comporta che Rvglue legga questo file e includa tutte le Instences menzionate in questo nei files di uscita. Può essere seguito da un Gruppo Opzioni Instance. (Vedi File di comando - ESEMPI - Es. 4)
6. Set di opzioni
E' una lista di Opzioni, racchiuse da parentesi tonde (Vedi File di comando - ESEMPI - Es. 2).
Questo è l'elenco alfabetico delle Opzioni disponibili:
- color: definisce un colore fisso per tutti i poligoni senza texture, sovrascrivendo l'ombreggiatura. Se vuoi preservare l'ombreggiatura presente, usa l'opzione colorize. L'argomento è la definizione del colore. Sono ammessi solo valori positivi compresi tra 0 e 255. Se vuoi indicare i colori tramite il nome, dai un'occhiata alla tabella Named Colors, che trovi nella guida ufficiale del RVTMOD7 che hai scaricato.
Esempio:
Codice: Seleziona tutto
stuff.fin (
metal( color 128 128 128 )
thing( color turquoise )
)
Esempio:
Codice: Seleziona tutto
stuff.fin (
metal( colorize 400 500 600 )
thing( colorize turquoise )
)
- envmap: imposta il valore di mappatura dell'ambiente e il suo colore. L'argomento è la definizione del colore. Sono ammessi solo valori positivi compresi tra 0 e 255. Attenzione: questa opzione funziona solo sui file.w. Le Instances possono avere una mappatura d'ambiente, ma è definita all'interno del file.fin della pista e non nell'Instance medesima.
Esempio:
Codice: Seleziona tutto
stuff.fin (
metal( envmap 128 128 128 )
thing( envmap turquoise )
)
Esempio:
Codice: Seleziona tutto
bounds.fin (
bwall( surface(notracks) invisible )
)
ARGOMENTI LEGOSPLIT
Componente | Descrizione |
---|---|
pwall | Il muro blu che sostiene i vari moduli della pista |
rwall | I muri della stanza, escluse le immagini che stanno su un muro |
carimg | Le immagini che stanno su quel muro |
floor | Il pavimento verde |
lamp | Le lampade sul soffitto |
box | La pila di scatole nell'angolo della stanza |
track | La pista |
- lower_coll: abbassa i valori di collisione dei poligoni quadrati verticali. Può essere utile per eliminare gli ostacoli invisibili che qualche volta crea Rvglue. Alcuni pezzi del Track Editor hanno dei muri verticali blu che vanno esattamente a finire all'altezza del piano della pista. Qualche volta per piccoli bug di rotazione che non sono evitabili questi muri diventano leggermente più alti. Questa opzione serve per abbassare leggermente questi muri e farli tornare sotto il piano della pista, perchè trova gli assi verticali di tutti i poligoni quadrati (all'interno dell'input ricevuto) e li abbassa di 0.1 unità. Gli altri poligoni non quadrati e l'effetto visuale restano inalterati. Lower_coll lavora molto bene con legosplit. Il cambiamento dei valori di collisione viene applicato solo ai muri blu (nei quali di solito non dovresti scontrarti). L'opzione non necessita di argomenti.
Esempio:
Codice: Seleziona tutto
user018.w (
legosplit (
pwall ( lower_coll )
)
)
- off: disattiva gli oggetti, ed è uguale all'opzione (nocoll invisible). Usalo per oggetti di cui hai bisogno durante la costruzione della pista (come ad esempio Instances che possono servire per marcare posizioni speciali) o per escludere parti del tracciato creato con il Track Editor. L'opzione non necessita di argomenti.
- setshade: imposta la texture ombra. I poligoni che non hanno texture non vengono modificati. L'argomento è la definizione del colore. Sono ammessi solo valori positivi compresi tra 0 e 255.
Esempio:
Codice: Seleziona tutto
stuff.fin (
metal( setshade 128 128 128 )
thing( setshade white )
)
I valori tutt'oggi conosciuti sono questi:
PROPRIETA' SUPERFICI
Valore | Parola chiave | Descrizione |
---|---|---|
0,1,2 | standard | Standard |
3 | - | Segni delle gomme grigi |
4 | - | Segni delle gomme verdi, scivoloso, particelle gialle |
5 | - | Segni delle gomme grigi, scivoloso |
6 | - | Segni delle gomme molto leggeri |
7 | - | Segni delle gomme sottili |
8 | notracks | Nessun segno delle gomme |
9 | - | Segni delle gomme grigi |
10 | ice | Come il pavimento della ghiacciaia in Supermarket 2 |
11 | - | Abbastanza scivoloso |
12 | grass | Segni delle gomme verdi, scivoloso, particelle verdi |
13 | - | Abbastanza scivoloso |
14 | verybump | Molto sconnesso, particelle di terra e ghiaia |
15 | bump | Sconnesso, particelle di terra e ghiaia |
16 | - | Spinge l'auto in una direzione |
17 | - | Spinge l'auto in un'altra direzione |
18,19,20 | mud | Segni delle gomme marroni, scivoloso |
21,22 | slippery | Segni delle gomme sottili, scivoloso |
24 | - | Spinge l'auto |
25 | - | Spinge l'auto in maniera casuale (Toytanic 1 e 2) |
Codice: Seleziona tutto
ground.fin (
mymud( surface mud )
mymeadow ( s 12 )
)
Esempio:
Codice: Seleziona tutto
user018.w (
tazsplit (
zones.taz [ Read zones.taz ]
0 ( off ) [ Delete everything in zone 0 ]
1 ( transparency(128) ) [ Everything in zone 1 becomes transparent ]
)
)
Codice: Seleziona tutto
user018.w (
legosplit (
pwall ( colorize 255 0 0 )
)
)
Codice: Seleziona tutto
user018.w (
legosplit (
pwall ( off )
)
)
texmap (da-texture=a-texture [rot])
Il parametro di identificazione b:128,0:64x32 identifica il foglio texture B (file xxxxb.bmp), la sezione di 64x32 pixel presa a partire dalla posizione 128,0 (come riferimento sempre l'angolo in alto a sinistra). Se viene specificata l'opzione rot, la texture di destinazione sarà ruotata di +90° (anti-orario). Questo è utile per ottimizzare le texture sui fogli.
Si può utilizzare il carattere * per i seguenti valori di default:
CARATTERE *
* in... | Da-texture | A-texture |
---|---|---|
Foglio texture | Rimappa da ogni foglio | Non altera i fogli |
In alto a sinistra | 0,0 | Stessa posizione Da-texture |
Dimensione texture | All'angolo in basso a destra dell'immagine | Stessa dimensione Da-texture |
Codice: Seleziona tutto
user018.w (
[ 1. Remap a.bmp to j.bmp: ]
texmap a:*:*=j:*:*
[ 2. Remap the Cougar's image on the lego track walls
to the start grid's texture: ]
texmap h:0,64:64x64=c:0,0:192x192
[ 3. Rescale every texture to use only the upper-right half of the bitmaps: ]
texmap *:*:*=*:128,0:128x128
[ 4. Remap a (landscape) texture from sheet A to its rotated (portrait) and
half-sized correspondence on sheet B: ]
texmap a:0,0:128x32=B:0,0:16x64 rot
)
ROTAZIONE
Comando | Da-texture | A-texture |
---|---|---|
Codice: Seleziona tutto
|
||
Codice: Seleziona tutto
|
- transparency(...) o t(...): imposta una trasparenza. L'argomento deve essere compreso tra 0 e 255 dove 0 è completamente trasparente e 255 è completamente opaco. Non usare la trasparenza a 0 se vuoi rendere un oggetto invisibile. C'è l'opzione invisible apposta.
- wall_*: assegna una texture ai muri. * può essere single o double, a seconda di come è stata esportata la pista. L'argomento è la definizione della texture, nel formato foglio:posizione:dimensione (Esempio: c:0,128:64x64). Può essere usata solo nella lista delle Opzioni per un file.w (quindi non per le Instances o per altre opzioni).
7. Gruppo Opzioni Instance
Definisce specifiche opzioni per specifiche Instances, racchiuse da parentesi tonde. Per lavorare sulle Instances bisogna inserirne il nome senza l'estensione.prm e associare a questa un Set di opzioni. Eventualmente può anche contenere un Set speciale, che è indicato dalla parola chiave Default. Quando legge il file.fin, e include le sue Instances, il programma controlla se esiste un Set di opzioni e se esiste:
- una specifica Instance nel Gruppo Opzioni Instance corrente
- una specifica Instance nel Gruppo Opzioni Instance GLOBAL
- un'opzione Default nel Gruppo corrente
- un'opzione Default nel Gruppo GLOBAL
- nessuna opzione
(Vedi File di comando - ESEMPI - Es. 5)