Rvtmod - file di comando e sintassi di Rvglue

Raccolta di Tutorials & manuali relativi al Re-Volt originale, a periodi passati e archiviati per valore storico

Moderatori: Michelangelo, ciccio

Rispondi
Avatar utente
AngelS93
Utente
Messaggi: 1716
Iscritto il: lun 5 ott 2015, 20:47
Località: Modugno (BA)

Rvtmod - file di comando e sintassi di Rvglue

Messaggio da AngelS93 » lun 7 set 2020, 20:10

RVGLUE - FILE DI COMANDO - SINTASSI


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 )
Fondamentalmente questa Dichiarazione dice a Rvglue quali file deve creare. Il programma aggiunge i suffissi .w e .ncp in automatico al nome del file di base. Questa Dichiarazione normalmente è necessaria per far funzionare Rvglue. In alternativa si possono usare le opzioni della linea di comando -o= e -output= (Vedi File di comando - ESEMPI - Es. 1).


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 )
)
- colorize: definisce un colore ombra per tutti i poligoni senza texture. Il colore risultante sarà più scuro di quanto specificato, quindi usa colori brillanti. L'argomento è la definizione del colore. Sono ammessi solo valori positivi.
Esempio:

Codice: Seleziona tutto

stuff.fin (
  metal( colorize 400 500 600 )
  thing( colorize turquoise )
)
- doublesided: mostra un secondo lato dei poligoni. In questo modo potrai rendere visibile il lato posteriore dei poligoni. Non utilizza argomenti.


- 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 )
)
- invisible: nasconde le Instances, creando parti invisibili. Usalo per creare sponde che evitino alle auto di finire fuori dal tracciato. Ad esempio se vuoi creare una finestra attraverso la quale si possa vedere ma non si possa attraversare (effetto vetro), puoi inserire un'Istance da nascondere con questa opzione (ricorda che NON deve avere nessun tipo di superficie)
Esempio:

Codice: Seleziona tutto

bounds.fin (
  bwall( surface(notracks) invisible )
)
- legosplit: divide i tracciati creati con il Track Editor e ti permette di specificare opzioni per i singoli componenti. Gli argomenti di questa opzione sono una lista di componenti che si riferiscono a certe parti di pista:

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
Attenzione: usa queste opzioni solo su una pista Non modificata (il programma che riconosce le parti è abbastanza complicato). Usarla su piste già modificate o sulle Instances può dare risultati imprevedibili.


- 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 )
  )
)
- nocoll: esclude i valori di collisione, creando parti che sei in grado di vedere ma che non sono solide. Usalo per gli oggetti fuori dalla pista che non puoi raggiungere (e che quindi non dovrai evitare di attraversare). L'opzione non necessita di argomenti.


- 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 )
)
- surface(...) o s(...): imposta le proprietà delle superfici. Se usi un valore numerico non verrà controllato come "valido" e quindi puoi provare a cercare tipi di superfici ancora sconosciuti. La lista qui presente potrebbe essere poco esplicativa o non chiara quindi ti consigliamo caldamente di scaricare la Surface Test Track nella pagina principale del RVTMOD7 tutorial e di visitare la più completa tabella nel Tutorial del Trackmk, che fa parte dei Tools di Srmalloy.
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)
Esempio:

Codice: Seleziona tutto

ground.fin (
  mymud( surface mud )
  mymeadow ( s 12 )
)
- tazsplit: divide l'input ricevuto dai file.taz e ti permette di specificare opzioni diverse per ogni singolo componente. I componenti sono nominati dopo i numeri delle Track Zone.
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 ]
  )
)
- tecolor: vecchio comando, una combinazione di legosplit e colorize ottiene lo stesso risultato. Se una vecchia Dichiarazione era ad esempio tecolor (ff0000), puoi convertirla in questo esempio:

Codice: Seleziona tutto

user018.w (
  legosplit (
    pwall ( colorize 255 0 0 )
  )
)
- tedelete: vecchio comando, una combinazione di legosplit e off ottiene lo stesso risultato. Se una vecchia Dichiarazione era ad esempio tedelete (pwall), puoi convertirla in questo esempio:

Codice: Seleziona tutto

user018.w (
  legosplit (
    pwall ( off )
  )
)
- texmap(...): rimappa una texture su altri fogli, posizioni e orientamento. E' simile al programma Rvtexmap della raccolta Rvminis. Richiede un argomento, come ad esempio
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
Esempi:

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

)
Esempi di rotazione:

ROTAZIONE
Comando Da-texture A-texture

Codice: Seleziona tutto

[1. without rotation]
texmap a:0,0:128x192=b:0,64:64x192
794 795

Codice: Seleziona tutto

[2. with rotation]
texmap a:0,0:128x192=b:0,64:64x192 rot
794 796
- texturefloor: assegna una texture al pavimento verde della stanza. 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).


- 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)
Classe '93, in cerca di un posto nel mondo vagando con Humma per il Toytanic.


1078 "Spectare o non spectare? Questo è il dilemma"
autore immagine: WheelSmith18

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite