Irrlicht导入3D模型控制动画播放

Irrlicht导入3D模型控制动画播放

日期:2010-3-4

作者:Kagula

环境:

  [1]Irrlicht1.61

  [2]VisualStudio2008+SP1

  [3]3DMAX2009

  [4]ActorX211

  [5]MilkShape3D 1.8.3

概要:

    简述从3DSMAX2009中导入静态模型和动画模型。导入动画模型后播放指定的动画序列。本文假设读者对Irrlicht的使用有初步了解。

正文:

静态模型

可以从3DMAX2009中直接导出OBJ文件。和材质文件一起直接打包成ZIP文件。

程序中利用下面的代码可以装载静态模型

     m_device->getFileSystem()->addZipFileArchive("Myzip.zip");

     scene::ISceneNode* node =        m_device->getSceneManager()->addAnimatedMeshSceneNode(m_device->getSceneManager()->getMesh("myobj.obj"));

 

动态模型

参考“阅读资料”从3DMAX2009中得到ms3d文件或x文件。

下面我们来看程序中的代码如何编写:

第一步:装载动态模型

//scene::IAnimatedMeshSceneNode *m_anms;

     m_anms =m_smgr->addAnimatedMeshSceneNode(m_smgr->getMesh("zouqiaochui.ms3d"));

     m_anms->setLoopMode(false);

     m_anms->setCurrentFrame(0);

第二步:播放一段动画序列(从32帧到75帧)

                       m_anms->setCurrentFrame(32);

                       m_anms->setFrameLoop(32,75);

播放X文件的骨骼动画要注意的问题

[1]假设在3dmax中动画播放速度是每秒30帧,则在Irrlicht中装载模型时加入下面这行代码:

#define TIME_SCALE 158.2872f

m_anms->setAnimationSpeed(TIME_SCALE * 30);

假设播放第50帧到93帧的动画,则采用下面的代码:

                       m_anms->setCurrentFrame(TIME_SCALE * 50);

                       m_anms->setFrameLoop(TIME_SCALE * 50, TIME_SCALE * 93);

阅读资料:

[1]3dmax文件导出到ms3d文件》

http://www.cnblogs.com/flysnow/archive/2007/06/01/768235.html

[2]3DMAX导出X文件的插件下载》

 http://www.andytather.co.uk/Panda/directxmax_downloads.aspx

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kagula086

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值