UE4联机编译光照需要SwarmCoordinator以及SwarmAgent,在EngineBinariesDotNET目录下。
SwarmAgent
我们主要关注Distribution Setting中的内容。
AgentGroupName 组名,这里简化起见,所有Agent都在同一组。需要保证同一组的Agent组名都一样,否则不会分发任务。因此将就默认的Default也没什么不好。 AllowedRemoteAgentGroup 允许接受哪个远程组分派过来的任务。只有一组的情况下,要和AgentGroupName保持一致。
AllowedRemoteAgentNane 允许接受哪些名字的Agent分派过来的任务。简化起见,填星号表示一切Agent。最好填星号,否则调试阶段很可能怎么都连不上。
AvoidLocalExcution 避免本地执行构建,强制将任务分发到远程。注意如果没有可用的远程机器,将会暂停,一直等到有可用机器才会继续。
EnableStandaloneMode 开启独立模式。开启后所有任务将强制在本地执行,和上一项恰好相反
CoordinatorRemotingHost 运行SwarmCoordinator的电脑的IP或者主机名。建议填主机名,这在有多个IP地址的情况下可增强稳定性。 SwarmAgent支持进行分组,也就是即使Agent们都连在同一个局域网中,也可以分属不同的组。不同的组之间构建任务互相独立,不会跨组分发构建任务。
SwarmCoordinator
如果上面在上面配置好了CoordinatorRemotingHost,那么最终就会在下面看到对应的ip。
问题分析
如果顺利的话,那么现在就可以进行联机编译了。但是如果还是只有在本地编译那么可能会是下列问题造成的。
1、 任务太小,不值得联机编译。
2、 没有打开File And Printer Sharing。
3、 如果是Win10的话切换为专用网络,Win7切换为工作网络或者家庭网络。主要是为了确保已经开启了File And Printer Sharing。
4、 Swarm agent waiting for remotes to become available。一种情况下是它也在自己编译,另外可能就是没有打开File And Printer Sharing。
5、 其它的问题请参考Swarm Agent Troubleshooting
参考文章
1、 https://wenku.baidu.com/view/5e603e586137ee06eef91808.html
2、 https://answers.unrealengine.com/questions/204704/swarm-agent-waiting-for-remotes-to-become-availabl.html
3、 https://iamsparky.wordpress.com/2010/08/24/tutorial-setting-up-swarm-for-multiple-machines/