Kinematyka odwrotna

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Kinematyka odwrotna (IK) to powszechna technika w animacji komputerowej, która efektywnie pozwala postaciom poruszać się i realistycznie wchodzić w interakcje z otoczeniem. Proces tworzenia realistycznego ruchu postaci często wymaga wielu iteracji i drobnych poprawek różnych stawów. Dzięki IK możesz ustawiać i animować wiele części postaci, manipulując lub dostosowując jeden obiekt.

Ta technika animacji może dostarczać rozwiązania w następujących przykładach:

Chwyć i ustaw rękę postaci, jednocześnie automatycznie dostosowując związane z nią kończyny, takie jak nadgarstek, łokieć i ramię.
Spraw, aby stopy postaci realistycznie interagowały z różnymi powierzchniami i nachyleniami.
Chwyć i przesuń pojedynczy obiekt docelowy, aby szybko stworzyć realistyczne interakcje z postacią i rekwizytami.

IKControl

Możesz użyć IKControl, aby proceduralnie dodać IK do rigów postaci poza Animatorem. Studio pozwala na programowe stosowanie IK do wszystkich postaci, takich jak R15, Rthro i niestandardowo importowane postacie z siatkami, aby stworzyć realistyczny ruch i interakcje w Twoim doświadczeniu.

Dodając IKControl, poprawnie ustaw wymagane właściwości, aby uniknąć nieprzewidzianych i nienaturalnych wyników animacyjnych. Jak w przypadku każdej animacji, przetestuj swoje IKControls, aby upewnić się, że osiągnęłeś zamierzony efekt.

Wymagane właściwości

Dodając IKControl do Humanoid swojej postaci lub AnimationController, musisz ustawić następujące wymagane właściwości, aby włączyć IK:

WłaściwośćOpis
TypeOkreśla typ zachowania kontrolera IK. Zobacz Enum.IKControlType, aby uzyskać listę dostępnych opcji zachowania. Najczęściej używane typy zachowań to Position lub Transform.
EndEffectorObiekt BasePart lub Bone w rigach Twojej postaci, który śledzi kierunek do Target. Na przykład, możesz ustawić kość LeftHand jako EndEffector, aby dotrzeć do obiektu klamki ustawionego jako Target.
TargetObiekt, do którego EndEffector sięga lub wskazuje. Target może być dowolnym obiektem z pozycją w świecie.
ChainRootOkreśla łańcuch BaseParts lub Bones, które są wpływne przez IKControl. Wszystkie połączone części między ChainRoot a EndEffector są wpływane przez IKControl zgodnie z określonym typem zachowania.

Na przykład, jeśli LeftHand Twojej postaci jest wyznaczone jako Target, możesz zastosować IK do całej lewej ręki, ustalając ChainRoot na LeftUpperArm. Aby zastosować IK tylko do części poniżej łokcia, ustaw ChainRoot na LeftLowerArm.

Testowanie IKControls

Możesz dodać i edytować IKControl programowo lub bezpośrednio przez Eksplorator. Możesz nawet dodawać i wprowadzać zmiany do IKControl podczas testu gry, aby szybko sprawdzić, jak różne właściwości wpływają na ruchy postaci.

Aby szybko przetestować swój IKControl, używając Attachment jako celu:

  1. Z mezzaniny Studio, rozpocznij test gry.

  2. W Eksploratorze przejdź do Workspace → model użytkownika Model. Instancja tej Model jest nazywana tak, jak Twoje aktualne konto Roblox.

  3. Kliknij ikonę obok HumanoidRootPart modelu postaci i dodaj Attachment.

  4. Wybierz Attachment i użyj narzędzia Przesuń, aby umieścić obiekt przed postacią w widoku.

  5. W oknie Eksplorator, wybierz ikonę obok Humanoid swojej postaci i dodaj IKControl.

  6. Wybierz IKControl i ustaw poniższe wartości właściwości w oknie Właściwości:

    1. Type: Wybierz Transform z rozwijanego menu.
    2. EndEffector: Wybierz LeftHand MeshPart swojego modelu w Eksplorator.
    3. Target: Wybierz nowo utworzony obiekt Attachment w Eksplorator.
    4. ChainRoot: Wybierz LeftUpperArm MeshPart swojego modelu w Eksplorator.
    Właściwości IKControl
    Eksplorator - Model postaci

    Lewa ręka Twojej postaci powinna teraz sięgać do docelowego Attachment. Możesz eksperymentować z przesuwaniem Attachment lub edytowaniem właściwości IKControl, aby uzyskać różne wyniki.

Dodawanie ograniczeń

Możesz użyć Constraints, aby ograniczyć, w jaki sposób stawy mogą się poruszać, gdy sięgają do celu. Ograniczenia mogą zapewnić, że stawy, jak łokcie i kolana, zginają się w naturalny sposób, albo sprawić, aby stawy mechaniczne obracały się w określonej orientacji.

Łokieć zgina się nienaturalnie
Łokieć zgina się prawidłowo

Aby dodać ograniczenia do swojej postaci przy użyciu IKControl, Twoja IKControl i ograniczenie muszą spełniać następujące warunki:

Poniższe instrukcje opisują proces dodawania HingeConstraint, aby ograniczyć obrót łokcia postaci, oraz dodawania BallSocketConstraint do nadgarstka, aby ograniczyć kąt rotacji.

Łokieć

Postacie Roblox R15 mają już załączniki w swoich stawach, które możesz wykorzystać do zastosowania ograniczenia łokcia. Dla łokcia zarówno LeftUpperArm, jak i LeftLowerArm zawierają LeftElbowRigAttachment. Oprócz dodawania ograniczenia, musisz również dodać dodatkowe załączniki potomne do każdego LeftElbowRigAttachment, aby określić, wokół jakiej osi łokieć może się obracać.

Aby dodać HingeConstraint i załączniki potomne:

  1. W Eksplorator znaleźć LeftLowerArm swojego modelu i kliknąć ⊕ przycisk.

  2. Dodaj HingeConstraint o nazwie LeftElbowConstraint.

  3. W Eksplorator, przejdź do LeftUpperArm.LeftElbowRigAttachment i dodaj załącznik:

    1. Kliknij ⊕ przycisk, aby dodać Attachment o nazwie LeftElbowConstraintAttachment0.

    2. W widoku wybierz załącznik i użyj narzędzia Obróć, aby obrócić załącznik tak, aby żółta PrimaryAxis była osią oczekiwanego obrotu łokcia.

    3. Ustaw własność LeftElbowConstraint.Attachment0 na ten nowy załącznik.

  4. W Eksplorator, znajdź LeftLowerArm.LeftElbowRigAttachment swojego modelu i dodaj załącznik:

    1. Kliknij ⊕ przycisk i dodaj Attachment o nazwie LeftElbowConstraintAttachment1.
    2. Ustaw właściwość LeftUpperArm.LeftElbowConstraint.Attachment1 na ten nowy załącznik.
    3. Skopiuj właściwość LeftElbowConstraintAttachment0.CFrameOrientation i wklej ją jako wartość LeftElbowConstraint.Attachment1.CFrameOrientation.

Przetestuj swoje IKControl, aby zweryfikować, że łokieć obraca się tylko wokół swojej osi zawiasowej:

Nadgarstki

Nawet przy ograniczeniu łokcia, IKControl może nadal produkować nerealistyczne postawy z nadgarstkami.

Nadgarstek zgina się nienaturalnie w pewnych orientacjach

Możesz to poprawić, dodając BallSocketConstraint, aby ograniczyć rotację nadgarstka. Chociaż jest to podobny proces do dodawania HingeConstraint do łokcia, możesz użyć właściwości LimitsEnabled w tym ograniczeniu, aby jeszcze bardziej kontrolować zakres ruchu nadgarstka.

Aby dodać BallSocketConstraint dla nadgarstka:

  1. W Eksplorator znajdź LeftHand swojego modelu i kliknij ⊕ przycisk.
    1. Dodaj BallSocketConstraint o nazwie LeftWristConstraint.
  2. Znajdź LeftLowerArm.LeftWristRigAttachment swojego modelu i dodaj załącznik:
    1. Kliknij ⊕ przycisk i dodaj Attachment o nazwie LeftWristConstraintAttachment0.
    2. W widoku wybierz załącznik i użyj narzędzia Obróć, aby obrócić załącznik tak, aby żółta PrimaryAxis wskazywała w kierunku palców modelu.
    3. Ustaw właściwość LeftWristConstraint.Attachment0 na nowy LeftWristConstraintAttachment0.
  3. Znajdź LeftHand.LeftWristRigAttachment swojego modelu i dodaj załącznik:
    1. Kliknij ⊕ przycisk i dodaj Attachment o nazwie LeftWristConstraintAttachment1.
    2. Skopiuj właściwość LeftWristConstraintAttachment0.CFrameOrientation i wklej ją jako właściwość LeftWristConstraintAttachment1.CFrameOrientation.
    3. Ustaw właściwość LeftWristConstraint.Attachment1 na ten nowy LeftWristConstraintAttachment1.
  4. W Eksplorator, wybierz LeftWristConstraint.
  5. W oknie Właściwości ustaw następujące dane:
    1. Włącz LimitsEnabled.
    2. Ustaw UpperAngle na 80. To kontroluje, jak bardzo oś ograniczenia może się obracać, a 80 stopni to mniej więcej, jak bardzo nadgarstek powinien być w stanie się zginać.
  6. W zależności od Twojej postaci, możesz chcieć dostosować kierunek, w którym wskazuje stożek. Możesz to zrobić, używając narzędzia Obróć, aby obrócić Attachment0 ograniczenia.

Gdy wybierasz LeftWristConstraint, pojawi się zielony stożek, wizualizujący zakres ruchu nadgarstka.

Po ustawieniu ograniczenia, przetestuj IKControl, trzymając rękę skierowaną w dół przed postacią, a nadgarstek powinien obracać się i zginać bardziej realistycznie.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.