Irrlicht导入3D模型控制动画播放
2010-03-05 13:30
309 查看
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
相关文章推荐
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第十一节:骨骼动画模型播放控制
- Unity3D 学习笔记9 —— 3D模型动画控制
- 导入Unity的模型在播放动画时手脚会轻微晃动(抖动)
- Unity3D animation import issue | 模型导入,动画无法播放问题
- 【H5 3D应用开发】 Three.js 播放json模型动画并切换动画(一)
- 一种简单有效的3D模型的动画多线程方案
- 使用Irrlicht引擎播放动画注意事项
- 【OpenGL】“我叫MT”纯手工3D动画制作之2——建立模型
- Genesis-3D 入门教程—20.脚本控制与分割动画
- 狗狗历险记制作过程(第一天控制3d模型移动)
- 在Unity3D中控制动画播放和混合播放同时播放
- Unity3D之Mecanim动画系统学习笔记(二):模型导入
- Maya里面的模型动画导入Unity使用
- away3d 4.1 alpha 教程 动画篇 <2> 在flash里控制模型动画
- WF是什么系列之 [ WF控制机械手臂 (3D模型) ]
- unity之按键控制移动,及按键之后,走动动画才能播放(正常行走)
- 在Three.js中给导入的3D模型重新设置中心点
- Unity3D游戏开发之动画模型导入
- Cesium学习笔记(九):导入3D模型(obj转gltf)
- 动画状态机控制单个动画片段播放速度