Войти
IrrlichtФорум

md2 animation

#0
14:03, 17 авг. 2008

Возник такой вопрос, как при помощи irrlicht воспроизвести анимацию по заданным кадрам в обратном порядке. Есть метод setFrameLoop(...) но он воспроизводит только вперед кадры. Просто возникла ситуация когда одиному анимированному перцу воспроизвожу анимацию "Достать оружие" но анимации "Убрать оружие" нету, я решил воспроизвести анимаху "Достать оружие" в обратном порядке, вот только как?


#1
8:34, 18 авг. 2008

1) По имени анимации узнаешь с какого кадра начинается и каким заканчивается вытаскивание пистолета с помощью функции

irr::scene::IAnimatedMeshMD2::getFrameLoop  (  const c8 *  name,  
  s32 &  outBegin,  
  s32 &  outEnd,  
  s32 &  outFPS 
 ) 

2) Далее нужно вручную проиграть анимациюю от outEnd до outBegin. Каждый кадр вызываешь собственноручно сделанный метод PlayAnim(), который в зависимости от timeGetTime()-last_time выставляет или не выставляет кадр

node->setFrameLoop (current_frame,current_frame);
current_frame--;
if(current_frame<outBegin)
  StopAnim();//останавливаем анимацию

Но для начала нужно проверить, вдруг можно выставлять в функции SetFrameLoop() параметры, где начальный кадр больше конечного. Тогда еще проще.

Прошло более 11 лет
#2
19:46, 30 мар. 2020

Спасибо, разобрался)

IrrlichtФорум