Vai al contenuto
Omega4

Convertire animazione da bones-linked a keyframes

Recommended Posts

Ciao a tutti, ho necessità di convertire una complessa animazione che al momento è costituita da una serie di bones a cui sono linkate diverse parti meccaniche, come da titolo volevo chiedere se qualcuno è così gentile da dirmi se esiste un modo per convertire quest animazione in keyframes per le singole parti in modo da poter eliminare le bones. Ringrazio anticipatamente.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao Michele grazie per la risposta e per il consiglio, ho provato a studiare un po lo script che mi hai linkato, è senz'altro eccezionale e ha diverse utilità che mi verranno utili in futuro ma sto cercando di capire come applicarlo per risolvere il mio attuale problema....le bones hanno chiavi diverse rispetto a quelle che andrebbero applicate alle singole mesh per fargli riprodurre lo stesso movimento; devo escogitare qualcosa per avere l animazione ma senza piu le bones, e non importa se poi non avrò piu possibilita di modificare le frames. Se ti viene in mente qualcosa sono qui, io intanto continuo a studiarci, grazie ancora!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Provato qualunque cosa, dal link constraint a tutti i controller che mi venivano in mente, a questo punto non posso far altro che prendere pezzo per pezzo, copiarli e creare delle chiavi usando come riferimento quelli originali, ci vorrano probabilmente dei mesi ma a quanto pare 3d max non sembra offrire un opzione simile, grazie comunque!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grazie Mocram gentilissimo, alla fine mi sono arrangiato a mano, ci ho messo meno di quel che pensavo...circa 20 ore....e ho modificato anche alcune cose...grazie comunque!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao a tutti, purtroppo mi sono reso conto solo dopo aver fatto dell altro lavoro che quella conversione "fatta a mano" presentava parecchi difetti che li per li non avevo notato finche non l'ho esportato nel sw che uso per i machinima. Inoltre volevo aggiungere alla scena alcuni modelli .m3 la cui conversione da script funziona ma l esportazione in fbx presenta parecchi errori, dunque devo trovare una soluzione.

Allego una scena di max con uno di questi modelli animati, il mio obiettivo sarebbe quello di fare una sorta di baking animation in modo da avere le meshes che conservano l animazione cancellando le bones, in questo modo sarebbe piu facile esportare gli objects come semplici cga animati. Grazie a chiunque saprà indirizzarmi ho davvero finito le idee!

Skeleton_siege.zip

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Cercando cercando ho trovato un vecchio script che fa esattamente quello che mi serviva, basta selezionare una mesh animata e crea una perfetta copia della stessa con tutti i suoi keyframes. Non ho capito a cosa serva l altro comando ma l importante è aver risolto il problema no? :D

P.S. ho dovuto spulciare parecchio per trovarne uno funzionante, lo allego nel caso qualcuno s trovasse nella mia situazione. ciaoo!

rollout bakeAniRollout "Bake Animation" width:162 height:76

(

button btn_xform "PRS to Xform" width:147 height:30

button btn_bake "Bake" width:147 height:30

on btn_xform pressed do

(

for o in selection do

(

tempmodifier = (XForm ())

tempmodifier.name = "PRS Baker"

suspendEditing()

disableSceneRedraw()

addModifier o tempmodifier

o.modifiers["PRS Baker"].gizmo.controller = copy o.transform.controller

deleteKeys o.transform.controller

o.transform = (matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])

o.modifiers["PRS Baker"].enabled = false

o.modifiers["PRS Baker"].enabled = true

resumeEditing()

enableSceneRedraw()

)

)

on btn_bake pressed do

(

for o in selection do

(

setCommandPanelTaskMode #create

suspendEditing()

snaptarget = o

tempname = uniqueName (snaptarget.name + "_meshcached_")

forcesnapshot = snapshot o name:tempname

convertTo forcesnapshot Editable_Mesh

forcesnapshot.controller = snaptarget.controller

resumeEditing()

animateVertex forcesnapshot #all

bakeRange = (animationRange.end - animationRange.start).frame as integer

sourceObj = snaptarget

targetObj = forcesnapshot

masterCtrl = targetObj[4][1]

for t = 0 to bakeRange do

(

sliderTime = t

for i in 1 to targetObj.numVerts do

(

k = addNewKey masterCtrl.controller t

k.value = at time t in coordSys sourceObj getVert sourceObj i

)

)

InstanceMgr.MakeControllersUnique targetObj targetObj.controller #prompt

)

)

)

CreateDialog bakeAniRollout

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao MIchele, il form, quello che sembra applicare una sorta di Xform alla mesh. Tra l altro ho scoperto di non aver risolto il problema perche durante l esportazione nell engine per il machinima non mi riconosce l animazione presumo perchè le parti del carro armato non sono singole ma sono raggruppate(ho provato a fare ungroup ma non è un vero gruppo). Pare che i problemi non finiscano mai :( allego il nuovo file di max, chissà se per caso qualcuno ha idea di come si possa risolvere la cosa...

tanksiegeFIXED.zip


Modificato da Omega4

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ho notato un altra cosa, se esporto l oggetto come fbx facendo il bake animation e lo reimporto le keyframes scompaiono...forse per questo quando esporto nell altro sw non viene letta nessuna animazione, eppure l animazione c e... :o

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

[...] il form, quello che sembra applicare una sorta di Xform alla mesh [...]

E si, inserisce un XForm per immagazzinare i dati di trasformazione dell'oggetto in uso per poi bypassarli al bake...

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grazie Michele, quindi presumo che vada usato prima di fare il bake, ci ho provato ma il problema finale mi rimane; in questo momento provando varie cose, ho trovato anche lo script BAKE http://www.scriptspot.com/3ds-max/scripts/bake ho provato col run script semplice ma non va e l'installazione è piuttosto complicata e non ci sono istruzioni. Dovendo abbandonare quella strada credo che mi rimangano solo tre modi per risolvere:

1)posso provare a separare i singoli oggetti della struttura detachandoli e dovrei trovare il modo di trasferire le keyframes dal "gruppo" ai singoli senza sconvolgere tutto.

2)capire come sia possibile che diversi oggetti presenti nella stessa struttura possano muoversi separatamente senza essere in un gruppo, a quel punto potrei fare una sorta di reverse engeenering.

3)detachare cloni e creare le singole chiavi a mano usando come reference la copia, spero di non dover arrivare a tanto, anche perche l ultima volta ho perso un sacco di tempo senza ottenere il risultato sperato.

Se per caso avessi dei suggerimenti....io intanto continuero a cercare :D grazie!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Un piccolo aggiornamento anche per i posteri che si trovassero nella stessa situazione. Ho provato ad animare i "finti gruppi" ruotando e spostando con autokey, esportando l animazione cosi creata funziona correttamente, dunque deduco che l'altro sw non vede le animazioni all interno del "finto gruppo" ma solo quelle dell intero gruppo. Resta da capire se è possibile detachare le singole parti del gruppo e assegnare a esse l animazione principale come fosse un materiale....


Modificato da Omega4

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Provato lo script key transfer, provato a creare una copia intera del finto gruppo, cancellare le keys e trasferire dalla copia originale non trasferisce nulla, provato a cancellare un finto gruppo lasciando solo un obj, copiandolo e cancellando le chiavi, idem non trasferisce nessuna key,,,come non esistessero. Ormai è diventata curiosità da studente. Il load\save animations dal tab di max riconosce le animazioni e le salva\carica correttamente ma non mi permette di caricare l animazione completa sulle singole parti. Tuttavia ho fatto una piccola scoperta...nel trackview mi sono accorto che il finto gruppo non ha neanche una key, ciò che si muove sono i vertex che la compongono, che si tratti di vertex animation....

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×