前一篇 学习了Omniverse的一些基础概念。本篇在了解这些概念的基础上,我想体验下Omniverse的一些具体的能力,特别是 Live-Sync (实时同步) 相关的能力。
本篇实践了使用Omniverse的力量在UE中建立USD文件的 Live-Sync 编辑。由于相关的知识我是从零开始的,所以我也顺带记录上一些之前并不知道的内容。
主要参考资料:
Exploring Creative Workflows with Omniverse and the Unreal Engine Connector - YouTube
OmniLive — Omniverse Extensions latest documentation
从官网下载 Omniverse Launcher:https://www.nvidia.com/en-in/omniverse/download/
关于 Omniverse Launcher 界面上各分页的具体介绍,可参阅:https://docs.omniverse.nvidia.com/launcher/latest/workstation-launcher.html
(根据这里的官方文档所说,Omniverse Create 已经废弃并由 USD Composer 取代。所以很多教程中所使用的 Create 应该指的是现在的 USD Composer)
可在 Omniverse Launcher 的 EXCHANGE 页面搜索并下载 USD Composer:
(不知是我网络问题还是显示问题,经常下载一会儿后就卡住了,我只能关掉Launcher再重新打开才能看到进度条前进。。。另外,最后还遇到个问题,见附录)
USD Composer 是使用 NVIDIA Omniverse™ Kit 开发的。具体介绍可参阅官方文档:https://docs.omniverse.nvidia.com/composer/latest/index.html。
现在可以简单将其视为是个可以预览/编辑USD文件的编辑器。
同样,在 EXCHANGE 页面可以搜索到不同UE版本对应的Connector插件:
可能因为我是源码版的引擎,这里安装时并没有找到引擎,所以提示让我自己选择引擎插件目录位置。
当放入插件目录后,进行代码编译后。就可以看到这个插件了,同时也能在关卡编辑器中看到这个小图标:
Live-Sync 需要连接到Nucleus服务,所以如果还没有服务的话,需要创建一个。
在 Omniverse Launcher 的 NUCLEUS 分页中,可以创建一个本地服务:
跟随指引填写必要的信息,创建完后,应该会显示:
点击 Add Server:
建立与本地服务即localhost
的连接
随后可以看到:
如果想直接在UE关卡中启动 live-sync,那么将会收到提示:
为了能使用 live-sync,可以将当前关卡导出为USD
导出为USD后,可以在UE中打开它:
在 USD Composer 中,建立与本地服务即localhost
的连接:
可以找到之前导出的USD场景,打开它:
现在万事俱备,可以开始 live-sync 了。
关于 OmniLive 的具体细节,可以参考官方文档。简单来说,需要 Live Session 来建立联系。因此,首先要创建一个 session。
我选择在 USD Composer 中创建,点击右上角 Create Session:
为session起一个名字,这里我叫 “yaksue_session”
随后将可以看到一个新的 session layer:
另一端,UE里点击 Live Session:
选择刚才创建的 “yaksue_session”:
现在,live-sync 已经建立,可以体验了:
其实在编辑结束后,还有一些问题比如Merge,但由于牵扯到Live-Sync一些更底层的结构,我目前还无法简单讲明白。具体可以参考官方文档:Live Session Management:Exit a Live session
下载完后,卡在这里:
这里也有人问到同样的问题,并表示用管理员权限打开可以解决:
Create install “stuck” on omni.create.warmup.bat - Apps / USD Composer (Create) - NVIDIA Developer Forums
我尝试用管理员权限后确实可以解决: