|
Xors3D Графический движок с поддержкой DirectX9 |
27.02.2012, 12:23
|
#1
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Остановка "оружия"
Здравствуйте.
прошу помочь снова с вопросом про анимацию.
есть холодное "оружие". Удар им является анимацией "руки". Мне необходимо сделать так, чтобы при встрече с препятствием анимация останавливалась и шла к начальной позиции.
Остановку я сделал:
If xEntityCollided(tank\right_weapon[3],type_carbox ) Then
xAnimate tank\right_weapon[1], 0, 1,3, 0, "connectBone001"
EndIf
Что же качается возврата - то тут не могу понять... Команды для взятия текущего фрейма нет, команды для перехода в начальную позицию тоже...
Возможно, кто-то знает какое-то ухищрение, как сделать это?
|
(Offline)
|
|
27.02.2012, 16:22
|
#2
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Остановка "оружия"
xSetAnimFrame (Entity *entity, float frame, int sequence, const char *rootBone="") из хелпа по ксорсу
xSetAnimFrame tank\right_weapon[1], 0, 3, "connectBone001"
походу так
Лучше так:
xAnimTime получить текущий кадр (float значение , которое надо преобразовать к int)
xSetAnimTime установить кадр
|
(Offline)
|
|
27.02.2012, 16:58
|
#3
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Остановка "оружия"
Сообщение от pozitiffcat
xSetAnimFrame (Entity *entity, float frame, int sequence, const char *rootBone="") из хелпа по ксорсу
xSetAnimFrame tank\right_weapon[1], 0, 3, "connectBone001"
походу так
Лучше так:
xAnimTime получить текущий кадр (float значение , которое надо преобразовать к int)
xSetAnimTime установить кадр
|
Спасибо, но я всё это уже делал. Результат не устраивает только тем, что "рука" из текущей позиции возвращается на исходную слишком быстро... Вот если б был параметр в SetAnimFrame плавного перемещения к кадру - было бы самое оно...
В принципе, я бы не делал анимацией, а делал бы перемещение кости "руки" по движению мыши,но чтобы и остальные кости перемещались соответственно её... Но ни "Блиц", ни "Хорс", как я понял, не позволяют делать это.
|
(Offline)
|
|
27.02.2012, 17:43
|
#4
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Остановка "оружия"
ну сделай сам функцию обратного проигрывания анимации, в которой сам назначать время будешь
UPD как вариант - если игрок у стены, играть не анимацию удара ножа, а анимацию удара об стену, как в контре.
UPD2 а getChild-ом нельзя кость найти? (я просто не вкурсе, но вдруг)
|
(Offline)
|
|
27.02.2012, 17:49
|
#5
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Остановка "оружия"
Я бы анимировал руку процедурно, тем самым имел бы полный контроль над анимацией. Можно было бы сделать всегда разный вектор отскока руки, тем самым это добавит разнообразия.
|
(Offline)
|
|
27.02.2012, 18:04
|
#6
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Остановка "оружия"
MoKa, можно подробнее?
вот сама "рука": http://rghost.ru/36737179
можешь на примере её объяснить?
|
(Offline)
|
|
27.02.2012, 20:29
|
#7
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Остановка "оружия"
Находишь кость (Child), и применяешь трансформации на него, в данном случае TurnEntity или RotateEntity.
|
(Offline)
|
|
27.02.2012, 23:48
|
#8
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Остановка "оружия"
Сообщение от MoKa
Находишь кость (Child), и применяешь трансформации на него, в данном случае TurnEntity или RotateEntity.
|
ааа так значит всетаки можно кость найти =) я угадал =)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:43.
|