2010-11-20 43 views
11

如果我有一个人体3d模型,那我想要动画步行,那么达到这个目的的最好方法是什么?以下是我看到正在实施的可能方式:OpenGL动画

  • 创建几个模型,使腿在不同的位置,然后插入这些模型之间。
  • 将模型加载到openGL中,并以某种方式确定哪些顶点与腿对应并执行相应的转换。
  • 执行骨架或电枢(类似于:blender animation wiki)。
+0

通常导入的模型包含动画。为什么你需要在OpenGL中动画?这不应该由艺术家处理吗? – 2010-11-20 09:16:52

+0

@Seth,我正在做这个个人项目。所以如果模型包含动画,我只需要在它给我的不同关键帧之间进行插值? – 2010-11-20 09:23:30

+0

是的,确切地说。这方面有很多资源。 http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System – 2010-11-27 02:24:55

回答

11

您在第一个选项中描述的技巧称为变形目标动画,通常用于某些动画的细节,如面部动画或可能打开和关闭手部。

第二种选择是程序或物理动画,它类似于机器人技术,可以让角色身体有一定的速度前进并计算腿部需要做的事情以避免坠落。但是你不会直接在顶点上做,而是在骨架上。见下一个。

第三个选项是骨骼动画,它使骨架动画并且顶点遵循规则集。将顶点连接到骨架称为蒙皮。

我建议,在获得了opengl东西(在空间观看和定位模型,相机等)的悬挂后,你首先进行骨骼动画。

您将需要为您的3D应用程序选择一个操纵和动画模型。然后,您可以将导出器编写为自定义格式,或者选择您想要从应用中读取的格式。该文件格式应该包含模型,骨架,蒙皮和关键帧的描述。比你阅读和使用你的代码中的数据来构建关键帧的网格,骨架和动画。

+0

+1好帖子。就个人而言,我建议将.3DS文件作为动画关键帧,骨架数据和模型包含在一个文件中。 – Bojangles 2010-11-20 12:41:19

2

如果我是你,我会从http://www.blender.org下载Blender,并通过一些动画教程进行工作。例如,这一个:

http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation

干了那事,你就可以导出模型,并使用例如动画食人魔出口商。我想,这是最新的版本,但检查以确保:

http://www.ogre3d.org/tikiwiki/Blender+Exporter&structure=Tools

从那里,你只需要编写C++代码加载的一切,关键帧之间插入,等我有代码,我可以如果你有兴趣,请告诉你。

+0

我应该补充说,当我做到这一点时,它需要一点关注和摆弄一切工作,但它可以完成:) – 2010-11-20 12:47:30

+0

谢谢,我已经通过你提到的教程,我会看看食人魔出口商。 – 2010-11-21 00:44:54

+0

@StuartGolodetz我想看看代码吗? – 2014-01-27 02:33:29