Определить позицию плеча игрока

Dragokas

Добрая душа
Сообщения
229
Реакции
213
Вопрос на скрине (изображена плоскость сверху):

coord.png


Имеется:
- позиция игрока
- направление взгляда
- относительное смещение от позиции игрока до его плеча (рассчитываю вручную для каждой модели игрока).
Как получить результирующий вектор (позицию плеча) ?

Я так понимаю здесь нужно как-то к смещению применить направляющий вектор (при чём учитывать только угол по оси Y, т.е. взгляд влево-вправо).

Как вы уже догадались, я делаю замену [CS:GO] Weapon Attachment API - AlliedModders
цель: построить лазер, точнее след пули - между дулом оружки и целью,

т.к. для моей игры L4D вышеуказанный плагин работает кривовато (т.е., неточно),
лазер строится правее от оружки, чуть повернул голову, он уже левее от оружки, т.е. тут даже корректировочный оффсет не применишь.
Мне это нужно только для 1 вида оружки, так что меня устроит рассчитать всё вручную.

Доп. вопрос:
- правильно ли моё понимание того, как будут выглядеть направляющие вектора (судя по скрину) ?
- как вариант, думаю, можно было бы определить плечо через точку крепления "primary" подобно способу, как это делает mitchell,
но я пока хочу попробовать вручную через математику.
 

Вложения

  • primary.jpg
    primary.jpg
    40.5 КБ · Просмотры: 36
Последнее редактирование:

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,336
Если мне не изменяет память, то в л4д при небольшом повороте мышки поворачиваются руки с оружием, при повороте чуть больше корпус и при сильном повороте вращается всё тело. И все три эти поворота дают разные координаты для плеча. Поэтому тут нужно смотреть в сторону точек крепления, т.к. иначе нужно будет копать очень глубоко, чтобы получить от игры градус поворота головы и корпуса (для тела вроде подойдёт обычная функция GetClientAngles()), а потом получать формулы для перерасчёта положения плеча.
 

Dragokas

Добрая душа
Сообщения
229
Реакции
213
Понял, спасибо за инфу. Как-то не обращал внимания на такую особенность!
А если допустим я получил координаты плеча, и предположим, что плечо и мушка находятся на одной линии к цели,
как получить координаты дула? т.е. задача полностью аналогична сабжу -
есть позиция мушки, оффсет между мушкой и дулом, и вектор направления, нужно узнать позицию дула.
 
Последнее редактирование:

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,336
Нужно сначала нормализовать вектор направления, затем умножить его на расстояние между мушкой и дулом и затем прибавить к позиции мушки.
 
Сверху Снизу