Среда, 27 Ноября 2024, 04:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как найти Rotator между векторами?
DimanjyДата: Среда, 19 Сентября 2012, 14:09 | Сообщение # 1
был не раз
Сейчас нет на сайте
Люди добрые, знакомые с UnrealScript! Обращаюсь к вам за помощью.
Задача следующая: Есть текущий вектор положения персонажа, заданный координатной системой сверху на рисунке, и есть вектор нормали поверхности, также заданный координатной системой снизу на рисунке. Эти координатные системы в режиме отладки рисую следующим образом:

Code
DrawDebugCoordinateSystem( Pawn.Location, Pawn.Rotation, 10.0f);
DrawDebugCoordinateSystem( HitLocation, Rotator(HitNormal), 10.0f);




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

Решение, скорее всего, очень простое. Просто я пока только знакомлюсь с функционалом UDK и не знаю назначения всех функций для работы с ротаторами, векторами и т.д.
Заранее благодарен!

Добавлено (19.09.2012, 14:09)
---------------------------------------------
Решил через проекцию вектора X на плоскость XnYn и последующее достроение своих собственных осей через векторное произведение.

PS: Вообще это была задача постановки стоп на поверхности с применением инверсной кинематики (IK). Подробнее расписал в своем блоге, может кому пригодится: Инверсная кинематика в UDK

Сообщение отредактировал Dimanjy - Пятница, 14 Сентября 2012, 19:42
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг