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