Per avere un'idea del risultato di questo tutorial, è meglio guardare il video correlato.
Nel file di lavoro PSD_C4D_R12_Dyn_Motor_Auto_Start.c4d, gli elementi più importanti della scena sono già preparati, consentendoci di iniziare immediatamente a lavorare con la dinamica. Poiché inizieremo con la costruzione del piccolo veicolo giocattolo, tutti gli elementi di disturbo della scena sono temporaneamente nascosti tramite gli interruttori del semaforo del Gestore Oggetti.
Costruzione della scena
Diamo un'occhiata alla composizione della scena. Oltre all'auto, c'è anche un oggetto sfera come futuro ostacolo, un oggetto HyperNURBS con un oggetto paesaggio integrato, nonché terreno, cielo e oggetti luce per l'ambientazione e l'illuminazione della scena.
Per rendere la costruzione del veicolo il più semplice e comprensibile possibile, l'auto è composta solo dalla carrozzeria e dalle quattro ruote. Le ruote sono costituite da un totale di quattro oggetti tubo, orientati lungo l'asse X positivo e posizionati nel punto designato sull'auto.
In modo che ci sarà più semplice successivamente integrare connettori e motori, a ciascuna ruota è associata la sua posizione come sigla (vl = davanti sinistra).
La carrozzeria genera un oggetto Extrude-NURBS da una spline. Naturalmente è possibile utilizzare un'altra auto o altra carrozzeria; ciò che conta in seguito è solo l'integrazione corretta tramite connettore o tag Dynamics Body.
Nella finestra di impostazioni dell' oggetto Extrude-NURBS è definita la larghezza della nostra auto. Questa è determinata dallo spostamento in direzione X durante l'estrusione. Per un look naturale e realistico, sono presenti degli smussi sui bordi della carrozzeria.
Nascosto nell' oggetto HyperNURBS c'è un oggetto paesaggio che fornisce un terreno d'azione utile per l'avventura fuoristrada dell'auto. Grazie alla suddivisione HyperNURBS, possiamo risparmiare nella segmentazione del terreno senza ottenere una superficie troppo angolare.
Per aggiungere un po' più di azione durante il viaggio attraverso il terreno, integriamo alcuni ostacoli. Nel mio caso, semplici oggetti sfera con raggio di 50 cm, che saranno successivamente distribuiti casualmente sul terreno o sull'oggetto paesaggio tramite MoGraph.
Costruzione dell'auto con connettori e motori
Iniziamo con il giocattolo dell'auto. Quali funzioni deve svolgere per i nostri scopi?
Prima di tutto, le ruote devono essere fissate ruotabili al veicolo; inoltre, ha bisogno di un'unità alle ruote affinché possa muoversi autonomamente. E naturalmente deve rilevare le collisioni - che iniziano già dal fatto che le ruote si trovano a contatto con il suolo.
Per fornire questa funzionalità attraverso la nuova dinamica di CINEMA 4D, gli elementi coinvolti hanno bisogno di tag Dynamics Body affinché siano accettati dall'engine di dinamica.
Iniziamo con le quattro ruote, che selezioniamo tutte nel Gestore Oggetti e le definiamo come Rigid Body tramite il menu Simulazione>Dynamics.
Dato che ovviamente tutte e quattro le ruote devono avere le stesse proprietà dinamiche, manteniamo selezionati i quattro tag Dynamics Body e configuriamo i parametri desiderati.
Nella pagina delle dinamiche, possiamo accettare le impostazioni predefinite. L'attivazione immediata è importante affinché le ruote siano subito a contatto con il suolo.
Nella pagina delle collisioni, aiutiamo il rilevamento delle collisioni dinamiche impostando la forma su asse cilindrico di X. Questo corrisponde alla forma della ruota e migliora le prestazioni nel calcolo dinamico. Affinché il veicolo rimbalzi appena leggermente in caso di urto sul suolo, impostiamo una elasticità leggera al 10%. Al contrario, aumentiamo l'attrito al 120%, in modo che le ruote possano ottenere una presa sul suolo.
Passiamo all'elemento successivo dell'auto, la carrozzeria. Purtroppo, l'oggetto Extrude-NURBS non è adatto come punto di riferimento per la carrozzeria a causa della sua posizione assiale poco favorevole, quindi facciamo entrare semplicemente il Null-Object Auto sovraordinato. Il suo asse si trova al centro dell'auto.
Assegniamo al Null-Object Auto un tag Dynamics Body come Rigid Body tramite il menu Simulazione>Dynamics.
Nella finestra di dialogo delle impostazioni del Tag Corpi dinamici avviamo anche per l'auto l'attivazione immediata.
Nella pagina Collisione dobbiamo considerare la gerarchia del nostro veicolo affinché la carrozzeria possa essere riconosciuta. Impostiamo la gerarchia su Forma di collisione composta e scegliamo come Forma meglio il contorno convesso o la mesh mobile.
Le altre proprietà di collisione possono rimanere invariate; alla fine, il veicolo si troverà principalmente sulle quattro ruote e non sarà obbligatoriamente ribaltato.
Per garantire che l'asse desiderato venga utilizzato come centro di massa per il nostro veicolo, dobbiamo brevemente passare alla pagina Massa.
Qui attiviamo l'opzione Centro di massa personalizzato - tuttavia, poiché non vogliamo deviare dall'asse definito, lasciamo i valori di offset X, Y e Z a 0.
Se dovessimo avviare ora l'animazione, il nostro veicolo collasserebbe semplicemente su se stesso. Questo non è sorprendente, poiché abbiamo definito solo cinque Corpi dinamici, di cui CINEMA 4D non sa ancora nulla sui collegamenti costruttivi.
Cambiamo ora questo con i Connettori. Con essi fissiamo da un lato le ruote al veicolo, dall'altro consentiamo la rotazione attorno all'asse delle ruote e terzo realizziamo contemporaneamente una sospensione decente per percorrere il terreno.
Prendiamo il primo Connettore dal menu Simulazione > Dinamica.
Ogni ruota riceve il proprio connettore. Iniziamo con la ruota anteriore sinistra e rinominiamo il nuovo Connettore in modo appropriato per primo. Per far sì che il connettore prenda la posizione della ruota, attiviamo lo strumento di Assorbimento dal menu Funzioni e trasciniamo la Ruota vl nel campo dell'Oggetto per l'assunzione.
Dopo aver cliccato sul pulsante Assegna, il connettore si trova nella stessa posizione della ruota impostata.
Seguiamo lo stesso procedimento per il connettore successivo; questa volta per la ruota anteriore destra. Anche a questo connettore assegniamo la posizione della ruota corrispondente attraverso il comando di Assorbimento.
Prima di procedere con le ruote posteriori, allineiamo correttamente i connettori alle ruote anteriori. Selezioniamo il connettore e ruotiamolo verso l'esterno utilizzando l'Angolo di beccheggio nel Gestore attributi con la parte a cardine gialla. Per la ruota anteriore destra otteniamo un angolo di 90°, per la ruota anteriore sinistra un angolo di -90°.
Con lo stesso approccio puoi ora dotare anche le due ruote posteriori di connettori nella posizione corretta e orientarle correttamente. Nell'immagine sottostante sono mostrati i quattro connettori posizionati dalla vista dall'alto.
Per rendere visibili i connettori anche quando non sono selezionati, attiviamo nella pagina Visualizzazione della Finestra di dialogo delle impostazioni del connettore l'opzione Sempre visibile. Riduci leggermente la dimensione dei connettori in modo che si adattino meglio al veicolo.
Ora dovremmo finalmente determinare la corretta funzionalità per i connettori; vogliamo infatti avere assi con sospensioni e non cerniere sull'auto. Questo avviene nella Pagina oggetto, dove impostiamo il tipo Sospensione per tutti e quattro i connettori.
Per ora lasciamo i quattro connettori selezionati, perché possiamo anche impostare le prossime impostazioni per tutte e quattro le sospensioni. Come primo oggetto di Vincolo dei connettori, trasciniamo l'Oggetto Null Auto come Oggetto A nel campo apposito.
Come Rigidità della molla scegliamo il valore 20, per l'Ammortizzazione della molla, cioè la velocità con cui la molla si riposiziona, prendiamo un valore del 20%.
Attiviamo il limite inferiore e superiore nella direzione Y, con uno spostamento di 20 cm ciascuno. È improbabile che il nostro veicolo raggiunga questi limiti, ma la scena sarà comunque più ordinata.
Ora ci occupiamo delle singole sospensioni o Connettori delle ruote. L'unica modifica che dobbiamo apportare per ciascuna sospensione è il secondo oggetto per il vincolo. Per fare ciò, trasciniamo la ruota corrispondente al connettore nel campo Oggetto B relativo a quel connettore.
Una volta che abbiamo configurato tutti e quattro i connettori o le sospensioni ruota, li integriamo anche nella gerarchia degli oggetti del veicolo. Li posizioniamo vicino alle ruote come sottooggetto dentro al oggetto nullo "Auto".
Ciò che manca ancora al nostro modellino di auto è la trazione, affinché possa muoversi autonomamente. Sebbene per il terreno sarebbe auspicabile una trazione integrale, nell'esempio che stiamo considerando solo le due ruote anteriori saranno azionate da motori. Due motori, perché in questo modo il trasferimento di potenza alle singole ruote avviene in modo fisicamente corretto.
Aggiungiamo il primo motore alla scena tramite il menu Simulazione>Dinamica.
Analogamente ai connettori, rinominiamo il motore in modo appropriato rispetto alla ruota azionata. In questo caso, il motore azionerà la ruota anteriore sinistra.
Con lo strumento Assumere dal menu Funzioni, facciamo in modo che il motore assuma la posizione della ruota. Dopo aver cliccato sul pulsante Assegnare, il motore si troverà nella posizione desiderata e dovrà solo essere orientato.
Questa operazione viene eseguita tramite il Gestore attributi nella Scheda coordinate. Ruotiamo il motore di un Angolo di ribaltamento di 90°, in modo che la direzione gialla del movimento corrisponda alla direzione di rotazione della ruota.
Il motore è vincolato tramite i campi oggetto nel suo dialogo delle impostazioni. Nel nostro caso, trasciniamo la ruota anteriore sinistra nel campo Oggetto A. Per la trazione diamo al motore una velocità angolare obiettivo di 400° e una coppia di 50.
Seguiamo lo stesso procedimento ora per aggiungere un altro motore per azionare la ruota anteriore destra. Lo rinominiamo opportunamente e passiamo di nuovo la posizione della ruota corrispondente al motore con lo strumento Assumere.
Anche il secondo motore ruotiamo tramite il Gestore attributi nella direzione corretta e questa volta passiamo la ruota anteriore destra come Oggetto A.
Il secondo motore ovviamente riceve gli stessi parametri per la velocità angolare obiettivo e la coppia.
In questo modo la trazione è stata correttamente integrata nel veicolo. Consiglio di includere i motori come sottooggetto nella gerarchia degli oggetti del veicolo in modo che l'Editore rimanga ordinato anche durante la Simulazione.
Prima di poter far partire finalmente l'auto, abbiamo bisogno di un terreno solido, altrimenti il modellino cadrebbe nel vuoto.
Per il nostro primo test e come piano di base per il futuro, trasformiamo il pavimento in un oggetto di collisione. Selezioniamo l'oggetto Pavimento e gli assegniamo tramite il menu Simulazione>Dinamica il relativo tag di corpo dinamico.
Come accade di solito per un oggetto di collisione puro, il dialogo delle impostazioni è piuttosto semplice. Ci interessa principalmente il coefficiente di attrito. Lo impostiamo al 100% in modo che le ruote possano trovare rapidamente aderenza e accelerare correttamente.
Premendo il pulsante di riproduzione l'auto modellino inizia già a muoversi da sola. In seguito doteremo l'auto di un piccolo sistema di controllo; per ora ci concentriamo sul terreno.
Ampliamento della scena con elementi Dynamics e MoGraph
Fino ad ora non visibile poiché disattivato come oggetto parametrico tramite il Gestore oggetti, l'oggetto Paesaggio deve ora essere utilizzato come terreno collinare. Analogamente all'oggetto Pavimento, dobbiamo prima definire il terreno come oggetto di collisione. Assegniamo l'oggetto HyperNURBS padre tramite il menu Simulazione>Dinamica un tag di corpo dinamico come oggetto di collisione.
Anche per questo oggetto di collisione, il lato collisione del dialogo delle impostazioni è di particolare importanza. Qui abbiamo bisogno come forma di collisione la rete statica, affinché l'auto possa rilevare ogni asperità sulla superficie. Come per l'oggetto Pavimento, impostiamo anche qui il elevato coefficiente di attrito al 100%.
Proviamo subito a vedere come la nostra auto si comporta fuori strada. Per farlo, sposteremo prima l'intero gruppo auto sulla coordinata Z nell'Attribute-Manager a 3000 cm. In questo modo l'auto sarà pronta in direzione di guida e potrà dirigere con slancio verso il terreno.
Dopo aver cliccato sul pulsante di riproduzione, possiamo vedere come il nostro auto giocattolo si apre la strada attraverso i colli. Per animare ulteriormente la scena, distribuiamo anche degli ostacoli.
La base di partenza per i nostri ostacoli è già presente sotto forma di oggetto sferico. Affinché le palle clonate non solo ostacolino l'auto ma anche vengano spinte via, dobbiamo definirle come corpo rigido. In pratica, non importa se la sfera stessa o l'oggetto clonato riceve l'tag Body Dynamics. È più flessibile utilizzare la prima opzione, in quanto è possibile attribuire proprietà dinamiche personalizzate a ciascun tipo di clona.
Quindi assegniamo alla sfera il necessario tag Body Dynamics come corpo rigido; lo troverete come al solito nel menu Simulazione>Dynamics.
Nella finestra di dialogo delle impostazioni del tag Body Dynamics per la sfera, sulla pagina dinamica impostiamo la scintilla su In collisione. In questo modo le palle non si mettono in movimento indesiderato, ma reagiscono solo quando l'auto o un'altra palla provoca una collisione.
A causa della forma semplice dell'oggetto, ci affidiamo al rilevamento automatico delle collisioni; un'alta attrito dell'80% mantiene le palle per la maggior parte a terra, facendole rotolare sul terreno senza saltare indesideratamente.
Adesso la sfera è dotata di proprietà dinamiche, quindi possiamo distribuirla sul terreno. Per farlo usiamo un oggetto clonato dal menu MoGraph.
Attraverso l'Object Manager colleghiamo il oggetto sferico all'oggetto clonato come clona. Poiché utilizziamo una sfera parametrica che usa il centro sfera come punto di riferimento, al momento la disposizione dei cloni sferici comporterebbe che ogni clone sia per metà nel terreno.
Per evitare questo e spostare le palle verso l'alto di una quantità pari al raggio, sulla pagina trasformazione della finestra di dialogo è presente l'opzione per impostare uno spostamento. Spostiamo le palle in direzione Z di 50 cm, ovvero il raggio della sfera.
Le impostazioni effettive per la duplicazione e la distribuzione dei cloni le eseguiamo sulla pagina oggetto della finestra di dialogo delle impostazioni.
Inizialmente scegliamo la modalità oggetto; vogliamo utilizzare l'oggetto paesaggio per la distribuzione dei cloni. Quindi trasciniamo l'oggetto paesaggio nel campo apposito oggetto.
La distribuzione dei cloni dovrebbe avvenire sulla superficie dell'oggetto, naturalmente potrete decidere il numero da soli. Affinché l'auto non debba eliminare troppe palle dal percorso, sarebbe consigliabile un numero massimo di 80.
Nella foto sottostante potete vedere lo stato attuale di rendering. Le palle sono state distribuite correttamente sull'oggetto paesaggio, ma sono ancora tutte orientate nella stessa direzione. Tuttavia, con un effettore casuale questo piccolo problema può essere facilmente risolto.
Per assegnare subito l'effettore casuale all'oggetto clonato quando lo inseriamo nella scena, selezioniamo l'oggetto clonato nell'Object Manager, prima di prelevare l'effettore casuale dal menu MoGraph> Effettori.
Nella finestra di dialogo dell'effettore troviamo sulla pagina parametri i parametri di trasformazione. Poiché le palle devono solo ruotare su tutti gli assi, abbiamo bisogno solo di parametri di angolo modificati. Un angolo di 90° per ciascun lato è sufficiente per fornire abbastanza spazio per rotazioni diverse.
Un rendering di prova mostra che le palle, grazie all'effettore casuale, sono ora distribuite completamente casualmente sul paesaggio.
È ora di rilasciare il nostro giocattolo auto anche sugli ostacoli. Dato che in futuro dobbiamo prevedere più collisioni, vale la pena dare un'occhiata alle Impostazioni dinamiche sotto le Impostazioni del documento, a seconda della dimensione o scalatura degli ostacoli.
Dato che le dimensioni delle sfere, delle ruote e anche dell'auto giocattolo sono molto vicine alla scalatura predefinita o funzionano bene con la tolleranza alla collisione, non sono necessari aggiustamenti nel mio esempio.
Per evitare che l'auto giocattolo scompaia subito dalla vista dopo la partenza, troverete tra gli elementi della scena nel Manager oggetti anche una telecamera obiettivo che si allinea automaticamente all'auto. Nella sua espressione di allineamento è regolato che non deve perdere di vista l'oggetto auto.
La attiviamo facendo clic sull'icona del mirino bianco nel Manager oggetti.
Ora potete premere il pulsante di riproduzione e osservare l'auto durante il tragitto tra il terreno disseminato di ostacoli.
Implementazione di un semplice controllo per l'auto con XPresso
Sarebbe bello se l'auto non dovesse semplicemente procedere dritta per il terreno, ma se noi utenti avessimo anche la possibilità di controllarla.
Per il nostro esempio, un semplice controllo di guida a sinistra o a destra tramite uno slider dovrebbe essere sufficiente. Poiché in realtà dovremmo controllare due oggetti (le ruote o i connettori), ma vogliamo utilizzare solo un comodo controllo, integreremo un nostro parametro di controllo sotto forma di Dati utente.
Selezioniamo quindi il Gruppo auto e aggiungiamo i Dati utente personalizzati tramite il menu Utente nel Manager attributi.
Si aprirà la finestra Gestione dati utente. Qui troverete tutti i Dati utente specifici dell'oggetto portante. Nome sì il nuovo dato come Controllo e specificate tramite il campo delle Proprietà anche come deve essere il parametro.
Come Interfaccia scegliamo uno Slider a virgola mobile nell'unità Gradi. Per avere passaggi chiari, scegliamo un Intervallo di 1°.
Per evitare che le ruote vengano girate troppo e si sovrappongono al veicolo, limitiamo l'inclinazione minima a -30° e l'inclinazione massima a 30°. Il valore predefinito di 0° fa sì che le ruote siano diritte all'inizio.
Dopo aver chiuso il dialogo con OK e aver creato i Dati utente, troverete nella pagina dei Dati utente della vostra auto il parametro Controllo che abbiamo creato come uno slider.
A questo punto abbiamo creato un modo per controllare un nostro parametro. Ora dobbiamo solo trasmetterlo al posto giusto nella costruzione del nostro veicolo.
Un compito di parata per XPresso. Per questo abbiamo bisogno in primo luogo di un Tag XPresso, che possiamo assegnare nel modo più semplice tramite il menu contestuale con il tasto destro del mouse nel sottomenu Tags di CINEMA 4D.
Come supporto per questa espressione, naturalmente il nostro Gruppo auto è perfetto.
Facendo doppio clic sul Tag XPresso apriamo l'Editore XPresso. Come primo elemento o Nodo trasciniamo l'Oggetto nullo Auto dal Manager oggetti nella finestra XPresso.
Per mettere il nostro Parametro da noi creato come Porta per la connessione, facciamo clic sul pulsante rosso delle Uscite e scegliamo il Porto Controllo nel sottomenu Dati utente.
Con il nostro parametro Controllo vogliamo influenzare il Angolo di sterzata dei Connettori sospensione ruote. Per poter accedere a questi parametri nell'Editore XPresso, selezioniamo i due Connettori delle ruote anteriori sinistra e destra nel Manager oggetti e trasciniamo entrambi gli oggetti anche nell'Editore XPresso.
Poiché vogliamo passare un Valore ai due Connettori, abbiamo bisogno dei parametri Angolo di sterzata all' Ingresso. Per fare ciò, facciamo clic sul pulsante blu degli Ingressi dei nodi del connettore e selezioniamo nel sottomenu Proprietà oggetto il rispettivo porto Angolo di sterzata.
Ora dobbiamo solo collegare i due Port di angolo di sterzata con il Port dello sterzo dell'auto. Per fare ciò, trasciniamo semplicemente tenendo premuto il tasto del mouse da un Port all'altro.
La nostra breve escursione nella XPresso è purtroppo già finita, quindi possiamo chiudere l'Editor XPresso. Per evitare di dover cercare continuamente l'Oggetto Null e la sua Voce Dati Utente per controllare l'auto, integriamo semplicemente il controllo del cursore nel Head-Up Display (HUD) della finestra dell'Editor.
Per farlo, clicchiamo con il tasto destro del mouse sull'elemento del parametro Sterzata nel Gestore Attributi e selezioniamo dal menu contestuale il comando Aggiungi a HUD.
Per spostare l'elemento HUD nell'Editor, cliccate semplicemente tenendo premuto il tasto (Ctrl) sull'elemento HUD e posizionatelo con il mouse in un punto adatto.
Inoltre, affinché l'elemento HUD non sia visibile solo quando il nostro veicolo è selezionato, chiamiamo con il tasto destro del mouse il menu contestuale corrispondente e selezioniamo nel menu Mostra l'opzione Sempre.
Ora potete premere il pulsante di riproduzione e inviare l'auto attraverso il terreno a piacimento utilizzando il cursore. Fate attenzione a riportare la Sterzata alla posizione iniziale all'inizio di ogni viaggio per evitare sovrasterzamenti.
Chi desidera successivamente rendere l'avventuroso viaggio un'animazione, può semplicemente inserire Keyframes ai punti di controllo cruciali per il valore di Sterzata corrispondente. Divertitevi a guidare per il terreno!