`
cenphoenix
  • 浏览: 160569 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

MD2关键帧动画实现方法

阅读更多
本想用骨骼动画的,无奈.x格式的太过于复杂,而且游戏业里也不怎么用。
     只是把它的原理弄明白一些了,但是,我弱小的意志在DirectX SDK那个1000多行的SkinedMesh例子面前顺利地崩溃了,心想,还是先从最基本的关键帧动画开始做吧-_-!

确定文件格式:md2(正好连找都不用找了,老师给了)

以下是我Copy的:MD2文件格式简介



MD2 是Quake2中使用的模型文件格式,由于其比较简单,容易实现,所以应用很广,是一种经典的动画模型格式。该文件格式由2部分组成:一部分是文件头,包含了文件ID号、版本号和有关模型的各种数据的起始地址等;另一部分是文件的主体,包含了有关模型的各种数据,如顶点数据、纹理数据、法向量数据等。



MD2是基于关键帧动画的,关键帧插值的数学公式为:

p(t) = p(0) + t ( p1 - p0 )

其中:



t — 当前时间。0表示开始,1表示结束;



p(t) — 时间t 时方程的值;



p0 — 起始位置;



p1 — 结束位置。



MD2共有16个关键帧:

start:0 end:39 name:stand
start:40 end:45 name:run
start:46 end:53 name:attack
start:54 end:65 name:pain
start:66 end:71 name:jump
start:72 end:83 name:flip
start:84 end:94 name:salute
start:95 end:111 name:taunt
start:112 end:122 name:wave
start:123 end:134 name:point
start:135 end:153 name:crstnd
start:154 end:159 name:crwalk
start:160 end:168 name:crattack
start:169 end:172 name:crpain
start:173 end:177 name:crdeath
start:178 end:197 name:death


说白了,一个模型有16个动作,每个动作有很多帧组成,每帧由很多三角形组成一个网络,每个三角形由三个顶点组成,每个顶点由x,y,z三个坐标组成,每个……(再说就欠揍了)
那么怎么让它动呢?知道怎么放电影不?就是一帧帧地画就行了
分享到:
评论

相关推荐

    基于WorldWind Java加载MD2关键帧动画模型问题研究.zip

    然而,WorldWind Java本身并不直接支持MD2模型或关键帧动画,因此需要开发者进行额外的工作来实现这一功能。 MD2是一种早期的3D模型格式,主要用于Quake II游戏。它包含了模型的几何信息、纹理以及关键帧动画数据。...

    基于WorldWind Java加载MD2关键帧动画模型问题研究.pdf

    为了实现MD2关键帧动画模型在WorldWind中的加载,文章中给出了关键实现代码段。通过import相关类和接口,比如java.util.Vector,javax.media.opengl.GL,gov.nasa.worldwind.geom.Position等,来实现MD2模型的加载和...

    md2骨骼动画

    3. **关键帧设置**:在关键帧动画阶段,艺术家为每个骨骼在特定时间点设置位置和旋转角度,这些关键帧将决定动画的起始和结束状态。 4. **插值计算**:在两个关键帧之间,软件会自动计算中间帧的骨骼位置,这被称为...

    md2三维模型与动画

    总之,MD2三维模型与动画是游戏开发中的关键技术之一,它简化了模型和动画的存储和处理,使得资源能够在有限的硬件资源下流畅运行。理解和掌握MD2格式对于从事游戏开发或者三维图形编程的人员来说是十分重要的。

    md2Export md2文件导入到3DMAX中

    在3DS MAX中,这可能涉及到骨骼绑定、IK解算和关键帧动画设置。 4. **多边形优化**:由于.md2模型通常具有较低的多边形数,导入后可能需要进行优化,如平滑组设置、三角面优化等,以提高在3DS MAX中的视觉质量。 5...

    MD2模型载入

    5. **动画处理**:MD2模型支持帧间插值的动画效果,加载程序需要能够计算出两个关键帧之间的中间状态,以实现平滑的动画过渡。 6. **渲染**:最后,程序将内存中的模型数据传送给图形硬件进行渲染。这通常涉及设置...

    md2Import md2文件导入到3DMax中

    首先,我们要知道.md2是Quake II游戏引擎使用的一种三维模型格式,它包含了模型的顶点信息、纹理坐标、帧动画等数据。这种格式通常用于低多边形的游戏模型,因其小巧高效而被许多游戏开发者采用。然而,3DMax默认并...

    3DMax输出md2格式的插件

    - 动画如果存在,应设置为关键帧动画。 5. **导出过程**: - 选择模型后,通过插件菜单启动导出过程。 - 在弹出的对话框中,设置输出文件路径和名称,通常以".md2"为扩展名。 - 检查并调整导出选项,比如是否...

    md3骨骼动画模型

    这个压缩包中的两个MD3例子,可能是两个不同的角色或物体,供开发者研究和测试MD3模型加载和动画播放的实现。 为了更好地理解和使用MD3模型,你需要掌握以下关键概念和技术: 1. 三维数学基础:包括向量、矩阵、...

    md2Importer_md2export

    2. 帧率控制:模型的动画通过一系列的关键帧来定义,这些关键帧按照特定的时间间隔播放,形成了连续的运动。 3. 优化的存储:MD2文件格式被设计为轻量级,以适应当时硬件的限制,因此它可能不包含复杂的纹理或高级...

    Md5骨骼动画 加载源码

    骨骼系统,优点在于比直接存储关键帧动画要占用更少的内存,因为关键帧动画相当于给每个动画帧赋予一个全新的模型,而关节系统仅仅在每帧存储骨头的方向以及位置信息。资源包含了完整的加载代码以及如何用OpenGL显示...

    MD2.zip_OpenSceneGraph_md2

    本篇文章将深入探讨如何在OpenSceneGraph中使用MD2模型文件进行帧动画的实现。 MD2模型文件结构主要包括头部信息、顶点数据、纹理坐标、面数据、骨架信息以及帧和帧时间数据。在OpenSceneGraph中,MD2模型的加载...

    辛苦找来的大量md2模型

    2. **帧数据**:MD2模型支持动画,每一帧都包含一组顶点的位置信息。帧之间的差异用于创建连续的动作,如行走、跳跃等。 3. **纹理坐标**:每个顶点都有对应的纹理坐标,用于将2D纹理映射到3D模型表面。 4. **面信息...

    md5骨骼动画源代码

    4. **动画处理**:根据.md5anim中的关键帧信息,计算每一帧骨骼的变换矩阵。这通常涉及到插值算法,如线性插值(LERP)或slerp(球面线性插值)来平滑过渡。 5. **矩阵变换**:将每帧的骨骼变换矩阵应用到对应的...

    Android-多功能帧动画视图控件

    标题中的“Android-多功能帧动画视图控件”指的是一种自定义视图组件,它扩展了Android原生的ImageView或View类,专为实现帧动画功能而设计。帧动画是通过连续播放一系列静态图片来创造出动态效果的技术,常用于游戏...

    如何用css实现动画效果.md

    如何用css实现动画效果 简单的描述了动画的一些属性,以及...介绍了创建动画所需要的关键帧@keyframes 规则(关键帧),以及其详细的属性介绍和用法,并对动画的多种属性进行了介绍,并指明了其用法以及一些需要注意的事项

    MD2File改类_openglMD2_

    4. 动画帧:MD2文件支持动画,每个帧都有一组不同的顶点位置。我们需处理这些帧数据,以便在OpenGL中进行动画播放。 5. 纹理加载:MD2模型通常带有纹理文件,我们需要使用OpenGL的图像加载库(如SOIL或stb_image)...

    3d max md5mesh md5anim 导入 导出 插件

    MD5Anim则是用于存储与模型相关的动画序列,包含关节的关键帧信息,使得模型能够在游戏环境中动态地表现各种动作。 3dsmax-md5importer.zip插件允许用户在3D Max中导入MD5Mesh和MD5Anim文件,这样设计师可以在3D ...

    swift-RevealAnimation个人实现的动画移植播放器动画

    在这个项目中,个人开发者可能利用了关键帧动画(CAKeyframeAnimation)、层动画(CALayer)或者视图动画(UIViewAnimation)来实现播放器的动画效果。 关键帧动画可以定义一个动画路径,让视图沿着这个路径平滑...

Global site tag (gtag.js) - Google Analytics