PDA

Visualizza Versione Completa : Animazione pistone



Scratch
28-10-07, 15:50
Ciao,

Vorrei animare il pistone del disegno che dovra coincidere con la chiusura del coperchio. Ho pensato a diversi morph del pistone. Ma come fare per fare coincidere con la chiusura del coperchio?

7549

Grazie

GinoLatino
29-10-07, 09:59
Ciao!
Se ho capito bene la domanda, dovrebbe essere sufficiente spostare il pivot point del coperchio nella parte in cui il coperchio è fisicamente attaccato alla base (lasciando il pivot del coperchio comunque centrato) ed eventualmente gestirne la rotazione tramite un'espressione 'vincolata' al movimento del pistone.
:noidea:

Onestamente credo sarebbe perfetto fare il tutto con le dinamiche, ma con LW è un campo che non conosco.
:yt:

In ogni caso, spero di aver capito il tuo problema tecnico e che la mia risposta sia comprensibile.


Ciauz!

loriswave
29-10-07, 10:01
in basso alla pagina c'è quello che ti serve.

http://www.newtek.com/lightwave/newsletters/v02-n03/index.html

Scratch
29-10-07, 12:08
Ciao,

Esatto Gino, E proprio quello che voglio fare ma non sapevo come, appunto fare corrispondere il movimento del pistone a quello del coperchio.

ARRGHHH.... Perfetto il tutorial Loriswave. Non l'avevo mai visto. E proprio quello che mi serve.

Tantissimi grazie per l'aiuto a voi 2.:g1:

Scratch
18-03-09, 12:07
Ehm ehm...

Mi ritrovo con un'altro prodotto con un'animazione simile da fare.

Problema: non mi ricordo più come avevo fatto per animare stò cavolo di pistone.

ed il link e morto...:cappio:

Se qualcuno ha dei suggerimenti o si era scaricato il tutorial sopra citato da loris mi aiuterebbe un sacco.

Grazie

DM67
18-03-09, 13:37
Te lo mando per posta elettronica ... puoi darmela?


Tony

dioglev
27-03-09, 10:49
può servire?

http://www.meshweaver.com/frames/tutorials/pistons.htm

Wotan3d
26-05-13, 15:36
Eccomi pure io, dopo 4 anni a dover fare una cosa del genere e non so da dove cominciare.... eppure avevo visto da qualche parte un tutorial con bones e pesi per fare proprio questa cosa, ma sto diventanto scemo a cercarla e non trovo assolutamente niente.
Qualcuno ne sa qualcosa?

grazie
ciao

SlowMan
26-05-13, 16:35
Eccomi pure io, dopo 4 anni a dover fare una cosa del genere e non so da dove cominciare.... eppure avevo visto da qualche parte un tutorial con bones e pesi per fare proprio questa cosa, ma sto diventanto scemo a cercarla e non trovo assolutamente niente.
Qualcuno ne sa qualcosa?

grazie
ciao

Questo può andare?

http://www.lwita.com/tutorials/martinetto/index.php

http://www.lwita.com/vb/showthread.php?t=6159

http://www.lwita.com/vb/showpost.php?p=83502&postcount=12

Wotan3d
27-05-13, 18:17
Questo può andare?

http://www.lwita.com/tutorials/martinetto/index.php

http://www.lwita.com/vb/showthread.php?t=6159

http://www.lwita.com/vb/showpost.php?p=83502&postcount=12


Grazie mille, è quello che cercavo ma non ricordavo assolutamente che lo avessi fatto tu, infatti lo cercavo su NT, in google, ecc, ma non qui.
:g1:

SlowMan
27-05-13, 22:46
Grazie mille,

Prego. :)


è quello che cercavo ma non ricordavo assolutamente che lo avessi fatto tu, infatti lo cercavo su NT, in google, ecc, ma non qui.
:g1:

Fortuna che vuole che io me lo sia ricordato. :D

Wotan3d
28-05-13, 18:38
Funziona tutto... ma fino ad un certo punto.

Ho seguito entrambe le procedure, quella tua con i bones e quella invece di separare gli oggetti in due layer diversi, metterli con il perno (centro della boccola) allo 0.0.0 e fare su di esse direttamente il point at target (e poi riposizionarli nel layout).
Ottengo il medesimo risultato, e cioè tutto funziona a dovere fin quando il pistone raggiunge l'angolo di 90° su P, a quel punto anzichè andar oltre i 90 torna indietro. L'unico modo per continuare a farlo puntare al target è quello di lasciare il point at target anche sul H (cosa che avevo disabilitato in quanto a me interessa solo la rotazione su P), ma appena P raggiunge i 90° H fa un giro di 180° e P ritorna indietro, mantenendo quindi il target giusto.

Se il pistone è speculare niente di grave, non si nota la rotazione su se stesso di 180°, ma se i lati sono diversi (come è in realtà: la boccola è avvitata con viti e dadi, quindi ha i due lati differenti) allora si vede che "flippa", e non so come risolvere questa cosa (forse essendo centrato allo 0.0.0 potrei a mano mettere al frame della giravolta uno strech del -100% abilitando il double face, ma è una soluzione orribile e manco so se funziona a dovere in rendering).

Boh...

SlowMan
28-05-13, 23:40
Dunque, sono un po' arrugginito riguardo il martinetto
(i miei esperimenti sono fermi a LW 9.6)
ma non ricordo di aver incontrato il problema del mancato orientamento
(a dire il vero non ricordo neanche se ho mai superato il limite di rotazione di 90°)
solitamente questo mi succede con scheletri animati con l'IK che risolvo impostando i limiti minimo e massimo nella rotazione.

Nel caso del martinetto però il discorso è diverso: i due cilindri o meglio le ossa che li gestiscono
(nel caso del mio tutorail)
non sono imparentati fra loro in una catena IK ma hanno solo i rispettivi target puntati reciprocamente, in parole povere sono solo due ossa che si guardano a vicenda
(i cilindri sono due extra che condividono il medesimo livello con le ossa e le mappe dei pesi consentono il controllo impedendo deformazioni).

Devo ricontrollare. :confused:

SlowMan
28-05-13, 23:56
Allora, ho fato un test veloce in Layout:

1 - ho aggiunto due Null alla scena vuota
2 - ho attaccato un osso per ognuno dei Null (in tutto due ossa ma non imparentate fra loro)
3 - ho puntato il target dell'osso 1 sull'osso 2
4 - ho puntato il target dell'osso 2 sull'osso 1
5 - ho spostato uno dei Null in tutte le direzioni

Conclusioni:

per ora non ho riscontrato problemi tranne quando i rispettivi pivot si sovrappongono (ma questo è normale).

Devo testare anche con due oggetti senza ossa per vedere cosa succede.

SlowMan
29-05-13, 00:32
Forse ho capito il problema:

1 - ho aggiunto nella scena vuota due cubi identici distanziati sull'asse X e con pivot alla base
2 - ho puntato il target del cubo 1 sul cubo 2
3 - ho puntato il target del cubo 2 sul cubo 1
4 - ho spostato uno dei cubi in tutte le direzioni

Risultati:

spostando il cubo sul piano (X,Z) non ci sono stati problemi,
spostando il cubo sul piano (X,Y) a un certo punto è avvenuto il flip.

Soluzione:

ho centrato i pivot dei cubi a metà della loro altezza,
successivamente ho ripetuto gli spostamenti e non ho riscontrato problemi.

Conclusione:

i pivot degli oggetti devono trovarsi centrati ad essi sull'asse del target.

N.B. Non sono completamente sicuro che sia questa la soluzione ma almeno penso sia la direzione giusta... o quasi. :p

------

Spero di essermi spiegato bene... a quest'ora non connetto bene. :zzz:

Wotan3d
29-05-13, 00:53
Nel mio caso è facile superare i 90° in quanto il pistone è già inclinato in partenza (immagina un pistone idraulico che deve sollevare un carrello e questo deve superare la verticale inclinandosi oltre).
Ti allego un paio di screenshot.

1) punto di partenza, il bone è già inclinato di 29°. Come puoi notare il point at target è solo nel P, dato che è l'unico asse che gira. H è a 90°.

2) Comincia la rotazione e tutto fila liscio fino ai gradi 89.99

3) Superati i 90° l'angolazione su P comincia a decrescere in modo proporzionalmente opposto, inspiegabile!

4) Attivando il point to target anche su H si compie una rotazione di 180° su H (come vedi salta da 90° a -90°), pertanto a questo punto il pistone punta giusto, ma in realtà è girato: P continua a decrescere ma essendo ruotato la sua decrescita lo posiziona correttamente

5) Massima estensione: la P è molto calata, la posizione è mantenuta puntata correttamente grazie alla rotazione scorretta di H.

Il tutto si traduce che ad un certo momento vedo il pistone girarsi di 180° mostrandomi l'altro lato (in cui ci sono viti).
Non so se esiste un trucchetto per sistemare questa cosa, se non tramite la sostituzione manuale del pistone con uno flippato, in ogni caso ritengo che sia un bacarozzo dato che se P deve puntare a qualcosa lo deve sempre fare indipendentemente dai suoi gradi.

Spero che sia tutto chiaro, altrimenti vedo di fare un video...

SlowMan
29-05-13, 09:56
Ho capito, ora ho più chiaro il problema... e che problema.
Ma forse ho la soluzione... forse.
Devo prima fare dei test per essere sicuro sia quella giusta.

SlowMan
29-05-13, 10:35
Per ora posso suggerire di esaminare gli esempi, pronti e funzionanti, in questo ZIP:

http://www.lwita.com/vb/attachment.php?attachmentid=12443&d=1273273761

li ho testati anche sulle versioni più recenti di LW e non mi hanno dato problemi.

In particolare suggerisco di esaminare gli esempi:

Jack-0.lws

e

Jack-1.lws

sono due varianti dello stesso meccanismo cioè un pistone collegato a due ruote in movimento,
Jack-0 rappresenta la variante multilayer con poche ossa
Jack-1 rappresenta la variante monolayer con molte ossa

all'apertura dei file LWS è visibile anche la Schematic View che mostra il concatenamento degli elementi.

Provando a spostare una delle ruote (Jack-0) o una delle ossa/ruote (Jack-1) sul piano X-Y, anche fuoriuscendo dalla sua sede il martinetto resta perfettamente orientato.

------

Penso che il tuo problema sia una questione di imparentamento,
in un meccanismo più complesso del singolo martinetto si aggiungono influenze che possono compromettere il corretto funzionamento.

Wotan3d
29-05-13, 11:45
Accade esattamente quello che succede a me: il bone con target continua a saltare sull'asse H da 90 a -90.

Per vederlo chiaramente prendi l'oggetto rosso (in entrambe le scene è lo stesso, solo che in una è separato il diversi l'ayer, nell'altra è tutto unito, ma non cambia niente), seleziona la metà davanti e colorala di bianco, così è ben visibile quando flippa, e vedi cosa succede.
Queste scene ti sembrano corrette solo perchè il pistone è identico su tutti i lati, ma se avesse due parti differenti allora sarebbero sbagliatissime.

E non trovo come risolvere.

Ti allego la scena con l'oggetto colorato, non ho cambiato niente se non colorare due metà in diverso modo. Naturalmente metti una vista solida e non i wireframe.

Wotan3d
29-05-13, 11:50
eheheheh... guarda cosa succede se gli togli il point at target su H al bone del cilindro rosso (che è quello di cui ti parlo). Scena jack-0

SlowMan
29-05-13, 12:15
Attenzione! Attenzione! Errata corrige.

Adesso che sono un po' più sveglio ho rivisto anche le prove fatte ieri notte:

è tutto sbagliato, è tutto da rifare.

Non me n'ero accorto perché ho sempre utilizzato oggetti simmetrici,
anche i martinetti degli esempi lo sono perciò non riscontravo problemi,
siccome mi era venuto un dubbio ho provato ad imporre degli elementi aggiuntivi che mostrano lo strano effetto di inversione attorno all'asse Bank.

Ecco perché non bisogna mai dare per scontato una cosa che "sembra" funzionare bene.

Sono ovviamente un po' inc:testate::brontolo::mad:to di non essermene accorto prima, comunque meglio tardi che mai, adesso urge trovare una soluzione valida.

bug3d
29-05-13, 14:06
Ciao wotan, non è che potresti postare l'oggetto o una versione semplificata?
Il movimento che deve fare è quello del post #16?

Wotan3d
29-05-13, 14:30
Ciao wotan, non è che potresti postare l'oggetto o una versione semplificata?
Il movimento che deve fare è quello del post #16?

Eccoti la scena semplificatissima (cmq lo puoi testare anche con le scene che ho ripostato prima e leggermente modificate, di SlowMan).

Il pistone non è simmetrico, quindi vedi bene che ad un certo punto "flippa".

Il bone incriminato è logicamente quello del pistone, si chiama appunto "pistone". Selezionalo e vedi che compie una rotazione su H.

Se togli Point at target da H e lo lasci solo in P vedi che quando P supera gli 89.99° il pistone perde il target.

Secondo me non c'è modo di sistemare la cosa.

PMax
29-05-13, 15:39
@Wotan3d

ho provato la tua scena che hai postato , ho fatto un po di prove e forse ho trovato l' inghippo .
seleziona l' osso del pistone poi apri la finestra Motion Options, nel menu a tendina Pole Item seleziona l' oggetto pistone reale. Facendo questo passaggio l' oggetto non ruota più.

Wotan3d
29-05-13, 15:56
@Wotan3d

ho provato la tua scena che hai postato , ho fatto un po di prove e forse ho trovato l' inghippo .
seleziona l' osso del pistone poi apri la finestra Motion Options, nel menu a tendina Pole Item seleziona l' oggetto pistone reale. Facendo questo passaggio l' oggetto non ruota più.

Mettendo in Pole il pistone reale, il pistone compie una rotazione su B di circa 45°.
Ho provato quindi a mettere in pole il Cilindro reale (che è l'oggetto con il bone che viene puntato), a quel punto nel momento in cui H compie la rotazione anche B la compie e si compensano, e sembra andare tutto liscio (in realtà c'è una leggerissima rotazione ma credo sia dovuta alla imperfezione della posizione del bone, dato che l'ho posizionato a "mano" e non centrando l'oggetto alle coordinate 0 in modeler perchè mi arrivava così da cad, ma è accettabile).

Quindi grazie mille per aver risolto.
Ma... perchè fa così? a cosa serve il pole? perchè usarlo per compensare l'altra rotazione? E' fatto correttamente così o è un rimedio fortuito?

PMax
29-05-13, 16:04
Wotan3d a dire la verità è un po che non uso il programma, ho provato a settare varie opzioni ( un po a caso :o) e ho provato a settarlo in quel modo e mi sembra funzionare.
versione di Lightwave 10.1.

Wotan3d
29-05-13, 16:21
Wotan3d a dire la verità è un po che non uso il programma, ho provato a settare varie opzioni ( un po a caso :o) e ho provato a settarlo in quel modo e mi sembra funzionare.
versione di Lightwave 10.1.

eh... è questa la cosa preoccupante, che per far funzionare un pistone bisogna fare le cose un po' a caso perchè quelle normali non funzionano a dovere, e se va di c. si becca il settaggio giusto.
Cmq grazie per i test e per aver risolto un bel problema.

Ciao :)

PMax
29-05-13, 16:35
Wotan3d verificando bene ho notato che l ' oggetto pistone tende leggermente a ruotare .

bug3d
29-05-13, 17:28
Ma... perchè fa così? a cosa serve il pole? perchè usarlo per compensare l'altra rotazione? E' fatto correttamente così o è un rimedio fortuito?

Il pole item serve per targettare il bank che normalmente non è possibile targettare perchè è necessario per definire il vettore stesso di un targeting.
Il problema del pistone (e problema di qualsiasi catena target) è che se con il bank passi l'heading (vedi i triangolini del gizmo rotazione) un pò per gimbal lock, un pò perche lightwave non è più capace di interpretare il vettore del target, ti "salta" (da qui IK popping nel rigging tradizionale) la rotazione.
Il pole item aiuta in questo caso perchè muove il vettore del bank in modo che non si sovrapponga con l'heading.

EDIT: Non ho guardato il modello di pmax ma da quello che ho capito avete già risolto

Wotan3d
29-05-13, 17:54
Il pole item serve per targettare il bank che normalmente non è possibile targettare perchè è necessario per definire il vettore stesso di un targeting.
Il problema del pistone (e problema di qualsiasi catena target) è che se con il bank passi l'heading (vedi i triangolini del gizmo rotazione) un pò per gimbal lock, un pò perche lightwave non è più capace di interpretare il vettore del target, ti "salta" (da qui IK popping nel rigging tradizionale) la rotazione.
Il pole item aiuta in questo caso perchè muove il vettore del bank in modo che non si sovrapponga con l'heading.

EDIT: Non ho guardato il modello di pmax ma da quello che ho capito avete già risolto

Tutto chiaro, grazie.
Si risolto, anche se resta una leggerissima ed impercettibile rotazione che credo sia dovuta al posizionamento dei bones non proprio al centro preciso (si parla di % bassissime).
Se la medesima cosa la applico invece al modello di Slow ottengo cose diverse e devo applicare il Pole ad un altro oggetto, così facendo il pistone non ruota di 180° ma si gira di 90° fin da subito. E' sufficiente fare una correzione in modellazione e si sistema anche quello.

Lino
29-05-13, 17:55
eh... è questa la cosa preoccupante, che per far funzionare un pistone bisogna fare le cose un po' a caso perchè quelle normali non funzionano a dovere, e se va di c. si becca il settaggio giusto.
Cmq grazie per i test e per aver risolto un bel problema.

Ciao :)


In realtà per far funzionare un pistone bisogna capire come funziona un motion system 3D. ;)

Mi spiace di aver visto questo thread solo ora....

Il flipping avviene perchè in questa situazione le ossa (ma lo stesso vale per qualsiasi tipo di item) hanno bisogno di un parent orientato correttamente.

In generale un sistema del genere necessita di parentele (per fare in modo che la rotazione base delle bone che "targetano" sia 0,0,0) o di un Record Pivot Rotation (che ha esattamente quell'effetto lì).

In generale preferisco la prima soluzione, anche se aggiunge (una minima) complessità alle gerarchie.

Ho allegato le due diverse soluzioni... ;)

Wotan3d
29-05-13, 20:21
Uh...
in sostanza hai fatto in modo che la rotazione avvenga su H anzichè su P, nel primo caso tramite un bone genitore ruotato a dovere, nel secondo tramite rotazione del pivot...

hem...

mi sento un pochetto umiliato, meglio se torno a scuola :testate: :cappio:

che dire... grazie Lino per la soluzione. Sicuramente "tecnica" adattabile quindi in tutti i casi dove le rotazioni (in automatico) su P fanno questo tipo di "casino".

SlowMan
29-05-13, 21:39
In realtà per far funzionare un pistone bisogna capire come funziona un motion system 3D. ;)

Mi spiace di aver visto questo thread solo ora....

Il flipping avviene perchè in questa situazione le ossa (ma lo stesso vale per qualsiasi tipo di item) hanno bisogno di un parent orientato correttamente.

In generale un sistema del genere necessita di parentele (per fare in modo che la rotazione base delle bone che "targetano" sia 0,0,0) o di un Record Pivot Rotation (che ha esattamente quell'effetto lì).

In generale preferisco la prima soluzione, anche se aggiunge (una minima) complessità alle gerarchie.

Ho allegato le due diverse soluzioni... ;)

Oh beh... allora non mi ero sbagliato poi di molto intuendo il problema a uno dei precedenti post.

Bon... fortuna che c'è sempre qualcuno che ne sa di più.


Uh...
in sostanza hai fatto in modo che la rotazione avvenga su H anzichè su P, nel primo caso tramite un bone genitore ruotato a dovere, nel secondo tramite rotazione del pivot...

hem...

mi sento un pochetto umiliato, meglio se torno a scuola :testate: :cappio:

che dire... grazie Lino per la soluzione. Sicuramente "tecnica" adattabile quindi in tutti i casi dove le rotazioni (in automatico) su P fanno questo tipo di "casino".


Io è meglio se ripeto l'asilo. :o

------

Grazie anche da parte mia Lino. :g1:

Wotan3d
29-05-13, 23:07
Io è meglio se ripeto l'asilo. :o


si, come no... se non era per te io ero ancora qui a creare un keyframe ogni frame, a mano, per entrambi gli oggetti, quindi tanto di cappello a te ed al tuo tutorial.
In definitiva si deve solo fare una rotazione del pivot o creare un parent... che poi a ben vedere è più o meno come quando si deve creare una gerarchia di null objects per far ruotare gli oggetti in maniera corretta senza che facciano torsioni strane... ma non avevo mai fatto caso al fatto che la rotazione di H non "girava" gli altri assi come invece fa P.

(certo che la prima frase di Lino è una bella "pacca" sulla nuca, ma ce la meritiamo, o almeno io me la merito, :rolleyes: eheheheheh)

SlowMan
30-05-13, 10:10
si, come no... se non era per te io ero ancora qui a creare un keyframe ogni frame, a mano, per entrambi gli oggetti, quindi tanto di cappello a te ed al tuo tutorial.
In definitiva si deve solo fare una rotazione del pivot o creare un parent... che poi a ben vedere è più o meno come quando si deve creare una gerarchia di null objects per far ruotare gli oggetti in maniera corretta senza che facciano torsioni strane... ma non avevo mai fatto caso al fatto che la rotazione di H non "girava" gli altri assi come invece fa P.

Beh... grazie a te, sono contento che comunque sia servito...
ma ora devo rivedere i miei esperimenti:
con la ricalibrazione dei pivot si sbarellano tutti e devo intervenire nel Modeler...
magari li rifaccio e metto fuori un nuovo tutorial...
mo ci penso su. :rolleyes:


(certo che la prima frase di Lino è una bella "pacca" sulla nuca, ma ce la meritiamo, o almeno io me la merito, :rolleyes: eheheheheh)

Sottoscrivo e faccio penitenza. :o

Wotan3d
30-05-13, 10:22
ma ora devo rivedere i miei esperimenti:
con la ricalibrazione dei pivot si sbarellano tutti e devo intervenire nel Modeler...


secondo me non devi toccare niente in modellazione, come io non ho toccato niente, devi solo ruotare il pivot dei bones (a me è bastato ruotarne solo uno).
Oppure aggiungi un bone parent e non tocchi i pivot. In ogni caso il modello non devi modificarlo.

SlowMan
30-05-13, 10:51
secondo me non devi toccare niente in modellazione, come io non ho toccato niente, devi solo ruotare il pivot dei bones (a me è bastato ruotarne solo uno).
Oppure aggiungi un bone parent e non tocchi i pivot. In ogni caso il modello non devi modificarlo.

Boh... c'ho provato ieri sera (notte) ma quello che ottengo è due indicibili gestacci rivolti alla mia persona...
ho risolto in Modeler orientando diversamente i cilindri...
in pratica c'ho messo una pezza.

Comunque non è una cosa urgente,
li riguarderò più avanti con più calma e con mente più lucida,
devo seguire i miei ritmi o rischio di fondere l'unico neurone ancora attivo. :rolleyes:

Lino
30-05-13, 11:37
(certo che la prima frase di Lino è una bella "pacca" sulla nuca, ma ce la meritiamo, o almeno io me la merito, :rolleyes: eheheheheh)

Aaaah....mi scuso per il tono della frase, non voleva essere offensivo!

Quello che volevo sottolineare è che certe frustazioni nascono dalla mancanza di esperienza specifica in determinate aree del 3D, che in quanto tale è qualcosa di vasto, e richiede davvero tanta fatica per essere compreso a pieno in tutti i suoi aspetti.

Ci vogliono tempo e fatica, proprio come in questo caso!

Certe cose si comprendono a pieno solo dopo averci sbattuto la testa! Vale ovviamente per tutti, me (che ho fatto del 3D la mia principale attività ormai da anni) compreso!

SlowMan
30-05-13, 18:12
:yt: Yahooooooooooooooo!!! :yeah:

Ci sono riuscito, ho corretto il difetto senza passare da Modeler...
dopo il riorientamento delle bones avevo dimenticato un passaggio che mantenesse i cilindri paralleli ad esse,
ma ora è tutto a posto.

Ho allegato uno ZIP con il difetto corretto (per LW9.6 in su).

http://www.lwita.com/vb/attachment.php?attachmentid=14451&d=1369933312

------

Adesso il mio neurone si può rilassare e io mi promuovo alle elementari. :D