Jump to content
bn-top

superstellino

MembersArchive
  • Posts

    70
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by superstellino

  1. Cristiano, in questo caso ti basta un solido generato tramite rivoluzione di una curva. Una volta ottenuta la geometria, sara' lo shader che applicherai a far sembrare quel solido come un liquido. S.
  2. Dreamstar, dovresti spiegare meglio quello che vuoi fare. Vorresti riempire il bicchiere con un liquido nel senso che vorresti realizzare l' animazione del liquido che riempie il bicchiere oppure ti basta semplicemente una geometria che rappresenti il liquido all' interno del bicchiere per poter fare uno studio sui materiali e sulle luci? Nel primo caso, anche se esistono diverse soluzioni, sara' sicuramente piu' complicato del secondo caso dove con un semplice revolve (esattamente come hai fatto per il bicchiere) otterresti la geometria necessaria per poi continuare il tuo studio. Cosa vuoi fare? S.
  3. Eliseo88, potrei suggerirti la soluzione piu' semplice, e cioe' generare il tuo pneumatico con un REVOLVE ed animare il parametro "End Sweep" da 360 a 0 per farla scomparire e viceversa. Ciao; S.
  4. D911C, basta eseguire un "Duplicate Special" e all' interno dell' option box seleziona "Duplicate input Graph". In questo modo duplicherai non solo la Shape ma anche ogni curva di animazione o qualsiasi altro input. A questo punto basta aprire il Graph Editor, selezionare tutte le curve di animazione e spostarle di un' offset a tuo piacimento. Ciao; S.
  5. Denny, l' unico motivo per il quale la tua elica non ruota correttamente seguendo l' orientamento del suo asse e' l' aver eseguito un "freeze transformation" dopo averla ruotata e posizionata. Eseguendo un "freeze transformation" farai perdere il giusto orientamento al suo asse riposizionandolo e riorientandolo perpendicolarmante alle viste ortographiche. Ciao; S.
  6. Eliseo88, fai click con il tasto destro del mouse sul link nel mio precedente post e salva il file nel tuo computer, Il file e' una scena di MAYA, in MAYA ASCII format, ed e' stata fatta con MAYA 8.5. Basta caricare MAYA ed aprire la scena che ti ho allegato. All' interno dello Script Editor puoi visualizzare le expressiones responsabili della rotazione e di altri controlli che ti ho descritto per la ruota. Se usi una versione differente dalla 8.5 di MAYA, devi effettuare alcune modifiche al file per poterlo aprire... Se fosse questo il caso e se non sai come poter fare fammi sapere. Ciao; S.
  7. Eliseo88, ti allego di seguito una semplice scena con la traduzione delle formule in MEL Expressiones. Seleziona il locator chiamato "CONTROL_wheelLoc" per spostare la ruota e vederla ruotare correttamente. All' interno del Locator Channel List, ho aggiunto 2 canali, il primo calcola la Circunferenza della ruota, il secondo ti aggiorna su quanti gradi la ruota sta' ruotando. Ho aggiunto anche un controllo, molto semplice grazie al quale muovendo il Locator verso l' alto, e cioe' sulle Y, la ruota si ridimensiona automaticamente ricalcolando la dovuta rotazione in base al nuovo valore della sua circunferenza. E' molto semplice ma esplanatorio per le precedenti formule. wheelBasicRotation MAYA 8.5 scene file Ciao; S.
  8. Eliseo88, la sintassi delle formule che ti ho descritto nel post precedente, vanno ovviamente tradotte in MEL expression. Non puoi usarle cosi come io le ho scritte. S.
  9. Eliseo88, potresti continuare ad usare la tua expression iniziale, e dopo aver seguito i consigli di kage_maru, aggiustare il moltiplicatore ad occhio per far coincidere la rotazione con la traslazione. Oppure, potresti affidarti ad una soluzione matematica corretta. In questo caso, non hai bisogno di molto, giusto qualche formula. Per prima cosa, hai bisogno di definire/dichiarare alcune variabili importanti: PI = PI greco = 3.14...... R = Raggio della tua ruota = puoi misurarlo in MAYA. C = Circonferenza della ruota. D = Distanza entro quale la ruota si sposta = Se ti sposti sulle X, basta dare un'occhiatta al channel translateX in Maya. Adesso, La rotazione e' data da questo formula: N = 360 x (D/C) Quello che ci manca e' la circonferenza, che e' data da questa formula: C = 2 PI R Quindi, sostituendo: N = 360 x (D/(2 PI R)) In questo modo, la ruota ruotera' sempre correttamente in base a quanto si sposta. Ciao; S.
  10. Eddie, perdonami ma con l' arrivo dell' estate stiamo lavorando parecchio al ristorante. Spero che qualcuno possa darti un'aiuto per farti iniziare ed appena trovo tempo e forze ti preparo un po' di cose. S.
  11. No, adesso funziona tutto perfettamente.. /////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////// { string $crvSel[] = `ls -selection`; int $crvDegree = `getAttr ($crvSel[0] + ".degree")`; int $crvSpans = `getAttr ($crvSel[0] + ".spans")`; int $crvPnt = $crvDegree + $crvSpans; float $coord[] = `getAttr ($crvSel[0] + ".cv[0:" + ($crvPnt-1) + "]")`; int $sCoord = size($coord); int $i = 0; int $p = 0; int $e = 0; for($i=0;$i<$sCoord;$i++) { string $selRGD = {}; string $selRGL = {}; string $selRGC = {}; string $hideC = {}; $i = $e; string $cmd = ("distanceDimension -sp"); $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i] + " -ep"); $i++; $e = $i; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i] + ";"); eval($cmd); if($p<$crvPnt) { string $pntSel2 = ("select " + $crvSel[0] + ".cv[" + $p + "];newCluster \" -envelope 1\";"); eval($pntSel2); $p++; if($p<$crvPnt) { string $pntSel2 = ("select " + $crvSel[0] + ".cv[" + $p + "];newCluster \" -envelope 1\";"); eval($pntSel2); $p++; } } if($i==$sCoord-1) { int $c = 0; string $cluster[] = `ls -type transform "cluster*"`; string $locator[] = `ls -type transform "locator*"`; string $selRGD = ("select -r \"distance*\";string $selDist[] = `ls -sl -type transform`;select -r $selDist;renameSelectionList(\"" + $crvSel[0] + "_distance\");group -n " + $crvSel[0] + "_G_Dimension; xform -os -piv 0 0 0;select -cl;"); string $selRGL = ("select -r \"locator*\";string $selLoc[] = `ls -sl -type transform`;select -r $selLoc;renameSelectionList(\"" + $crvSel[0] + "_locator\");group -n " + $crvSel[0] + "_G_Locator; xform -os -piv 0 0 0;select -cl;"); string $selRGC = ("select -r \"cluster*\";string $selClu[] = `ls -sl -type transform`;select -r $selClu;renameSelectionList(\"" + $crvSel[0] + "_cluster\");select -cl;"); string $hideC = ("hide \"" + $crvSel[0] + "_cluster*\";"); for($c=0;$c<size($locator);$c++) { string $pCmd = ("parent " + $cluster[$c] + " " + $locator[$c] + ";"); eval($pCmd); } eval($selRGD); eval($selRGL); eval($selRGC); eval($hideC); } } } /////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////// S.
  12. Scusatemi, ho corretto un bug che non permetteve di far funzionare lo script eseguendolo piu' di una volta su linee/curve differenti perche' il nome dei locator e dei measure era sequenziale (opzione di default di Maya). Adesso funziona tutto perfettamente. /////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////// string $crvSel[] = `ls -selection`; int $crvDegree = `getAttr ($crvSel[0] + ".degree")`; int $crvSpans = `getAttr ($crvSel[0] + ".spans")`; int $crvPnt = $crvDegree + $crvSpans; float $coord[] = `getAttr ($crvSel[0] + ".cv[0:" + ($crvPnt-1) + "]")`; int $sCoord = size($coord); int $i = 0; int $p = 0; int $e = 0; for($i=0;$i<$sCoord;$i++) { $i = $e; string $cmd = ("distanceDimension -sp"); $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i] + " -ep"); $i++; $e = $i; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i] + ";"); eval($cmd); if($p<$crvPnt) { string $pntSel2 = ("select " + $crvSel[0] + ".cv[" + $p + "];newCluster \" -envelope 1\";"); eval($pntSel2); $p++; if($p<$crvPnt) { string $pntSel2 = ("select " + $crvSel[0] + ".cv[" + $p + "];newCluster \" -envelope 1\";"); eval($pntSel2); $p++; } } if($i==$sCoord-1) { int $c = 0; string $cluster[] = `ls -type transform "cluster*"`; string $locator[] = `ls -type transform "locator*"`; for($c=0;$c<size($locator);$c++) { string $pCmd = ("parent " + $cluster[$c] + " " + $locator[$c] + ";"); eval($pCmd); } string $selRGD = ("select -r \"distance*\";renameSelectionList(\"" + $crvSel[0] + "_distance\");group -n G_dDimension; xform -os -piv 0 0 0;"); string $selRGL = ("select -r \"locator*\";renameSelectionList(\"" + $crvSel[0] + "_locator\");group -n G_Locator; xform -os -piv 0 0 0;"); string $selRGC = ("select -r \"cluster*\";renameSelectionList(\"" + $crvSel[0] + "_cluster\");"); string $hideC = ("hide \"cluster*Handle*\";"); eval($selRGD); eval($selRGL); eval($selRGC); eval($hideC); } } /////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////// S.
  13. So che questo thread e' vecchio, ma visto che avevo un po' di tempo libero oltre al fatto di essere una cosa utile per tanti motivi, ho fatto questo script. Draggatelo all' interno di una Shelf: string $crvSel[] = `ls -selection`; int $crvDegree = `getAttr ($crvSel[0] + ".degree")`; int $crvSpans = `getAttr ($crvSel[0] + ".spans")`; int $crvPnt = $crvDegree + $crvSpans; float $coord[] = `getAttr ($crvSel[0] + ".cv[0:" + ($crvPnt-1) + "]")`; int $sCoord = size($coord); int $i = 0; int $p = 0; int $e = 0; for($i=0;$i<$sCoord;$i++) { $i = $e; string $cmd = ("distanceDimension -sp"); $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i] + " -ep"); $i++; $e = $i; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i]); $i++; $cmd += (" " + $coord[$i] + ";"); eval($cmd); if($p<$crvPnt) { string $pntSel2 = ("select " + $crvSel[0] + ".cv[" + $p + "];newCluster \" -envelope 1\";"); eval($pntSel2); $p++; if($p<$crvPnt) { string $pntSel2 = ("select " + $crvSel[0] + ".cv[" + $p + "];newCluster \" -envelope 1\";"); eval($pntSel2); $p++; } } if($i==$sCoord-1) { int $c = 0; string $cluster[] = `ls -type transform "cluster*"`; string $locator[] = `ls -type transform "locator*"`; for($c=0;$c<size($locator);$c++) { string $pCmd = ("parent " + $cluster[$c] + " " + $locator[$c] + ";"); eval($pCmd); } string $selGD = ("select -r \"distance*\";group -n G_dDimension; xform -os -piv 0 0 0;"); string $selGL = ("select -r \"locator*\";group -n G_Locator; xform -os -piv 0 0 0;"); string $hideC = ("hide \"cluster*Handle*\";"); eval($selGD); eval($selGL); eval($hideC); } } Adesso create una linea spezzata (potrebbe essere la planimetria di una casa o qualsiasi altra cosa..) e con la linea appena creata selezionata eseguite lo script clicckando l'icona nella shelf. Verranno creati dei Measure ("distanceDimension" come li chiama Maya internamente) da un vertice al successivo, e verranno creati 2 gruppi: G_dDimension -> conterra' tutti i "measure" G_Locator -> conterra' tutti i locator dei"measure" A questo punto, spostando i locators sposteremo anche i controlPoint della linea ad essi associati e i "measure" si aggiuorneranno in tempo reale. S.
  14. Eddie, ottima scelta! In questo weekend preparo le prime cose e poi iniziamo. S.
  15. Mud, mi sembra una soluzione carina anche se la tua domanda puntava sulle possibilita' dell' outliner. Comunque sia, sempre nell' outliner puoi selezionare CONNECTED dentro il menu' Display, e puoi vedere solamente gli attributi che hanno una connessione, sia essa Keyframe, Expression o qualunque altra cosa. Oppure puoi semplicemente, senza spuntare CONNECTED nell' outliner, nascondere gli attributi che non verranno animati (invece di bloccarli solamente come hai fatto tu), e vedrai solamente gli attributi Keyable. S.
  16. Se hai fatto esattamente quello che ti ho suggerito nel post precedente avresti esattamente quello che stai cercando. S.
  17. Eddie, gia' pensi ad usare Fotoschiopp...la fai troppo facile cosi'! Io ti propongo invece un percorso diviso in Livelli con i quali imparerai per lo meno quali sono le caratteristiche che un' oggetto 3D deve avere per essere ricoperto con una immagine, corredata pure di compiti a casa. Sara un' impegno di 3/4 giorni nel suo totale. (considerando che lavoriamo tutti, verranno diluiti magari in una settimana) Una volta che avrai assimilato le basi, come ultimo livello inizieremo a Texturizzare il tuo Robot dove imparerai molte altre cose a seconda delle situazioni che incontreremo e ovviamente di quello che vorrai realizzare. Cosa ne pensi? S.
  18. Perdonami, ma cosa intendi per "povero di informazioni" ? Nell' outliner, puoi visualizzare qualsiasi cosa, basta configurarlo. Fai questa prova, e vedi se le informazioni che visualizzerai ti sono sufficenti o meno.. Nell' otuliner, sotto il menu "Display" seleziona: -> SHAPES -> ATTRIBUTE (channels) -> SET MEMBER -> SHOW NAMESPACE Poi sempre nell' Outliner, dentro il menu show, clicca su "Auxiliary Node", e dentro la nuova finestra che si aprira', seleziona "All Node are Shown in Editor"dal il menu "Options". S.
  19. Eddie, possiamo farlo insieme se ti va'. Credo sia arrivato il momento di fermarsi con la fase di modellazione, per adesso, e potremmo iniziare a dargli un look, che ne pensi? Facci sapere, S.
  20. Ianny, Premendo F1 da dentro Maya, verra' aperta la guida online di Maya e dovrebbe essere il primo posto dove cercare. Il tool che stai cercando sembra essere stato sostituito con un comando MEL chiamato "polySplitVertex". Di seguito il link locale da copiare nel tuo browser per le istruzioni: polySplitVertex file:///C:/Program%20Files/Autodesk/Maya8.5/docs/Maya8.5/en_US/Commands/polySplitVertex.html S.
  21. Andrea_roccia, non ho mai usato VRay, ma hai provato a, anche se l'immagine che ti restituisce il render del VRay-Shadow e' nera vedere se nell' alpha channel e' stato scritto qualcosa? Con alcuni motori di rendering, la Pass delle Shadow viene scritta nel canale Alpha per essere coerenti con l'idea di usarli come mascherini in compositinig. Se cosi' fosse, ricordati di salvare l' output in un formato che permetta lo store del canale Alpha come *.tif, *.tga etc., etc.. S.
  22. Eddie, molto bello! PS: Dal tuo render, si vedono dei riflessi. Fai attenzione che di default, Maya setta il valore di riflessione a "0.5". Esattamente il paramentro si chiama "Reflectivity". Fai un check all' interno del tuo materiale e setta questo valore a ZERO, poi all' interno delle opzioni di Render, disattiva il RAYTRACING. Sono convinto che sia per questo motivo che i tuoi tempi di rendering non siano velocissimi. S.
×
×
  • Create New...