Srmalloy's Tools - Prmbend

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

Moderatori: Michelangelo, Vas0sky

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

Srmalloy's Tools - Prmbend

Messaggio da AngelS93 » sab 29 ago 2020, 13:21

PRMBEND


Autore originale: Srmalloy
Link originale: N/A
Tradotto da: TheFactor82


Prmbend è un programma che esegue operazioni algoritmiche sui file.prm di Re-Volt.
PrmFrontEnd è un programma con interfaccia grafica per utilizzare Prmbend, semplificandone l'utilizzo. Il programma è disponibile solo in lingua inglese.


Utilizzo


prmbend [twist] [bend|shift] [-h height] [-c height] [-o outfile] infile
twist = -b|t|d [twistheight]
bend = -l|r|u [radius]
shift = -e|w [slide]


Una delle limitazioni 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.


In un certo modo questo problema si può risolvere con un uso attento delle Instances. Ad esempio, nella pista "Overpass" (Immagine 1), 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.


746
Immagine 1

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.


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 2).


747
Immagine 2


Un altro problema che avevo con i pezzi originali del track editor è che le curve nei tubi sono troppo strette, e che non ci sono dimensioni alternative come invece ci sono per le curve normali. Se una sezione di tubo si può piegare correttamente, i tubi sarebbero stati più divertenti da guidare. Ma provando a piegare una sezione di tubo e inserendola nuovamente nella pista, ho scoperto un problema. Il fondo dell'interno del tubo si trova al di sotto del livello del fondo del blocco che contiene il tubo. Così, inserendo l'instance direttamente alla base della pista, il piano di fondo taglia il fondo dell'interno del tubo. E' stato quindi necessario creare una sezione di tubo elevata da terra, per essere sicuri che fosse utilizzabile in una pista. Il risultato di una curva in salita in un tunnel è visibile nell'immagine 3.


748
Immagine 3

Purtroppo escono fuori alcune piccole imperfezioni a livello grafico, dovute al modo in cui il track editor gestisce le parti elevate della pista. Ogni sezione della pista ha il suo sistema di poligoni. Quando il pezzo viene sistemato sul fondo della pista, restano visibili solo quei poligoni. Ma quando il pezzo viene innalzato il track editor lo sistema su una piattaforma di 4 lati, dove ogni lato è un poligono singolo. Siccome i pezzi sono fatti di più poligoni, le curve risultano abbastanza regolari. Invece le piattaforme, che hanno pochi poligoni, non risultano regolari se vengono piegate. Questo causa dei "buchi" tra la parte più alta e quella più bassa del pezzo quando viene piegato (Immagine 4). Purtroppo questo problema per i tubi è inevitabile, ma non preclude comunque il loro utilizzo.


749
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.

Descrizione

Prmbend è un programma che modifica i files.prm; il suo utilizzo è per coloro che vogliono prendere delle sezioni di pista dal track editor e modificarle in nuovi pezzi da utilizzare in altre piste. Il programma può piegare un'instance in un arco di curva o in una "S", creare un cambio di elevazione nell'instance e modificarne la pendenza. Queste operazioni si possono riassumere in 3 gruppi (i nomi delle funzioni sono in inglese perchè più comprensibili che non tradotte - l'operazione "-o" non fa parte di nessun gruppo ma è quella che genera il file modificato):

OPERAZIONI
Gruppo Funzione Linea di comando Descrizione Unità default
Piega 90° left turn -l [radius] Piega l'instance in una curva a 90° a sinistra con un raggio di radius unità 1
'' 90° right turn -r [radius] Piega l'instance in una curva a 90° a destra con un raggio di radius unità 1
'' U-turn -u [radius] Piega l'instance in una curva a 180° con un raggio di radius unità 1
'' Left shift -w [slide] Piega l'instance lateralmente in modo che il lato lontano sia spostato di slide unità a sinistra del lato vicino 0
'' Right shift slide]> Piega l'instance lateralmente in modo che il lato lontano sia spostato di slide unità a destra del lato vicino 0
Elevazione Raise track -h [height] Alza il lato lontano dell'instance di height unità 0
'' Raise track in center -c [height] Alza il centro dell'instance di height unità 0
Pendenza Bank track -b [twistheight] Ruota il pezzo prendendo come asse il bordo interno dello stesso di twistheight unità 2
'' Twist track -t [twistheight] Ruota il pezzo prendendo come asse il centro dello stesso di twistheight unità 2
'' Dip track -d [twistheight] Ruota il pezzo prendendo come asse il bordo esterno dello stesso di twistheight unità 2
Altro Output file -o [outfile] Scrive l'instance modificata nel file chiamato outfile. Se quest'opzione non è presente, l'instance modificata verrà salvata come new_prm.prm

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.

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 i 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 dalla curve. Gli shift (destri o sinistri) non possono essere modificati in pendenza. I tracciati Bank sono modificati in pendenza in maniera tale che il bordo interno della curva sia per tutto il raggio allo stesso livello (l'esterno viene alzato). I tracciati Twist mantengono il centro della curva sempre allo stesso livello (l'esterno viene alzato, l'interno abbassato). I tracciati Dip mantengono l'esterno della curva sempre allo stesso livello (l'interno viene abbassato). 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.

I valori radius e shift sono intesi in unità come le utilizza Re-Volt. Ad esempio "prmbend -l 3 prmfile.prm" trasforma il file prmfile.prm piegandolo verso sinistra di 90° in maniera che il bordo esterno abbia una curva con un raggio di 3 unità (ottenendo una curva delle stesse dimensioni di una 3x3 originale dal Track Editor). Il valore radius deve essere sempre positivo.

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.

Il valore twistheight è dato in unità che sono la metà di una unità di Elevazione di Re-Volt, e deve essere compreso tra -6 e 6. Con valori negativi, invece di creare una curva parabolica concava, se ne ottiene una convessa, causando quindi una notevole perdita di aderenza delle auto.


Note varie

- Questo programma modifica le instance in formato prm. Per ottenere una instance "solida", è necessario utilizzare un altro programma, come prm2ncp, che crea il file di collisione dell'instance. Se l'instance viene incollata nel file del mondo (.w) con Rvglue, il file di collisione viene generato automaticamente. Se però vuoi guidare sulla tua pista prima di incollare l'instance, è necessario che il file.ncp sia presente.

- Il sistema di coordinate di Re-Volt usa gli assi X e Z sul pavimento, e l'asse Y per l'altezza. Prmbend è progettato in maniera che l'orientamento di un file.prm sia lungo l'asse X. Files.prm con differenti orientamenti possono causare risultati distorti.

- Il programma è stato creato per consentire di piegare in forme che possano essere reinserite nella pista come un singolo pezzo di pista, ottenendole da files.prm creati tagliando sezioni di "ponti". Usare Prmbend su files.prm ottenuti diversamente possono causare risultati distorti.


Contenuto del file.zip

Insieme al file eseguibile Prmbend e alla sua documentazione originale, il file che hai scaricato contiene 2 cartelle: Overpasses e Modified. Queste contengono files.prm e .ncp pregenerati che possono essere usati nei tracciati di Re-Volt.

- Overpasses: questa cartella contiene instances che sono state create sistemando sezioni di ponti una vicino all'altra e "tagliando" solo la parte sopraelevata, rendendo così l'instance utilizzabile come un normale ponte. I nomi dei file sono tutti sul formato "Xbrg.prm", dove la X è la lunghezza del ponte. Una sottocartella che si chiama Half contiene un secondo set di ponti che sono stati compressi a metà del loro spessore (nello stesso modo in cui il programma Wscale comprime l'intero tracciato). Ci sono 5 varianti per ogni versione di ponte, da 1 a 5 unità di misura di Re-Volt.

- Modified: questa cartella contiene instances che sono state create applicando Prmbend alle instances della cartella Overpasses, creando una varietà di altri pezzi. Tutti i file hanno lo stesso formato per il nome: un numero indica le dimensioni dell'instance, una lettera il tipo, una lettera opzionale o una coppia di numeri/lettere il sotto-tipo e un numero opzionale alla fine che indica l'elevazione del pezzo.

ESEMPI INSTANCES
Componenti Tipo Descrizione
Primo carattere Turns Raggio della curva in unità di Re-Volt
'' Hill/Shift Lunghezza dell'instance in unità di Re-Volt
Tipo di Instance 't' Turn — una curva a 90°
'' 'h' Hill — una collina
'' 's' Shift — uno spostamento laterale del tracciato
Sotto-tipo Turns "l" per sinistra, "r" per destra
'' Shift "Nw" per uno spostamento a sinistra di N unità / "Ne" per uno spostamento a destra di N unità
Elevazione Il numero di livelli di elevazione dell'instance da un bordo all'altro



Quindi un'instance con il nome "3tl4.prm" è una curva a sinistra con raggio di 3 unità (uguale ad una curva 3x3 fatta con il track editor) che sale di 4 livelli mentre curva a sinistra. Un'instance con nome "4s1e8" è uno spostamento diagonale del tracciato lungo 4 unità, spostato di uno e con un'elevazione di 8 livelli.

I nomi scelti convenzionalmente in questo pacchetto hanno il solo scopo di identificare con nomi brevi 36 differenti instances, visto che Re-Volt mostra solo i primi 8 caratteri di un'instance inserita con il Mig.

Con la varietà di pezzi preparati che ci sono nel pacchetto dovrebbe essere già possibile costruire piste molto varie, mentre il programma Prmbend può essere usato per creare pezzi ad-hoc che non compaiono nel pacchetto.
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 4 ospiti