forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Остановка "оружия" (http://forum.boolean.name/showthread.php?t=16402)

Krep_Kospit 27.02.2012 12:23

Остановка "оружия"
 
Здравствуйте.

прошу помочь снова с вопросом про анимацию. :unsure:
есть холодное "оружие". Удар им является анимацией "руки". Мне необходимо сделать так, чтобы при встрече с препятствием анимация останавливалась и шла к начальной позиции.
Остановку я сделал:
Код:

If xEntityCollided(tank\right_weapon[3],type_carbox ) Then
xAnimate tank\right_weapon[1], 0, 1,3, 0, "connectBone001"
                EndIf

Что же качается возврата - то тут не могу понять... Команды для взятия текущего фрейма нет, команды для перехода в начальную позицию тоже...
Возможно, кто-то знает какое-то ухищрение, как сделать это?

pozitiffcat 27.02.2012 16:22

Ответ: Остановка "оружия"
 
xSetAnimFrame (Entity *entity, float frame, int sequence, const char *rootBone="") из хелпа по ксорсу
xSetAnimFrame tank\right_weapon[1], 0, 3, "connectBone001"
походу так
Лучше так:
xAnimTime получить текущий кадр (float значение , которое надо преобразовать к int)
xSetAnimTime установить кадр

Krep_Kospit 27.02.2012 16:58

Ответ: Остановка "оружия"
 
Цитата:

Сообщение от pozitiffcat (Сообщение 220762)
xSetAnimFrame (Entity *entity, float frame, int sequence, const char *rootBone="") из хелпа по ксорсу
xSetAnimFrame tank\right_weapon[1], 0, 3, "connectBone001"
походу так
Лучше так:
xAnimTime получить текущий кадр (float значение , которое надо преобразовать к int)
xSetAnimTime установить кадр

Спасибо, но я всё это уже делал. Результат не устраивает только тем, что "рука" из текущей позиции возвращается на исходную слишком быстро... Вот если б был параметр в SetAnimFrame плавного перемещения к кадру - было бы самое оно... :(

В принципе, я бы не делал анимацией, а делал бы перемещение кости "руки" по движению мыши,но чтобы и остальные кости перемещались соответственно её... Но ни "Блиц", ни "Хорс", как я понял, не позволяют делать это.

pozitiffcat 27.02.2012 17:43

Ответ: Остановка "оружия"
 
ну сделай сам функцию обратного проигрывания анимации, в которой сам назначать время будешь

UPD как вариант - если игрок у стены, играть не анимацию удара ножа, а анимацию удара об стену, как в контре.

UPD2 а getChild-ом нельзя кость найти? (я просто не вкурсе, но вдруг)

moka 27.02.2012 17:49

Ответ: Остановка "оружия"
 
Я бы анимировал руку процедурно, тем самым имел бы полный контроль над анимацией. Можно было бы сделать всегда разный вектор отскока руки, тем самым это добавит разнообразия.

Krep_Kospit 27.02.2012 18:04

Ответ: Остановка "оружия"
 
MoKa, можно подробнее?
вот сама "рука": http://rghost.ru/36737179
можешь на примере её объяснить?

moka 27.02.2012 20:29

Ответ: Остановка "оружия"
 
Находишь кость (Child), и применяешь трансформации на него, в данном случае TurnEntity или RotateEntity.

pozitiffcat 27.02.2012 23:48

Ответ: Остановка "оружия"
 

Цитата:

Сообщение от MoKa (Сообщение 220817)
Находишь кость (Child), и применяешь трансформации на него, в данном случае TurnEntity или RotateEntity.

ааа так значит всетаки можно кость найти =) я угадал =)


Часовой пояс GMT +4, время: 23:36.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot