Daz3d导入unity模型减面方案

背景

daz有着高质量的绑定模型以及活跃的社区, 对于缺少美术能力的个人开发者(比如我)有着很大的帮助。
本文分享如何将Daz高模进行减面处理并导入到unity的思路。

实践

1.前置准备

  • daz 4.12
  • decimator (减面插件, daz商店可够购买, 也可以自行寻找**版)
  • unity 2019.3.0f5

2.准备daz模型

示例是准备导出一套服装到unity, Figures使用无贴图的Genesis 8 Female Dev Load。
Daz3d导入unity模型减面方案

3.第一次导出 (Daz -> Fbx, 不减面)

先进行一次不减面导出。
这里不进行减面的原因是: decimator对于Daz的Shaping是有兼容问题的, 直接进行减免导出会导致Morphs变形时出现网格破损的问题。
如果勾选SubD Information则会导致重新导入Daz时出现错误。
导出Morphs时需要自行编辑所需要的Export Rules。
Daz3d导入unity模型减面方案
刚才导出的不减面模型,可以看到有160M大,主要是由于Morphs比较多的缘故。
Daz3d导入unity模型减面方案
查看面数,多达26万三角形
Daz3d导入unity模型减面方案

4.不减面模型重新导入Daz

File - Import 进行重新导入
Daz3d导入unity模型减面方案
导入成功后,可以看到Shaping中有刚才导入的Morphs变形器
Daz3d导入unity模型减面方案

5.使用decimator进行减面

decimator插件需要自行安装, 这里不做阐述
Daz3d导入unity模型减面方案
压缩率这里使用的是25%,按个人需求进行调节
Daz3d导入unity模型减面方案

6.第二次导出(减面后的模型)

减面完毕,重新导出。
这里勾选SubD Information主要是为了降低fbx文件大小。
Daz3d导入unity模型减面方案
和第一次导出时不同, 第二次导出可以将模型上带的Morphs全部覆盖, 这里使用了全匹配
Daz3d导入unity模型减面方案
导出完毕,大小缩减到20M
Daz3d导入unity模型减面方案
查看面数, 仅剩余90535三角形 (疑惑25%压缩率的同学可以注意这里仅压缩了服装, 未压缩figures, 由于能力有限,本文无法对decimator这个插件做出技术型解释)
Daz3d导入unity模型减面方案

7.导入unity

直接导入
Daz3d导入unity模型减面方案
模型材质, 测试OK
Daz3d导入unity模型减面方案

骨骼动画, 测试OK
Daz3d导入unity模型减面方案
BlendShape测试, OK (Morphs导出正常)
Daz3d导入unity模型减面方案
游戏实测, 200万面+同屏, 60Fps+, 性能有所提升(减面前大约是15fps), 还可以继续调整压缩率, 进一步提升性能
补充: 这里仅压缩了服装, 人物和发型均未压缩, 每个角色大约有18~20万面 (这里还在开发阶段, 实际项目会进一步降低很多)
Daz3d导入unity模型减面方案

总结

  1. 直接在原始模型使用decimator减面会有有morphs不兼容的问题,一旦人物变换成别的形体,会导致模型破损严重。
  2. 二次导入的fbx模型的morphs命名会有些小问题, 在unity中使用时候需要自行coding做下兼容