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 wchodzić w realistyczne interakcje z otoczeniem. Proces tworzenia realistycznego ruchu dla postaci często wymaga wielu iteracji i drobnych poprawek różnych stawów. Dzięki IK możesz pozować i animować wiele części postaci, dostosowując lub zmieniając tylko jeden obiekt.

Ta technika animacji może dostarczyć rozwiązań w następujących przykładach:

Chwyć i ustaw rękę postaci, automatycznie dostosowując powiązane kończyny, takie jak nadgarstek, łokieć i ramię.
Spraw, aby stopy postaci wchodziły w realistyczne interakcje 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 programowo zastosować IK do wszystkich postaci, aby stworzyć realistyczny ruch i interakcje w twojej grze.

Podczas dodawania IKControl, poprawnie ustaw wymagane właściwości, aby uniknąć nieoczekiwanych i nienaturalnych wyników animacji. Jak w przypadku każdej animacji, przetestuj swoje IKControls, aby upewnić się, że osiągniesz pożądane zachowanie.

Wymagane właściwości

Podczas dodawania IKControl do Humanoid lub AnimationController twojej postaci, 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ę opcji zachowania. Typowe typy zachowań to Position lub Transform.
EndEffectorObiekt BasePart lub Bone w twoim rig postaci, który śledzi w kierunku Target. Na przykład, możesz ustawić kość LeftHand jako EndEffector, aby sięgnąć 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.
ChainRootDefiniuje łańcuch BaseParts lub Bones, na które wpływa IKControl. Wszystkie połączone części między ChainRoot a EndEffector są dotknięte przez IKControl przy użyciu zdefiniowanego typu zachowania.

Na przykład, jeśli LeftHand twojej postaci jest ustawiona jako Target, możesz zastosować IK do całego lewego ramienia, ustawiają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 dodać i wprowadzać zmiany w IKControl podczas testu gry, aby szybko sprawdzić, jak różne właściwości wpływają na ruchy postaci.

Aby szybko przetestować swoje IKControl, używając Attachment jako celu:

  1. Z mezzaniny Studio, rozpocznij test gry.

  2. W oknie Eksplorator przejdź do Workspace → model twojego użytkownika Model. Ta instancja Model jest nazwana tak, jak twoje aktualne konto Roblox.

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

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

  5. W oknie Eksplorator wybierz ikonę ⊕ obok Humanoid twojej postaci i dodaj IKControl.

  6. Wybierz IKControl i ustaw następujące wartości właściwości w oknie Właściwości:

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

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

Dodaj ograniczenia

Możesz użyć Constraints, aby ograniczyć, jak stawy mogą się poruszać, gdy sięgają do celu. Ograniczenia mogą zapewnić, że stawy, takie jak łokcie i kolana, zginają się naturalnie, lub aby mechaniczne stawy obracały się w określonej orientacji.

Łokieć zgina się nienaturalnie
Łokieć zgina się poprawnie

Aby dodać ograniczenia do swojej postaci za pomocą IKControl, twój 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 obrotu.

Łokieć

Postacie z rigami R15 już zawierają 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 dodania ograniczenia, musisz również dodać dodatkowe załączniki podrzędne do LeftElbowRigAttachment każdej części, aby określić, wokół której osi łokieć może się obracać.

Aby dodać HingeConstraint i załączniki podrzędne:

  1. W oknie Eksplorator zlokalizuj LeftLowerArm swojego modelu i kliknij przycisk ⊕.

  2. Dodaj HingeConstraint o nazwie LeftElbowConstraint.

  3. W oknie 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łaściwość LeftElbowConstraint.Attachment0 na ten nowy załącznik.

  4. W oknie Eksplorator przejdź do 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 z ograniczeniem łokcia, IKControl może nadal generować nerealistyczne pozy z nadgarstkami.

Nadgarstek zgina się nienaturalnie w pewnych orientacjach

Możesz to poprawić, dodając BallSocketConstraint, aby ograniczyć obrót nadgarstka. Chociaż jest to podobne do procesu dodawania HingeConstraint do łokcia, możesz użyć właściwości LimitsEnabled na tym ograniczeniu, aby dalej kontrolować zakres ruchu nadgarstka.

Aby dodać BallSocketConstraint dla nadgarstka:

  1. W oknie Eksplorator zlokalizuj LeftHand swojego modelu i kliknij przycisk ⊕.
    1. Dodaj BallSocketConstraint o nazwie LeftWristConstraint.
  2. Zlokalizuj 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. Zlokalizuj 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 oknie Eksplorator wybierz LeftWristConstraint.
  5. W oknie Właściwości ustaw następujące:
    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 tyle, ile nadgarstek powinien być w stanie zgiąć się.
  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.

Podczas wybierania LeftWristConstraint pojawia się zielony stożek wizualizujący zakres ruchu nadgarstka.

Po ustawieniu ograniczenia przetestuj IKControl, wskazując ręką 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.