Как ограничить поворот ступни (IK)?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как ограничить поворот ступни (IK)?

Сообщение Zimaell 21 июн 2023, 21:33

При постановке ноги согласно нормали нога не всегда выглядит реалистично, иногда очень сильно загибается.
Как установить ограничение поворота чтобы нога не сильно загибалась?
На данный момент поворот у меня осуществляется так

Синтаксис:
Используется csharp
private void SetFootRot(){
      LFRotationIK = animator.GetIKRotation(AvatarIKGoal.LeftFoot);
      LFRotationIKTemp = Quaternion.Lerp(LFRotationIKTemp, GetFootRotate(LFNormal) * LFRotationIK, Time.fixedDeltaTime * 15f);
      LFRotationIK = LFRotationIKTemp;
      animator.SetIKRotation(AvatarIKGoal.LeftFoot, LFRotationIK);
      // также и правая нога
      }
private Quaternion GetFootRotate(Vector3 normal){
      Vector3 rotAxis = Vector3.Cross(Vector3.up, normal);
      float angle = Vector3.Angle(Vector3.up, normal);
      return Quaternion.AngleAxis(angle, rotAxis);
      }
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45

Re: Как ограничить поворот ступни (IK)?

Сообщение Alkos26Rus 21 июн 2023, 23:09

Синтаксис:
Используется csharp
animator.SetIKRotation(AvatarIKGoal.LeftFoot,Quaternion.Euler(Mathf.Clamp(LFRotationIK.eulerAngles.x,-45,45),LFRotationIK.eulerAngles.y,LFRotationIK.eulerAngles.z));
 


Что то вроде того наверно, по оси правда какой ограничивать у тебя не знаю, тут по Х, но это чисто в теории, работает или нет хз
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Как ограничить поворот ступни (IK)?

Сообщение Zimaell 22 июн 2023, 00:00

Alkos26Rus писал(а):
Синтаксис:
Используется csharp
animator.SetIKRotation(AvatarIKGoal.LeftFoot,Quaternion.Euler(Mathf.Clamp(LFRotationIK.eulerAngles.x,-45,45),LFRotationIK.eulerAngles.y,LFRotationIK.eulerAngles.z));
 


Что то вроде того наверно, по оси правда какой ограничивать у тебя не знаю, тут по Х, но это чисто в теории, работает или нет хз

задумку понял, блоки работают, только осталось подобрать нужные значения, почему-то они не совпадают со значениями поворота ноги, в том плане что я для теста зажал в диапазоне -1,1 а нога имеет повороты 70,3,2 и т.д, это с учётом что применены ограничения, да и визуально видно что поворот зажат, немного не понял почему значения не совпадают...
Zimaell
UNIверсал
 
Сообщения: 474
Зарегистрирован: 04 июл 2020, 18:45


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24