以下内容仅为猜想,只进行了初步验证
FBX骨骼中包含所绑定的顶点索引,导入Unity后,Unity会把层级树保存起来,然后实例化的时候映射过去
编辑器下权重信息本身不在fbx文件的meta里,不可修改。运行时中权重信息作为BoneWeight类型存放在Mesh的数据结构中。
实现修改权重只要fbx文件的层级不变,映射的Hash就不会变,就可以实现替换Mesh修改权重,或者替换Mesh实现角色变身之类的效果
q1.fbx和q2.fbx两个文件是不同权重测试模型,层级顺序没变,映射的Hash没变,运行测试也就没问题
q3.fbx层级位置变掉了,映射的Hash虽然没变,但是最终效果肯定出问题。