Skocz do zawartości

3ds max - ograniczanie ruchu obiektów.


Miłosz3ds

Rekomendowane odpowiedzi

Cześć. Mam problem - ćwiczę sobie rigging głowy. Teraz jestem na etapie oczu - oczy pojedynczo przypiąłem za pomocą Look At Constraint do znajdujących się naprzeciwko nich obiektów pomocniczych - zwykłych okręgów ze splainów. Te dwa okręgi zlinkowałem do elipsy, dzięki czemu manipulując tą elipsą, oczy ruszają się razem.

 

beznazwy2gao.jpg

Żeby ułatwić sobie manipulowanie oczami, przypisałem sobie do współczynników pozycji elipsy kontroler - Float Limit. Wpisałem sobie ograniczenia jakie mi odpowiadają (żeby oczy się nie chowały zbyt głęboko pod powieki i tak dalej) i wszystko jest elegancko. Ale ograniczenia poprawnie działające przy początkowym ustawieniu głowy nie sprawdzają się np. jak głowa jest zwrócona w prawo. Czy jest jakaś możliwość żeby np. podlinkować do największej kości (przebiegającej przez całą głowę wzdłuż) elipsę, żeby punkt na który patrzą oczy poruszał się domyślnie wraz z całą głową (ale żeby dało się ruszać tymi oczami w danym momencie!) i żeby ograniczenie Float Limit działało tak jak teraz, tylko na innych zasadach - żeby nie brało pod uwagę współrzędnych całego świata, tylko żeby się odnosiło np. do pozycji tej kości?

Wtedy na przykład:

 

głowa patrzy na wprost, to:

 

X max = 45, X min = -45

Y max = 0, Y min = 0

Z max = 20, Z max = -15

 

głowa obrócona jest o 40 stopni w prawo i 10 stopni w górę, to:

 

 

X max = 45, X min = -45

Y max = 0, Y min = 0

Z max = 20, Z max = -15

 

I tak dalej :) Mam nadzieję, że udało mi się jakoś przedstawić o co mi chodzi i serdecznie proszę o wskazówki.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 5
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Nie rozumiem, czemu wszyscy się tak upierają przy stosowaniu LookAt constrainta ślepo podążając za złymi przykładami z tutoriali. Nic tak nie obciąża Maxa jak stosowanie contraintów w ogóle, a do tego LookAt dla gałek ocznych ma sporo wad,np. UpVector.

 

Najprostsza metoda poprawnego zrigowania oczu to krótki łańcuch kości przylinkowany do kości głowy, wystający ze środka oka w kierunku w który ma patrzeć, z IK przylinkowanym do celu oczu i IK targetem nad głową. Wtedy można spokojnie ustawić limity ruchu kości w każdym zakresie i nic się nie sypie.

  • Like 1
Odnośnik do komentarza
Udostępnij na innych stronach

Z mojego doświadczenia i doświadczenia animatorów z którymi współpracowałem/uję wynika, że najgorsze rozwiązanie to jest wogóle przypinać jakikolwiek kontroler do głowy żeby sterować oczami. Lepiej umieścić kontrolki w jakimś panelu. Przy dynamicznych ruchach postaci ustawianie oczu może być masakrą, tak samo jak sterowanie całą mimiką. Człowiek wtedy nie jest skoncentrowany na animowaniu tylko na szukanie kontrolek od oczu.. czy tam twarzy, która lata jak sałata.

 

Trochę nie rozumiem twojego problemu. Gdyż jeżeli masz zlinkowaną "elipsę" do kości głowy to elipsa działa w lokalnych osiach kości głowy. Czyli ruszając głową a nie ruszając kontrolerem od oczu, wartości współrzędnych "elipsy" zawsze są równe zero do póki nie ruszysz tym kontrolerem. Czyli jak sobie przypiszesz controller "float_limit" to wszystko zawsze i każdej godzinie ci będzie działać przy jakich kolwiek ruchach głowy. Tutaj przepis krok po kroku:

 

1. Linkujesz "elipsę" do kości głowy

2. Freezujesz transforamcję

3. dla nowo powstałego kontrolera pozycji przypisujesz "float limit" i wsio.

Odnośnik do komentarza
Udostępnij na innych stronach

Cześć, dzięki za odpowiedzi.

 

Najpierw napiszę, że problem udało mi się już rozwiązać. Z czystej ciekawości "projektuję" sobie różne warianty kontroli elementów głowy. Staram się poznać podstawy riggingu i eksperymentuję na wszelkie sposoby. Tutaj chciałem stworzyć taki układ:

 

Zaznaczony mały okrąg wewnątrz prostokąta to kontroler oczu (on się nie rusza, jest cały czas w jednym miejscu! Tak jak i prostokąt)

Elipsy od oczu podpięte do większej elipsy, a ta - do prostokąta. Prostokąt jest podpięty do kości obracającej głową, ale jednocześnie jest kontrolowany przez zaznaczony na screenie mały okrąg.

scaled.php?server=705&filename=twarz1g.jpg&res=medium

Dzięki czemu - przy ruchu kości oczy cały czas są w tej samej "pozycji" w głowie:

scaled.php?server=7&filename=glowa2k.jpg&res=medium

A potem po prostu przesuwam sobie mały (zaznaczony :) ) okrąg i steruję wzrokiem. Dosyć wygodne, jednak nie użyteczne gdy chce się wycelować wzrokiem w konkretny punkt.

scaled.php?server=823&filename=glowa3.jpg&res=medium

 

asblaze - Pewnie dlatego wszyscy tak się upierają co do tego LookAt, bo właśnie jest w praktycznie wszystkich ogólnodostępnych tutorialach:) Mógłbyś napisać coś o tym UpVectorze, co to jest? Bardzo cenna rada co do tych kości, zapamiętam, wykorzystam - dzięki.

 

SUPER_OkO - trochę namieszałem - na ostatniej elipsie przypiętej do kości nie miało się kończyć. Miało to służyć tylko temu, żeby domyślnie oczy patrzyły ciągle tak jak były ustawione przed ruchem głową, jednak żeby do tego dopiąć kolejny manipulator i żebym mógł tym wzrokiem sterować za jego pomocą.

 

Jeszcze zastanawiam się nad jednym. Powiedzmy, że mam już wszystko ustawione, w tym manipulator z kontrolerem "float limit". Chcę przenieść manipulator w zupełnie inne miejsce (jednak jest zablokowany i przy przemieszczaniu oczywiście wykonuje zadaną akcję) Czy da się jakoś te wszystkie akcje i limity chwilowo zablokować, żeby przenieść modyfikator?

Odnośnik do komentarza
Udostępnij na innych stronach

Zakombinowałeś tutaj maxymalnie, pomijając to aby mieć kontrolę nad oczami z pomocą tego "manipulatorka" i bezpośrednio z brązowego prostokąta to musisz dodać do niego -> float list no chyba, że już jest a następnie zrobić kolejną "warstwę" do sterowania positionXYZ i zrobić ją aktywną. Teraz może celować "prostokątem" .. i kontrolować oczy za pomocą "manipulatorka".

 

Jeżeli chodzi o przesuwanie "manipulatora" to ja nie wiem w sumie o co dokładnie ci chodzi. Taki manipulator z controllerrem float_limit powinieneś mieć zawsze podpiętego w hierarchii. Czyli w twoim wypadku powinien być podpięty do twojego zielonego prostokąta.. którym to sobie możesz przesuwać manipulator.

 

tu masz takie podstawy które to ileś tam lat temu napisałem dla potomnych - http://www.max3d.pl/forum/showthread.php?t=43628

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za link, bardzo dobra opcja. Bardzo dużo mi rozjaśniłeś swoimi postami.

 

Co do przesuwania manipulatora - chodzi mi o zmienianie jego położenia, żeby był gdziekolwiek zechcę w układzie współrzędnych świata, ale żeby nadal działał z tymi limitami które ustaliłem. Za Chiny nie mogę do tego dojść! Ale muszę jeszcze dokładniej sobie rozwinąć temat kontrolera Float List, wtedy myślę że większość rzeczy się rozjaśni.

 

Jeszcze raz dzięki! :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności