Unity 6.3
0 онлайн 76 гостей 3 в системе
Вход

Animator.SetIKRotation

Declaration

public void SetIKRotation(AvatarIKGoal goal, Quaternion goalRotation);

Параметры

Параметр Описание
Цель AvatarIKGoal, который установлен.
goalRotation Вращение цели в мировом пространстве, которое должно следовать мировым координатам Unity (см. ниже).

Описание

Задает вращение цели IK.

Цель IK — это заданные положение и вращение определённой части тела. Unity рассчитывает, как переместить эту часть тела из исходного состояния к цели. Исходным состоянием могут быть, например, текущие положение и вращение, полученные из анимации.

Функция задаёт вращение цели IK в мировом пространстве. Оно должно соответствовать принятой в Unity системе мировых координат: • X-Axis параллельна ладони (или подошве стопы) и направлена в сторону правого края кисти (или стопы).
Y-Axis перпендикулярна тыльной стороне кисти (или верхней стороне стопы) и направлена вверх.
Z-Axis параллельна ладони (или подошве стопы) и направлена вперёд, к пальцам руки (или ноги).


Ориентацию костей в позе скелета аватара также рекомендуется согласовать с принятой в Unity системой мировых координат. Если скелет использует другую систему, вращение соответствующей кости GameObject может отличаться от вращения цели IK.

Значение веса определяет степень влияния вращения цели IK на исходное вращение. Метод SetIKRotationWeight задаёт вес от 0 до 1: 0 означает отсутствие влияния, а 1 — полное влияние.

В следующем примере показано использование методов SetIKRotation и SetIKRotationWeight.

using UnityEngine;

public class Example : MonoBehaviour { Transform objToAimAt; Animator animator;

void Start() { animator = GetComponent<Animator>(); }

void OnAnimatorIK(int layerIndex) { Quaternion handRotation = Quaternion.LookRotation(objToAimAt.position - transform.position); animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1.0f); animator.SetIKRotation(AvatarIKGoal.RightHand, handRotation); } }

Дополнительные ресурсы: ,SetIKRotationWeight,, ,SetIKPosition,.