Jump to content
bn-top

micle

Members
  • Posts

    855
  • Joined

  • Last visited

Everything posted by micle

  1. su wiki è spiegato bene come funziona il ciclo for... LINK ls -sl o ls -selection è la stessa roba solo che scrivendo molto codice ti abitui ad usare la froma più breve... cmq il mio script dovrebbe funzionare, almeno teoricamente (non l'ho provato)...
  2. per attivare for ($x in `ls -sl`){ setAttr ($x+".miFinalGatherCast") 1; setAttr ($x+".miFinalGatherReceive") 1; } per disttivare for ($x in `ls -sl`){ setAttr ($x+".miFinalGatherCast") 0; setAttr ($x+".miFinalGatherReceive") 0; }
  3. Si chiama skew e avvine quando un oggetto scalato non uniformemente viene linkato con 1 altro... La soluzione di solito è quella di fare un reset xForm sul parent e rilinkare
  4. Quello che vorresti fare si chima motion caputure usando la tastiera E' una cosa fattibilissima in max.. Devi usare il motion capture controller... C'è un tutorial proprio qua su treddi cmq guarda anche su ecosystem3d ciau
  5. x guardere se una matrice è right o left handed devi fare delle operazioni con i vettori (in maxscipt) .... theMatrix --la tua matrice dot ( cross theMatrix.row1 theMatrix.row2 ) theMatrix.row3 > 0 se è >0 è right handed se è < è left handed
  6. prova con un nodo frameCache... createNode frameCache ciau
  7. auguriiiiiiiiiii!!!!!!!
  8. for i = 1 to 50 do (box pos:[(random -200 200),0,0] length:1 width:1 height:0.5) select $Box* sel=$selection for o=1 to selection.count do( increment=1 for i=1 to selection.count do( if((sel[o].position.x+1)==sel[i].position.x) then increment=0 ) sel[o].position.x+=increment ) ciau P.S. sta mattina sono un po rinco... non fidarti troppo dello script
  9. dovresti fare cosi : if(..){ ... } else if (...){ ... } else if (...){ ... } else { .... }
  10. dando un occhiata veloce..... il confronto fra due oggetti si fa con == non =.. quindi if (richiesta==pre) bla bla bla ciau edit: x confrontare due stringhe usa strcmp()... si trova nel header cstring
  11. il problema deve stare in system("pause"), essendo il resto giusto.... system("PAUSE") è un comando abbastanza vecchio x farmare l'esecuzione del programma... io invece userei: #include<iostream> //... cin.get() in pratica fa la stessa cosa solo che probabilmente funziona.... poi suppongo che system() debba avere un include che lo definisca in quanto funzione esterna al tuo programma cmq io nn uso devc++ sono passato da un po a miscrosoft visual studio express edition... te lo consiglio ciau
  12. ciau io ti consiglio fedora.... è molto semplice e ha una comunità molto attiva... io uso maya 8.5 (64bit) sotto fedora core 5 (64bit) e va che è una meraviglia.... l'unica cosa che ti sconsiglio è la versione 6 (fedora core 6) che avendo libreie troppo aggiornate crea problemi con vari programmi 3d...
  13. Inherits Transform (eredita trasformazioni) fa si che l'oggetto erediti le trasformazioni dai parent..... se hai un oggetto che è filgio di un altro e togli via la spunta, muovendo il parent il child nn si muoverà
  14. mmh troggle hold fa si che il paint nn abbia effetto sui joint holdati (serve per mantenere l'influence su joint che hai gia finito di skinnare) quindi x quello che vuoi fare te tutti i joint nn devono avrere l'hold cmq forse hai toccato qualcosa nei parametri del tool... quindi in alto a dx fai reset tool ciauu
  15. x avere anche le rotazioni basta aggiungere il controller ed è facile x la posizione la cosa si complica un poco infatti il controller di da la traslazione in global space e te la vuoi in local quindi bisogna moltiplicarla x l'inverso della mareice del primo oggetto cmq nn è difficile... eccoti lo script fn scaleKeys mult=( sel=$selection base=$selection[1] for x=2 to sel.count do( mat=inverse base.transform pos=sel[x].pos pos=pos*mat fix=position_XYZ() addNewKey fix 0 fix.x_position=pos[1] fix.y_position=pos[2] fix.z_position=pos[3] val=(distance pos base.position)/mult controller1=copy(base.scale.controller) controller2=copy(base.rotation.controller) controller3=copy(base.position.controller) moveKeys controller1 val moveKeys controller2 val moveKeys controller3 val sel[x].scale.controller=controller1 sel[x].rotation.controller=controller2 if classOf(sel[x].position.controller)!=position_list do ( sel[x].position.controller=position_list()) sel[x].position.controller[1].controller=fix sel[x].position.controller[2].controller=controller3 ) ) rollout scaleKeysR "scaleKeys" ( slider doIt "scale" range:[0.1,100,10] on doIt changed val do scaleKeys(val) ) createDialog scaleKeysR 200 100
  16. Ciau ;D questa è una versione semplificata che ho scritto di quello che vuoi fare in pratica a seconda delle distanza fra l'oggetto selezionato x primo de tutti gli altri sposta i keyframe fn scaleKeys mult=( sel=$selection base=$selection[1] for x=2 to sel.count do( controller=copy(base.scale.controller) moveKeys controller ((distance sel[x].position base.position)/mult) sel[x].scale.controller=controller ) ) rollout scaleKeysR "scaleKeys" ( slider doIt "scale" range:[0.1,100,10] on doIt changed val do scaleKeys(val) ) createDialog scaleKeysR 200 100 qua ce il video che ti mostra come fare LINK ciau
  17. AUGURIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII!!!!!!!!!!!
  18. Nel video si vede che il bone ha come rotation order xzy e il null xyz.... non possono ruotare nello stesso modo in questa situazione
  19. grazie d@veeeeeeeeeeee
  20. Allora... Il mio consiglio è quello di lascare stare il mel... Con maya 8.5 (marzo) verra introdotto il python che è un linguaggio di scripting object oriented Questo linguaggio diventerà quello più usato nella cg (ora come ora lo supportano xsi e blender) e quindi ti consiglio di studiartelo Ti consiglio anche di lascare stare il C... Studia direttamente il c++ che è molto utile Cmq se vuoi studiare il mel qui su treddi ci sono ottimi tutorial, dacci un occhiata Questi sono i libri da cui ho studiato io (in inglese): learning python dell' o'really c++ a beginner's guide di McGraw Hill/Osborne sono ottimi libri e probabilemte sono stati tradotti anche in italiano
  21. anche se in ritardo auguri :D
  22. la cosa è un po più difficile... in pratica prima devi ordinare i controller... Per fare ciò ogni espressione deve avere un prefisso (tipo M_espressione x la bocca o E_espressione x gli occhi) poi x ordinare devi modificare la prima parte dello script facendo in modo che lo script trovi la prima lettere del nome dell'espressione e a seconda di ceh lettera è aggiunga l'espressione in un array in pseudocode: for a=0 to a=usedChannel.length do if a[1]==m then collect mouthExpression a if a[1]==e collenct eyeExpression a e cosi via poi aggiungi tutte queste array a quella principale cosi hai i channels ordinati poi x creare dei sottogruppi dei usare group rollout test "Test" ( group "questo è un gruppo"( button theButton "bottone" ) ) createDialog test 150 100 la cosa difficile è che devi aprire e chiudere le parendesi qunado le expression cambiano x fare ciò ad ogni ciclo del for devi vedere a che array appartiene l'esepressione e decidere se chiudere/aprire le parentesi X quanto riguarda l'attribute holder si puo fare ono script uguale a quello di bobo solo che invece di cambiare i morph channels cambi la precentuale dei preset dell'attribute holder x cambiarla puoi usare quella funzione ciau
  23. In effetti hai ragione te... La rotazione è in world anche se il controller è local A questo punto nn saperi + che fare.... X quanto riguarda il controller di posizione inl local ho comtrollato ma nn esiste... Una soluzione sarebbe quella di prendere la traslazione separatamente (attraverso degli attribute) e poi con un position_script controller moltiplicare quesi valori per la marice di rotazione cosi da trovare la position il local non so se funziona xò... in che senso non potevi visualizzarili?
×
×
  • Create New...