Github仓库地址:
https://github.com/EanoJiang/SekiroBlenderEditor
写在前面:
这个blender插件目前较为完美实现了1、2、4的功能,第三部分的功能dummy动画只k上帧,但是映射关系有问题,只是点对点对应上了,但是dummy骨骼的旋转位移还是存在问题,导致动画播放的时候会有很明显的模型撕裂和错位
我和我室友目前想到可能的思路:
dummy坐标规则:dummy动画对于数据点坐标,例如:所有与Master数据点有直接子级(仅一层)关系的数据点,其坐标都是以Master数据点为原点(需要考虑Master数据点本身的旋转值得到坐标系)的相对坐标下的坐标,然后这些数据点(与Master数据点有直接子级关系的)的子级(仅一层)又以这些数据点(与Master数据点有直接子级关系的)作为原点(也同样考虑数据点本身的旋转值来得到坐标系)得到坐标。
骨骼数据规则:各个骨骼的坐标数值和旋转数值是互不影响的,所有骨骼在初始状态坐标位置都是(0,0,0)。例如我的左手某个手指的骨骼,姿态模式下初始坐标都是(0,0,0)(在世界坐标中不是000),在移动骨骼本身之后,这个骨骼会以这个骨骼的初始位置作为原点得到对应坐标,旋转也同理。但是父级骨骼移动或旋转会牵连影响子级骨骼的位置和旋转(该骨骼集合下的所有骨骼都会跟随移动或旋转),但不改变子级骨骼姿态模式下的位置数据和旋转数据,需要在处理好的dummy动画数据点数据复制到姿态模式骨骼数据里时考虑到这一点,否则会导致错误的赋值
用dummy坐标规则转到世界坐标,利用骨骼数据规则把世界坐标转到姿态模式骨骼数据。
详细操作可见演示视频
前置文件导入
1.导入dcx文件作为角色模型
三个都勾上
2.smd文件从blender导出为fbx再导入进来,作为参考骨架模型
3.选取角色和参考对象,并点击x轴镜像并应用缩放、旋转参考对象
1.选择材质路径,并点击加载材质json
1)先点击最下面的清理重复材质按键,这一步可以清除后缀为.001,.002重复的材质球
清理前:
清理后:
2)下面开始分配材质,这里直接给出我配置的作为参考:
2.修正角色模型的骨骼,清除冗余骨骼
1)修正骨骼数据
保证了二者骨骼层级关系一致
2)根据参考物体骨骼,重置角色模型的骨骼信息
3.动画
1)缩放dummy动画
2)修复原有dummy动画导入时产生的缩放
3)复制每一帧bone pose生成骨骼动画
4.导出fbx和贴图
选择好项目路径,也就是要导出的根目录,将根据 is_anim是否勾选 自动生成模型导出路径
导出的文件如下: