art-记一次角色合成制作流程
角色换装的主要制作流程.
效果图
主要是增加一个 袖标 , 给原来的模型 小杰 穿上去.
前置物料
- 工具 : 3dmax, zbrush, substance painter, unity2018
- 素材 : 已展开uv的 低模 ( 全职猎人-小杰 ), 及 一些动作
使用之前制作的 高模 及 logo, 参考 : art-记一次MR-workflow娱乐 - https://blog.csdn.net/yangxuan0261
工程已放到 GitHub - https://github.com/yangxuan0261/CharCombine
流程
1. 制作 袖标 高低摸 及 贴图
使用之前的 高模, 在 max 中使用 wrapit 拓扑插件 拓扑一个 袖标低模 出来, 并 展开uv. ( 当然也可以在 zbrush 中拓扑, 或者其他 )
插件使用可以参考: 3dsmax-拓扑插件Wrapit使用 - https://blog.csdn.net/yangxuan0261/article/details/88094912
把低模丢到 zbrush 中雕刻, 增加细节, 然后导出 高模. ( 这里就只增加了一个logo膨胀 )
给 袖标 烘焙贴图
使用 substance painter , 用 袖标高低摸 烘焙法线, 然后上色. 然后导出 mr-workflow 相关贴图.
2. 给 袖标 绑定骨骼
在 max 中使用 weightPro 蒙皮插件快速蒙皮. ( 只用一个 手臂 的骨骼 )
插件使用可以参考: 3dsmax-骨骼蒙皮插件weightPro使用 - https://blog.csdn.net/yangxuan0261/article/details/88182804
3. 导出 模型 及 动作
具体导出流程可以参考: 3dsmax-骨骼绑定及动作导出流程 - https://blog.csdn.net/yangxuan0261/article/details/80879457
需要导出的东西有四个
主骨架.fbx.
(主骨架 + 角色低模).fbx
(主骨架 + 袖标低模).fbx
(主骨架 + 动作).fbx
4. 丢到unity, 合成
具体脚本代码看工程里面.
优化
这样合成出来的角色 drawcall 是按所有部件的材质球的总量来算的
加入所有部件的材质球都一样 ( 同一个 shader 绘制 ) 的话, 可以考虑 合并贴图 且 合并mesh 的方式, 缺点是这样做会在内存增加 合图纹理及mesh合并实例 的大小. 所以就看怎么取舍了, 是不是要用 内存 去换 drawcall
之前的 合图 的代码不知丢哪去了, 原理就是把 mesh 里所有顶点的 uv 按 合图 的偏移值偏移一下, 确保 片段着色器 阶段采样时可以采样到正确的纹理即可. 可以参考: 技巧| Unity中Avatar换装实现 - https://blog.uwa4d.com/archives/avartar.html
踩坑
Q: 使用之前的角色动作角色变形?
A: 使用原来的动作导入再导出即可.
只要骨骼没有动的情况下, 就可以使用之前的动作. 直接把动作 xxx@idle0.fbx 拖进 max 中即可. 然后导出动作
(PS: 如果上面那种方式不能复用 fbx动作, 可以参考 3dsmax-骨骼绑定及动作导出流程 中的 加载 fbx 动画, 也就是先保存动画, 再加载动画, 但前提都是骨骼名字不变)
再上点制作过程中的截图