介绍
NameMatcher是AdvanCedskeleton提供的一个为fbx骨架添加控制器的功能;(本文将针对3dmax的biped骨骼操作)
第一步
选择模板为new
第二步
设置骨架命名规则
3dmax的biped默认骨架名字格式为bip001 L/R name.可以看到每个部分之间是有空格的,导出fbx到Maya之后空格会转换为FBXASC032,不过不用担心,在导出之后他就会变回空格.综上所述,我们在右边的命名规则应该填入Bip001FBXASC032RFBXASC032.左边的命名规则则是Bip001FBXASC032LFBXASC032,中间我们可以不填
第三步
设置骨架映射表,我直接将对照表放在下面.左边的是adv的关节名字,右边的是bip骨架的名字,将这个文本保存为txt文件放入AdvancedSkeleton\AdvancedSkeletonFiles\nameMatchers目录下即可在NameMatcher的模板中直接使用
sideRight=Bip001FBXASC032RFBXASC032 sideLeft=Bip001FBXASC032LFBXASC032 sideMiddle= sideBeforeName=1 sideUnderScore=0 Root=Bip001 Spine1=Bip001FBXASC032Spine Chest=Bip001FBXASC032Spine1 Neck=Bip001FBXASC032Neck Head=Bip001FBXASC032Head Scapula=Clavicle Shoulder=UpperArm Elbow=Forearm Wrist=Hand ThumbFinger1=Finger0 ThumbFinger2=Finger01 ThumbFinger3=Finger02 IndexFinger1=Finger1 IndexFinger2=Finger11 IndexFinger3=Finger12 MiddleFinger1=Finger2 MiddleFinger2=Finger21 MiddleFinger3=Finger22 RingFinger1=Finger3 RingFinger2=Finger31 RingFinger3=Finger32 PinkyFinger1=Finger4 PinkyFinger2=Finger41 PinkyFinger3=Finger42 Hip=Thigh Knee=Calf Ankle=Foot Toes=Toe0
第四步
点击Creat+Place Fitskeleton这时候场景中会创建一个adv的骨架,检查一下极向量没有问题之后可以点击build advanced skeleton,之后点击下面的Constraint to joints,这时候adv的骨架会对fbx的骨架添加一个约束,从而实现对fbx骨架的绑定.
问题总结
关节数量不对???
Q: 关节映射表中创建了不止三节的身体骨架,但是点击Creat+Place Fitskeleton之后发现adv重心到胸腔的关节只有三节分别是Root -> spine1 -> Chest
A: 解决方法
- 手动对身体的关节链进行增加然后按住
V键对齐对应的fbx骨架.- 选中身体骨架
- 点击
Body -> Edit页面下的ReSample在弹出的窗口中会自动识别重建骨骼区间,也可以手动选择重构区间 - 在骨骼栏中需要的关节链数量后点击
ReSample - 然后按住
V键逐个对齐到对应的fbx骨架位置上,要注意移动之后肩膀和头的关节位置都会被移动(移动关节的顺序按照先父级后子级的顺序)
- 保存模板设置之后自定义骨架模板.ma并放到模板文件的同目录之下,之后使用模板创建会优先读取自定义的骨架文件
- 开一个新场景导入一个骨架模板
- 设置好自定义骨架的参数
- 保存为自定义模板的同名.ma文件放到模板文件同级目录下
创建好的骨架不能IK和FK无缝切换???
Q: 为什么创建好的骨架在Biped选择器中点击SwitchFKIK报错无法切换
A: 不要使用NameMatcher面板下的build advanced skeleton.正确打开方式应该是从点击Body标签下的构建(本人亲测从这里构建的骨架没有问题)
总结
NameMatcher的实现逻辑
- 创建一套ADV默认骨架
- 按照骨骼映射表的对应关系,自动将默认骨架对齐到fbx骨架的相应位置
- ADV默认骨架作为父对象约束FBX骨架从而实现ADV骨架带动FBX骨架
依照这个逻辑实际上我们其实可以创建一个想要的骨架,然后手动对齐约束到FBX骨架上最后Build AdvancedSkeleton就能实现任意角色转ADV控制器

评论区
评论加载中...