art-记一次角色合成制作流程

角色换装的主要制作流程.


效果图

主要是增加一个 袖标 , 给原来的模型 小杰 穿上去.


前置物料

  • 工具 : 3dmax, zbrush, substance painter, unity2018
  • 素材 : 已展开uv的 低模 ( 全职猎人-小杰 ), 及 一些动作
    使用之前制作的 高模 及 logo, 参考 : art-记一次MR-workflow娱乐 - https://blog.csdn.net/yangxuan0261

工程已放到 GitHub - https://github.com/yangxuan0261/CharCombine


流程

1. 制作 袖标 高低摸 及 贴图

  1. 使用之前的 高模, 在 max 中使用 wrapit 拓扑插件 拓扑一个 袖标低模 出来, 并 展开uv. ( 当然也可以在 zbrush 中拓扑, 或者其他 )

    插件使用可以参考: 3dsmax-拓扑插件Wrapit使用 - https://blog.csdn.net/yangxuan0261/article/details/88094912

  2. 把低模丢到 zbrush 中雕刻, 增加细节, 然后导出 高模. ( 这里就只增加了一个logo膨胀 )

  3. 给 袖标 烘焙贴图

    使用 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

需要导出的东西有四个

  1. 主骨架.fbx.

  2. (主骨架 + 角色低模).fbx

  3. (主骨架 + 袖标低模).fbx

  4. (主骨架 + 动作).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 动画, 也就是先保存动画, 再加载动画, 但前提都是骨骼名字不变)


再上点制作过程中的截图