Salve sono troy mc clur, mi ricorderete per 1001 tutorial su 3Dsmax... :hello:

Eheh, scherzi a parte vorrei condividere con tutti voi un mio esperimento sull'utilizzo di reactor!
Lo scopo è semplice, riprodurre uno di quei tanti giochini scacciatempo da scrivania.
thumbnail%20giochino
Il tutto è basato sulla fisica degli urti elastici. La pallina che si solleva aquisisce energia potenziale, una volta lasciata, la trasforma in energia cinetica. Appena impatta con le altre palline di metallo trasferisce interamente (a parte la solita perdita d'attrito) la sua energia alla pallina con cui impatta fino alla più esterna che trasforma nuovamente l'energia cinetica in potenziale, portandosi cosi in alto...e via di nuovo!

Ora come riprodurre questo in 3dsmax? ma con l'aiuto di reactor e dei suoi potenti strumenti ovviamente.
Iniziamo innanzitutto a costruire la scena: abbiamo bisogno di due supporti laterali (a cui andranno legate le cordicelle), le cordicele appunto e delle 5 palline di metallo.
ecco una linea temporale per costruire uno dei due supporti laterali attraverso lo strumento "line" ( "Create"-->"Shapes"-->"line")
Una volta costruita la linea, create un piccolo cerchio (sarà lo spessore); usando il comando "compound"
("Create"-->"Compound object"-->"compound") create la geometria finale.
eccovi in breve i passagi:
creazione%20supporto

Usate il comando mirror per duplicare il supporto laterale, passiamo ora a creare il resto:
rifinitura%20gioco
Allora :
"C"  è un semplice cilindro (usato come giuntura)
"G" è una geosfera (l'attacco del filo sul supporto laterale)
"L" una Line (il filo a cui è legata la sfera di metallo)
"T" un tubo (attraverso cui passa il filo per andare al supporto opposto)

Cambiamo il pivot point (Pannello "Hierarchy"--> "Affect Pivot Point"-->"Center to Object") del tubo e posizionamolo al suo baricentro.
Cambiamo anche il baricentro della sfera e posizionamolo+ in alto all'altezza del tubo.

La "Linea" è composta da 2 vertici (uno per ogni sferetta ai due lati del supporto) e di altri due vertici in basso (uno all'entrata e uno all'uscita del "tubo" sulla pallina di metallo) (rendetela renderizzabile o una geometria con il compound object
Ora entriamo nel sub-object "point" della linea e selezioniamo i due vertici in basso all'altezza del tubo (quelli che dovrebbero tenere la pallina) e scorriamo la lista dei modificatori (tenendo attivo il sub-object) e selezioniamo il modificatore "LinkedXForm". Qui utilizziamo "Pick Control Object" e selezioniamo la nostra sfera di metallo! (in questo modo quando la sfera si muoverà si porterà appresso anche il filo)

ecco la scena nella vista laterale
front%20view%20point%20to%20point
Ora cominciamo a usare reactor. (se non l'avete già visibile, uscite fuori la barra di reactor per avere rapidamente i vari sistemi).

Creiamo un "rigid Body colection" (qui andranno selezionati tutti i cilindri e le sfere di metallo, ovvero tutti gli oggeti che rientrano nel calcolo di reactor)


Ora creiamo un "point-point constraint" (questo creerà il vincolo tra il filo e la sfera)
Point%20to%20point
come vedete ho segnato le tappe da seguire:
1)  attivate l'opzione "Parent" e selezionate sotto parent il cilindro di destra e sotto child la sfera
2)  sotto "Constraint Type" attivate l'opzione Stiff spring (questo dirà a reactor che il filo ha una lunghezza predeterminata e non è quindi un elastico che può allungarsi)
3)  settiamo la lunghezza del filo, sotto "Stiff lenght" selezioniamo "set", che andrà a misurare la lunghezza del filo e la renderà fissa.
4)  ora settiamo bene come in figura i baricentri (in caso fossero mesi diversamente), e riclicchiamo sul pulsante set (sotto Stiff lenght), per aggiornare la lunghezza.
Ora ripetiamo gli stessi passaggi ma per il lato sinistro del filo. Fatto questo selezioniamo i 2cilindri, le 2 sferette, il filo, e la sfera di metallo (con il suo tubetto) i 2"point-point constraint" e cloniamoli 5volte in modo in modo che le sferette siano praticamente a contatto tra di loro.
Ora dovete sistemare bene i vari "point-point constraint" che sicuramente no saranno a posto e saranno linkati ai "parent" e "child" sbagliati, selezionateli uno ad uno e controllate. (io ho avuto fortuna e tutti sono a posto al primo clonaggio, ma ripetendolo a volte mi sbaglia i link uno si uno no, quindi controllate bene, sopratutto di aver clonato in una volta solo tutti gli oggetti)

Ora creiamo un "constraint solver"
constraint%20button
qui dovremo raccogliere tuti i point-point constraint che saranno attivi nel calcolo di reator, nel nostro caso tutti.
menu%20Rb%20collection
Nella prima opzione andremo a selezionare il nostro RB collection (quello che gestisce la massa delle sfere e dei giunti), poi passeremo all'aggiunta di tutti i nostri point-point constraint. Importante è passare il valore di "Deactivation Thresold" a 0.

Selezionate le 5 sfere e nel pannello di reactor premete su "open Property editor", e settate la massa delle sfere a 10, l'elasticità e l'attritoa 0.9. (tutti i restanti oggetti non li setteremo in modo che non vengano influenzati dalla gravità di reactor)
piccola nota:
un valore basso di attrito implica una maggiore perdita di energia e quindi meno rivoluzioni
un valore basso di elasticità implica un minor passaggio di energa
e il contrario per valori alti. Inoltre i valori vanno da 0 a 1 (per riprodurre la realtà) ma possono arrivare fino a 5 per animazioni esagerate!

Bisogna ora sollevare una delle due palline esterne per conferirgli un pò di energia potenziale. Sollevatene una all'altezza desiderata (maggiore sarà, maggiore l'energia e quindi la durata delle rivoluzioni) e lanciate un breve calcolo ell'animazione (non importa i valori ora) in modo che sposti la sfera sollevata alla distanza predefinita con il filo. (una volta eseguito questo passaggio eliminate i frame creati)


Ora passiamo nel pannello "Preview & Animation" (Utility--->Reactor) e a vostro  piacere cambiate i valori dell'animazione, la lunghezza, i substep.
Io personalmente ho impostato a 2.0 il Time scale, in pratica ho messo un 2x alla velocità dell'animazione.
Lanciate ora il calcolo con "create animation".
Potete anche attivare "Update Viewports" per vedere in real time la creazione dell'animazione da parte di reactor, ma dovete avere le directx come driver attivi per 3dsmax, o avrete un essaggio di errore che vi costringerà a chiudere il programma in modo forzato.

Andare alla tendina Wolrd, e cambiare il valore di "Col. Tolerance" da 10cm a 1cm (se avete le misure impostate a cm)
questo valore setta l'involucro "lowpoly" usato per il calcolo delle dinamiche degli oggetti. Minore il valore e più questo involucro si avvicina all'oggetto madre, insomma da un guanto largo in lana si assa ad un guanto in pelle stretto stretto....!

non badate alla scena intorno che è solo per riempire un pochino e non è certamente curata!
ecco la mini video dimostrativa

eccovi il file max con l'animazione finale

spero sia stato tutto chiaro e che vi sia piaciuto!

---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui