工具方案分享_FBX动画烘焙到Bip

  • 自己设计以及实现的 FBX动画烘焙到Bip的 工具
  • 这里分享了 整个思路,由于代码部分牵涉的内容纷杂,暂不分享


为什么要 FBX烘焙Bip

  • 网上有很多的动画资源包,UE4的/Unity的,但是各自的骨骼绑定以及数据难以共用到一起
  • 烘焙成Bip,主要为了收集和统一动画数据,方便共用在多种角色上

基本思路

  • 整个烘焙思路很简单,遍历时间轴,递归骨架,读取 源骨架骨骼的旋转值,设置到目标骨架骨骼上

步骤

  • 1,设置两个骨架的匹配
  • 2,烘焙的操作

步骤1,骨骼匹配设置

1-1,导入TPose的FBX骨骼,建立Bip骨骼来匹配姿势


1-2,匹配对应骨骼的名称

  • 骨骼的对应信息记录在 源骨架里,记录在源骨架的每一个骨骼节点中的 用户属性中 ObjectProperties -> UserDefined
  • 在文件保存的时候,这些对应信息会一起被保存


1-3,建立中间代理物体

先说明为什么要有一层 代理目标物体

  • 在没有创建代理目标体之前
  • 由于 源骨架的 双腿的 轴向不一致,但是Bip的设置中都是x轴向下的

  • 如果直接 读取 源骨架骨骼的 旋转值,设置到Bip骨架骨骼上,结果会是这样的

  • 类似的问题可能不只出现在 双腿上,其它部分也有可能有相同的问题

  • 建立 代理目标体的 作用,就是匹配 两个骨架的原始旋转值

关键点在于
+ 旋转值 对齐 Bip骨骼,但自身是 源骨架骨骼的子物体,会被源骨架带动
+ 在烘焙的过程中,不再读取源骨架骨骼的旋转值,而是读取 代理目标节点 的旋转值


  • 一个完整的设置,源骨架每个节点上记录了自己对应的Bip骨骼名称,并且带有一个 代理目标体


步骤2,烘焙操作

  • 导入一个相同 源骨架的FBX动画文件,让导入 更新当前源骨骼的动画


烘焙操作的基本原理

  • 从 源骨架的根骨骼开始递归,检查烘焙目标以及代理目标体
  • 获得 代理目标体的 旋转值,设置到对应的Bip骨骼上

展示

  • 导入FBX动画,更新源骨架,

  • 执行了烘焙操作后

2 thoughts on “ 工具方案分享_FBX动画烘焙到Bip

  1. 您好 请问一下 是否可以针对该过程提供更详细的教程或者脚本工具呢
    可以支付一定的费用 如果可以的话 麻烦发邮件联系我 谢谢

    1. 额,首先这个工具并非独立的脚本,是一整套脚本架构中的一小部分,脚本之间有相互调用的地方,内容纷杂,所以我没有贴出脚本。
      我已经分享了最核心的思路,当然可能给读者的感觉并不清晰,这个我以后也会再修改。
      最后我目前还没有想过要将整个工具箱框架 公开或进行商业性质的收费,所以这里得向你说声抱歉了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注