本文适合任何 "FBX人形骨骼动画" 正确的转换成 "BIP动画" ,同时适合动捕流程,将会通过案例讲解说明。
效果预览
<ignore_js_op>
左图为某大逃杀游戏的休闲动画,右图为拷贝至CS骨架之后的效果
实现思路
Motionbuilder
· Character Controls Retarget fbx skeleton(Character01)
· Character Controls Retarget bip skeleton(Character02)
· Bake ‘Character01’ To ‘Character02’
· Export Animation
3dsMax
· Merge Animation
准备工作
TOOL
· 3dsMax2016
· MotionBuilder2016
File
· BIPED.max(BIPED Skeleton)
· BIPED.fbx(BIPED Skeleton To FBX)
· Dance01.FBX(Source Animation)
案例操作步骤
1 打开MotionBuilder,导入Dance01.fbx的骨架(不导入动画)
· File-->open-->Dance01.fbx
· 去掉“Take 001”中的“Import As Take”中的复选框 //Take001是FBX文件中的动画片段,一般只有一个秒如果有多个,需要去掉。
<ignore_js_op>
· 点击“Open”导入
2 调整骨架至TPose
· 通过右下角的“文件浏览器”或者“手动点选骨骼”,设置骨骼的旋转参数,将骨架调整至TPose形态。
<ignore_js_op>
<ignore_js_op>
3 创建第一个角色控制器(Character)
· 在右上角的Character Controls工具面板中,点击Skeleton按钮
<ignore_js_op>
· 在跳出的对话框中点击Define按钮。
<ignore_js_op>
4 设置骨骼映射
· 举例:左腿骨骼的映射
1)选中左腿骨骼
2)在右上角的“Character Controls”工具的“定义”面板中,右键单击左腿部位,在弹出的菜单中选择“Assign Selected Bone”选项
<ignore_js_op>
· 同理,依次设置全身的骨骼映射,直到控制器中所有的骨骼都变成绿色。
<ignore_js_op>
5 锁定控制器
· 点击“Lock Character”按钮(黄色小锁图标)
<ignore_js_op>
· 在弹出的对话框中,点击“Biped”按钮
<ignore_js_op>
6 导入动画
· File-->Motion File Import-->Dance01.fbx
· 在弹出的窗口中,按照下图设置参数,并点击“Import”按钮
<ignore_js_op>
7 烘焙控制器
· 在右上角的“Character Controls”工具面板中,执行”Bake(plot) To Control Rig“命令
<ignore_js_op>
· 自检。一般模型上会出现多棱体(控制器),然后拖动时间滑块,检查动作是否正确导入。 //如果不是,请检查上述步骤是否操作有误
<ignore_js_op>
8 导入BIPED骨架(BIPED.FBX)
· File-->Merge-->BIPED.fbx-->Merge
· 将新导入的骨架调整设置为Tpose
9 创建第二个角色控制器(Character 1),同步骤3
· 在右上角的“Character Controls”工具面板中,Character:选择None,然后点击”Skeleton"按钮。
<ignore_js_op>
· 在跳出的对话框中点击Define按钮。
<ignore_js_op>
10 设置骨骼映射
· 由于MotionBuilder预置了biped骨骼的映射模板,所以:
1)选中biped骨架的质心,点击“Load Skeleton Definition”按钮(一个文件夹+小人的图标),在弹出的对话框中选择Biped模板,并点击“OK”按钮。
<ignore_js_op>
2)确保角色控制器中小人的骨骼全部变绿。(如果有一些骨骼没有变绿,尤其是质心位置,可手动设置骨骼的映射)
<ignore_js_op>
11 锁定控制器
· 点击“Lock Character”按钮(黄色小锁图标)
<ignore_js_op>
· 在弹出的对话框中,点击“Biped”按钮
<ignore_js_op>
12 检查两个控制器之间的映射
· 在右上角的“Character Controls”工具面板中,按如下设置两个控制器的映射,并查看效果。(如果BIPED骨骼及模型跟着动画在动,说明已经成功)
1)Character:Character 1
2)Source:Character
<ignore_js_op>
<ignore_js_op>
13 烘焙控制器
· 确保“Character Controls”工具面板中,【Character:Character 1】、【Source:Character 】
· 执行“Bake(plot) To Control Rig”命令
<ignore_js_op>
· 在弹出的对话框中选择“FK/IK"
<ignore_js_op>
14 烘焙骨架
· 确保“Character Controls”工具面板中,【Character:Character 1】、【Source:Control Rig 1 】
· 执行“Bake(plot) To Skeleton”命令
<ignore_js_op>
15 导出动画
· 确保“Character Controls”工具面板中,【Character:Character 1】、【Source:None 】
· 执行“Save Character Animation...”命令,并设置保存的名字及位置。(如保存在桌面且文件名为“ExportAnimation.FBX”)
· 在弹出的窗口中,
1)勾选“Take001”复选框
2)勾选“Save Character Extensions”复选框
3)取消勾选“Save Control Rig”复选框
<ignore_js_op>
· 点击“Save”保存
16 合并动画
· 在3dsMax中打开“BIPED.max”文件
· 导入动画:File-->import-->ExportAnimation.FBX
· 在弹出的 FBX Import 窗口中,
1)File content:Update animation
2)Animation Take:Take 001
3)勾选复选框:Fill timeline
3)勾选复选框:Bake Animation Layers
<ignore_js_op>
· 点击“OK”按钮。
END
MotionBuilder的一些小技巧
1 快捷键与3dsMax不一样,用着不舒服
· Settings-->Interaction Mode--> Select “3ds Max”--> "OK"
<ignore_js_op>
2 嫌模型碍事,设置TPose的时候,选择骨骼不方便
· 选中需要隐藏的模型
· 在右下角的“Resources”组中,选择“Groups”选项卡
· 点击“Create”按钮,为选中的模型分组
· 在“Show”选项中,点选对应分组的复选框就可以实现模型的“显示”与“隐藏”
<ignore_js_op>