bvh文件

这篇具有很好参考价值的文章主要介绍了bvh文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

其世界空间的坐标轴:(右手)

bvh文件,从0开始学3D游戏开发,3D,3d

blender导入配置:

bvh文件,从0开始学3D游戏开发,3D,3d

 

.bvh文件格式的坐标系统是一种用于描述人体骨骼和运动的方法,它基于树形结构和欧拉角。具体来说,它包括以下几个方面:

  • 骨骼结构:.bvh文件中的HIERARCHY部分定义了骨骼的层次关系,每个节点(JOINT或ROOT)表示一个关节或一个端点(End Site),每个节点有一个相对于父节点的偏移量(OFFSET),以及一些自由度(CHANNELS),表示该节点可以沿着哪些轴进行旋转或平移。
  • 坐标系:.bvh文件中的坐标系是右手坐标系,即x轴向右,y轴向上,z轴向前。每个节点都有自己的局部坐标系,它的原点是该节点的位置,它的方向是由该节点的旋转角度决定的。每个节点的局部坐标系可以通过从根节点开始,依次将父节点的旋转和平移应用到子节点上,得到其相对于世界坐标系(即根节点的局部坐标系)的变换矩阵。
  • 运动数据:.bvh文件中的MOTION部分记录了每一帧的运动数据,每一行表示一个时间点,每个数字表示一个自由度的值。这些值按照HIERARCHY部分定义的顺序排列,通常是先平移后旋转,先z轴后x轴后y轴。这些值都是相对于父节点的局部坐标系的,而不是世界坐标系的。旋转角度的单位是度(°),平移距离的单位是长度单位(通常是厘米或米)。

如果你想了解更多关于.bvh文件格式的坐标系统的细节,你可以参考以下网页123。

1. BVH文件格式由Biovision公司开发,用于存储运动捕捉数据。它包含骨骼层次信息和运动数据两部分。

2. BVH文件分为头部和数据两部分。头部以"HIERARCHY"关键字开始,定义了骨骼层次结构。数据部分以"MOTION"关键字开始,包含了实际的运动数据。

3. 头部部分以递归的方式定义骨骼层次。每个关节包含偏移量、通道数和通道类型信息。偏移量定义了关节相对父关节的位置,通道定义了关节的自由度。

4. 数据部分每行包含一个时间样本的所有关节的数据。数据顺序与通道定义的顺序相同。

5. 解析运动数据时,根据层次信息计算每个关节的局部变换矩阵,再依次与其父关节矩阵相乘,可以得到世界坐标系下的最终变换矩阵。

6. BVH使用的是YXZ欧拉角旋转顺序。可以分别计算XYZ三个轴的旋转矩阵然后乘积,或者直接计算出完整的旋转矩阵。

7. BVH文件使用右手坐标系,Y轴向上。总体来说,BVH是一种较完整的表达骨骼动画的文件格式,理解其文件结构和解析方法对处理这样的数据是非常重要的。 

文档: 

Biovision BVH文章来源地址https://www.toymoban.com/news/detail-610072.html

到了这里,关于bvh文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-游戏逻辑框架全解

    Cocos Cyberpunk 是 Cocos 引擎官方团队以展示引擎重度 3D 游戏制作能力,提升社区学习动力而推出的完整开源 TPS 3D游戏,支持 Web, IOS, Android 多端发布。 本系列文章将从各个方面对源码进行解读,提升大家的学习效率。希望能够帮助大家在 3D 游戏开发的路上更进一步。 工程源码

    2024年02月08日
    浏览(50)
  • Unity 3D脚本编程与游戏开发(2.5)

    4.3.4 向量的点积         两个向量的点积是⼀个标量,其数值为两者⻓度相乘,再乘以两者夹⾓的余弦: a·b=|a|·|b|cosθ⽤坐标表⽰,公式为 (x1,y1,z1)·(x2,y2,z2)=x1x2+y1y2+z1z2         注意到,两个向量的点积是⼀个数(标量),只有⼤⼩,没有⽅向。⽽且点乘满⾜交换律,

    2024年02月03日
    浏览(44)
  • Unity 3D脚本编程与游戏开发(3.4)

    6.2.3 动画的制作步骤         接下来为⾓⾊配上动画,整体思路分以下3个部分。⼀是准备好单个的动画素材,包含站⽴、跑和跳等动作。也就是说,把原始素材中的图⽚串联起来,形成⼏个单独的动画。⼆是⽤Animator把这些单独的动作有机地组合起来,形成⼀张状态转移

    2024年04月26日
    浏览(36)
  • Unity 3D脚本编程与游戏开发(2.2)

    3.2.7 修改物理材质         每个物体都有着不同的摩擦⼒。光滑的冰⾯摩擦⼒很⼩,⽽地毯表⾯的摩擦⼒则很⼤。另外每种材料也有着不同的弹性,橡⽪表⾯的弹性⼤,硬质地⾯的弹性⼩。在Unity中这些现象都符合⽇常的理念。         虽然从原理上讲,物体的摩擦⼒

    2024年02月04日
    浏览(40)
  • Unity 3D脚本编程与游戏开发【4.2】

    8.2.3 ⾳频管理器         在实际游戏开发中,⾳效既是⼀个相对独⽴的部分,⼜与其他游戏逻辑密切关联。也就是说,与⾳效相关的代码会插⼊很多细节代码中。         ⽽且在⾳效⾮常丰富的情况下,如果每⼀个游戏模块都单独播放⾳效,那么可能会带来⼀些问题。

    2024年04月24日
    浏览(43)
  • Unity 3D脚本编程与游戏开发【3.8】

    6.4.5 动画层         图6-42显⽰了动画层设置窗⼝。在动画状态机⾥可以添加很多层,层之间可以是覆盖关系也可以是叠加关系,当然也可以随时屏蔽⼀些层、启⽤另⼀些层。 每⼀个动画层可以有单独的设置,其选项解释如下。 ①Weight(权重),本层对总体动画效果的影

    2024年04月16日
    浏览(47)
  • Unity 3D脚本编程与游戏开发(2.8)

    5.1.2 矩形变换(Rect Transform)组件         如果选中界⾯上的控件,读者会发现每个物体并不带有基本的Transform组件,取⽽代之的是Rect Transform(矩形变换)组件。其实Rect Transform组件是Transform组件的⼦类,因此并不违反“每个物体必须有且只有⼀个Transform组件”的规定。

    2024年02月03日
    浏览(36)
  • Unity 3D脚本编程与游戏开发(3.2)

    5.3.4 制作背包界⾯         背包界⾯是此实例中的重点,因为它的屏幕适配⽐较有代表性。当屏幕⽐较“瘦⾼”时,道具列表中能显⽰更多道具项,⽽屏幕⽐较“矮胖”时,显⽰的道具项会变少。但这些都不影响玩家通过下拉滑动查看所有道具,如图5-37所⽰。       

    2024年04月12日
    浏览(57)
  • Unity 3D脚本编程与游戏开发(3.5)

    6.2.8 总结和拓展         本节利⽤Unity官⽅素材,以有限的篇幅解释了动画状态机的原理,以及动画制作中最基本但最重要的步骤。总的来看,⽬前的动画只做了4种状态——站⽴、⾛、跑和跳跃,还缺少下蹲、下蹲移动和落地缓冲等动作。好在这些动作只是对现有动作的

    2024年04月10日
    浏览(50)
  • Unity 3D脚本编程与游戏开发【3.7】

            在这个⾓⾊控制脚本中,可以看到很多新奇的写法。关键是,为什么要把移动量转化为转⾝量和前进量呢?要理解这个问题,⼀定要多进⾏游戏测试,体会转⾝与输⼊的关系。         当⾓⾊⾯朝前,输⼊朝后时,⾓⾊的前进量为0,转⾝量达到最⼤;⽽当⾓⾊

    2024年04月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包