Skip to content

用于在blender中桥接骨骼动画的插件

Notifications You must be signed in to change notification settings

eatfio/blender_BoneAnimCopy

 
 

Repository files navigation

BoneAnimCopy Tool

这是什么?

这是一个用于在blender中桥接骨骼动画的插件

制作灵感来源于b站up主 露伴知了 制作的 解锁FBX动作融合 系列教程,通过骨骼约束来映射动作的思路非常简单泛用。

我在此基础上进一步研究了骨骼轴向差异等问题的解决方法,并整合成了这个插件来将相关的设置操作简化。希望这一思路能被进一步开发,让更多苦于动作制作的繁琐的独立动画/游戏制作者得到便利。

注意:以下文档内容急需更新,具体操作请以视频中的演示为准

下面的文档是两星期前刚做出第一个能用的版本时写的,但经过这两天的突击开发,多出了IK和预设等功能,界面有了一些变化。最近两个月又忙得很挤不出时间来更新文档了……

实现原理

暂时没时间写……

使用说明

旋转映射

安装并注册插件后,可以在3D视图的右侧看到插件面板。在未选中骨架对象时并不会提供任何功能。

导入一个人物模型以及一个想要映射动作到人物身上的骨架。我这里使用的是UE4骨架的跑步动作。

点选角色的骨架,右侧面板就会开始显示相关功能。动作复制的目标(Target)必然是选中的骨架自身,动作复制的来源(Source)则可以在场景中选取任意其它骨架。

不过,切换来源骨架时的适配操作我还没写好,目前最好还是选中一个就别变了。。

将刚才导入的跑步动作骨骼设为源之后,完整的插件面板就会展开。下方的Bone Mappings是本插件的核心,用于编辑目标和源之间的骨骼对应关系,从而控制骨骼变换的映射。

右侧的前四个按钮就是一个blender列表界面的基础增删移动功能,这里先点击【+】新建一个mapping,将两个模型的根骨骼,也就是第一根脊椎骨建立对应关系,就可以看到目标骨骼跟源骨骼一样指向了斜上方。

除了凭空添加空白mapping,也可以先在姿态模式下选中一个或多个骨骼,再点击【+】就会批量生成并自动填入目标

现在我们发现,人物映射动作后的朝向和跑步姿势并不吻合,这是由于人物的骨架和UE4骨架的轴向不同。因此需要额外进行修正

同样是Y轴朝上,blender骨骼的z轴朝前,UE4骨骼的z轴朝左

开启【编辑细节】,勾选需要矫正的骨骼右侧的【旋转矫正】开关,之后就可以根据欧拉角来给目标骨骼设置偏移。大多情况下都只需要调整Y旋转

映射好所有需要的骨骼后就可以让角色大致地模仿出另一骨架的动作了

位置映射

之前的步骤只复制了旋转信息,因此跑步也只能在原地跑,要想把位移也一起复制的话,需要对根骨骼勾选这个选项

效果:

位置映射尚需进一步完善,现在只是简单地复制世界坐标,实际使用上还需更详细的设置。

子级映射

一对对建立关系效率还是太低了,很多时候当一对骨骼建立映射之后,它们各自的子级也是需要映射的。根据这个规律我做了一个通过父级来快速联系子级的功能。

在列表中选中一条有效的mapping后,点击【子级对应】就会自动对子级进行判断。如果源和目标骨骼各自都只有一个子级,就会直接生成一条子级间的mapping。对于一连串的脊椎,它可以便捷地建立一整条映射。

如果源和目标的子级并非只有一个,则会为目标骨骼的所有子级各生成一条源骨骼为空的mapping,剩下的就仍然需要手动填入。

About

用于在blender中桥接骨骼动画的插件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%