Jump to content
Loki

Ruote Che Rotolano. How To?

Recommended Posts

Premetto che uso XSI... e qui già il 90% di chi legge chiuderà senza rispondere -_-

Comunque sia, forse mi perdo in un bicchier d'acqua... o forse no, non lo so ancora.

So solo che ho passato le notti sopra un ca**o di rig di un mezzo a 4 ruote senza riuscire ad ottenere qualcosa di decente.

Ho sfornato 4 rig, di cui uno pure fighissimo e divertentissimo, ma non fa al caso mio.

Venendo al problema:

Ho un'auto che avanza eseguendo alcune curve ma non riesco ad automatizzare il rotolamento delle ruote in modo automatico, in modo che possa variare col variare della velocità del mezzo.

In un caso "normale" definirei il percorso del mezzo tramite una Path ed assegnerei un'Expression alle ruote, dove roty = path%.

In questo modo tutto è semplice, basta poi qualche Null lungo il percorso poco più avanti dell'auto a cui far riferimento per un Direction Constraint per le ruote anteriori in modo che sterzino in automatico... tutto semplice, una passeggiata!

Il problema però nasce quando non posso assegnare una Path al mezzo, in quanto durante il suo percorso, deve eseguire delle manovre in retromarcia fuoi dal percorso di avanzamento.

Per capire meglio, ho disegnato un percorso simile a quello che dovrà compiere il mio mezzo:

Il mezzo parte dal punto 1 ed avanza fino a fermarsi al punto 2. Da qui, dovrà fare una retromarcia fino al punto 3, per poi raggiungere il punto 4 di nuovo avanzando.

PathConstraint.jpg

Impostando quello come percorso, l'auto eseguirebbe il percorso girandosi di scatto di 180° al punto 2 e al punto 3.

Potrei in teoria animare così e, in quei due punti, inserire delle Key sulla direzione del Path Constraint invertendo l'asse di direzione, ma poi resterebbe il problema delle ruote: con un'expression come quella di prima, dal punto 2 al 3, le ruote girerebbero con la giusta velocità ma al contrario.

Qualche idea su come risolvere?

Non necessariamente serve un Rig basato su un Path Constraint... ma in questo caso, non riesco a trovare riferimenti per collegare in Expression la rotazione delle ruote.

Share this post


Link to post
Share on other sites

Ciao,

questo è un messaggio generato automaticamente.

Se hai ricevuto questo messaggio è perché la tua discussione è stata spostata e messa nella sezione più appropriata.

Quando crei una discussione ti preghiamo di far attenzione ad inserirla nella sezione corretta in modo che sia più facile per tutti consultare il forum.

grazie per la collaborazione

lo staff di Treddi.com

Share this post


Link to post
Share on other sites

Eh, ma quello è interattivo, io ho bisogno di qualcosa che sia basato su chiavi d'animazione.

Il modello poi sarebbe eccessivamente pesante per una cosa realtime.

Altrimenti la soluzione l'avrei già. Avevo realizzato diverso tempo fa questo:

Share this post


Link to post
Share on other sites

Magari è eccessivamente pesante ma forse, questo non lo so, scusa la mia ignoranza in XSI, si può fare poi un bekesimulation della simulazione, e poi elimini le dinamiche?

Share this post


Link to post
Share on other sites

Questo si, potrei plottare l'animazione, ma non è così semplice. Ho bisogno che segua percorsi precisi e sia in posti precisi ai frame precisi.

Ho dunque necessità di controllare non solo il movimento, ma anche la sua posizione nel tempo.

Oltre a ciò, vorrei poter avere il controllo sul percorso, modificandolo anche in parte in un momento successivo, senza doverlo rigenerare interamente e riplottare.

Per cui rimane un sistema non adatto al caso mio purtroppo.

Share this post


Link to post
Share on other sites

sei talmente avanti che non ho neanche capito la domanda... (e questo non lo mettevo in dubbio seguendo il tuo elicottero)

seguo perchè guidare su sterrato nel computer è proprio figo! ^_^

e cmq sei l'unico che si modera da solo... fra poco ti bannerai pure?

saluti

Share this post


Link to post
Share on other sites

Potresti farti uno script che viene lanciato ogni frame e ti restituisce la posizione. Facendo il confronto con il frame precedente hai la distanza percorsa. Con il raggio della ruota e le informazioni di posizione é possibile ricavare la rotazione.

rotazione =  (2raggio * p.greco) / traslazione * 360

Share this post


Link to post
Share on other sites

in max si potrebbe assegnare un attribute holder con un attributo che definisce l'orientamento della macchina e farei dipendere da questo attributo il risultato dell'espressione che definisce l'orientamento della macchina e la rotazione delle ruote(l'attributo ad esempio andrebbe settato ad 1 per le parti in cui la macchina si muove in avanti e -1 per le parti in cui fa retromarcia.)

poi dal punto 1 al 2 lo setterei in modo che la macchina sia orientata verso la direzione di marcia, poi dal 2 al 3 in modo che sia ruotata di 180° e dal 3 al 4 come il punto 1 e 2.

non so se mi sono spiegato bene..

ciao

Share this post


Link to post
Share on other sites

Riguardo a quanto ho scritto prima:

La distanza percorsa, al posto del confronto con il frame precedente (che implica avere animato l'oggetto), puoi fargliela calcolare sempre all'interno dello script creando una variabile globale dove memorizzi la posizione dell'oggetto prima che esso venga mosso. Questa posizione la confronti poi con la posizione attuale. Cosí facendo quando traslerai l'oggetto in viewport le ruote le vedi girare, senza bisogno di mandare in play all'animazione.


Edited by karnak

Share this post


Link to post
Share on other sites

Sto passando un periodo veramente pessimo col lavoro, troppo da fare e troppo poco tempo per farlo :wallbash:

Coi pensieri per cercare di risolvere i problemi e consegnare in tempo, ho dimenticato di ringraziarvi per le risposte... chiedo scusa!

Avevo letto e mi ero messo a fare un paio di prove ma appunto come detto, il tempo è troppo poco, non riuscendo ad applicare in senso pratico le indicazioni date, ho optato per qualche trucco a livello di inquadrature più un po di animazione a mano.

Appena consegnato, vedrò di applicare con un po di pazienza i consigli che mi avete dato.

Grazie a tutti :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...