Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Animaţia rotaţiilor reprezintă unul dintre cele mai dificile aspecte ale animaţiei. Această
problemă îşi are rădăcini în matematica rotaţiilor. Ordinea în care cele trei rotaţii axiale (în jurul axei
X, în jurul axei Y şi în jurul axei Z) sunt realizate conduc la diferenţe considerabile în ceea ce
priveşte rezultatul. Pe de altă parte, ordinea rotaţiilor poate produce fenomenul cunoscut sub
denumire de “blocare cardanică”, când rotaţiile în jurul a două axe diferite devin identice.
Expresiile sunt mici unităţi de programare cod, care definesc parametrii de animare în funcţie
de alţi parametri sau de timpul curent al scenei. La fiecare cadru, expresia este evaluată pentru a
obţine o nouă valoare.
Roata cu 10 dinţi este modelată dintr-un obiect de tip Cylinder, Editable Mesh
3. Creaţi o a doua roată dinţată, în aceeaşi manieră, setând valorile pentru rază (Radius) de 30 şi
Sides de 30. Extrudaţi (Extrude) în afară cele 15 poligoane cu 5 unităţi şi daţi-le o înclinare
(Bevel) de aceeaşi valoare ca în etapa precedentă. Poziţionaţi cea de a doua roată astfel încât să se
potrivească cu prima, după cum este prezentat în figură. Nu rotiţi cea de a doua roată când o
aliniaţi.
Cea de a doua roată a fost adăugată, aceasta având dimensiunile de 1.5 ori mai mari şi tot de atâtea
ori mai mulţi dinţi
4. Creaţi a treia roată, mult mai mică, cu raza (Radius) de 10 şi Sides 10. Extrudaţi în afară 5 dinţi
alternanţi şi înclinaţi-i ca în etapele precedente. Rotiţi această roată cu 90 de grade, astfel încât să
devină paralelă cu planul de bază; apoi, aliniaţi-o cu grijă, să se potrivească cu partea inferioară a
celei de a doua roţi. Sistemul de roţi ar trebui să arate ca cel prezentat în figură.
Cea de a treia roată mult mai mică a fost adăugată astfel încât să angreneze cu cea de a doua
STABILIREA EXPRESIILOR
În continuare, prima roată va fi animată în mod tradiţional iar celorlalte două roţi le vor fi
atribuite expresii care să le cauzeze rotaţia în concordanţă cu prima roată.
5. Primul pas constă în stabilirea controllerului de rotaţie pentru prima roată. Deschideţi (Open)
Track View şi utilizaţi fereastra de dialog Filters pentru a afişa tipurile de controllere. Expandaţi
ramura obiectului Cylinder01 şi schimbaţi controllerul de rotaţie în Euler XYZ.
6. Expandaţi ramura pentru cea de a doua roată dinţată, Cylinder02 şi modificaţi încă o dată
controllerul de rotaţie în Euler XYZ. Această roată se va roti în jurul axei Y a sistemului
universal de coordonate, deci deschideţi ramura Y Rotation şi modificaţi controllerul din Bezier
Float în Float Expression. Această ramură va folosi o expresie care să producă o “valoare
animată”.
Caseta de dialog Expression Controller; expresia care se evaluează la fiecare cadru se scrie în
fereastra Expression; variabilele sunt create în partea stângă a panoului
8. Variabila de care avem nevoie este valoarea curentă a rotaţiei pe Y a primei roţi. La modificarea
acestei valori, expresia care defineşte rotaţia pe Y a celei de a doua roţi se va modifica de
asemenea. Pentru a crea o variabilă, tastaţi numele “yrot” (pentru rotaţie pe Y) în dreptul câmpului
Name. Înainte de a activa butonul Create pentru confirmare, trebuie stabilit dacă variabila este un
vector sau un scalar. Deoarece, rotaţia pe Y este un singur număr, se va alege opţiunea Scalar.
Dacă s-ar fi creat o variabilă de poziţie corespunzătoare unui controller Bezier Position, care
utilizează o valoare (X,Y,Z), trebuia folosită opţiunea Vector. Executaţi clic pe butonul Create
pentru a crea o variabilă şi remarcaţi că numele acesteia apare în lista de variabile scalare.
9. În această etapă, s-a creat o variabilă, dar nu se ştie de unde să luăm valoarea acesteia. Pentru a
asocia această variabilă valorii rotaţiei pe Y a primei roţi, executaţi clic pe butonul Assign To
Controller. În urma acestei acţiuni apare o fereastră de dialog, care este ca o versiune în
miniatură a ferestrei Track View (figura). Expandaţi arborele Cylinder01 şi selectaţi Y Rotation.
Clic pe butonul OK. Fereastra de dialog Expression Controller va indica faptul că variabila yrot
a fost atribuită rotaţiei pe Y a obiectului Cylinder01 (Cylinder01\Y Rotation).
Utilizarea operatorului negativ pentru cea de a doua roată cauzează rotaţia acesteia în sens invers
primei roţi; expresia ţine cont şi de faptul că cea de a doua roată este de 1.5 ori mai mare, deci se
roteşte cu o viteză de 2/3 din valoare vitezei primei roţi
ANIMAŢIA CELEI DE A TREIA ROŢI
Aplicarea rotirii celei de a treia roţi se face ţinând cont de faptul că aceasta se roteşte după o
direcţie diferită de primele două; modul de realizare a animaţiei rămâne însă acelaşi.
13. Expandaţi ramurile pentru obiectul Cylinder03, cea de a treia roată, şi atribuiţi un controller
Euler XYZ ramurii de rotaţie. De această dată, dorim ca ramura Z Rotation a celei de a treia roţi
să fie controlată de ramura Y Rotation a primei roţi. Atribuiţi un controller Float Expression
pentru ramura Z Rotation a obiectului Cylinder03.
14. Deschideţi fereastra de dialog Expression Controller şi creaţi o variabilă denumită “yrot”.
Utilizaţi acelaşi nume ca în etapele precedente deoarece este exact aceeaşi variabilă – valoarea
rotaţiei pe Y a primei roţi – chiar dacă este utilizată pentru determinarea rotaţiei pe Z a celei de a
treia roţi. Atribuiţi variabila ramurii Y Rotation a obiectului Cylinder01, exact cum aţi procedat la
cea de a doua roată.
15. În acest stadiu, se poate scrie expresia “-2*yrot”, după cum se poate observa în figură. Această
expresie comunică controllerului să multiplice valoarea rotaţiei pe Y a primei roţi cu 2, deoarece
cea de a treia roată este de 2 ori mai mică decât prima şi să o rotească în sens contrar.
16. Închideţi fereastra de dialog şi animaţi scena.
Expresia pentru cea de a treia roată utilizează valoarea rotaţiei pe Y a primei roţi şi ţine cont de
faptul că aceasta este de 2 ori mai mică decât prima roată (respectiv are o viteză de 2 ori mai mare)
17. În încheiere vă propunem un exerciţiu suplimentar. Reveniţi la ramura Y Rotation a primei
roţi. Analizaţi curba funcţională de animaţie şi editaţi-o. Adăugaţi chei şi faceţi roata să se
rotească înainte şi înapoi. Rulaţi animaţia; toate celelalte roţi urmăresc mişcarea primei roţi în
mod automat.