![]() |
| 12-01 Gerarchia (Avanzato). *** GLI 'EXTRA' *** E' possibile inserire fino a 3 'Extra', dei quali il gioco sceglie nessuno/uno di essi: extra1 extra2 extra3 Per esempio, nella nostra cheetah, 2 diversi tipi di specchietti: ![]() ![]() *** PORTIERE *** Con una accorgimento, che consiste nella rotazione dei dummy e degli oggetti 3D delle portiere, è possibile ottenere diversi tipi di apertura. A Forbice Quelle della Lamborghini Countach, per intenderci: ![]() Per ottenere ciò, bisogna innanzitutto creare dei dummy nei quali inserire le portiere, che occupino lo stesso posto di quelle, nella cerniera della loro apertura: ![]() 'door_lf_dummy', quindi, va inserito dentro 'gull_lf', e parimenti 'door_rf_dummy' dentro 'gull_rf'. Insieme agli oggetti 3D 'ok' e 'dam', queste parti devono essere variamente ruotate di 90°. Occorre usare pertanto 'Modify.../Exact Transform', dalla vista 3D. Sia per Dummy che oggetti 3D: ![]() (Per ruotare solo l'oggetto 3D, ma non il suo asse matrice: ![]() e questo NON andrà usato). Per i dummy, da effettuare su gull_lf/gull_rf; door_lf_dummy/door_rf_dummy ruoteranno anche loro. Tenendo presente che: ![]() Da tener presente anche che 90° orari sono 90, e 90° antiorari sono -90. Se la rotazione non dovesse essere corretta, fate 'Edit/Undo' e riprovate! :) NB: Occorre operare sulle parti 3D spostandoli fuori dai dummy, dato che tutti i calcoli li ho effettuati con oggetti 'liberi', mentre i 3d 'door' risentono della rotazione dei 'gulf' così come i dummy 'door' (asd!) La rotazione per i dummy dovrà essere: gull_lf: 90 0 -90. gull_rf: -90 0 90. La rotazione per i 3d dovrà essere: door_lf_ok/dam: 0 -90 -90 door_rf_ok/dam: 0 -90 90 Però gli assi matrice degli oggetti 3D andranno ruotati con 'Modify.../Rotate', perché 'Modify.../Exact Transform' del solo matrix non c'è... :( E qui, la nostra Mascotte torna giustamente a nascondersi! Impostando: ![]() si dovrà effettuare dalle viste 2D una doppia rotazione: door_lf_ok/dam: Dalla vista 'top', assi rosso/verde 90°. Dalla vista 'front', assi blu-rosso 90°. door_rf_ok/dam: Dalla vista 'top', assi rosso/verde -90°. Dalla vista 'front', assi blu-rosso -90°. Ad Ali di Gabbiano Praticamente sono così: ![]() La rotazione per i dummy dovrà essere: gull_lf & gull_rf: 0 90 0. La rotazione per tutti i 3d dovrà essere fatta SOLO per gli asse matrice, e dalla vista 'left', di 90°. Purtroppo, si dovrà effettuare con 'Modify.../Rotate': ![]() A Botola Quella della Batmbobile Tumbler: ![]() Dato che esisterà solo la portiera sinistra, quella destra non necessita della sovrastruttura 'gulf_rf'; e 'door_rf_ok/dam' saranno solo delle piccole superfici nascoste nello chassis. ;) La rotazione del dummy sarà: gull_lf: -90 0 0. La rotazione per il 3d sarà: door_lf_ok/dam: -90 0 90 Anche qui andrà rettificato il matrix: door_lf_ok/dam: Dalla vista 'left', assi verde-rosso 90°. ESERCIZIO 1: Prendete la Hustler, ed applicatele delle belle portiere alla Topolino: ![]() Non estraete i 3D dai dummy, così sarà un po' più semplice! *** DUMMY OGGETTO 'WING' *** I dumy oggetto 'wing' praticamente sono le appendici aerodinamiche laterali, dette anche 'minigonne'. Ne sono disponibili 4, due anteriori e 2 posteriori, e i dummy relativi sono: -wing_lf_dummy (anteriore sinistro) -wing_rf_dummy (anteriore destro) -wing_lb_dummy (posteriore sinistro) -wing_rb_dummy (posteriore destro) (Si noti che quelle posteriori vengono chiamate 'back' e non 'rear'). Perché ne parliamo a parte? Perché possono essere sfruttate per usi interessanti. Per esempio, per le fiancate: ![]() O per i fari anteriori: ![]() Interessante, vero? :) *** DUMMY ESTERNO *** Nel gioco è possibile sostituire o aggiungere alcune parti della carrozzeria. Per esempio sostituire il cofano, aggiungere delle prese d'aria sul tetto, o mettere uno spoiler. Come si fa tutto ciò? A livello di dff non è molto complicato. Si usano dei dummy 'esterni': I dummy esterni indicano nel modello dove andranno posizioni elementi 3D che non si trovano nel modello stesso, ma in dff esterni. Se un'auto prevede 2 spoiler, una volta eseguiti si esporteranno in singoli dff, che andranno importati nel file gta3.img come per il dff dell'auto. Ovviamente i matrix del dummy esterni e delle parti 3D effettivamente esterne devono coincidere. Quali sono i dummy esterni? All'interno del 3D 'chassis': -ug_nitro (posizione dell'n2o) -ug_roof (posizione delle prese d'aria del tetto) -ug_wing_right (posizione appendici aerodinamiche di destra) -ug_wing_left (posizione appendici aerodinamiche di sinistra) -ug_frontbullbar (posizione del Bullbar anteriore [solo per Slamvan]) -ug_backbullbar (Posizione del Bullbar posteriore [solo per Slamvan]) Anche il matrix di un oggetto 3D funge da dummy esterno, dentro 'chassis': -exhaust_ok (posizione delle marmitte) All'interno del dummy 'bonnet_dummy': -ug_bonnet (posizione delle prese d'aria centrali del cofano) -ug_bonnet_dam (posizione delle prese d'aria centrali danneggiate del cofano) Oppure: -ug_bonnet_left (posizione delle presa d'aria sinistra del cofano) -ug_bonnet_left_dam (posizione della prese d'aria sinistra danneggiate del cofano) -ug_bonnet_right (posizione della presa d'aria destra del cofano) -ug_bonnet_right_dam (posizione della presa d'aria destra danneggiate del cofano) All'interno del dummy 'boot_dummy': -ug_spoiler (spoiler posteriore) -ug_spoiler_dam (spoiler posteriore danneggiato) Due dummy normali fungono anche da dummy esterni: -bump_front_dummy (posizione del paraurti anteriore) -bump_rear_dummy (posizione del paraurti posteriore) E dentro a 'bump_front': -ug_light (posizione dei fari anteriori) -ug_light_dam (posizione dei fari anteriori danneggiati) Complicato? Può darsi!:D. Ciò che bisogna comprendere è ciò che si è voluto ottenere, e come è stato ottenuto sarà una naturale conseguenza. Come occorre chiamare i dff delle parti 3D?... Ce lo dice il file: (...)Rockstar Games/GTA San Andreas/data/carmods.dat in base al veicolo che vogliamo sostituire. Alcuni veicoli non hanno parti standard, ma personalizzati, anche se hanno '0' nell'ultimo parametro del file: (...)Rockstar Games/GTA San Andreas/data/vehicle.ide Sono: Elegy, Flash, Jester, Stratum, Sultan ed Uranus. Hanno come suffisso la sigla del veicolo. Conviene quindi modificare una di queste, altrimenti si andrebbero a modificare i pezzi standard di tutti i veicoli! Alcuni veicoli hanno '2' come ultimo parametro del file vehicle.ide. Sono quelli modificabili nel garage dei 'truzzi' a Los Santos: Blade, Broadway, Remington, Savanna, Slamvan e Tornado. (I veicoli che terminano con '-1', non sono modificabili, tipo le auto della polizia). Ecco i prefissi del nome dei vari componenti: -fbmp_... (paraurti anteriore) -fbb_... (bullbar anteriore) -lgt_... (fari anteriori) -bnt_... (presa aria centrale cofano) -bntl_... (prese aria laterali) -rf_... (presa aria tetto) -wg_l_... (minigonna sinistra) -wg_r_... (minigonna destra) -spl_... (spoiler posteriore) -bbb_... (bullbar posteriore) -rbmp_... (paraurti posteriore) -nto_... (nitro) -exh_... (marmitta/e) Per esempio, lo spoiler della Flash sarà: ![]() Nel dff la parte 3D può stare ovunque, perché verrà centrata sul dummy del modello in base al suo matrix. Se è prevista una parte danneggiata, il 3D viene semplicemente spostato sul dummy 'dam'; non c'è, ovvero, una parte 3D 'dam'. *** CHASSIS 'VLO' *** Come abbiamo visto, in lontananza viene impiegata una versione semplificata del modello, VLO, a 'Visual LOw'. Dato che è decisamente brutto vedere le sole ruote del veicolo in lontananza, ed è altrettanto preoccupante dover rifare il modello in maniera più semplice, si può impiegare il metodo a 'finestra': Si esegue uno 'scatolone' dai contorni simil-modello, e gli si applicano in UV_Mapping alle sue 5 prospettive (bottom escluso) le viste renderizzate del modello finito, senza ruote. Per esempio sulla mia Fiat Bertone X/1-9, facciamo le 4 viste renderizzate: vista1, 512x256: ![]() dato che la prospettiva accorcia la parte superiore, l'ingrandiamo del 115%: ![]() vista2, 512x512: ![]() Ora, dato che le auto non sono sempre dello stesso colore, occorrerà fare il trasparente della carrozzeria. (Qualcuno ha visto per caso la nostra Mascotte?... Non la trovo più!...) Copiamo le 2 immagini. Facciamo in verde la parte opaca, e blu la parte trasparente (consiglio di farlo in bmp, e con il buon vecchio Paint): ![]() ![]() La parte blu sarà poi nera, e quella verde, bianca. A questo punto realizziamo uno 'scatolone', seguendo le linee di contorno del veicolo. In questo caso, si parte dalla vista 'left', tenendo presente che l'oggetto dovrà essere piegato sulla linea orizzontale. La superficie andrà poi copiata in 'mirror', e le due superfici unite con 'connect'. Al nostro scatolone andrà assegnato il materiale della carrozzeria: Matte: FFFFFFFF [prim,env:9,spec]. ![]() A questo punto copiamo lo chassis_vlo, e ne stacchiamo le superfici delle viste prospettiche in 4 parti, da allargare un po' così da ricoprire lo chassis_vlo: ![]() Eseguiamo su queste 4 parti un UN_Mapping totale: ![]() E riassebliamo il nostro chassis_vlo: ![]() La parte trasparente, come una finestra, mostrerà il colore variabile della carrozzeria. *** COLLISION & SHADOW *** Collision Il 'Collision' è responsabile della 'solidità' del modello, e ne gestisce gli effetti da collisione. Mentre la solidità è data sia da superfici di collisione che da sfere di collisione, gli effetti sono dati dalle sole sfere di collisione. Come è fatto un collision? In questo modo: ![]() Notiamo che la superficie è il vero Collision, dentro il quale vanno messe le sfere di collisione. Le facce della superficie possono essere indifferentemente unite o staccate e come materiale hanno quello di default. Generalmente ricoprono la parte superiore e inferiore del modello. C'è un limite alle facce totali tra superfici e sfere di collisione che si possono avere in un modello, che è difficile da calcolare, in effetti, e che pone dei limiti alla grandezza del modello stesso. Ma come si creano le sfere di collision? In tal modo: ![]() Fate attenzione a non prendere il dummy generale! Deselezionatelo in gerarchia. Ora: ![]() Ecco la nostra sfera, da ingrandire con 'shift+Scale': ![]() Anche se resta blu opaco, una volta salvata diventerà come le altre, a fil di ferro. Il colore dipenderà dal nome, e quindi dalla funzione che dovrà svolgere. Le sfere di collisione dicono al gioco quale parte 3D dovrà essere danneggiata quando vengono colpite. Pertanto sono: ![]() 'Default' svolgono solo un compito 'riempitivo', e inoltre, dato che Collision ha, tramite le sfere di collisione, anche un'altra funzione, che non tutti sanno (forse nemmeno la R*!): Le sfere di collisione sono responsabili della distribuzione del peso del veicolo. Il fulcro dei pesi, tuttavia, non è dato dal centro massa delle sfere, bensì dal centro del modello, il dummy generale. Ovvero: ![]() Interessante, vero? :) Veicoli per il 'drift' dovrebbero così andare meglio! Se il modello lo prevede, ci sono anche altre sfere di collisione: -LRDoor (portiera sinistra posteriore) -RRDoor (portiera destra posteriore) -LFWing (ala sinistra anteriore) -RFWing (ala destra anteriore) -LBWing (ala sinistra posteriore) -RBWing (ala destra posteriore) che ovviamente vanno poste in prossimità del corrispettivo oggetto 3D. Shadow Lo 'Shadow' è responsabile dell'ombra proietatta dal veicolo. Tuttavia, ha anch'essa un'altra funzione: Shadow è responsabile della incidenza della fonte di luce sulle superfici del modello. E' bene quindi che ricopra il modello interamente, altrimenti si noterà la differenza! Shadow è un unico oggetto, può essere composto da più parti unite, ma: Non devono esistere superfici aperte. Non devono esistere vertici aperti. Gli oggetti devono essere sempre chiusi, e se si fa con oggetti base, se ne dovranno unire i vertici: ![]() Anche il suo materiale è quello di default, e si presenta così: ![]() *** MISC & COLLISION DINAMICO *** MISC Alcuni modelli hanno delle parti 3D mobili. Alcuni hanno dei dummy per funzioni speciali, come trainare un altro veicolo. Tutti questi prendono in genere il nome di 'Misc', e li ritroviamo dentro lo 'chassis_dummy'. Un veicolo che ne traina un altro, per esempio, è il trasporto bagagli, 'baggage', con i suoi 2 tipi di carrello, 'bagboxa' e 'bagboxb': ![]() Per il Baggage abbiamo: ![]() Per il BagBoxA (e similmente BagBoxB): ![]() Il dummy che fa coppia con 'misc_a', per il traino, si chiama 'hookup'. Ad eccezione del sistema di traino, che può essere messo a qualsiasi veicoli, gli altri tipi dipendono dal veicolo che li ha. Il veicolo 'utiltr1', che ho usato per la mia roulotte, ha il gancio che si solleva quando viene agganciato: ![]() così come l'autocisterna: ![]() COLLISION DINAMICO I 'misc' quindi si impiegano anche per parti mobili, ma che abbiano anche 'solidità'. Ma come è possibile, dato che la solidità ad una parte 3D viene conferita da un 'Collision', che è statico?... Nel 'Packer': ![]() Il pianale superiore può essere sollevato, e con esso, gli eventuali veicoli. Naturalmente ha il suo bravo misc_a (il misc_b è praticamente inutile!): ![]() Tuttavia, se fate un modello, gli mettete un misc_a, e lo chiamate Packer, non vi solleverà un bel nulla!...:( Diamo un'occhiata al suo collision: ![]() ![]() Niente!... Lo Zio si è prodotto in una nuova performance, tipo quella della superficie anti-mare, che non gestisce. Importiamo il collision del Packer con il CollEditor2, in un file *.col esterno qualsiasi (tanto non lo dovremo salvare): ![]() ![]() ![]() Osservate: ![]() Il pianale inferiore è di materiale metallico, '63-Car[Metal]'. Ma il pianale superiore: ![]() ha come materiale '65-Car(moving component)[Metal]'. Pertanto: Le facce hanno 2 tipi di materiali: Il materiale di aspetto, gestito da ZM2, e il materiale di consistenza, non gestito da ZM2. (In effetti misc_b non ha il materiale mobile). La nostra Mascotte pensa di aver risolto, ma si sbaglia: Non è possibile, con ZM2, importare dentro un dff un collision esterno. Ciò che si può fare è importare un collision 'dinamico', e modellarlo secondo le esigenze. Si può anche copiare, senza perdere l'attributo di materiale di consistenza mobile: ![]() SOLUZIONE 1: -Esportiamo il dff e il txd della hustler dal gta3.img. -Esportiamo le texture per lo Zio. -Importiamo il dff nello Zio. -Visualizziamo solo lo chassis e un dummy 'door' alla volta. -Andiamo sulla vista 'left'. -Spostiamo i dummy 'door' a destra della portiera. -Rendiamo invisibile lo chassis. -Andiamo sulla vista 3D. -Prima sui due 3D 'door_ok', poi sui due 3D 'door_dam', eseguiamo un 'Display.../Local Axes...[Offset]/Copy' dei relativi dummy 'door' sui 3D 'door'. -Copiamo i dummy 'door'. -Chiamiamoli 'gulf_lf' e 'gulf_rf'. -Spostiamo dentro ai 'gulf' i relativi dummy 'door'. -Applichiamo un 'Exact Transform' di rotazione di [0 180 0] ai gruppi 'gulf'. -Eseguiamo un 'Exact Transform' di rotazione, spuntando 'Transform Geometry', di [0 180 0], sui 4 3D 'door'. -Torniamo sulla vista 'left'. -Muoviamo i vertici delle 4 maniglie, solo per 'X', spostandoli a sinistra. -Esportiamo il dff. -Sostituiamo il dff nel gta3.img. -(Il txd no, ovviamente). -Se volete un tempo di riferimento: 5 minuti. -Et voilà: ![]() Con questa lezione siamo giunti al termine di questo tutorial. In un prossimo futuro il tutorial: 'Auto da Zero'. By AUTOMAN |