Wpis z mikrobloga

Poratuje ktoś dobrym tutorialem na temat IK w Unity 3D?

Nie mogę znaleźć czegoś, co by również pokazało jak połączyć to z interakcją gracza (w sensie, że gracz może sterować postacią, która zamiast animacji używa IK - chyba, że takie postacie grywalne trzeba połączyć z animacjami i z IK?)

I jeśli używamy IK to musimy napędzać postać poprzez RigidBody? Czy może to też być zwykły CharacterController?

Interesuje mnie IK bo wkurza mnie to, że np. do nie wszystkich broni mam poprawną animacje trzymania, a z IK (z tego co wiem) jest o wiele łatwiej to ogarnąć, jeśli możemy dowolnie zmienić położenie rąk na broni (chociaż właśnie nie wiem jak go ogarnąć xd wiem że do ramion można przypisać target i ręka będzie się za tym targetem poruszać - ale jak mam wtedy poprzez kod zdefiniować, aby ręce płynnie poruszały się za targetem? Użyć animacji dla tych targetów? Tylko co jeśli gracz będzie chciał coś podnieść? W jaki sposób mam zdefiniować w Animacji gdzie znajduje się obiekt, po który sięga gracz?)

#unity3d
#unity
#csharp
#programowanie
  • 3
@mamniciwszystko: No w skrócie sterujesz pozycja dłoni i jej rotacją w przestrzeni a pozostałe kosci się układaja zgodnie ze swoboda ruchów. I tak musisz gdzieś zawiesić broń w powietrzu, wiec najcześciej stosuje się to do róznych broni które sie trzymanych oburącz. W jedną dłoń wkładasz broń a druga rękę przyklejasz do punktu na broni przy pomocy IK. Można też robić interackje przy przedmiotach np otwieranie lodówki/szafki. Interpolujesz pozycje ręki do pozycji
@zibizz1: konkretnie wyjaśniłeś.
Tylko zostało jeszcze jedno pytanie:

Wiem już jak "skonfigurować kości" pod Rig, aby poruszanie kończynami po prostu działało - znalazłem też tutorial dotyczący interakcji z obiektami ale nie wiem jeszcze jak poruszać się po mapie postacią, która jest "podpięta" pod IK - czy poruszanie postacią powinno odbywac się przez RigidBody? Czy wystarczy sam CharacterController (w co wątpię)?

Czy jednak to nie jest takie proste i prócz napędzania postaci,
@mamniciwszystko: IK nie ma nic wpsólnego z fizyką tylko z kinematyką. Na postać nie działają siły, grawitacja itp.
Postać może się poruszać kodem(CharacterController), przesuwasz obiekt
albo animacją(przesuniecie wynika z tego jak obiekt przesuwa sie w animacji - root motion)
Jesli masz rigidbody(juz nie pamieta mczy CharacterController ma w sobie wbudowane) to zaznaczasz w formie kinematik i służy jedynei do tego żeby to nie był static collider i żeby kolizje wykrywac poprawnie