TRACKMK
Trackmk è un
programma che genera sezioni di tracciato personalizzate sotto forma di file.prm
per Re-Volt.
Utilizzo
trackmk [ [direction]
bend] [twist] [-h height] [-c height]
[-m map] [-p surfprop] [-o outfile]
direction = -l|r
bend = -9|U|S [size]
twist = -b|t|d [angle]
Ci sono due modi per creare nuove piste
per Re-Volt: utilizzando il Track Editor interno al gioco, oppure
sfruttando un programma di modellismo 3d come 3DStudio Max o Zmodeler,
per creare sezioni di una pista ex novo.
Sfortunatamente, il Track Editor ha
diverse limitazioni in struttura, posizionamento e curvatura dei pezzi
che permette di usare. Soprattutto quando si tenta di usare le curve
paraboliche, il risultato non è sempre accettabile (Immagine 1).
In ogni caso, l'uso dei programmi 3d è la
soluzione migliore per creare piste per Re-Volt. Con un po' di abilità
si possono creare tracciati molto simili e sofisticati (se non di più) a
quelli presenti nel gioco originale. Certo, le piste create con il Track
Editor sono semplici e immediate, ma non così belle (Immagine 2).
E' possibile però sfruttare il Track
Editor solo come primo passaggio per la crezione di una pista.
Successivamente con il Mig e con Rvglue, si possono "tagliare" sezioni
di quella pista ed utilizzarli per crearne altre. Combinando tutte
queste modalità si arriva ad un livello intermedio tra la creazione di
piste Lego (fatte con il Track Editor) e piste completamente modellate
in 3d.
Le limitazioni del Track Editor comunque
sono sempre presenti: alcune possono essere aggirate, ma altre sono
leggi che non si possono ignorare. Ad esempio è necessario che la pista
formi un circuito chiuso, per essere esportata (questo può limitare di
molto l'inventiva del creatore. Inoltre la pista è limitata in grandezza
(sia inteso come circuito completo, sia come carreggiata della strada).
Un'altra limitazione principali del
Track Editor di Re-Volt è che i pezzi devono sempre necessariamente
essere appoggiati al "pavimento". Se ad esempio usi una sezione della
pista ad un'elevazione di, per esempio, 8 unità, lo spazio sotto questa
sezione viene riempito da un parallelepipedo. Ad eccezione del Ponte,
non c'è nessun modo per permettere ad una parte di tracciato di
sovrapporsi ad un'altra (e in ogni caso il ponte permette solo
intersezioni a + del tracciato, e niente più).
In un certo modo questo problema si può
risolvere con un uso attento delle Instances. Ad esempio, nella pista "Overpass"
(Immagine 3), ho legato insieme diversi Ponti, poi ho usato Rvglue per
tagliare solo la parte alta della sezione e ho incollato questi
files.prm in altre parti della pista dove per il track editor sarebbe
impossibile posizionarli (ad esempio sulle curve). A parole suona un po'
confusionario, ma la foto è abbastanza chiara.
Comunque anche questa soluzione ha dei
limiti. In particolare legati all'uso dei files.prm che possono essere
assemblati in sezioni sovrapposte. Anche se dà molta libertà nella
creazione di una pista, non è sinceramente molto flessibile.
Nel tentativo di risolvere il problema,
ho scritto un programma che dovrebbe aprire un file.prm che ho creato
con un ponte lungo 4 unità e crearne uno con le coordinate per i vertici
dei poligoni alterati in maniera che risulti una curva di 90° con lo
stesso raggio di una curva del track editor originale (dimensione 3x3).
Ciò che ne è uscito fuori è stato molto più di quanto mi aspettassi. Il
file.prm ottenuto era una curva perfetta che combaciava precisamente
nella posizione dove volevo metterla. Testata con diverse auto, la pista
era scorrevole e veloce da guidare. Come si può vedere dall'immagine 1,
la curva sopra-elevata si integra perfettamente nella pista, andando
oltretutto a sovrapporsi sia ad un pezzo rettilineo, sia ad una curva
normale. Sfruttando poi il fatto che l'instance di partenza proveniva da
un rettilineo, anche la texture è rimasta "piegata" come l'instance,
ottenendo un risultato sinceramente migliore rispetto alle curve
standard del Track Editor.
Visto che l'alterazione del file.prm
aveva funzionato così bene, ho provato a vedere cosa succedeva inserendo
una elevazione, e ho modificato il programma per aggiungere 4 unità di
innalzamento da un lato della curva all'altro. Per evitare "scalini" ho
applicato questa modifica utilizzando una funzione "seno", in maniera
maniera da evitare discontinuità tra le varie parti (Immagine 4).
Una volta appurato il funzionamento della
piega dei files.prm, il passo successivo è creare uno strumento generale
che sia in grado di creare una varietà di files.prm piegati a scelta.
Prmbend, comunque, mostrò subito i suoi
limiti. Per funzionare, ad esempio, ha bisogno di un'instance di
partenza, creata o estratta da una pista esistente. E ritagliare sezioni
di pista che non siano semplici come un rettilineo o una serie di ponti
può essere problematico.
Ogni sezione di rettilineo (o di tubo)
del Track Editor è fatta di 4 file di poligoni. Quando 4 pezzi di ponte
vengono piegati in una curva di raggio 3, le 16 file costituiscono una
curva lineare. Ma se cambia anche l'altezza della sezione del tracciato,
compaiono diversi buchi visuali nella texture (Immagine 5).
Inoltre, tutti i poligoni che compongono la sezione del ponte sono
quadrilateri (poligoni con 4 facce). Quando Prmbend viene usato per
creare curve paraboliche (banked) da un'instance formata di sezioni di
ponte, i vertici che definiscono i poligoni che creano la superficie
della pista possono essere spostati in posizioni che non risultino
complanari dopo la piega (il poligono non è più "piatto"). Questo causa
dei seri problemi con le instaces risultanti: visivamente il tracciato
viene visualizzato con una superficie regolare e senza sconnessioni,
mentre la superficie di collisione, che è quella sulla quale le auto
corrono, viene spaccata in 2 triangoli, che si trovano sotto la
superficie della visuale. Così sembra che le auto corrano "affogate"
nella pista, e quando arrivano a contatto con i punti di giunzione tra i
due poligoni triangolari, subiscono degli urti notevoli.
Questa non era una soluzione accettabile.
Per rendere la superficie del tracciato
regolare e guidabile era necessario spezzare i poligoni in triangoli
prima che l'instance venisse deformata. Dopo vari tentativi ho deciso
che era più semplice istruire il programma affinchè creasse
automaticamente l'intera sezione. In questo modo il programma non era
più dipendente dalla qualità dell'instance che gli veniva assegnata da
modificare. Ad esempio, se utilizzi un'instance lunga 4 unità per creare
una curva di raggio 3, ottieni una curva molto più lineare che non
usando un'instance di 2 unità di lunghezza. In particolare sulle curve
paraboliche poi, la lunghezza iniziale dell'instance si ripercuote sulla
scorrevolezza del tracciato finale.
Le parti inferiori dei ponti inoltre sono piene di poligoni, per così
dire, inutili; tramite il programma questi non vengono utilizzati,
risparmiando quindi operazioni sui vertici che, essendo creati
direttamente e non modificati da un'instance preparata, possono essere
controllati e manipolati più accuratamente.
Visto
che questa nuova versione crea da zero un'instance, invece di piegarne
una già esistente, ho deciso di dargli un nuovo nome: Trackmk.
Un problema che è venuto subito alla luce riguarda le confusioni che fa
il gioco quando un'auto salta fuori dal tracciato e deve essere ricreata
in pista. Spesso capita che il gioco reimposti la telecamera che deve
seguire l'auto sotto la pavimentazione del tracciato. Il problema è
stato risolto inserendo la creazione del file di collisione (.ncp)
direttamente all'interno del Trackmk, e non utilizzando il programma
prm2ncp. |
Immagine 1
Immagine 2
Immagine 3
Immagine 4
Immagine 5 |
Descrizione
Trackmk è un programma che crea griglie delle instance di
Re-Volt, applicandovi distorsioni e creando il file.prm finale. Può creare una
varietà di nuovi pezzi che possono essere inseriti nelle piste. Nelle varianti
disponibili ci sono rettilinei, archi di curve o chicane, ed è possibile
cambiare pendenza all'instance. Per questo motivo ci sono diversi gruppi di
operazioni
|
OPERAZIONI
|
|
Gruppo |
Funzione |
Linea di comando |
Descrizione |
Valore default |
Operazioni di Piega (Bending) |
Curva 90° |
-9 [diameter] |
Piega l'instance in una curva a 90° con un raggio di diameter unità |
4 unità |
Curva U |
-U [diameter] |
Piega l'instance in una curva a 180° con un raggio di diamter unità |
4 unità |
Chicane |
-S [shiftwidth] |
Piega l'instance lateralmente, in modo che il bordo finale sia spostato di shiftwidth unità rispetto al bordo iniziale |
1 unità |
Operazioni di Pendenza (Twisting) |
Banked |
-b [angle] |
Inclina la sezione sul lato interno della curva di 5° x angle |
15° |
Tilted |
-t [angle] |
Inclina la sezione sul centro della curva di 5° x angle |
15° |
Dipped |
-d [angle] |
Inclina la sezione sul lato esterno della curva di 5° x angle |
15° |
Operazioni di Elevazione |
Alza alla fine |
-h [height] |
Alza il bordo finale dell'instance di height unità |
0 unità |
Alza in centro |
-c [height] |
Alza il centro dell'instance di height unità |
0 unità |
Direzione della piega (Bend Direction) |
Curva o spostamento SX |
-l |
Imposta la direzione sinistra per tutte le operazioni di piega |
|
Curva o spostamento DX |
-r |
Imposta la direzione destra per tutte le operazioni di piega |
|
Lunghezza della sezione |
Specifica lunghezza |
-x [length] |
Imposta la lunghezza della sezione in length unità |
|
Larghezza della sezione |
Doppia |
-2 |
Raddoppia la larghezza della superficie della sezione |
|
Allarga |
-s |
Allarga il bordo finale della sezione in modo che sia il doppio di quello iniziale (diventa un adattatore per passare da piste normali a piste "double") |
|
Restringe |
-n |
Crea un collo di bottiglia restringendo il centro della sezione a metà della sua larghezza normale |
|
Spessore della sezione |
Piatta |
-f |
Rende piatta la sezione, dimezzando l'altezza. (come il programma wscale) |
|
Altre |
Mappatura |
-m [map] |
Usa la striscia della texture D per la superficie della sezione. Valore compreso tra 0 e 3 |
0 |
Superficie |
-p [surfprop] |
Imposta le proprietà della superficie della sezione. Valore compreso tra 0 e 25 |
0 |
Output file |
-o [outfile] |
Scrive l'instance modificata nel file chiamato outfile. |
new_prm.prm |
|
|
|
|
Unità
Una singola sezione di Re-volt è di 1000 unità su un
lato, e i muri sono di 125 unità di altezza. Il cambio di elevazione
minimo è di 125 unità. Questa scala di valori basata sulle 1000 unità è
utilizzata all'interno di Re-Volt, e per comodità mi riferirò a questa
come Unità di Re-Volt (RVU). Ad esempio una curva di diametro 6
significa che, misurata agli estremi della curva di 180°, la distanza
sarà di 6 RVU. La curva più larga che si può utilizzare nel Track Editor
è una curva di diametro 6, perchè ogni curva occupa un'area di 3x3 RVU.
I valori di incremento dell'altezza sono espressi invece in Unità di
Altezza (HU). Vige quindi questa semplice equivalenza:
1 RVU = 8 HU
Utilizzando queste unità di misura, Trackmk è in grado di creare pezzi
perfettamente intercambiabili con altri presi dal Track Editor.
Texturing
Trackmk crea sezioni di tracciato utilizzando
come texture parti dei fogli B e D delle texture originali di
Re-Volt. Per i muri esterni e il basamento della sezione
utilizza il quadrato di 64x64 pixel che si trova in alto a
sinistra, nel foglio B (il rettangolo contornato di verde,
nell'immagine Texture B). Per i muri interni e la parte alta
degli stessi viene invece utilizzato il rettangolo di 64x32
pixel (rettangolo azzurro), esattamente sotto il quadrato
utilizzato prima.
Come default per quanto riguarda la texture
della superficie della pista viene presa, invece, la sezione di
192x64 pixel dal foglio D (rettangolo rosso - 0 dell'immagine
Texture D). Trackmk può produrre sezioni di pista alternando
strisce di texture. Utilizzando il comando -m si può
impostare l'uso di una diversa striscia per la superficie. Il
parametro -m può avere come valori 0, 1, 2 o 3, definendo quale rettangolo di 64 pixel di altezza scegliere.
Pendenza (Twisting)
Sulle strade reali e sulle piste, la
superficie di guida è inclinata ("parabolizzata"), alzando il
lato esterno della curva rispetto a quello interno, in maniera
da creare una forza che agisca sull'auto, spingendola verso
l'interno della curva. Questo serve ad evitare che l'auto perda
il grip durante la percorrenza della curva, finendo così fuori
strada. Più la curva è parabolica, e più l'auto potrà
percorrerla velocemente senza perdere aderenza. D'altro canto,
se un'auto troppo lenta percorre una curva con molta pendenza, è
probabile che finisca per scivolare verso l'interno della
stessa. Trackmk è in grado di definire questa pendenza,
utilizzando 3 metodi simili ma con risultati diversi.
|
PENDENZE
|
|
Immagine |
Tipo |
Descrizione |
 |
Banked |
E' una curva che è stata inclinata in maniera che il bordo interno si trovi sempre allo stesso livello su tutta la curva (l'esterno viene alzato). L'immagine a sinistra mostra una curva a sinistra. La linea rossa rappresenta la pavimentazione della pista completa |
 |
Tilted |
E' una curva che è stata inclinata in maniera che il centro della curva si trovi sempre allo stesso livello durante tutta la sezione (l'interno della curva viene abbassato, l'esterno viene alzato) |
 |
Dipped |
E' una curva che è stata inclinata in maniera che il bordo esterno si trovi sempre allo stesso livello su tutta la curva (l'interno viene abbassato). Le curve "Tilted" e "Dipped" non dovrebbero essere utilizzate direttamente sulla pavimentazione, perchè a seconda dell'inclinazione, il tracciato potrebbe intersecarsi con la pavimentazione stessa |
|
|
Texture B
Texture D
|
Note
Le operazioni di Piega sono esclusive, nel senso che puoi
piegare un Prm in una curva a 90°, in una curva a U o a S, ma non puoi fare
combinazioni tra queste. Puoi però eseguire combinazioni con le
operazioni di Elevazione, o puoi effetuare solo delle semplici
elevazioni. Un'operazione di piega comunque deve sempre avere una
direzione, destra o sinistra.
Le operazioni di Elevazione (non center) alzano (o abbassano) il
bordo "lontano" dell'instance relativo all'inizio della stessa. Una curva a
sinistra con un cambiamento d'altezza di 4 genererà una curva in salita verso
sinistra. Le Elevazioni in centro invece alzano (o abbassano) la parte centrale
dell'instance.
Le operazioni di Pendenza creano tracciati inclinati dalle curve. Solo le curve
a 90° e 180° possono essere modificate in pendenza. I tracciati modificati nelle pendenze non dovrebbero essere usati a
contatto con il terreno, perchè le parti che vengono abbassate potrebbero finire
sotto il livello del pavimento. Se si sceglie di modificare la pendenza di una
sezione di più di 45°, è possibile che quel pezzo non sia più guidabile
con le auto più lente. L'immagine a destra mostra una curva a U inclinata di
135°. Ovviamente se l'auto è sufficientemente veloce, la forza
centrifuga la manterrà attaccata al tracciato.
I valori diameter e shiftwitdh sono intesi in unità come le
utilizza Re-Volt.
Il valore height è dato in unità di Elevazione come le utilizza Re-Volt
(sono i vari "livelli" di elevazione nel Track Editor). Questo valore può essere
positivo o negativo. L'uso di valori molto alti su pezzi di tracciato molto
corti potrebbero rendere il tracciato stesso inutilizzabile.
Il valore angle è dato in unità che rappresentano 5 gradi di angolo
(Impostando il valore 9, si ottiene una curva parabolica di 45°). Con valori negativi,
invece di creare una curva parabolica concava, se ne ottiene una convessa,
causando quindi una notevole perdita di aderenza delle auto. Tecnicamente
comunque non ci sono limiti sui valori che si possono utilizzare.
Quando si crea un pezzo rettilineo o una chicane, è necessario impostare
il valore length della sezione. Se invece è necessario creare una
curva a 90° o a 180°, Trackmk calcola automaticamente quanto dev'essere
lungo il pezzo per rispettare i valori del diametro, dell'elevazione e
della pendenza. |
|
Note varie
Questo programma crea nuovi modelli di instance in formato.prm e
.ncp. Non è quindi più necessario usare altri programmi per ottenere sezioni
"solide" di tracciato.
All'interno della documentazione originale del Trackmk (disponibile all'interno
del file.zip da scaricare) sono presenti numerosi esempi ed immagini dei pezzi
che si possono ottenere. Questi esempi non sono stati tradotti in questo
tutorial perchè la traduzione in italiano di parole come "Banked", "Shift" o "Elevation"
perdono un po' di significato. Gli esempi sono estremamente chiari, quindi siete
invitati a consultare la documentazione ufficiale per avere ulteriori
suggerimenti su come creare i vostri pezzi di tracciato.
Contenuto del file.zip
Insieme al file eseguibile Trackmk e alla sua documentazione
originale, il file che hai scaricato contiene un programma che si chiama
Maketrk.bat. Se lo esegui, questo programma genera una libreria di oltre 400
esempi di files.prm che possono essere utilizzati per creare piste su Re-Volt.
Questi files sono suddivisi in 6 cartelle:
- TURNS : Questa cartella contiene curve senza pendenza (verso sinistra, destra
e a U), in piano o con diverse elevazioni
- BANKS : Questa cartella contiene curve "banked" (verso sinistra, destra e a
U), in piano o con diverse elevazioni
- DIPS : Questa cartella contiene curve "dipped" (verso sinistra, destra e a U),
in piano o con diverse elevazioni
- TWISTS : Questa cartella contiene curve "tilted" (verso sinistra, destra e a
U), in piano o con diverse elevazioni
- SHIFTS : Questa cartella contiene chicanes senza pendenza (verso sinistra o
destra), in piano o con diverse elevazioni
- STRAIGHT : Questa cartella contiene rettilinei, in piano o con diverse
elevazioni
Definizione delle proprietà delle superfici
La tabella che segue è tratta dalla documentazione del
programma ASE2RV (© 2001 by
Alexander Kröller e Steven Ellis, ©
2001 by Gábor Varga) ed è riportata qui solo come riferimento. Alcune
nomenclature sono state lasciate in lingua inglese perchè di significato
sconosciuto oppure più esaustivo di una eventuale traduzione.
|
PROPRIETA' SUPERFICI
|
|
Valore |
Descrizione |
Bumpy (U.R.*) |
Grip (U.R.*) |
Colore Particelle |
Colore Segni Gomme |
0 |
Default |
0 |
1 |
|
Grigio |
1 |
Default2 |
0 |
1 |
|
Grigio |
2 |
Grim Sunday |
0 |
1 |
|
Grigio Scuro |
3 |
Trick |
0 |
-1 |
|
Grigio Chiaro |
4 |
Flower Field |
0 |
-3 |
Crema |
Verde Chiaro |
5 |
Evil Conspiracy |
0 |
-2 |
|
Grigio |
6 |
Grippy |
0 |
2 |
|
Grigio Chiaro |
7 |
Jaws |
0 |
3 |
|
Grigio Chiaro |
8 |
Shiny |
0 |
1 |
|
|
9 |
Conspiracy |
0 |
-2 |
|
Grigio Chiaro |
10 |
Megaslide |
0 |
-5 |
|
Grigio Chiaro |
11 |
Evil Trick |
0 |
-1 |
|
Grigio |
12 |
Grass |
0 |
-3 |
Verde |
Verde |
13 |
Bone Shaker |
1 |
1 |
|
Grigio |
14 |
Pebbles |
2 |
1 |
Nero |
Grigio Chiaro |
15 |
Gravel |
1 |
1 |
Nero |
Grigio Chiaro |
16 |
Intensely Weird Magnet |
1 |
Strano |
|
|
17 |
Mildly Weird Magnet |
1 |
Strano |
|
|
18 |
Manor Born |
1 |
1 |
Marrone |
Marrone |
19 |
Lord Muck |
1 |
2 |
Marrone |
Marrone |
20 |
Lady Muck |
1 |
-1 |
Marrone |
Marrone |
21 |
Super Slippy |
0 |
-4 |
|
Grigio Chiaro |
22 |
Super Slippy2 |
0 |
-4 |
|
Grigio Chiaro |
23 |
Conspiracy2 |
0 |
-2 |
|
Grigio Chiaro |
24 |
Head Wind |
1 |
Strano |
|
|
25 |
Side Wind |
1 |
Strano |
|
|
|
* U.R. = Unità Relative di Re-Volt
Trackmk Gui
Il programma
Trackmkgui è stato creato
per poter utilizzare più facilmente il Trackmk tramite un'interfaccia.
Tutte le opzioni disponibili sul Trackmk sono riportate nel Trackmkgui
(quindi tutto quello che potete fare con il Trackmk lo potete fare anche
con Trackmkgui).
Questa è la schermata principale del programma, che replica tutte le
varie opzioni disponibili con il Trackmk, organizzate in una forma più
semplice e intuitiva. Certe opzioni si disabilitano o abilitano
modificandone altre, rispettando così le regole di base del Trackmk.
Immagine 1. Loader
E' necessario indicare al programma dell'interfaccia dove si trova il
Trackmk.
Immagine 2. Turn Options
L'impostazione di Default è Straight (rettilineo). Selezionando opzioni
differenti si abilitano le modifiche alla casella del Diameter/Slide (è
sufficiente inserire un valore di lunghezza nella sezione Misc).
Immagine 3. Twist Options
Queste impostazioni sono disabilitate per default. Sono applicabili solo
alle curve di 90° e 180° e vengono abilitate se viene selezionato uno di
questi due tipi di curva. Il valore Height viene definito moltiplicando
il valore inserito x 5. Un valore impostato a 3 creerà ad esempio 15° di
pendenza.
Immagine 4. Elevation Options
Seleziona quale operazione vuoi eseguire e inserisci il valore
desiderato.
Immagine 5. Misc Options
Track length: inserisci un valore per creare una sezione di pista da
modificare poi con le opzioni "straight" o "slide".
Make flat: esegue il parametro -f di Trackmk
Alt Texture Space: applica alla sezione uno degli spazi texture
selezionati (da 0 a 3)
Alt Surface Type: applica alla sezione una proprietà della superficie
diversa (da 0 a 25)
Immagine 6. Output
In quest'area del programma puoi stabilire dove vuoi che venga salvata
la nuova sezione che stai creando, e che nome dare al file. Nota bene
che NON E' NECESSARIO aggiungere l'estensione ".prm" al nome che
inserisci nella casella di testo (se lo fai avrai come risultato i file
NOME.prm.prm e NOME.prm.ncp)
Immagine 7. Debugger
In quest'area compaiono i pulsanti "Make It", che crea i files della
sezione che vuoi creare rispettando le impostazioni da te definite, e
ripristina successivamente tutte le impostazioni come da default; il
pulsante "Reset" riprista le opzioni di default senza creare i files
della sezione; il pulsante "Exit" ovviamente serve per uscire dal
programma.
La linea Debugger invece mostra le stringhe utilizzate per creare la
sezione.
Sul readme originale del TrackmkGui c'è
scritto che il logo del programma è stato messo per bellezza, per
riempire quella zona vuota della finestra, e che non nasconde nulla. In
realtà sotto questo logo ci sono due impostazioni nascoste di cui non
capiamo il funzionamento. Il programma in ogni caso funziona
perfettamente permettendo di utilizzare TUTTE le opportunità del Trackmk.
Il file.zip contenente questo programma contiene anche il readme
originale inglese completo di tutte le immagini. |
Immagine 1
Immagine 2
Immagine 3
Immagine 4
Immagine 5
Immagine 6
Immagine 7
|
|