背景:把MMD模型使用Blender cats插件处理后转换成fbx,用于制作射击游戏。为方便在Unity Avatar配置里摆T Pose需要的一些调整。
把衣服头发骨骼放进“衣服”层并隐藏
方便调整骨骼。选衣服骨骼时发现应该相连但是没相连的骨骼可以顺便勾选相连项。
相连的骨骼设为相连项
设置时不应该改变骨骼头的位置,应该改变父级骨骼尾的位置。选中子级骨骼的头,移动游标到选中项,再选中父级骨骼的尾,移动选中项到游标。然后子级骨骼勾选相连项。
把尽量多的骨骼调成和世界坐标轴平行
为了在Avatar config里调出完全相同的骨骼旋转。避免动画变形。
人物的躯干、腿调竖直。胳膊是A pose,就把胳膊骨骼的轴向上,向前,到Avatar config的T pose胳膊调水平就行。
Hips、Spine、Chest、Neck、Head调竖直
Cats调整的结果是Hips和Spine在身体中心,Chest向后倾。这里把Hips、Spine…到Head调到后背,让这些骨骼都竖直。把这些骨骼两头的y坐标全调相同就行。
Shoulder、Arm、Elbow、Wrist
调整成在T姿势下坐标轴和世界坐标轴重合,这里是z轴朝上下,x轴朝前后。
做骨架时使手部骨骼的三个轴分别朝向中指方向(一般是y轴)、大拇指根部方向、手掌法向。这样做持枪姿势的时候直接让y轴指向正前方,枪在手里的旋转也是90度的整数倍,不需要手调出一个奇怪的旋转。
Finger
调成只旋转一个轴就可以握拳。这里调成旋转x轴握拳。
脚踝朝向侧面的轴调到水平。这样保证在Unity里调Avatar时脚踝相对于小腿只有绕x轴的旋转。
Unity Avatar配置里骨骼的旋转
右肩是-90,0,-90
为了保证动画重定向完全一致,直接把一个人物的骨骼复制给另一个,用Blender自动绑骨是否可行?
我这么试了。首先得只复制源人物的身体骨骼,不要复制衣服骨骼,或者复制完删掉衣服骨骼。对于有衣服骨骼的目标人物,他的衣服骨骼不能删,身体骨骼要删掉,把源人物的身体骨骼对齐,这时可能出现两人的姿势不一致(可能同样是A Pose但是手臂倾斜角不一样),把两个骨架合并,然后衣服骨骼和新身体骨骼的父子关系肯定要修正。把身体各骨骼和模型对齐后,自动绑骨,又出现了骨骼控制的顶点组不够或太多的问题,还要修复权重。总之费的时间超过了手动调骨骼长度和轴向的时间。