Vai al contenuto
cecofuli

3ds Max - Rigging Without Bones

Recommended Posts

RIGGING WITHOUT BONES

for 3ds Max

CECOFULI

ing_legrenzi@hotmail.com

Wolf.jpg

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

1. In questo tutorial vogliamo realizzare un sistema di ossatura (rigging) che ci permetta di muovere in maniera realistica le rotazioni di un personaggio.

Sappiamo che 3ds max offre già questo tipo di operazione, integrata in Character studio, ma noi vogliamo realizzarne uno partendo dal nulla.

In questo tutorial tralascerò di descrivere alcune delle più comuni operazioni che un utente con una media conoscenza del software dovrebbe aver già acquisito.

Creiamo 3 semplici box con:

a. dimensioni 20, 10, 10 ( B_Piede_DX )

b. dimensioni 5, 5, 40 ( B_Polpaccio_DX )

Allineando il Pivot del B_Piede_SX alla bese del B_Polpaccio_DX, proprio nel mezzo del poligono di base. Utilzzare l'opzione AUTO GRID per la realizzazione del B_Polpaccio_DX e utilizzare come piano ri creazione la faccia superiore del B_Piede_DX.

(fig. 01)

01_No_Bones.jpg

2. Ora ruotiamo di 5 gradi in senso orario la B_Polpaccio_DX. Poi creiamo un'altro box di dimensioni 10, 10, 40 utilizzando l'opzione AUTO GRID ed allineiamolo in base aglia assi locali X e Y alla bone B_Polpaccio_DX.

(fig. 02)

02_No_Bones.jpg

3. Ruotiamo in senso antiorario la B_Coscia_DX di 10 gradi.

(fig. 03)

03_No_Bones.jpg

4. Creiamo un'altro box "di servizio", come avete fatto nel punto 3 e allineiamolo al B_Coscia_DX. Questo box ci servirà nel passaggio successivo, dopodiché verrà cancellato.

(fig. 04)

04_No_Bones.jpg

5. Ora allineaiamo i Pivot di:

a. B_Polpaccio_DX al Pivot di B_Coscia_DX , che in questo momento si trova al centro del poligono di base (di B_Coscia_DX).

b. B_Coscia_DX al Pivot del box temporaneo.

Ora cancellate il box temporaneo.

(fig. 05)

05_No_Bones.jpg

6. Linkate ora B_Piede_X a B_Polpaccio_DX e B_Polpaccio_DX a B_Coscia_DX.

(fig. 06)

06_No_Bones.jpg

7. Ecco il risultato.

(fig. 07)

07_No_Bones.gif

8. Creiamo un Point helper e posizioniamolo sulla punta del piede, nella parte bassa a metà del bordo evidenziato in figura. Linkiamolo a B_Piede_DX e rinominiamolo.

Poi creiamo 2 catene IK:

a. 1 collegando B_Coscia_DX e poi B_Piede_DX.

b. 1 collegando B_Piede_DX a C_Dita_DX.

Rinominare i Goal con in figura.

(fig. 08)

08_No_Bones.jpg

9. Creiamo 2 controlli e rinominiamoli come in figura:

a. C_Dita_Rotazione_DX serve per far ruotare il piede facendo perno sulle dita. Ad esso linkiamo IKC_Caviglia_DX.

b. C_Piede_DX serve invece per controllare l'intero piede. Posizioniamolo a metà del bordo, nella zona del tacco. Poi applichiamogli un Edit spline e ridisegnamo la sua forma. Ad esso linkiamo C_Dita_Rotazione_DX e IKC_Dita_DX.

(fig. 09)

09_No_Bones.jpg

10. Questo è quello che dovreste aver ottenuto:

(fig. 10)

10_No_Bones.gif

11. In vista frontale duplichiamo tutti gli oggetti fin'ora creati e rinomiamoli usando come suffisso SX.

(fig. 11)

11_No_Bones.jpg

12. Ora creiamo un box che useremo come parte bassa del busto. Creiamo un box 12, 14, 10 e allineiamo il suo Pivot alle coordinate globali e poi centriamolo nell'oggetto. Poi linkeate a B_Pelvis le due gambe.

(fig. 12)

12_No_Bones.jpg

13. Per ogni IKC attivare l'opzione IK Goal nel pannello IK Solver Properties.

(fig. 13)

13_No_Bones.jpg

14. Creiamo due Shape esagonali, una con dimensione 40 e l'altra 58. Posizioniamoli al centro delle coordinate globali 0,0,0. Rinominiamo, coloriamo e linkiamo poi gli oggetti come in figura

(fig. 14)

14_No_Bones.jpg

15. Cloniamo C_Base ed allineiamolo a B_Pelvis utilizzando i rispettivi centri come riferimento per l'allineaento. Duplichiamo in nuovo controllo C_Fianchi_Root e ridimensioniamolo a 30. Rinominiamolo C_Fianchi ed effettuiamo i link come in figura.

(fig. 15)

15_No_Bones.jpg

16. Creiamo 3 parallelepipedi di dimensioni:

a. B_Spine_1 = 10,10, 15

b. B_Spine_2 = 12,15,15

c. B_Spine_3 = 13,20,15

Utilizziamo la griglia automatica per creare il primo parallelepipedo allineato a B_Pelvis. Poi cloniamolo e spostiamolo di 15 in Z e così per il 3° . Poi rinominiamoli.

(fig. 16)

16_No_Bones.jpg

17. Spostiamo i Pivot di B_Spine_1 e B_Spine_1 nella parte superiore di se stessi, come in figura.

(fig. 17)

17_No_Bones.jpg

18. Create un helper P_spine_1 e posizionatolo come in figura.

(fig. 18)

18_No_Bones.jpg

19. Linkare P_spine_1 a C_Fianchi e B_Spine_1 a B_Spine_2.

(fig. 19)

19_No_Bones.jpg

20. Ora dobbiamo sostituire a B_Spine_1 e B_Spine_2 il Controller EuleroXYZ che gestisce le rotazioni in LookAt Constraint e aggiungere a:

a. B_Spine_1 -> Rotation -> LookAt Constraint to B_Pelvis.

b. B_Spine_2 -> Rotation -> LookAt Constraint to P_Spine_01.

Modificare poi le opzioni del controller come in figura.

(fig. 20)

20_No_Bones.jpg

21. Selezionare e clonare per 2 volte C_fianchi e posizionarli come in figura, ossia il primo allineato alla base di B_Spine_2 e il secondo allineato alla base di B_Spine_3. Poi eseguire i link come in figura. Salvate il file.

(fig. 21)

21_No_Bones.jpg

22. Adesso voglio mostrarvi un'altro tipo di rigging del busto. Salvate il lavoro fatto fin'ora e create un'altro file che andremo ora a modificare. Selezioniamo C_Fianchi ed allineiamo il suo Pivot al centro di B_Spine_2.

(fig. 22)

22_No_Bones.jpg

23. Con B_Spine_1 selezionato andare nel pannello MOTION -> ROTATION -> LookAt Constraint e spuntare Select Upnode, cliccare su none e utilizzare come oggetto P_Spine_1.

(fig. 23)

23_No_Bones.jpg

24. Clonare P_Spine_1, rinominarlo in P_Spine_2 ed allinearlo a C_Spine_2. Dopodiché ripetere i passaggi al punto 23, ma utilizzando B_Spine_2 e P_Spine_2. Linkare P_Spine_2 a C_Spine_1.

(fig. 24)

24_No_Bones.jpg

25. Cloniamo 2 volte P_Spine_2, posizionando le due copie una appena sopra e l'altra appena al di sotto di P_Spine_2.

(fig. 25)

25_No_Bones.jpg

26. Ora con selezionato P_Spine_2 andiamo nel pannello MOTION -> Rotation e sostituiamo il controller Rotation EulerXYZ in Orientation Contraint ed utiliziamo i 2 Point helper appena creati come Target.

(fig. 26)

26_No_Bones.jpg

27. Ora effettuiamo i link come in figura.

(fig. 27)

27_No_Bones.jpg

28. Riprendiamo il Character al punto 21, appena dopo il salvataggio. Creiamo ora la geometrie per il collo e il suo controllo. Il B_collo è di dimensioni 5,5,10 e il suo controllo, allineato al centro della sua base è un esagono con dimensioni 15. Fare attenzione ed allineare il C_Collo col Pivot del B_Collo. Altrimenti il collo ruoterà attorno ad un perno sbagliato. Linkiamo C_Collo a C_Spine_2 e B_Collo a C_Collo.

(fig. 28)

28_No_Bones.jpg

29. Creare la testa (box 16,16,16) .Clonare il controller C_Collo, rinominarlo ed allinearlo al Pivot di B_testa lungo l'asse Z. Linkarli e disattivare per l'oggetto C_Testa le opzioni mostate in figura. come precedentemente detto, fare attenzione al punto di rotazione del controller e della B_Testa.

(fig. 29)

29_No_Bones.jpg

30. Ora creiamo la spalla, di dimensioni 5,5,15 ed allineiamola alla base del collo e al centro del busto. Poi orientiamo le coordinate dell'oggetto a quelle globali. Poi linkiamola a C_Spine_2. Copiamo la spalla, ma senza specchiarla, ma clonandola, spostandola a coordinate 2.5 globali sull'asse X e modificando l'altezza del parallelepipedo da 15 a -15.

(fig. 30)

30_No_Bones.jpg

31. Creare un Point Helper e, utilizzando la griglia automatica, posizionarlo all'estremità della spalla, come in figura. Allinearlo in modo da centrarlo sulla faccia della B_Spalla_DX. Poi allineare le sue coordinate a quelle globali e infine linkarlo alla B_Spalla_DX. Crearne una copia e , senza specchiarla, posizionarla sulla B_spalla_SX.

(fig. 31)

31_No_Bones.jpg

32. Ora dovremmo affrontare una parte abbastanza complessa, ma molto interessante, il cosidetto " Bleeding FK-IK system ". Ovvero quel sistema di rigging che ci permetti di passare in modo fluido da un utilizzo delle cinematica diretta a quella inversa per la gesione dei movimenti delle ossature che compongono il braccio. Clonare per 2 volte C_Spalla_IK_DX e spostare le copie a 25 unità di distanza l'una dall'altra. Poi rinominarle e linkarle come in figura.

(fig. 32)

32_No_Bones.jpg

33. Selezionare i 3 controller del braccio, clonarle e ridimensionare le copie portando a 20 la dimensione dei nuovi helper. Rinominarli come in figura. Se avete fatto tutto in modo corretto, selezionando P_Spalla_FK_DX e ruotandolo, anche gli altri 2 controlli dovrebbero ruotare.

(fig. 33)

33_No_Bones.jpg

34. Ora creiamo una catena IK utilizzando P_Spalla_IK_DX e P_Polso_IK_DX. Per fare questo ruotiamo leggermente il P_Gomito_IK_DX per facilitare il posizionamento dell' IK goal. Modificate il parametro Parent Space come in figura.

(fig. 34)

34_No_Bones.jpg

35. Una volta posizionato, allineate il IKC_Braccio_DX a P_Polso_FK_DX.

(fig. 35)

35_No_Bones.jpg

36. Clonare P_Polso_FK_DX, rinominarlo in P_Braccio_IK_Locale_DX e ridimensionarlo portando la dimensione dell'helper a 10.

(fig. 36)

36_No_Bones.jpg

37. Selezionare P_Braccio_IK_Locale_DX, clonarlo e spostarlo verso il basso. Rinominarlo il nuovo oggetto in P_Braccio_IK_Down_DX. Linkarlo poi a C_Root. Linkare anche P_Braccio_IK_Locale_DX a C_Fianchi.

(fig. 37)

37_No_Bones.jpg

38. Clonare P_Braccio_IK_Down_DX e rinominare in nuovo oggetto in P_Braccio_IK_Middle_DX. Ovviamente l'oggetto non è ben visibile, perché si trova sovrapposto a P_Braccio_IK_Down_DX. e deve essere così. Infatti dovremo fare in modo che sia la sua posizione che rotazione dipenda dalla posizione e rotazione di P_Braccio_IK_Down_Dx e P_Braccio_IK_Locale_DX Per far questo dobbiamo selezionare i controller rotazione e posizione di P_Braccio_IK_Middle_DX e assegnargli un Controller Orienataion Constraint e Position Constraint, e utilizzare come targhet gli helper P_Braccio_IK_Down_Dx e P_Braccio_IK_Locale_DX.

Selezioniamo P_Braccio_IK_Middle_DX -> MOTION -> Selezioniamo le tracce Position e Rotation e poi facciamo come in figura.

(fig. 38)

38_No_Bones.jpg

39. Selezioniamo il controllo P_Spalla_FK_DX e aggiungiamogli un attributo attraverso l'Attribute Editor come in figura

(fig. 39)

39_No_Bones.jpg

40. Con selezionato P_Spalla_FK_DX clicchiamo col tasto destro e attiviamo la funzione Wire Parameters.

(fig. 40)

40_No_Bones.jpg

41. Comparitrà la finestra di dialogo Wire Parameters. Dovremo collegare IK_Down con tutti e 4 i controller dell'oggetto P_Braccio_IK_Middle_DX, cambiando per due di loro l'espressione come mostrato in figura.

(fig. 41)

41_No_Bones.jpg

42. Portiamo lo spinner IK_Down a 50. Poi selezioniamo IKC_Braccio_DX, allineiamolo e linkiamolo a P_Braccio_IK_Middle_DX.

(fig. 42)

42_No_Bones.jpg

43. Creiamo le geometrie per il braccio, avambraccio e mano. Con selezionato la B_Spalla_DX clicchiamo col tasto destro, clonimolo e spostiamolo di 15 unità verso l'esterno del braccio.Se avete usato le dimensioni corrette, ora la nuova geometria si trova esattamente sulla faccia più esterna della spalla, perfettamente allineata. Allunghiamo la nuova ossatura, B_Bracico_DX a 25. ripetere lo stesso procedimento per l'ava,braccio e la mano, usando le seguenti dimensioni.

a. B_Braccio_DX = 8 , 8 , 25.

b. B_Avambraccio_DX = 5 , 5 , 25.

c. B_Mano_DX = 2.5 , 10 , 15.

Linkare come in figura.

(fig. 43)

43_No_Bones.jpg

44. Selezioniamo B_Braccio_DX e modifichiamo il suo controller di rotazione , sostituendo a EulerXYZ un Orientation Constraint. Utiliziamo come targhet P_Spalla_IK_DX e P_Spalla_FK_DX. Mi raccomando ATTENZIONE ALL'ORDINE DI SELEZIONE DEL TARGHET . Prima quello più esterno, ciè l'FK, poi quello interno, l'IK questo sarà importante nei passaggi seguenti.

(fig. 44)

44_No_Bones.jpg

45. Ripetiamo lo stesso procedimento con B_Avambraccio_DX e B_Mano_DX utilizzando come target quelli in figura.

(fig. 45)

45_No_Bones.jpg

46. Creiamo un altro Attibute, questa volta per gestire lo switch tra IK e FK.

(fig. 46)

46_No_Bones.jpg

47. Ora dovremo creare alcuni Wire Parameters. Per il primo utilizzaremeo C_Spalla_DX e B_Braccio_DX.

(fig. 47)

47_No_Bones.jpg

48. La tabella seguente mostra le 2 connessioni da fare, con la modifica al secondo script.

(fig. 48)

48_No_Bones.jpg

49. Fare lo stesso con l'avambraccio e il polso.

(fig. 49)

49_No_Bones.jpg

50. Proseguiamo con le dita. ridimensioniamo la mano portando l'altezza da 15 a 10. da essa poi cloniamo le 3 falangi del dito medio. Fare in modo che la prima falange penetri leggermente nella mano. Nel caso le falangi non ruotassero, assicurarsi che nella tendina Controller, vi sia impostato EulerXYZ come controller di default.

a. B_Medio_01_DX = 2 , 2 , 4

b. B_Medio_02_DX = 2 , 2 , 3.5

c. B_Medio_03_DX = 2 , 2 , 2.5

Rimodelliamo anche un po' la mano, aggiungendo un modificatore edit mesh , creando nuovi poligoni e spostandoli per dare alla mano una forma corretta. Salvate in questa posizione e create un nuovo file. Questo perché vedremo due tipi differenti di rigging delle dita.

(fig. 50)

50_No_Bones.jpg

1° METODO

51. Creiamo 3 Point helper e allineiamoli al perno di ogni falange, dopodiché duplichiamo il primo e rimpiccioliamolo. Linkiamo a cascata come in figura.

(fig. 51)

51_No_Bones.jpg

52. Utilizzando la B_Mano_DX come oggetto per la gestione delle dita, aggiungiamo alcuni Attributi in base alle nostre scelte. Io ho deciso di realizzare 4 dita, divise in 3 falangi. Ad ogni una di queste dita ho dato la possibilità di realizzare 3 rotazioni. Di conseguenza gli attributi saranno 4x3 = 12. L'unica caratteristica è che ho dato un range da -100 a 100 ad ogni attributo.

(fig. 52)

52_No_Bones.jpg

53. Modifichiamo il controller della rotazione dei Point Helper in EulerXYZ , in quanto di default hanno un controller di tipo Smooth Rotation.

(fig. 53)

53_No_Bones.jpg

54. Ora iniziamo a realizzare i collegamenti. Consiglio prima di iniziare a fare qualsiasi tipo di collegamento Wire di verificare l'asatto asse di rotazione degli oggetti presi in esame. Utilizzeremo C_Medio_01_DX per permettere la rotazione orizzontale dell'intero dito. Fare attenzione allo script, in quanto aggiungendo degtoRad si modifica l'unità di misura degli angoli da radianti a gradi sessagesimali. Ora modificando lo spinner Medio ALLARGARE tutto il dito ruoterà.

(fig. 54)

54_No_Bones.jpg

55. Colleghiamo l'attributo Medio 1° ROT alla rotazione lungo l'asse Y dei tre controlli C_Medio_01_DX, C_Medio_02_DX e C_Medio_03_DX. In questo modo modificando lo spinner il dito ri arrotolerà su se stesso.

(fig. 55)

55_No_Bones.jpg

56. L'attributo Medio 2° ROT ci permette invece di realizzare un controllo specifico solo sulla prima falange. Di conseguenza possiamo ruotare solo la prima falange, mentre le altre due rimangono diritte. E' possibile con questo sistema realizzare altri attributi e Point Helper per controllare singolarmente le restanti 2 falangi.

(fig. 56)

56_No_Bones.jpg

Bene, ora è possibile completare l'intera mano, o se volete legere il secondo metodo e decidere quale dei due vi sempre migliore.

2° METODO

57. Creiamo 5 Helper e posizioniamoli come in figura. Rinominiamoli e linkiamoli a cascata seguento l'immagine.

(fig. 57)

57_No_Bones.jpg

58. Ora dobbiamo fare qualche Wire parameter. Vogliamo che la rotazione lungo l'asse y di C_Medio_04_DX inneschi la rotazione di C_Medio_03_DX, C_Medio_02_DX e C_Medio_01_DX. Quindi niente spinner, ma un controllo diretto della rotazione delle dita nella Viewport. Utilizzando invece le rotazione di C_Medio_00_DX possiamo permettere la rotazione dell'intero dito.

(fig. 58)

58_No_Bones.jpg

59. Ecco il risultato finale

59_No_Bones.gif

60. Questo è il personaggio completo. Come si può vedere ho aggiunto anche i controlli dell Swievel Angle degli IKC delle caviglie e dei polsi (per capire cosa sono vedere il tutorial della guida in linea di 3ds max ) e linkandole come nell'immagine. Poi , per un miglio ordine, si dovrebbero creare dei preset di selezione e dei layer.

BUONA ANIMAZIONE A TUTTI!

60_No_Bones.jpg

CIAO :)

by cecofuli

post-1087-1197726147.jpg


Modificato da Loki

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grazie 1000, veramente. Volevo trascorrere le feste animando un'auto e imparando i rudimenti di rigging e animazione avanzata, in 2 giorni tutto questo su un piatto d'argento. Stracontento, dovresti inserire un pulsante con 'Donate' :Clap03:

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

@goemon

mi sa che hai una versione precedente di max rispetto a quella di ceco

@ ceco

sei un grande!!!! davvero spettacolare

però vorrei chiederti se c'è un controllo migliore per le dita della mano, cioè se volessi ottenere questo movimento

virux4.jpg

con il tuo metodo mi sembra di capire che non si può fare giusto? o ci sono altri settaggi da dover fare?

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

sei veramente un grande!! Ho imparato a Riggare in Maya ma non vedevo l'ora di imparare anche in 3ds, che rimane il mio programma preferito!! grandissimo...

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Grande ceco!! :w00t:

Al momento non avevo previsto di riggare un personaggio, ma con questo tutorial mi hai fatto venire una voglia.........! :lol:

Quanto prima comincierò a smanettare.

Grazie! :hello:


Modificato da nio3d

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.

×