Vai al contenuto

Recommended Posts

Ciao a Tutti!!

Ho cercato in tutta la parte relativa al MEL scripting ma non ho trovato la risposta alla mia domanda.

Sto cercando di creare uno scripting MEL che mi permetta di salvare le coordinate di punti di una curvaNURBS all'interno di documento XML.

L'obiettivo è quello di creare una specie di database di FORME prestabilite in modo che le posso caricare da un interfaccia e usarle per il Rigging visto che uso sempre le solite 10 forme...

Vorrei fare una cosa simile alla CHACHE dei sistemi dynamici.

Se qualcuno ha qualche idea anche diversa dalla scelta dell' XML sono tutto orecchie.

//L'obiettivo è farlo in MEL per scopi puramente didattici e per un uso Personale. Soluzioni come "Ti salvi le curve su flie .ma diversi e poi te le importi" non sono accettate :) :)

Ciao e Grazie in anticipo.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

hahaah Se po fa!

dai dammi una mano lo so che sei esperto in MEL si vede a primo impatto mentre io sto alle prime armi...ho fatto un interfaccia per il Rigging del mio personaggio che funziona solo con quella scena :) roba che se cambio anche un solo nome a un joint non funziona più...

per questo sono qui :)

Che tipo di file puo leggere o scrivere?? (so che di sicuro il .txt perche le uniche cose che si vedono in giro sono sempre .txt)

Che sono i .mll??

Per questa cosa l'XML è la scelta migliore?

Ho pensato che partendo da un XML si puo creare qualcosa come:


<?xml version="1.0" encoding="UTF-8";

<shapePackage>



   <shape>

    <name>Cerchio</name>

    <vertex>

       <x> 1 </x>

       <y> 0 </y>

       <z> 0 </z>

    </vertex>

    <vertex>

       <x> 0 </x>

       <y> 0 </y>

       <z> 1 </z>

    </vertex>

    <vertex>

       <x> -1 </x>

       <y> 0 </y>

       <z> 0 </z>

    </vertex>


    <vertex>

       <x> 0 </x>

       <y> 0 </y>

       <z> -1 </z>

    </vertex>


   <shape>


   <shape>

    <name></name>

    <vertex>

       <x></x>

       <y></y>

       <z></z>

    </vertex>

    <vertex>

       <x></x>

       <y></y>

       <z></z>

    </vertex>

    <vertex>

       <x></x>

       <y></y>

       <z></z>

    </vertex>

    <vertex>

       <x></x>

       <y></y>

       <z></z>

    </vertex>

   <shape>

</shapePackage>

Una cosa del genere...non so nemmeno se è il modo corretto di impostare un documento XML ma credo di si

Pacchetto | FormeDaContenere | NomeDellaForma | VerticiDellaForma | CoordinateDeiVertici

è la prima cosa che mi è venuta in mente...

//non fate caso che 4 punti non bastano per fare un cerchio in maya q-_-p


Modificato da jBrush

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

primo passetto avanti

//certo che alcune domande me le potevo risparmiare...i'm sorry!!


$fileName = ( "C:\\X\\" + "test.xml" );

int $fileID=`fopen $fileName "w"`; //specificare int per fprint

fprint $fileID "ciao\n";           // fprint ah bisogno di un intero

fprint $fileID "a\n";              // come primo argomento

fprint $fileID "tutti\n";          // se non specificato maya setta

fprint $fileID "i\n";              // $fileID come float

fprint $fileID "membri\n";         // e fprint non funziona

fprint $fileID "di\n";             // due ore per capire maledetta 

fprint $fileID "treddi.com\n";     // MEL reference di Autodesk !!!!!

fclose $fileID;

scrive un file in C:\X\ chiamato test.xml con dentro scritto ciao a tutti i membri di treddi.com beh oh mi sembra un passo avanti XD da quanto ho capito facendo un po di prove puo scrivere un file in qualsiasi formato tu voglia il che puo essere positivo no?? si potrebbero salvare pure in txt e si puo leggere riga per riga con
fgetline
oppure leggere parola per parola con
fgetword

rimane solo da pensare come fare a prendere i dati dalla curva, vedere in che modo conviene organizzarli e di conseguenza decidere il file da salvare...

Vedremo!! ciauz

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Vedi, la notte ti ha portato consiglio :)

Il formato non importa, a meno che tu non voglia far leggere il tuo file anche da altri programmi, basta che sia un file di testo e non binario.

Se vuoi un consiglio prova a salvare in formato .ma invece che .mb e guarda come Maya traduce le forme che vuoi salvare.

Per quanto riguarda forme poligonali, joints, locators non c'è problema, basta trovare vertici, posizioni e rotazioni e sei a posto, per le nurbs invece oltre ai cv importa anche la tangenza della curva su ogni punto ci vuole qualche lavoretto in più.

Cmq in genere Maya ti fa vedere 'come fa le cose' nello script editor...crei a mano la curva che vuoi salvare, apri lo script editor e ti copi la stringa di creazione che ti tira fuori Maya, e da lì ti studi i dati, in questa maniera magari il tuo file potrebbe essere struttutato in questa maniera(approssimativamente):

Num.Figure (in questo caso 2)

Header

Dati

Header

Dati

...

L'header potrebbe essere:

CURVA_MEL

CURVA_DATI

POLY_MEL

POLY_DATI

esempio di dati per CURVA_MEL:

circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1 -n "MioCerchio";

Basta leggere la linea in una stringa e lanciare un comando eval(stringa) e hai un cerchio

Stessa cosa per POLY_MEL.

per POLY_DATI potresti usare lo stile del formato.obj, prima tutte le posizioni dei vertici, poi un elenco di facce con i vertici corrispondenti

Se ti serve solo per un database di forme, la prima soluzione è più che sufficiente, magari con una piccola interfaccia che prima legge le curve, poi ti da' una lista da cui scegliere e magari da cui cambiare alcuni dati tipo la dimensione, il nome, ecc...

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

vedi vedi la notte porta consiglio un po a tutti :) l'interfaccia l'ho disegnata gia per quanto riguarda curve CV non c'è bisongo di stare a guardare la tangenza l'importante è salvare nel file il nome della curva e le coordinate dei relativi punti


nome_curva

-p<<vector1>> -p<<vector2>> -p<<vector3>> -p<<vector4>>

nome_curva

<<vector1>><<vector2>><<vector3>><<vector4>>

in modo tale che quando leggo dal file ho solo due dati il primo che metto in una variabile $curveName e la seconda riga la salvo direttamente con i flag -p davanti ai tre float dei punti e li metto in una variabile $curveCoord cosi quando richiamo la procedura


print("curve -n \"");

print($curveName);

print("\" ");

print($curveCoord + "\n");


closeCurve;

CeterPivot;

move -rpr 0 0 0;

FreezeTransformations;

DeleteHistory;


e il gioco dovrebbe essere fatto :)

cmq non avevo pensato di mettere la possibilità di scegliere la grandezza o me la posso scalare anche dopo :)

entro pranzo cerco di postare qualcosina dai ;)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

:( sto impazzendo!!

con


$SETNAME = basename( $filename, "" );

riesco a togliere il path dal nome file ma non riesco a recuperare il path stesso

possibile che non si puo dividere una stringa nel suo punto finale ho provato di tutto!!!!

HELP!!!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

Completato chiunque lo vuole puoi contattarmi tramite PM o e-mail e glielo passo :) non fa niente di che salva e carica delle curve NURBS in modo da non doverle rifare continuamente...utile per il rigging XD, si potrebbe fare 10 volte meglio ma per essere alle prime armi con MEL sono contento..ciauzz


Modificato da jBrush

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.

×