Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Плавный поворот ENT
tonline_kms65 Дата: Суббота, 09.09.2017, 05:15:02 | Сообщение # 1
Сообщений: 215
Репутация: 3 [ +/- ]
Всем здравствуйте. Очередной вопрос.
Имеется угол направления взгляда игрока. Мне нужно развернуть этот угол (не самого игрока а угол!) по одной координате. Что то наподобие NegativeVector.

GetClientEyeAngles(client, angle);

Мне нужно после спавна ENT плавно развернуть её к себе лицом, сейчас она у меня повернута задом ко мне. То-есть сейчас ENT смотрит в точном направлении взгляда игрока, я хочу что бы по команде ENT плавно развернулась к игроку лицом. Плавный разворот я сделал. Только поворачивается к игроку она, естественно, задом.
У меня есть варианты:
1. получить вектор направления ENT, и сравнивать с вектором, полученным из углов взгляда игрока.
2. есть координаты положения игрока, направлять вектор направления ENT на точку положения игрока.
3. самый действенный, и в то же время самый геморойный вариант - изменить положение костей модели и привязки к ним мешей. Это полная перекомпиляция 3D модели и её анимаций.
Есть еще кое какие варианты, но все они так или иначе основаны на векторах.
Я бы хотел просто, фэйково, изменить (сделать отрицательным) значение одного из углов направления взгляда игрока, и соответственно тогда должно быть так как я задумал.
На словах вроде просто, но на деле почему то не получается. Вернее получается совсем не так как мне хотелось бы.

У кого есть по этому поводу мысли? Может быть есть у кого наработки?

Добавлено (09.09.2017, 05:15:02)
---------------------------------------------
Ни у кого мыслей нет?



Сообщение отредактировал tonline_kms65 - Суббота, 02.09.2017, 07:22:54
 
Nail Дата: Суббота, 16.09.2017, 13:14:17 | Сообщение # 2
Сообщений: 38
Репутация: 8 [ +/- ]
Можно придать угловое ускорение, я такое реализовывал на SM EXT для машины (чтоб колёса поворачивались) и для вращения ракеты, модель хорошо предиктится и поворачивается плавно:
Код
    Vector oldvelocity;
    AngularImpulse oldangularimpulse;
    pPhysicsObject->GetVelocity(&oldvelocity, &oldangularimpulse);    
    pPhysicsObject->SetVelocity(&oldvelocity, &oldangularimpulse);

Этот код из сдк, дальше смотрите, есть ли в SM интерфейс на эти функции для SP. Если не ошибаюсь, угловой момент можно задать через датамап m_vecAngVelocity, типа так:

Код
SetEntPropVector(entity, Prop_Data, "m_vecAngVelocity", g_fSpin);
 
  • Страница 1 из 1
  • 1
Поиск: