Получение угла поворота между двумя актерами - Unreal Blueprints - PullRequest
0 голосов
/ 25 июня 2019

Я работаю над VR-игрой в Unreal Engine 4, используя Blueprints.

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

Я полагаю, что это может быть способ сделать это:

  • Вычтите местоположение цели из местоположения орудия.
  • Получите компонент рыскания этого вектора, указывающего из пистолета как источник
  • Вычтите текущее отклонение направления пушки от этого компонента отклонения, чтобы получить угол поворота, который должен повернуть пользователь, чтобы добраться до цели.

За исключением того, что я не совсем уверен, как это выполнить. Я экспериментировал (как видно на скриншоте ниже), но не делал правильных операций. Есть мысли?

Спасибо!

Unreal Engine 4 screenshot

1 Ответ

2 голосов
/ 25 июня 2019

Более элегантное и надежное решение - использовать преобразование мира актера оружия для вычисления относительного поворота к объекту:

  1. Получите преобразование мира оружия. Вращение должно указывать в направлении вектора вперед. Вы можете сделать преобразование с его местоположением и вектором вперед, но, вероятно, компонентное преобразование будет работать.
  2. Используйте операцию InverseTransformLocation для этого преобразования, где в качестве другого параметра указано местоположение цели. Это создает вектор, который является местоположением цели в пространстве орудия
  3. Получите вращение этого вектора с помощью операции RotationFromXVector .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...