Jump to content
aspire1982

Maya 2008 E Vicon

Recommended Posts

SAlve ragazzi ,

Sto preparando la mia tesi su grafica 3d e motion capture,alla mia università usiamo delle telecamenre della Vicon per catturare i movimenti e i formati che sforna il software sn .C3d ,.Vsk e .V .

Arrivo al dunque,ho trovato un plugin per maya 2008 che legge i .Vsk e .v ,a me però senrve un plugin che legge i .c3d ,che sn quelli che effettivamente danno il movimento,infatti ho scaricato la versione PLE di motion builder che carica i .C3d ,mentre maya no ,esiste un plugin che faccia questo.

un saluto a tutti

Share this post


Link to post
Share on other sites

fbx animation

Se esporti da maya come una animazione fbx(preference\plugin manager\ e spunti fbxmaya.mll) ti si apre una finestra di dialogo e setterai convert animation, poi trovi anche animation only se vuoi avere solo i dati dell'animazione. Ok?


Edited by ytsejam

Share this post


Link to post
Share on other sites

Esporti l'animazione da motion builder in fbx, la importi in maya (come fbx) e la usi come base di animazione scheletrica per il rig della mano. Se lo scheletro realizzato in maya per il rig della mano mantiene la stessa nomenclatura usata nell'fbx per le articolazioni, nell'importazione le chiavi di animazione verranno trasferite sul rig già esistente.

Nel caso non avvenisse automaticamente dovresti spuntare l'opzione exclusive merge tra le impostazioni di importazione. Da quel punto puoi scegliere se crearti un'archivio di clip d'animazione con trax editor o se continuare ad importare le animazioni in fbx di volta in volta. Su questo procedimento puoi trovare alcuni tutorial in rete.

Share this post


Link to post
Share on other sites
Si ma io creo la mano in aya 2008 e poi come mela richiamo in motion builder?

saluti

E` sufficiente ce rispetti la nomenclatura dei joint e motion builder riconoscera` tutto.

Secondo me ti conviene lavorare i dati di mocap in Motion Builder e esportare in maya come ultimo step.

C'era poi uno script x maya che creava automaticamente uno scheletro con tutti i nomi giusti...non so se nelle nuove versioni sia stato integrato.

Share this post


Link to post
Share on other sites
E` sufficiente ce rispetti la nomenclatura dei joint e motion builder riconoscera` tutto.

Secondo me ti conviene lavorare i dati di mocap in Motion Builder e esportare in maya come ultimo step.

C'era poi uno script x maya che creava automaticamente uno scheletro con tutti i nomi giusti...non so se nelle nuove versioni sia stato integrato.

Allora ragazzi uso motion builder PLe e maya PLe salvo in fbl l'unico formato di MB PLE ,Maya selo chiama pure però quando premo Play vedo la barra muoversi ,ma finisce li nn si muove niente.....è lo stesso con le versioni PLE?

Share this post


Link to post
Share on other sites

Purtroppo pare di no. Cercando in rete per esserne sicuro, sono finito su questa pagina:

area.autodesk.com/index.php/forums_archive/thread_index/608909/

Se guardi l'ultima risposta trevoradams specifica chiaramante che il solo modo di convertire ed esportare in fbx da motion builder è di possederne la versione completa (possibilmente, per evitare eventuali problemi di compatibilità, con installata l'ultima plugin fbx reperibile nel sito autodesk).

Ho cercato anche in altri forum, ma alla fine tutti i thread si concludono con il consiglio di utilizzare la versione completa di MB (non la PLE).

Parrebbe che per blender sia stata sviluppato uno script di importazione per c3d e che dalla versione 2.44 possa esportare in fbx, ma non avendo mai usato blender per questo tipo di lavori non so dirti se il procedimento funzioni. Anche XSI dovrebbe riconoscere il formato c3d (come anche il bvh), ma anche in questo caso non posso esserti di alcun aiuto.

Spero qualcun altro ne sappia di più (tipo se esiste un convertitore di formati).

Share this post


Link to post
Share on other sites
Purtroppo pare di no. Cercando in rete per esserne sicuro, sono finito su questa pagina:

area.autodesk.com/index.php/forums_archive/thread_index/608909/

Se guardi l'ultima risposta trevoradams specifica chiaramante che il solo modo di convertire ed esportare in fbx da motion builder è di possederne la versione completa (possibilmente, per evitare eventuali problemi di compatibilità, con installata l'ultima plugin fbx reperibile nel sito autodesk).

Ho cercato anche in altri forum, ma alla fine tutti i thread si concludono con il consiglio di utilizzare la versione completa di MB (non la PLE).

Parrebbe che per blender sia stata sviluppato uno script di importazione per c3d e che dalla versione 2.44 possa esportare in fbx, ma non avendo mai usato blender per questo tipo di lavori non so dirti se il procedimento funzioni. Anche XSI dovrebbe riconoscere il formato c3d (come anche il bvh), ma anche in questo caso non posso esserti di alcun aiuto.

Spero qualcun altro ne sappia di più (tipo se esiste un convertitore di formati).

scusate ma per maya non esiste nemmeno un plugin che gli faccia leggere il c3d?

Share this post


Link to post
Share on other sites
scusate ma per maya non esiste nemmeno un plugin che gli faccia leggere il c3d?

inoltre ho provato anche a convertire una scena maya in fbx,pero si trattava di un semplice poligono e MB ple lo riconosce il formato pero non mi ha caricato niente.......

Share this post


Link to post
Share on other sites

Per esserci una cosa del genere ci sarebbe pure:

www.highend3d.com/maya/downloads/plugins/animation/peelMocapTools-4303.html

però, non avendolo mai provato, non so come o quanto funzioni e soprattutto non so se funziona anche con maya PLE.

Considera comunque che lo scopo delle versioni "personal learning" è di offrire gli strumenti per imparare a conoscere l'interfaccia, non sono pensate per farci lavorare gli utenti, da cui le limitazioni nell'utilizzo di alcuni degli strumenti presenti rispetto alla versione completa. Forse potresti provare a chiedere anche nel forum area desktop, magari lì qualcuno potrebbe darti indicazioni più precise.

Share this post


Link to post
Share on other sites
Per esserci una cosa del genere ci sarebbe pure:

www.highend3d.com/maya/downloads/plugins/animation/peelMocapTools-4303.html

però, non avendolo mai provato, non so come o quanto funzioni e soprattutto non so se funziona anche con maya PLE.

Considera comunque che lo scopo delle versioni "personal learning" è di offrire gli strumenti per imparare a conoscere l'interfaccia, non sono pensate per farci lavorare gli utenti, da cui le limitazioni nell'utilizzo di alcuni degli strumenti presenti rispetto alla versione completa. Forse potresti provare a chiedere anche nel forum area desktop, magari lì qualcuno potrebbe darti indicazioni più precise.

Ciao

Cmq ho chiamato il mio prof e mi sn fatto dare CD con maya 2008 e Alias motion builder 6 pro ,cmq ho fatto come avee detto voi ,apro il .C3d con alias motion builder converto in .FBX e salvo; poi apro con maya 2008 come avete detto e comq quando premo Play per vedere il movimento non si muov niente,Cmq ho riportato le foto per capirci.

Lo stesso file lo apro in motion builder 6 premo play e verdo i marker che si muovono mentre in maya nn si muovono se premo play ,la barra avanza ma nn si muove niente

Perche?

Sbaglio qualcosa?

saluti

post-49033-1222298078_thumb.jpg

post-49033-1222298088_thumb.jpg

Share this post


Link to post
Share on other sites

L'esportatore FBX (e anche l'importatore) hanno una mareata di opzioni, forse nn gli hai detto di importare le animazioni.

Ti consiglio inoltre di non usare il plug/in FBX incluso in maya ma di scaricare quello aggiornato dal sito autodesk.

Share this post


Link to post
Share on other sites
L'esportatore FBX (e anche l'importatore) hanno una mareata di opzioni, forse nn gli hai detto di importare le animazioni.

Ti consiglio inoltre di non usare il plug/in FBX incluso in maya ma di scaricare quello aggiornato dal sito autodesk.

Ragazzi ho fatto funziona pero ho un altro problema .

Apro in maya l'FBx vedo realmente che si muovono i marker,riesco anche ad imparentarli ad uno scheletro di joint ,che si muove anche benino,pero quando faccio lo skin rigido sulla mia mano e premo play succede un macello cioè che la pelle nn segue piu bene i joint ,questo perche i giunti traslano e non ruotano,mi senve qualcosa che mi dia gli angoli di eulero.

Come faccio?

un saluto a tutti

Share this post


Link to post
Share on other sites

Suppongo che il tuo problema derivi da un'errata divisione dei pesi tra joint e vertici.

Maya fa un lavoro discreto nella pesatura automatica dei vertici, ma per avere buoni risultati specialmente in alcune aree è necessario eseguire una correzione manuale delle pesature. Forse potresti provare ad usare uno smooth skin impostando nelle opzioni la gerarchia anzichè la prossimità, e utilizzando il paint skin weights cercare di migliorare la risposta della tua mesh durante l'animazione.

Share this post


Link to post
Share on other sites
Suppongo che il tuo problema derivi da un'errata divisione dei pesi tra joint e vertici.

Maya fa un lavoro discreto nella pesatura automatica dei vertici, ma per avere buoni risultati specialmente in alcune aree è necessario eseguire una correzione manuale delle pesature. Forse potresti provare ad usare uno smooth skin impostando nelle opzioni la gerarchia anzichè la prossimità, e utilizzando il paint skin weights cercare di migliorare la risposta della tua mesh durante l'animazione.

Scusami ,hai ragione ,ma nn mi sn spiegato bene ,allora i marcher catturati dalle telecamere Vicon vengono rappresentati in Maya come dei locator (Quei famosi + verdi) ,ora quando i marker si spostano si spostano anche i locator ,in realta traslano ,quindi se imparento i locator a dei joint , i giunti dei joint non ruotano ma traslano ,.........,infatti se prendo un joint a piacere dopo aver skinnato ruotandolo si curva sempre bene la mano ,ma nn si curva bene se premo play per far partire l'animazione catturata dalle telecamere!!

Ora spero di aver fatto capire cosa intendo.....se nn sn stato chiaro posto delle foto......

Share this post


Link to post
Share on other sites

Credo sia un problema con il retargeting dei markers. Non so molto sull'argomento, per cui purtroppo non sono in grado di aiutarti per ora, ma con una ricerca veloce in rete ho trovato questi thread:

www.treddi.com/forum/index.php?showtopic=57307&pid=556035&st=0&#entry556035

www.renderglobal.org/forum/archive/index.php/index.php?t-6591.html

Magari qualcuno è in grado di spiegarti il procedimento, altrimenti mi sa che dovrai cercare tutorials in rete.

Share this post


Link to post
Share on other sites
Credo sia un problema con il retargeting dei markers. Non so molto sull'argomento, per cui purtroppo non sono in grado di aiutarti per ora, ma con una ricerca veloce in rete ho trovato questi thread:

www.treddi.com/forum/index.php?showtopic=57307&pid=556035&st=0&#entry556035

www.renderglobal.org/forum/archive/index.php/index.php?t-6591.html

Magari qualcuno è in grado di spiegarti il procedimento, altrimenti mi sa che dovrai cercare tutorials in rete.

Ragazzi grazie a tutti e soprattutto a te Hi2all ,ho risolto ho applicato la cinematica inversa in maya ,ho usati l'IK handle su un joint e poi ho imparentato IK al locator cosi facendo il giunto del joint ruota ,poi ho skinnato i joint al mio dito e .......Magia si piega bene

UN saluto a tutti ...appena termino tutto apro un altro post apposito per festeggiare la mia Tesi

Grazie per tutto

Share this post


Link to post
Share on other sites

esporta in bvh da motion builder, poi copia lo script che ora ti scrivo qui sotto e chiamalo paperino.mel

oppure incollalo direttamente nello script editor di maya. Sia se lo incolle che se apri il .mel fai file -> savescripttoshelf e avrai un pulsante nuovo sulla shelf aperta.

Cliccando su quel pulsante importa il file .bvh lui ti crea i joint tu skinni e sei apposto.

Saluti, Marco

script:

-------------------------------------------------------------------------

string $filename=`fileDialog -dm "*.bvh"`;

$fileId=`fopen $filename "r"`;

select -cl;

int $joint_name_val = 0;

string $joint_name[];

float $offset_joint_x[], $offset_joint_y[], $offset_joint_z[];

string $index_joint[];

int $index = 0;

int $index_ch = 0;

string $index_channel[];

string $make_joint_cmd;

string $ch_tmp;

float $frame_interval;

string $temp_buff[];

string $name, $name_temp;

clear $joint_name $offset_joint_x $offset_joint_y $offset_joint_z $index_joint $index_channel;

$name = `group -em -n bvh_import`;

tokenize $name "bvh_import" $temp_buff;

if (size($temp_buff) == 0 ) {

$name_temp = "";

}

else {

$name_temp = $temp_buff[0];

}

string $nextWord = `fgetword $fileId`;

float $offsetx = 0;

float $offsety = 0;

float $offsetz = 0;

int $frames;

float $time_count = 0;

string $last_joint_name_val = "";

proc float Turn180Degrees (float $fAngle)

{

float $gPi = 3.1415926535897932384626433832795;

return $fAngle >= 0 ? $fAngle - $gPi : $fAngle + $gPi;

}

// mirrors the rotation: returns pi-fAngle

// normalized to the given normalized [-pi,pi) angle

proc float Mirror180Degrees (float $fAngle)

{

float $gPi = 3.1415926535897932384626433832795;

return $fAngle > 0 ? $gPi - $fAngle: -$gPi - $fAngle;

}

proc setRotation (string $strObject, float $fRotate[])

{

float $fRotateX, $fRotateY, $fRotateZ;

$fRotateX = $fRotate[0];

$fRotateY = $fRotate[1];

$fRotateZ = $fRotate[2];

rotate -r -os 0 0 $fRotateZ $strObject;

rotate -r -os $fRotateX 0 0 $strObject;

rotate -r -os 0 $fRotateY 0 $strObject;

setKeyframe -at "rotateX" $strObject;

setKeyframe -at "rotateY" $strObject;

setKeyframe -at "rotateZ" $strObject;

}

while ( size($nextWord) >0 ) {

if ($nextWord == "ROOT") {

$jointname = `fgetword $fileId`;

$joint_name[0] = $jointname+$name_temp;

$index_joint[$index] = $jointname+$name_temp;

joint -n $joint_name[0] -p 0 0 0;

}

if (($nextWord=="JOINT") || ($nextWord=="End")) {

// find Joint name

$jointname = `fgetword $fileId`;

$joint_name[$joint_name_val] = $jointname+$name_temp;

$index_joint[$index] = $jointname+$name_temp;

}

if ($nextWord == "{") {

$nextWord = `fgetword $fileId`;

if ($nextWord == "OFFSET" )

{

// find Joint offset data

float $offset_x=`fgetword $fileId`;

float $offset_y=`fgetword $fileId`;

float $offset_z=`fgetword $fileId`;

$offset_joint_x[$joint_name_val] = $offset_x;

$offset_joint_y[$joint_name_val] = $offset_y;

$offset_joint_z[$joint_name_val] = $offset_z;

$offsetx = $offsetx + $offset_joint_x[$joint_name_val];

$offsety = $offsety + $offset_joint_y[$joint_name_val];

$offsetz = $offsetz + $offset_joint_z[$joint_name_val];

if ($joint_name_val != 0)

{

if ($joint_name[$joint_name_val] == "Site")

$joint_name[$joint_name_val] = "Effector" + $joint_name[$joint_name_val-1];

$last_joint_name_val = $joint_name_val;

$make_joint_cmd = "joint -n "+ $joint_name[$joint_name_val]+ " -p " + $offsetx + " " + $offsety + " " + $offsetz;

$sel_joint_cmd = "select -r " + $joint_name[$joint_name_val-1];

$ord_joint_cmd = "setAttr " + $joint_name[$joint_name_val-1] + ".rotateOrder 2";

eval($sel_joint_cmd);

eval($make_joint_cmd);

eval($ord_joint_cmd);

}

}

$joint_name_val ++;

}

if ($nextWord == "}") {

$joint_name_val --;

$offsetx = $offsetx - $offset_joint_x[$joint_name_val];

$offsety = $offsety - $offset_joint_y[$joint_name_val];

$offsetz = $offsetz - $offset_joint_z[$joint_name_val];

}

if ($nextWord == "CHANNELS") {

int $tmp = `fgetword $fileId`;

for ($i = 1; $i <= $tmp; $i++) {

string $tmp2 = `fgetword $fileId`;

switch ($tmp2) {

case "Xposition" :

$ch_tmp = "translateX";

break;

case "Yposition" :

$ch_tmp = "translateY";

break;

case "Zposition" :

$ch_tmp = "translateZ";

break;

case "Xrotation" :

$ch_tmp = "rotateX";

break;

case "Yrotation" :

$ch_tmp = "rotateY";

break;

case "Zrotation" :

$ch_tmp = "rotateZ";

break;

}

$index_channel[$index_ch] = $index_joint[$index] + "." + $ch_tmp;

$index_ch++;

}

$index ++;

}

if ($nextWord == "MOTION") {

$nextWord = `fgetword $fileId`;

if ($nextWord == "Frames:") {

$frames = `fgetword $fileId`;

}

$nextWord = `fgetword $fileId`;

$nextWord = `fgetword $fileId`;

if ($nextWord == "Time:") {

$frame_interval = `fgetword $fileId`;

}

$nextWord = `fgetword $fileId`;

float $fRotation[3];

for ( $k = 1; $k <= $frames; $k++) {

currentTime $k;

print ("currentTime " + $k + "\n");

for ($chan = 0; $chan < size($index_channel); $chan++)

{

setAttr $index_channel[$chan] 0;

}

for ($j=1; $j<$index_ch; $j++)

{

float $value = $nextWord;

string $buffer[];

tokenize $index_channel[$j-1] "." $buffer;

switch ($buffer[1])

{

case "translateX":

case "translateY":

case "translateZ":

setAttr $index_channel[$j-1] $value;

setKeyframe -at $buffer[1] $buffer[0];

break;

case "rotateX":

$fRotation[0] = $value;

break;

case "rotateY":

$fRotation[1] = $value;

break;

case "rotateZ":

$fRotation[2] = $value;

break;

break;

/*

case "rotateX":

rotate -r -os $value 0 0 $buffer[0];

setKeyframe -at "rotate" $buffer[0];

break;

case "rotateY":

rotate -r -os 0 $value 0 $buffer[0];

setKeyframe -at "rotate" $buffer[0];

break;

case "rotateZ":

rotate -r -os 0 0 $value $buffer[0];

setKeyframe -at "rotate" $buffer[0];

break;

*/

};

switch ($buffer[1])

{

//case "rotateX":

case "rotateY":

//case "rotateZ":

setRotation ($buffer[0], $fRotation);

break;

}

/*

if ($k >= 40 && $k <= 50 )

{

print ("\tsetAttr " + $index_channel[$j-1] + " " + $value + ";\n");

};

*/

$nextWord =`fgetword $fileId`;

}

$time_count += ($frame_interval*30);

$nextWord = `fgetword $fileId`;

}

}

currentTime -20;

// make up the initial pose

for ($chan = 3; $chan < size($index_channel); $chan++)

{

string $buffer[];

tokenize $index_channel[$chan] "." $buffer;

setAttr $index_channel[$chan] 0;

setKeyframe -at $buffer[1] $buffer[0];

}

$nextWord = `fgetword $fileId`;

}

select -cl;

fclose $fileId;

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...