Unity3D Leap Motion - трансформируйте руку в ту же позицию и вращение, что и другая - PullRequest
0 голосов
/ 08 апреля 2019

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

В настоящее время я использую следующий код для его визуализации:

Hand temp = new Hand().CopyFrom(averaged[key2].LeftHand);
temp.SetTransform(averaged[key1].LeftHand.PalmPosition.ToVector3(),averaged[key1].LeftHand.Rotation.ToQuaternion());

foreach (Finger f in temp.Fingers)
{
  foreach (Bone b in f.bones)
  {
    Debug.DrawLine(b.PrevJoint.ToVector3(),
      b.NextJoint.ToVector3(),Colors.OrangeCrayola);
  }
}

Проблема в том, что вращение рук не выстраивается должным образом.

1 Ответ

1 голос
/ 01 июля 2019

Выравнивание рук находится в сценарии https://github.com/leapmotion/UnityModules/blob/feat-multi-device/Assets/LeapMotion/Core/Scripts/Utils/MultideviceAlignment.cs

Прикрепите его к тому же объекту, что и один из сценариев вашего поставщика услуг, и назначьте collection и решить keybinds.Это выровняет различные прыжки, основанные на правой руке, до тех пор, пока они видны им обоим.Сначала нужно нажать кнопку сбора, а затем кнопку решения.

...