版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
参考了《Unity3D 实战核心技术详解》我把换装系统的一个核心技术记录一下,本人虽然是在U3D开发不过没有真正接觸到这样的技术,感觉比较遗憾这里做个入门,万一以后有相关需求的话心里也有底。
首先说下人物模型的构成:除去动画以外名稱中有Bip字样的节点都是骨骼、其他的就是我们能看的到的皮肤。
骨骼就是一些Transfrom没有其他的组件,它们会根据动画的要求进行运动
而皮膚上关键的一个组件是SkinnedMeshRenderer,它关联了3样东西:1.网格;2.骨骼;3.材质所以我们只要在代码中改变以上三样东西,就能替换模型上的部件
来看┅下具体的代码吧:
// 模型资源,对应上面的source // 目标骨架对应上面的target // 目标皮肤,替换这里面的内容就行了 // 获取资源的所有皮肤 // 初始化targetSmr添加骨架上的皮肤类,但当前的皮肤类内容是空的 // 初始化hips获取所有的骨骼,在Unity已经添加 // 获取target上与source对应的骨骼这边千万不能直接把骨骼赋值進去了 //例子上核心的东西也没什么吧,不过说实话真正看到这个的代码的时候我才知道Bip是有什么用,而SkinnedMeshRenderer需要骨骼、材质、Mesh才能发挥作用