DCC工具(Blender为例)和Unity Scene场景下GameObject的实时同步基于官方发布的插件MeshSync。
MeshSync功能介绍
在主流DCC工具和Unity之间建立实时同步的工作流(Editor模式下,Runtime不支持),支持Mesh,骨骼,动画,UV,灯光,摄像机等的实时同步,当前最新版本支持原理BSDF到Unity 标准PBR材质的实时同步,Blender更支持Geometry Nodes几何节点连连看和Unity<->DCC双向的同步。
MeshSync安装和建议使用
Blender侧
Blender添加插件勾选后,可以在面板上看到MeshSync。
在插件的Preferences面板配置Unity Editor和项目映射,可以通过Select or Create proect via Unity Hub快捷选择项目,至此DCC配置完毕,在面板上根据需求开启Auto Sync(自动同步)或者Manual Sync(手动同步)即可。
Unity侧
GameObject窗口下添加SyncServer即可,此时已经可以正常同步。
效果如下:
进阶使用
Blender侧
Server(与Unity通讯)
保持Auto Config即可,如果需要修改通讯端口,和Unity里的Blender通信端口保持一致。
Scene(同步哪些对象的设置)
若干同步选项,大部分不用解释。
- ScaleFactor 同步的缩放比例,这个值越大,Unity对应同步对象比例越小
- Make Double Sided 让Mesh有两面,比如Unity里默认Plane是单面的,勾选可以避免穿帮
- Bake Modifiers 烘焙Blender中的修改器来同步一些效果
- Bake Transform 烘焙对象的Transform,相当于设置锚点,在Unity中对象坐标还是0,0,0,但已经有内置的位移、旋转、缩放
Materials(材质同步)
- None 以材质名称创建默认材质导出到Unity,可以在MeshSyncServer上修改映射的默认材质,以使用自己的材质
- Basic 保留Blender里面创建的一些PBR材质,支持BSDF,相关的金属、粗糙度、法线等属性会烘焙成贴图导出到Unity的MeshSync资产文件夹下,材质转化成Unity管线的标准PBR材质(内置,URP,HDRP均支持),具体支持的节点连连看如下
Baking(材质烘焙)
材质烘焙,其中UV应用几何节点修改器是不可撤销的!最好留个副本,同时如果用几何节点修改器别忘了勾选Realize instances
常见问题如下
Unity侧
创建的MeshSyncServer GameObject会自动挂载一个对应的脚本,每个控制量的作用如下:
Server(与Blender通讯、对象同步相关)
- Auto Start On时,使用指定的端口自动与Blender进行通信,也就是默认的8080端口(Blender默认端口是8080,Unity Editor是8081),如果需要指定端口可以Off自己配置并控制同步服务启动,正常保持On即可
- AssetDir 同步对象相关的资产存档的位置
- RootObject 同步对象后同步的根物体,不填就在Hierarchy跟层级中
Asset Sync Settings(同步对象设置)
这里要说明的是,在调整动画的时候,可以不勾选同步Mesh节省性能。
Import Settings(同步对象的材质,动画导入设置)
手册写的很清楚,不过多赘述。
Materials(同步对象的材质设置)
Instances(控制Unity如何生成几何节点修改器的实例)
Unity支持同步几何节点修改器的以下属性。
设置成prefab保存即可。
Animations(动画同步)
双向同步
默认只支持Blender->Unity的同步,可以通过添加组件进行Unity->Blender的反相同步,需要Blender3.0+版本
总结
Mesh和对应骨骼以及蒙皮的同步是最主要的,对于角色同步,材质使用None,同步Mesh后,在Materials部分重新映射材质就行,每次更改同步的Blender项目时,可以选择保留原来的同步或者清空。