Inverse Kinematics (IK) jest techniką komputerowej animacji, aby skutecznie przesuwać i wchodzić w interakcję z środowisko. Proces tworzenia realistycznego ruchu dla postaci często wymaga wiele powtórzeń i niewielkich dostosowań różnych stawów. Z IK możesz pozyować i animować wiele części postaci, poprzez pozyowanie lub dostosowanie pojedynczego obiektu.
Technika animacji może zapewnić rozwiązania następującym przykładom:
IKontrola
Możesz użyć IKControl , aby proceduralnie dodać IK do swoich zestawów postaci poza Animatorem Animacji. Studio umożliwia prawidłowe dodawanie IK do wszystkich postaci, takich jak R15, Rthro i importowane postacie, aby stworzyć realistyczne ruchy i interakcje w swoim doświadczeniu.
Podczas dodawania IKControl, ustaw właściwości Class.IKControls poprawnie, aby uniknąć nieoczekiwań i nienaturalnych wyników animacji. Jak w przypadku wszystkich animacja, testuj swoje IKControls, aby upewnić się, że osiągniesz pożądany efekt.
Wymagane właściwości
Podczas dodawania IKControl do Humanoid lub AnimationController Twojego postaci, musisz ustawić następujące wymagane właściwości, aby włączyć IK:
Własność | Opis |
---|---|
Type | Określa typ zachowania sterowania IK. Zobacz Enum.IKControlType dla listy opcji zachowania. Typy zachowania są powszechne Position lub Transform. |
EndEffector | A BasePart lub Class.Bone w swoim charakterystycznym raku, który śledzi ku Target . Na przykład możesz ustawić lewą kość jako 1> kość końca1> do osiągnięcia |
Target | Przedmiot, do którego odnosi się EndEffector, może być dowolnym obiektem z lokalizacją na świecie. |
ChainRoot | Definiuje łańcuch Class.BasePart|Class |
Testowanie IKControls
Możesz łączyć i modyfikować IKControl programowo lub bezpośrednio poprzez Explorer. Możesz nawet łączyć i modyfikować IKControl podczas testu gry, aby szybko sprawdzić, jak różne właściwości wpływają na ruchy postaci.
Aby szybko przetestować swoją IKControl używając Attachment jako celu:
W zakładce Testy wybierz Graj , aby rozpocząć test Gry.
W Explorerze, przeglądaj się do Pracownika → twój użytkownik's Class.Model . Ta instancja Model jest nazywana jako twój obecny konto Roblox.
Kliknij na ikone ⊕ obok modelu postaci HumanoidRootPart i dodaj załącznik .
Wybierz Załącznik i użyj narzędzia Przenieś, aby pozycjonować obiekt przed swoim postacią w oknie widoku.
W oknie Explorer , wybierz ikone ⊕ obok znaku Humanoid swojego postaci i dodaj 1> IKControl1>.
Wybierz IKControl i ustaw następujące wartości w Properties panelu:
- Wpisz : Wybierz Transform z listy.
- Cele : Wybierz nowo utworzony przedmiot Załącznik w Explorerze.
Twój lewy ramię powinien teraz dotrzeć do celu Attachment. Możesz eksperymentować z przesuwaniem Attachment lub edytowaniem IKControl właściwości, aby uzyskać różne wyniki.
Dodawanie ograniczeń
Możesz użyć Constraints , aby ograniczyć, jak ruchy mogą się zmieniać, gdy dotrą do celu. Konstrukcje mogą zapewnić, że ruchy, takie jak łokcie i kolana, będą się naturalnie składać, lub aby zrobić, że ruchy kojące będą kręcić się w określonym kierunku.
Aby dodać ograniczenia do swojego postaci używając IKControl, twoje IKControl i ograniczenie muszą spełniać następujące warunki:
- Załączniki odniesione w Attachment0 / Attachment1 właściwości przywiązują się do tych samych części, co Motor6D1> Class.Motor6D.Part0|Part01>
- Relatywne pozycje Attachment0 / Attachment1 muszą równać się odpowiednimi pozycjami Motor6D1> Class.Motor6D.C0|C01> / 4> Class.Motor6D.C1
- Ograniczenie i IKControl dzielą się tą samą matką Model .
Poniższe instrukcje opisują proces dodawania HingeConstraint , aby ograniczyć obrót kciuka i dodania BallSocketConstraint do nadgarstka, aby ograniczyć kąt obrotu.
Staw
Postacie Roblox R15 już wbudowują załączniki w ich łączach, które możesz użyć do zastosowania elastyczności kciuka. Dla kciuka w obu LeftUpperArm i LeftLowerArm znajdują się LeftElbowRigAttachment . Wraz z dodaniem ograniczenia, musisz również dodać dodatkowe załączniki dziecka do każdej części <
Aby dodać HingeConstraint i załączniki dzieci:
W Exploratorze, lokalizuj Lewy Dolny Ramię swojego modelu i kliknij przycisk ⊕ .
Dodaj HingeConstraint z imieniem LeftElbowConstraint .
W Explorer, przeglądaj do LewoUpperArm.LeftElbowRigAttachment i dodaj załącznik:
Kliknij przycisk ⊕ , aby dodać Załącznik z imieniem LeftElbowConstraintAttachment0.
W oknie widoku wybierz załącznik i użyj narzędzia Obróć, aby obrócić załącznik, aby żółty Przycisk głównej osi był osią twojego kciuka.
Ustaw właściwość LeftElbowConstraint.Attachment0 na ten nowy załącznik.
W Explorerze, przeglądaj do LeftLowerArm.LeftElbowRigRotation dodaj załącznik:
- Kliknij przycisk ⊕ i dodaj Załącznik z imieniem LeftElbowConstraintAttachment1.
- Ustaw właściwość LeftUpperArm.LeftElbowConstraint.Attachment1 na ten nowy załącznik.
- Kopiuj właściwość LeftElbowConstraintAttachment0.CFrameOrientation i wklej ją jako wartość LeftElbowConstraint.Attachment1.CFrameOrientation .
Sprawdź swój IKControl, aby zweryfikować, czy dolarki tylko kręcą się wokół swojej osi:
Bransoletki
Nawet przy użyciu ograniczenia kciuk, IKControl nadal może tworzyć nierealistyczne pozy z nadgarstkami.
Możesz to poprawić, dodając BallSocketConstraint , aby ograniczyć rotację nadgarstka. Podczas gdy to jest podobne do procesu dodawania HingeConstraint do kciuka, możesz użyć właściwości LimitsEnabled na tym kciuka, aby lepiej kontrolować zakres ruchu nad
Aby dodać BallSocketConstraint dla nadgarstka:
- W Exploratorze, lokalizuj swojego modelu LeweRęko i kliknij przycisk ⊕ .
- Dodaj BallSocketConstraint z imieniem LeftWristConstraint.
- Lokalizuj LeftLowerArm.LeftWristRigAttachment swojego modelu i dodaj załącznik:
- Kliknij przycisk ⊕ i dodaj Załącznik z imieniem LeftWristConstraintAttachment0.
- W oknie widoku wybierz załącznik i użyj narzędzia Obróć , aby obrócić załącznik, aby żółte kąty główne kciuk w modelu.
- Ustaw właściwość LeftWristConstraint.Attachment0 na nową LeftWristConstraintAttachment0.
- Lokalizuj LeftHand.LeftWristRigAttendance swojego modelu i dodaj załącznik:
- Kliknij przycisk ⊕ i dodaj Załącznik z imieniem LeftWristConstraintAttachment1.
- Kopiuj właściwość LeftWristConstraintAttachment0.CFrameOrientation i wklej ją jako właściwość LeftWristConstraintAttachment1.CFrameOrientation .
- Ustaw właściwość LeftWristConstraint.Attachment1 na ten nowy LeftWristConstraintAttachment1 .
- W Explorerze, zaznacz LeftWristConstraint .
- W edytorze właściwości ustaw obserwuje:
- Włącz OgraniczeniaWłączone .
- Ustaw KątPodstawowy na 80 . To kontroluje, ile kąt ograniczenia może się obrócić, a 80 stopni to około tego, ile nadgarstka może się skłonić.
- W zależności od swojego postaci możesz chcieć dostosować kierunek, w którym apteka świeci. Możesz to zrobić, używając narzędzia Obróć, aby obrócić Załącznik0.
Podczas wyboru LeftWristConstraint pojawia się zielony kształt, który wizualizuje zakres ruchu nadgarstka.
Z ustawionym ograniczeniem, testuj IKControl za pomocą ręki wskazującej w kierunku postaci i paska powinien kręcić się i biec bardziej realistycznie.