Przekształcenia w przestrzeni3D

Transkrypt

Przekształcenia w przestrzeni3D
Zajęcia 10. Animacja. Kinematyka prosta, kinematyka odwrotna.
W przypadku kinematyki prostej obiekt potomny dziedziczy transformację obiektu
nadrzędnego, do którego jest przyłączony, natomiast ruch obiektu potomnego nie ma żadnego
wpływu na obiekt nadrzędny. W kinematyce odwrotnej występuje efekt uzależnienia obiektu
nadrzędnego od potomnego, oznacza to iż zmiana położenia obiektu potomnego wpłynie na
zamianę położenia obiektu nadrzędnego. Połączenie obiektów, tworzy łańcuch kinematyczny
o skończonej ilości ogniw. Łańcuchy możemy podzielić na dwa rodzaje:
- łańcuchy kinetyczne płaskie
- łańcuchy kinetyczne przestrzenne.
Oczywiście nas bardziej interesować będzie łańcuch kinematyczny przestrzenny. Podstawową
własnością łańcucha jest jego ruchliwość. Określa ona ile stopni swobody posiada łańcuch,
czyli ile różnych typów ruchu jest w stanie przenieść. Można wydzielić trzy stopnie
ruchliwości łańcucha w:
w=0 łańcuch sztywny, w=1 łańcuch normalny, w>1 łańcuch swobodny.
Stopień ruchliwości łańcucha oblicza się z wzoru strukturalnego. Dla łańcucha przestrzennego
wzór ma postać :
w = 6(n - 1) - 5p5 - 4p4 - 3p3 - 2p2 - p1
gdzie n – ilość ogniw
pn – ilość par kinetycznych n-tej klasy
Para kinetyczna oznacza połączenie dwóch członów mechanizmu, odbierające część stopi
swobody członom przez nie związanym. Stopnie swobody jest to ilość prostych ruchów jakie
ciało może zrealizować w układzie kartezjańskim (w naszym przypadku w przestrzeni 3D).
Ciało swobodne ma maksymalną ilość 6-ciu stopni swobody:
trzy ruchy translacyjne w stosunku do osi układu współrzędnych X, Y i Z.
trzy obroty względem osi równoległych do osi układu współrzędnych X, Y i Z.
Należy pamiętać że ciało materialne łączone z drugim w parę kinetyczną traci pewną ilość
stopni swobody, w zależności od klasy pary kinematycznej.
W programach do grafiki 3D np. 3D Studio po utworzeniu kinematyki odwrotnej, istnieje
możliwość blokowania stopni swobody dla poszczególnych osi, oraz określania
przekazywania ruchu z rodzica na potomka.
Obrazowo kinematyką prostą i odwrotną można pokazać na przykładzie ramienia robota.
Rodzic
Potomek
Rys 2. Hierarchia obiektów z kinematyką prosta. Poruszenie potomka nie wpływa na
położenie rodzica
Rodzic
Potomek
Rys 3. Hierarchia obiektów z kinematyką prostą. Translacja obiektu potomnego, nie
spowodowała zmian w obiekcie rodzica.
Rys 3. Hierarchia obiektów z kinematyką odwrotną. Translacja obiektu potomnego,
spowodowała przesuniecie obiektu rodzica.
Rodzic
Potomek
Kinematykę prostą otrzymujemy łącząc obiekty narzędziem Selekt and Link. Heirarhie
obiektów możemy zobaczyć wykorzystując narzędzie Select by Name z paska narzędziowego
Main Toolbar.
Kinematyka odwrotna (IK) jest dostępna w zakładce Hierachy z prawej strony ekranu pod
przyciskiem IK. Pod przysickiem Link Info dostepne są opcje blokowania przesunięcia,
obrotu i skalowania obiektu przy stosowaniu kinematyki odwrotnej.
Rodzaje algorytmów kinematyki odwrotnej:
- HI Solve – algorytm ruchu niezależny od historii
- IK LimbSolver – algorytm ruchu kończyn. Obsługuje tylko łańcuch 3 obiektów.
- SplineIK Solver – wykorzystywany do animowania długich i elastycznych
obiektów.Korzysta z obiektów typu splain i kilku obiektów kontrolnych wpływający
na obrót układu kości
- HD Solver – algorytm występujący w poprzednich wersjach maxa (powyższe w wersji
5)
Ćwiczenie 1.
Zamodelować ramię robota (jak na powyższych ilustracjach), oraz modele układów
współrzędnych, zamocowane w odpowiednich miejscach ramienia. Stworzyć hierarchię
obiektów (Select and Link). Za pomocą narzędzia Select and Move sprawdzić działanie
hierarchii dla poszczególnych łańcuchów kinematycznych.
Ćwiczenie 2.
Dla utworzonego ramienia stworzyć Kinematykę Odwrotną (panel Hierarhii IK). Zastosować
blokadę dla ruchu, obrotu i skalowania dla poszczególnych osi (Link Info). Wyłączyć
dziedziczenie przekształceń (Inherit), dla poszczególnych osi. Sprawdzić działanie
kinematyki odwrotnej dla poszczególnych parametrów.
Innym sposobem animacji obiektu jest utworzenie systemu kości dla obiektu., oraz
zastosowanie modyfikatora Skin do siatki obiektu. Bones (Kości) są dostępne w panelu
Create /Systems . Modyfikator Skin dostępny jest na liście modyfikatorów.
Ćwiczenie 3.
Utworzyć Box i podzielić go na 10 segmentów w każdym kierunku. Włączyć przyciąganie
3D Snap do Vertexów. Z panelu Create/Systems wybrać obiekt Bones. Utworzyć 3 kości dla
Boxa. Odpowiednio je ustawić. Zaznaczyć siatkę obiektu. Z listy modyfikatorów wybrać
Skin. W rolecie Parameters kliknąć przycisk Add. Zaznaczyć kości. Po wybraniu Select kości
zostaną dodane do listy. Zaznaczyć Bones01. Przejść w tryb Edit Envelope. Po wyedytowaniu
obwiedni schwytać jej punkt kontrolny i przesunąć tak żeby obwiednia jak najciaśniej objęłą
siatkę. Zapobiegnie to deformacji siatki przy animacji za pomocą kości. Wykonać tę operację
dla wszystkich kości. Obiekt utworzony w ten sposób można animować za pomocą kości.
Wykonać krótką animację obiektu polegającą na przesunięciu wszystkich 3 kości