Autor Wątek: Opóźnienie w symulacji Rigid Body Constraint  (Przeczytany 143 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Mortus

Opóźnienie w symulacji Rigid Body Constraint
« dnia: 01.12.2018 12:02:07 »
No więc problem mam taki, że gdy używam Rigid Body Constraint do symulacji dyndającego obiektu, całość działa z pewnym opóźnieniem. W tym przypadku mam głowę z kolczykiem w uchu. Wyraźnie widać, że kolczyk nie nadąża za ruchem głowy i w niektórych klatkach w ogóle jest oderwany od całości. Ktoś, coś?

Offline Piotr

Odp: Opóźnienie w symulacji Rigid Body Constraint
« Odpowiedź #1 dnia: 02.12.2018 18:04:01 »
Dwie rzeczy:

1. W ustawieniach sceny, w ustawieniach Rigid Body zwiększ ilość Steps per second oraz Solver iterations. Np. do 120 i 60 (w teorii im więcej, tym symulacja dokładniejsza, a więc i połączenie mniej gumowate).

2. Musisz też wypalić animację obiektowi Torus.001. W menu na dole wybierz Object -> Animation ->  Bake action.
W okienku zaznacz: only selected, visual keying, clear parnets. (A może kolczyk od razu połączyć z głową?)

W tym wypadku punkt drugi jest kluczowy, ponieważ łańcuch obiektów: animowana głowa -> spearnetowany do niej krążek -> constraint -> kolczyk zdaje się opóźniać ruch kolczyka. Warto zaznaczyć, że constraintsy zawsze są trochę gumowate, co ujawnia się szczególnie przy gwałtownych ruchach.
 

Offline Mortus

Odp: Opóźnienie w symulacji Rigid Body Constraint
« Odpowiedź #2 dnia: 04.12.2018 12:18:37 »
Prawda jest taka, że też na początku myślałem, że to jest kwestia tych dwóch parametrów. Sęk w tym, że nawet po ustawieniu ich na maksymalne możliwe wartości problem wciąż występuje.
Wypalać też próbowałem, ale opóźnienie i tak zostawało.
Bardzo prawdopodobne jest, że opóźnienie wynika z hierarchii obiektów i zdaje sobie z tego sprawę. Sęk w tym, że nie bardzo jest to jak obejść. Docelowo kolczyk będzie musiał być sparentowany do kości, nie do mesha. Pojedyncza kość nie może mieć fizyki Rigid Body, nie może też być wybrana jako cel dla Rigid Body Constraint (jedynie cały szkielet). Stąd konieczność podpięcia najpierw jednego obiektu, na którym będzie "zawieszony" kolczyk, a potem drugiego, który będzie sobie dyndał. No i się tworzy łańcuch obiektów, który nie bardzo jest jak skrócić.

Cytuj
Warto zaznaczyć, że constraintsy zawsze są trochę gumowate, co ujawnia się szczególnie przy gwałtownych ruchach.

Szczerze mówiąc trochę kicha w takim razie.

Tak czy siak, jeśli chodzi o kolczyk, udało mi się jako-tako rozwiązać problem. Działa to mniej więcej tak: cała hierarchia podpiętych obiektów zostaje jak była. Czyli mamy jeden obiekt robiący za cel dla Rigid Body Constraint (w tym wypadku Torus.001), i drugi - dyndający sobie i symulujący właściwą fizykę (Torus.002). Oprócz tego dochodzi dodatkowa kość, do której podpięty jest docelowy mesh kolczyka. Kość ma modyfikator IK, a jako cel ustawiony obiekt Torus.002. Symulacja dalej działa z opóźnieniem, ale wizualnie wszystko wygląda tak, jak powinno. Nawet jeśli przy szybkim ruchu głową obiekt Rigid Body wyleci poza swój zakres ruchu, to kość wizualnie sterująca kolczykiem wciąż będzie na swoim miejscu, jedynie obracając się w kierunku docelowego obiektu. Mam nadzieję, że w miarę wiadomo o co mi chodzi.

To jednak tyczy się tylko symulacji Rigid Body, w której obiekt jedynie się obraca. Potrzebuję jeszcze jakiegoś rozwiązania dla obiektu, który ma też pewną swobodę w przesuwaniu się. Zobaczymy, może uda mi się coś wykombinować i w tym przypadku.

 


* Zaloguj




* Losowy obrazek

SOL 2ER0020

Wyświetleń: 144
Autor: clayqb
w: q7