Odwrotna kinematyka

*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.

Odwrotna kinematyka (IK) to powszechna technika animacji komputerowej, aby w sposób efektywny sprawiać, że postacie poruszają się i interakują realistycznie ze swoim środowisko.Proces tworzenia realistycznego ruchu dla postaci często wymaga wielu powtórzeń i drobnych korekt różnych stawów.Dzięki IK możesz pozać i animować wiele części postaci, pozycjonując lub dostosowując pojedynczy obiekt.

Ta technika animacji może zapewnić rozwiązania dla następujących przykładów:

Chwyć i połóż rękę postaci, automatycznie dostosowując powiązane kończyny, takie jak nadgarstek, łokieć i ramię.
>

Zrób, aby stopy postaci interakcjonowały realistycznie na różnych powierzchniach i nachyleniach.
>

Chwyć i przesuń pojedynczy celowy obiekt, aby szybko stworzyć realistyczne interakcje z twoją postacią i rekwizytami.

IKControl

Możesz użyć IKControl, aby proceduralnie dodać IK do swoich postaci w ramach zewnętrznego edytora animacji.Studio umożliwia programatyczne zastosowanie IK do wszystkich postaci, takich jak R15, Rthro i niestandardowe importowane skórki, aby stworzyć realistyczne ruchy i interakcje w swoim doświadczeniu.

Gdy dodajesz IKControl, ustaw właściwości wymagane poprawnie, aby uniknąć nieoczekiwanych i nienaturalnych wyników animacji.Podobnie jak w przypadku wszystkich animacja, testuj swoje IKControls, aby upewnić się, że osiągniesz pożądane zachowanie.

Wymagane właściwości

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

WłaściwośćOpis
TypeOkreśla typ zachowania kontroli IK. Zobacz Enum.IKControlType dla listy opcji zachowania. Pospolite typy zachowań to Position lub Transform .
EndEffectorA BasePart lub Bone w postaci postaci, która śledzi w kierunku Target.Na przykład możesz ustawić kość Lewe ramię jako EndEffector aby dotrzeć do zestawu obiektów doorknoba jako Target.
TargetObiekt, do którego EndEffector dociera lub wskazuje. A Target może być każdy obiekt z pozycją świata.
ChainRootDefiniuje łańcuch BaseParts lub Bones, na który wpływa IKControl.Wszystkie połączone części między ChainRoot a EndEffector są dotknięte przez IKControl używając określony typ zachowania.Na przykład, jeśli lewa ręka twojej postaci jest ustawiona jako Lewe ramię , możesz zastosować IK do całej lewej ręki, ustawiając Lewe ramię na Lewe ramię górne .Aby zastosować IK tylko do części poniżej łokcia, ustaw ChainRoot na Lewej dolnej ręce .

Testuj sterowania IKControls

Możesz dodawać i edytować IKControl programowo lub bezpośrednio za pośrednictwem Explorera.Możesz nawet dodać i wprowadzić zmiany w IKControl podczas testu gry, aby szybko sprawdzić, w jaki sposób różne właściwości wpływają na ruchy postaci.

Aby szybko przetestować swoje IKControl za pomocą Attachment jako celu:

  1. Na zakładce Test w pasku narzędzi wybierz Graj , aby rozpocząć testowanie.

  2. W eksploratorze przełącz się do przestrzeni roboczejModel.Ta instancja Model nazywa się twoim obecnym kontoRoblox.

  3. Kliknij ikonę obok modelu postaci HumanoidRootPart i dodaj załącznik .

  4. Wybierz załącznik i użyj narzędzia Przesuń , aby umieścić obiekt przed twoją postacią w polu widzenia.

  5. W oknie Eksploratora wybierz ikonę obok ikony Humanoid twojej postaci i dodaj IKControl .

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

    1. Typ : Wybierz Transform z menu rozwijanego.
    2. EndEffector : Wybierz Lewe ramię MeshPart.
    3. Cel : Wybierz nowo utworzony obiekt załącznik w Explorerze.
    4. Korzeń łańcucha : Wybierz Lewe górne ramię modelu w Explorerze.

    Właściwości IKControl
    >

    Panel Explorera - Model postaci
    >

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

Dodaj ograniczenia

Możesz użyć Constraints , aby ograniczyć, w jaki sposób stawy mogą się poruszać, osiągając swój cel.Ograniczenia mogą zapewnić, że stawy takie jak łokcie i kolana będą naturalnie się kręcić, lub aby mechaniczne stawy obracały się w określonej orientacji.

Rozginanie łokcia nienaturalnie
>

Prawidłowe skręcanie łokci
>

Aby dodać ograniczenia do twojej postaci za pomocą IKControl , twoje IKControl i ograniczenie musi spełniać następujące warunki:

  • Załączniki odwołane w właściwościach ograniczenia Attachment0 / Attachment1 wiążą się z tymi samymi częściami, co Class.Motor6D``Class.Motor6D.Part0|Part0 / Part1 .
  • Relatywne pozycje Attachment0 / Attachment1 muszą odpowiadać odpowiednim pozycjom CFrames Motor6D / C0 / C1.
  • Ograniczenie i IKControl dzielą tego samego rodzica Model.

Następujące instrukcje opisują proces dodawania HingeConstraint do ograniczenia rotacji łokcia postaci i dodawania BallSocketConstraint do nadgarstka, aby ograniczyć kąt obrotu.

Łokieć

Postacie Roblox R15 już zawierają załączniki w swoich stawach, których możesz użyć do zastosowania ograniczenia łokcia.Dla łokcia oba ramiona: LeweUpperArm i LeftLowerArm zawierają LeftElbowRigAttachment.Wraz z dodaniem ograniczenia musisz również dodać dodatkowe dziecięce załączniki do każdej części LeftElbowRigAttachment, aby określić, na który osi może się obracać łokcie.

Aby dodać HingeConstraint i dziecięce załączniki:

  1. W Explorer znajdź Lewe dolne ramię modelu i kliknij przycisk .

  2. Dodaj ograniczenie zawiasowe z nazwą LeftElbowConstraint.

  3. W przeglądarce przejdź do LeftUpperArm.LeftElbowRigAttachment i dodaj załącznik:

    1. Kliknij przycisk , aby dodać załącznik o nazwie LeftElbowConstraintAttachment0.

    2. W widoku wybierz załącznik i użyj narzędzia Obróć, aby obrócić załącznik, tak aby żółta Pierwsza osi była osią oczekiwanej rotacji ramienia.

    3. Ustaw właściwość LeftElbowConstraint.Attachment0 na to nowe dołączenie.

  4. W Explorer, przejdź do LeftLowerArm.LeftElbowRigAttachment twojego modelu i dodaj załącznik:

    1. Kliknij przycisk i dodaj załącznik z nazwą LeftElbowConstraintAttachment1.
    2. Ustaw właściwość LeftUpperArm.LeftElbowConstraint.Attachment1 na to nowe załączenie.
    3. Skopiuj właściwość LeftElbowConstraintAttachment0.CFrameOrientation i wklej ją jako wartość LeftElbowConstraint.Attachment1.CFrameOrientation .

Przetestuj swój IKControl, aby zweryfikować, że łokieć obraca się tylko wokół osi zawiasu:

Łokcie

Nawet z ograniczeniem łokcia IKControl nadal może wytwarzać nierealistyczne pozy z nadgarstkami.

Łokieć skręca się nienaturalnie przy pewnych orientacjach

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

Aby dodać BallSocketConstraint dla nadgarstka:

  1. W Explorer znajdź Prawą rękę swojego modelu i kliknij przycisk .
    1. Dodaj BallSocketConstraint z nazwą LeftWristConstraint.
  2. Zlokalizuj LeftLowerArm.LeftWristRigAttachment modelu i dodaj załącznik:
    1. Kliknij przycisk i dodaj załącznik z nazwą LeftWristConstraintAttachment0.
    2. W widoku wybierz załącznik i użyj narzędzia Obróć, aby obrócić załącznik, tak aby żółte punkty osi podstawowej wskazywały na palce modelu.
    3. Ustaw właściwość LeftWristConstraint.Attachment0 na nową LeftWristConstraintAttachment0.
  3. Zlokalizuj model LeftHand.LeftWristRigAttachment i dodaj załącznik:
    1. Kliknij przycisk i dodaj załącznik z nazwą 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 tę nową LeftWristConstraintAttachment1 .
  4. W przeglądarce wybierz Ograniczenie lewej ręki .
  5. W edytorze właściwości ustaw obserwuje:
    1. Włącz Ograniczenia włączone .
    2. Ustaw Górny kąt na .To kontroluje, jak dużo może się obrócić osi ograniczenia, a 80 stopni to przybliżona ilość, jaką nadgarstek powinien być w stanie wygiąć.
  6. W zależności od twojej postaci możesz chcieć dostosować kierunek, w którym wskazuje stożek.Możesz to zrobić za pomocą narzędzia Obróć, aby obrócić Przyłączenie0 ograniczenia.

Podczas wyboru ograniczenia nadgarstka lewego , pojawia się zielony stożek, który wizualizuje zakres ruchu nadgarstka.

Po ustawieniu ograniczenia przetestuj IKControl z ręką wskazującą w dół przed postacią, a nadgarstek powinien się obrócić i odchylić bardziej realistycznie.