Rvtmod - FAQ 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 - FAQ Rvglue

Messaggio da AngelS93 » lun 7 set 2020, 23:43

RVGLUE - FAQ


Autore originale: Gabor Varga
Link originale: N/A
Tradotto da: TheFactor82

In questa sezione abbiamo tradotto il FAQ (Domande Richieste di Frequente) del programma Rvglue, per facilitarti nella risoluzione dei problemi più comuni che puoi incontrare.


1. Come si usa questo programma?


Ecco, questa è già una domanda alla quale non si può rispondere. Ci sono molti documenti riguardo a questo programma, in Italiano e in Inglese. Leggili, tutti. Se proprio non riesci a fare quello che devi, chiedi, ma sii il più completo e chiaro possibile nel porre la tua domanda. Ad esempio se sul forum scrivessi "Ciao, volevo usare Rvglue ma non ci sono riuscito, mi dà un errore, c'è qualcuno che mi aiuta?" sicuramente riceveresti risposta perchè la gentilezza fa parte della buona educazione, ma hai scritto un messaggio inutile. Prova con qualcosa tipo "Ciao, ho scritto questo File di Comando: (...) Ho eseguito rvglue con questo file e non ho ricevuto messaggi di errore. Il file.w e .ncp sono stati creati con il nome corretto, ma quando provo a giocare sulla pista, resto incastrato nel pavimento. Tutto sembra a posto, ma non c'è modo di muoversi..."


2. Il programma funziona, ma più lo uso e più i files diventano lunghi.

Probabilmente stai leggendo e scrivendo lo stesso file. Se il tuo File di Comando è così:

Codice: Seleziona tutto

create ( nhood1 )

nhood1.w

Allora significa che stai aggiungendo informazioni allo stesso file che stai leggendo. Usa files diversi per input e output.


3. Non succede nulla quando faccio doppio click sull'icona del programma.

E così deve essere, perchè Rvglue non è un programma di Windows. Non apre alcuna finestra e non ti chiede cosa deve fare. Sei tu che devi scrivere dei file per fargli fare quello che vuoi!


4. Come faccio a rendere i vetri delle auto trasparenti?

Questa è una cosa un po' complicata, quindi eccoti una guida passo-passo (immaginiamo che tu abbia già esportato il corpo della tua auto e abbia il file da qualche parte, chiamato "mybody.m"):

- Prendi i programmi Rvtexmap e Rv-sizer (li puoi trovare nella raccolta Rvminis, sezione Downloads - Utilità)
- Crea un'Instance della tua auto, poi rinomina il file mybody.prm
- Ingrandiscilo, perchè un'auto è un oggetto troppo piccolo per poterci piazzare sopra una Track Zone. Usa Rv-sizer (rv-sizer mybody.prm sa=50)
- Prendi una pista che non contenga NESSUNA Instance (se non sei sicuro puoi rinominare o cancellare i file.fin e .fi-). Copia la tua Instance nella cartella della pista
- Cancella o rinomina i file.taz e .ta-, perchè ci serve un file delle Track Zone pulito.
- Entra in modalità editing delle Instance e inserisci l'auto dove vuoi. Non ruotarla.
- Se l'auto si vede male (invisibile o con poligoni mancanti) usa Rvtexmap per aggiustarla: rvtexmap mybody.prm *:*:*=a:*:* (ora la texture viene presa dal foglio a.bmp della pista, ma non ha importanza finchè riesci a vedere la tua auto.
- Entra in modalità editing delle Track Zone. Sistema delle Zone con Id 0 in maniera tale che: ogni vertice di ogni poligono di vetro della macchina sia all'interno di una Track Zone; ogni poligono che non appartiene ai vetri della macchina abbia almeno un vertice fuori da tutte le Zone.
- Scrivi un File di Comando che faccia rendere a Rvglue i vetri trasparenti (i nomi dei file delle Track Zone e delle Instance di questo esempio sono fittizi):

Codice: Seleziona tutto

create tbody.prm

bongo.fin (
    default ( off )
    mybody (
        tazsplit (
            bongo.taz
            0 ( transparency 128 )
        )
    )
)

- Esegui Rvglue.
- Ora ridimensiona l'Instance creata com'era in origine ("rv-sizer tbody.prm sa=0.02")
- Rinomina il file da .prm a .m ed il gioco è fatto!


5. Come posso creare Instances con Rvglue?

Scrivi il suffisso desiderato nella Dichiarazione "Create" (ad esempio "Create myinst.prm"). Il programma creerà i files myinst.prm, myinst.i-p e myinst.ncp.
In questo modo puoi fare qualsiasi cosa (anche convertire in una Instance intere parti di pista. Ricorda però che un'Instance non può contenere tanti dati quanti una pista).


6. Ho ricevuto degli errori "PANIC". Cosa devo fare?

I messaggi "PANIC" appaiono quando Rvglue rileva che ci sono stati errori di calcolo (ad esempio quando cerca di ruotare un'instance che non è stata caricata). Controlla la sintassi del tuo File di Comando.


7. Dopo aver usato Rvglue alcune delle mie Instances non sono più solide.

Le Instances che si trovano lontano dal corpo della pista non sono mai solide. Se sei partito da una pista esportata dal Track Editor, hai aggiunto delle Instances e tagliato alcune parti della pista, le tue Instances potrebbero trovarsi fuori dall'area della pista. La soluzione sta nel piazzare delle Instances false e unirle al corpo del tracciato per aumentarne le dimensioni, e alla fine unire tutte le Instances che prima erano fuori dall'area. Per spiegare meglio il discorso, immagina una situazione come in questo esempio:

797
Vista dall'alto


L'area blu che vedi è il corpo della pista (creato con Rvglue o esportato dal Track Editor). Le due forme (rossa e verde) sono due Instance. Quella verde non ha problemi, perchè è all'interno del corpo della pista, ma quella rossa non è solida, perchè è fuori dall'area. Per risolvere il problema, creiamo una Instance fasulla e uniamola al restante corpo della pista:

798
Vista dall'alto


Ora l'Instance rossa è nell'area del tracciato, e può essere solida. Siccome questo problema nasce dal file .ncp della pista, l'Instance fasulla deve essere presente solo lì e quindi puoi tranquillamente renderla invisibile. Ma se invece unisci direttamente l'Instance rossa al corpo della pista, non c'è bisogno di creare l'Instance fasulla.
Questo problema si manifesta solo con le Instances.


8. Rvglue mi dice che mancano delle Instances, ma ci sono!

Se ottieni un errore riguardo a delle Instances con il nome più corto di quello che stai utilizzando (ad esempio l'errore fa riferimento all'instance myinstan.prm ma tu stai usando l'Instances myinstance.prm), allora devi semplicemente spiegare a Rvglue qual'è il vero nome dell'Instance con l'opzione "realname":

Codice: Seleziona tutto

myfin.fin (
  myinstan ( realname myinstance )
)
9. Rvglue mi dice che mancano delle Instances, ma non le ho usate!

Può essere che hai usato un'Instance in precedenza e successivamente hai cancellato il file.prm. Re-Volt ignorerà completamente quell'Instance, ma il suo riferimento nel file.fin continua ad esserci. Usa una qualsiasi Instance falsa (rinominandola col nome dell'Instance che dà problemi in Rvglue) e tagliala via usando l'opzione off.

Codice: Seleziona tutto

myfin.fin (
  dummyinstance ( off )
)

10. Sono confuso riguardo al funzionamento del programma.

Molti dei problemi che incontrerai possono essere risolti se hai capito come funziona Rvglue. La tabella che segue mostra i flow-chart esplicativi di diversi modi di utilizzo di Rvglue.


FLOW-CHART
Descrizione Immagine
Il programma legge alcuni files di input, applica delle modifiche ai dati che ha letto e scrive nuovi files di output che contengono i risultati delle modifiche che desideravi 799
File di input differenti possono avere differenti set di modifiche 800
Alcuni modificatori (le Opzioni) dividono i dati letti in input e li dirigono a diversi set di modifica (come l'Opzione "legosplit") 801
Ad esempio, questo File di Comando potrebbe essere difficile da capire:

Codice: Seleziona tutto

create yeppa

user001.w (
    legosplit (
        lamp  ( off )
        track (
            tazsplit (
                some.taz
                0 ( surface mud )
                1 ( transparency 128 )
            )
      )
      pwall ( color 255 255 255 )
    )
)
Ma se sai come il programma legge e scrive i dati, dallo schema dovrebbe risultare un po' più chiaro:

802

11. Non voglio scrivere la stessa opzione tante volte.

Codice: Seleziona tutto

create ( nhood1 )

haus01.fin (
dachkies ( s(15) )
dachkikl ( s(15) )
)
haus02.fin (
dachkies ( s(15) )
dachkikl ( s(15) )
wassramp ( s(21) )
)
haus03.fin (
)
haus04.fin (
dachkies ( s(15) )
dachkikl ( s(15) )
boxkdach ( s(3) )
dachbeto ( s(3) )
luftscha ( s(21) )
wassramp ( s(21) )
)
haus05.fin (
)
haus06.fin (
teppichg ( s(6) )
teppichk ( s(6) )
)
haus07.fin (
dachkies ( s(15) )
dachkikl ( s(15) )
luftscha ( s(21) )
)
haus08.fin (
dachblec ( s(3) )
glas ( s(3) )
)
haus09.fin (
dachkies ( s(15) )         
dachkikl ( s(15) )
bumpkies ( s(15) )
)
drumrum.fin (
)
Non è facile da leggere, perchè contiene gli stessi comandi ripetuti più volte. Perchè non accorciarlo un po'? Lo si può fare con la Parola Chiave "Global":

Codice: Seleziona tutto

create nhood1

global (
  dachkies ( s(15) )            
  dachkikl ( s(15) )
  wassramp ( s(21) )
  boxkdach ( s(3)  )
  dachbeto ( s(3)  )
  luftscha ( s(21) )
  teppichg ( s(6)  )
  teppichk ( s(6)  )
  bumpkies ( s(15) )
  dachblec ( s(3) )
  glas     ( s(3) )
)

haus01.fin
haus02.fin
haus03.fin
haus04.fin
haus05.fin
haus06.fin
haus07.fin
haus08.fin
haus09.fin
drumrum.fin
Per renderlo ancora più chiaro, potremmo utilizzare "define". E' un po' più lungo di prima, ma è estremamente più ordinato e chiaro:

Codice: Seleziona tutto

create nhood1

define (
  bump    ( surface bump )
  slip    ( surface slippery )
  greytr  ( surface 3 )
  lighttr ( surface 6 )
)

global (
  dachkies ( bump    )            
  dachkikl ( bump    )
  bumpkies ( bump    )
  wassramp ( slip    )
  luftscha ( slip    )
  boxkdach ( greytr  )
  dachbeto ( greytr  )
  dachblec ( greytr  )
  glas     ( greytr  )
  teppichg ( lighttr )
  teppichk ( lighttr )
)

haus01.fin
haus02.fin
haus03.fin
haus04.fin
haus05.fin
haus06.fin
haus07.fin
haus08.fin
haus09.fin
drumrum.fin



12. Cos'è la cartella SRC? Mi serve?

Questa cartella contiene il codice sorgente dei programmi del RVTMOD. Ti potrebbe essere utile per studiare come funziona il programma, come esegue alcuni calcoli, oppure se vuoi modificarlo o aggiungere delle funzioni. Se però non sei in grado di programmare in C++, o non ti interessa, o non sai leggere quei file, puoi tranquillamente cancellare la cartella, perchè per te è totalmente inutile.




13. Come si fa a creare un Corpo della pista vuoto?

Il modo corretto e più veloce per creare un file vuoto è questo:

Codice: Seleziona tutto

create( empty )

Ma c'è un problema: con un corpo della pista vuoto non ci puoi fare assolutamente nulla! Un file.w vuoto può essere utile, ma un file.ncp vuoto farà sì che (a causa dei limiti di Re-Volt) tutto quello che metterai nella pista non sarà solido. E non saranno solide neanche le Instances che inserirai anche se avranno il loro relativo file.ncp.
Inoltre il file.ncp vuto che crea Rvglue è corrotto. In ogni caso è inutile, quindi questo bug di Rvglue non verrà mai corretto.





14. Cosa significano tutti questi termini (mesh, poligoni, vertici e bordi)?

Facciamo un esempio pratico, un modello di casa semplificato:

803

Questa casa è fatta di triangoli e rettangoli piatti (figure in 2d con 3 o 4 bordi). Per visualizzarli correttamente li stacchiamo un po' gli uni dagli altri:

804


Ora possiamo vedere chiaramente di cosa è fatta questa casa:
- Le varie forme piatte (triangoli e quadrati) sono chiamati poligoni. I modellatori 3d li chiamano anche "facce"
- I poligoni vengono definiti da 3 o 4 punti (le palline bianche) che vengono chiamati vertici.
- Per una facilità di utilizzo, alcuni poligoni vengono raggruppati in Meshes (ad esempio questa casa)
- Un'Instance di Re-Volt consiste esattamente in una Mesh, mentre il corpo della pista (il file.w) contiene più Meshes (anche diverse migliaia)
- In Re-Volt non ci possono essere poligoni che non appartengano ad una Mesh. Ma spesso ci sono Meshes che consistono di 1 (o anche 0) poligoni.


Se vuoi vedere i poligoni che creano un'Instance, puoi usare il programma Rvmark presente nella raccolta Rvminis.
Questo discorso può essere difficile, anche perchè i termini in italiano per tutte queste cose non sempre corrispondono perfettamente al significato inglese.





15. Rvglue ignora le opzioni di un'Instance.

Controlla se hai scritto il suffisso .prm nel tuo File di Comando. La lista delle opzioni di un'Instance comincia con il nome dell'Instance senza il suffisso .prm.




16. Rvglue non funziona e dice che sto cercando di scrivere e leggere lo stesso file.

L'errore più comune che viene commesso è quello di utilizzare lo stesso file sia per la lettura che per la scrittura, come in questo esempio:

Codice: Seleziona tutto

create track

track.w ( something )

Il fatto è che tutte le volte che si esegue un file di comando, tutte le operazioni vengono applicate sullo stesso file (quindi ad esempio se diciamo di aggiungere un'instance ad un file, ed eseguiamo 10 volte Rvglue, troveremo 10 volte questa Instance legata in quel file, con notevoli problemi di rallentamenti e altri errori quali opzioni che non funzionano o che non eseguono le modifiche richieste. Usa sempre files diversi per l'input e per l'output!




17. Rvglue mi avvisa che il mio file.fin potrebbe causare risultati inaspettati.

Se vuoi creare una pista basata sulle Instances, o vuoi unire delle Instances al corpo di una pista, non usare questa sintassi:

Codice: Seleziona tutto

create track

track.fin ( something )

Sembrerebbe funzionare, ma se fai partire Re-Volt, l'Instance comparirà 2 volte, una volta caricata dal corpo della pista e un'altra volta dal file.fin. Quando inserisci un'Instance nel corpo della pista, l'Instance non è più necessaria. Rimuovi quindi il file.fin (o rinominalo). E cancella anche il file.fi-, che è il backup del file.fin altrimenti Re-Volt lo ripristinerà.




18. Rvglue crea ostacoli invisibili.

Qualche volta (molto spesso in verità, quando lavori con le piste esportate dal Track Editor) Rvglue qualcosa di invisibile contro cui le auto vanno a sbattere. Nel 99% dei casi si tratta dei muri di sostegno che sono nascosti sotto la superficie della pista:

805


Per risolvere il problema, segui uno di questi metodi:
- Cancella tutti i muri (con le opzioni legosplit e off)
- Cancella solo i muri che danno problemi (con le opzioni tazsplit e off). Crea una zona speciale e per ogni muro che devi eliminare inserisci una piccola zona che copra solo quel muro. La pagina principale di questo tutorial spiega come fare.
- Abbassa i valori di collisione per i poligoni che creano questi problemi (con l'opzione lower_coll)
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