Allineamento a 2 spline

Forum per: Modellazione, Texturing, Animazione, Composting e tutto quello che riguarda il normale utilizzo di Cinema4D.

Moderators: Arkimed, natas, visualtricks, cappellaiomatto

  • Advertising
User avatar
patavinus
Posts: 127
Joined: Fri Oct 26, 2012 12:47 pm
Location: Padova

Allineamento a 2 spline

Post by patavinus »

Salve, stavo cercando un modo per simulare la movimentazione di pezzi di un convogliatore aereo (una catena che muove i pezzi in un impianto di verniciatura). Questo convogliatore ha due binari e i pezzi hanno "2 pivot", uno viene tirato su un binario, l'altro lo segue trascinandosi.
Allego una pianta in cad in cui ho fatto una simulazione manuale del movimento dei pezzi:
simulazione.jpg
simulazione.jpg (142.77 KiB) Viewed 1438 times
Lo strumento "allinea alla spline" mi sembra che non risolva il mio problema, voi avete idea se si possa fare?
User avatar
masterzone
Site Admin
Posts: 10352
Joined: Fri Sep 17, 2004 5:34 pm
Location: Verona

Re: Allineamento a 2 spline

Post by masterzone »

mmmm madonna che casino....e' gia la 4a volta che leggo il messaggio per capire come fare...bisogna fare un RIG, anche se pur semplice ma va riggato o giocando con qualche nullo, target e bagoli gerarchici forse si puo' fare...
In questo caso ci vuole o ABE3D, dal nostro forum, o il Cappellaio Matto, aka matteo...prova a mandare una mail a matteo@c4dzone.com indicandogli il topic qua sul forum che magari appena ha un attimo ti da due dritte che e' un rigger magico....
User avatar
cappellaiomatto
Moderatore
Posts: 1571
Joined: Mon May 07, 2012 5:12 pm

Re: Allineamento a 2 spline

Post by cappellaiomatto »

Ciao
riesci a postare una referenza video del movimento che vuoi ottenere, dal cad faccio fatica a capire
User avatar
patavinus
Posts: 127
Joined: Fri Oct 26, 2012 12:47 pm
Location: Padova

Re: Allineamento a 2 spline

Post by patavinus »

https://youtu.be/daaazfDGxaU

da 2min 43sec a 3min 20sec
User avatar
cappellaiomatto
Moderatore
Posts: 1571
Joined: Mon May 07, 2012 5:12 pm

Re: Allineamento a 2 spline

Post by cappellaiomatto »

Ciao
Dovrei fare due prove ma mi sembra fattibile

Probabilmente si risolve giocando con un tag target e una gerarchia ad hoc. Forse un po' di xpresso.

Intravedo un punto oscuro sul movimento del punto trascinato ma magari si risolve con poco, è una di quelle cose che se non fai un po' di esperimenti non si riesce a prevedere

Se riesco nel weekend mi ci diverto un po' e ti posto una soluzione, sempre non arrivi prima Abe :lol:
User avatar
patavinus
Posts: 127
Joined: Fri Oct 26, 2012 12:47 pm
Location: Padova

Re: Allineamento a 2 spline

Post by patavinus »

troppo gentile! se riesci ti offro uno Spritz!
User avatar
cappellaiomatto
Moderatore
Posts: 1571
Joined: Mon May 07, 2012 5:12 pm

Re: Allineamento a 2 spline

Post by cappellaiomatto »

ciao
come immaginavo c'era qualcosa di poco chiaro nel trascinamento che richiede l'ausilio di un minimo di programmazione e non può essere fatto solo ed esclusivamente con xpresso.

Nel rig in allegato trovi un esempio, ma mi sono fermato alla soluzione che utilizza solo xpresso

Essendo un rig meccanico la regola è sempre un oggetto si muove direttamente e tutti gli altri si muovono indirettamente.

ho creato due percorsi

il percorso diretto e quello indiretto
ho messo un goal dentro ogni spline e tramite due controller faccio muovere i punti lungo le spline

fin qui nulla di particolare.

a questo punto ho creato una barra (che simula il carrello nel video) ho messo il centro asse un po più dentro e l'ho posizionata in gerarchia sotto al punto di controllo della spline diretta.

Attenzione a due cose:
1) la zeta della barra deve seguire la sua lunghezza (servirà per il tag target che metteremo tra poco)
2) le coordinate devono essere tutte a 0,0,0 sia per posizione che rotazione

ora muovendo il controller diretto la barra segue la spline.

mettendo un tag target nella barra e facendolo puntare al punto di controllo indiretto ora ottieni che muovendo la barra questa si auto allinea al secondo punto di controllo.

E qui nasce il vero problema pfiu ...... la barra nel mondo reale è rigida e ancorata all'altro punto di controllo, quando viene spostata direttamente dal punto diretto fisicamente inizierebbe a essere trascinata seguendo il percorso indiretto.

Purtroppo all'interno di cinema non avviene questa cosa perchè non esiste una dinamica vera e propria che simula la fisica.


Per capire quello che ti sto scrivendo ho creato dentro la barra due nulli che uso come riferimento per i punti di ancoraggio.


Tramite xpresso calcolo la distanza tra i punti di controllo della barra, questa distanza rimane fissa come nella realtà perchè la barra è rigida e non elastica.

Faccio la stessa identica cosa per i due punti di controllo mobili punto diretto e punto indiretto.

Vedrai che animando i controller la distanza mobile cambierà.

A questo punto hai 2 soluzioni

1) animando i controller a mano e con un po di pazienza certosina fai in maniera tale di mantenere le due distanze il più possibile uguali per non far vedere in animazione una cosa non vera.

2) se sei pratico di python puoi simulare te una vera e propria dinamica e far partire un calcolo dopo ogni spostamento del punto diretto.
questo calcolo dovrebbe cercare il punto migliore sulla spline secondaria che faccia in maniera tale che la distanza mobile - la distanza fissa sia minore di un fattore di errore che stabilisci te.......nulla di complesso se sai dove mettere le mani ..... :roll:


se vuoi replicare il rig occhio alle priorità di expressioni dentro i tag xpresso e target, sono fondamentali perchè il rig non esegua istruzioni prima di altre.

buon divertimento

Matteo

:mrgreen:
Attachments
allineamento_spline.zip
(78.34 KiB) Downloaded 55 times
1.png
1.png (238.16 KiB) Viewed 1275 times
User avatar
abe3d
Posts: 1110
Joined: Mon Dec 07, 2009 1:48 pm

Re: Allineamento a 2 spline

Post by abe3d »

HHHHMMMMMMMMM!!! Questo è davvero un signor quesito!!
Ciao ragazzi, leggendo questo post mi sono venuti in mente alcuni modi complessi per risolvere una funzione che permetta di intercettare l'intersezione tra una spline e un raggio dato, per simulare una più complessa generazione di gradi di liberta e vincoli, ma come scrive Matteo nulla di tutto questo senza l'ausilio di codice .

Detto ciò (e ritornando a xpresso), l'escamotage più semplice possibile che ho immaginato è usare una spline (la secondaria) abbastanza suddivisa da far fare il lavoro al nodo Ray Collision su una sfera, iterando in sequenza i segmenti della spline (0-1,1-2,2-3 ecc.)

Il risultato è abbastanza preciso (relativo alla suddivisione del percorso spline secondaria) e veloce da calcolare...
Il resto è tutto Align to spline e target expression.
Attachments
trascina punto.zip
(52.57 KiB) Downloaded 55 times
Xpresso.jpg
Xpresso.jpg (61.47 KiB) Viewed 1234 times
viewport.jpg
viewport.jpg (24.1 KiB) Viewed 1234 times
objects.jpg
objects.jpg (10.5 KiB) Viewed 1234 times
dadapik
Posts: 1
Joined: Thu Jun 12, 2008 11:29 am

Re: Allineamento a 2 spline

Post by dadapik »

Ciao a tutti, non sono convinto di avere capito esattamente la richiesta, ma guardandola superficialmente la prima cosa che mi è passata per la testa è: magari funziona con i connector.
Ho creato un setup al volo con le due spline e la barra in mezzo che si muove seguendo le due spline.
Allego il file così è più facile valutare se la soluzione può avere un senso o meno. :)
Attachments
Doppio Hinge.zip
(64.06 KiB) Downloaded 52 times
User avatar
abe3d
Posts: 1110
Joined: Mon Dec 07, 2009 1:48 pm

Re: Allineamento a 2 spline

Post by abe3d »

@dadapik
Ti rispondo io per tutti. La posizione del secondo pivot (hinge) deve necessariamente e "letteralmente" essere trascinata dal primo, che, spostandosi lungo il percorso diretto (evidentemente di lunghezza diversa da quello indiretto) ne regola la velocità (velocità del pivot secondario, che è il vero quesito da risolvere), vincolandolo alla distanza data.
  • Advertising
Post Reply