我们已注意到 Google 披露的 WebRTC 版本中存在的漏洞(更多信息请参见此处),并正在调查它对 EOS SDK 的影响以及接下来应采取的措施。
下面的功能是令人激动的新工具,已在像素流送中实现。虽然这些功能供了新的可能性,但要注意,功能不稳定,应谨慎使用。 不建议基于这些功能构建你的产品的关键组件,因为这些功能在后续版本的虚幻引擎中可能会更改或删除。
像素流送播放器
利用像素流送播放器,你可以将虚幻引擎项目中活动的像素流作为3D空间中的显示内容显示。这样你就可以将云托管的内容显示为本地应用程序中的媒体源。
从5.2开始,像素流送播放器无法正常运行。我们正在将其更新为使用新的AVCodecs视频编码模块,但这些更改要到5.3才能准备好。
设置你的像素流送播放器
-
启用像素流送和像素流送播放器插件。
-
创建新的 蓝图(Blueprint) 类(Actor)。保存并将其命名为所需名称。
-
打开新的蓝图类并添加2个组件: PixelStreamingSignalling 和 PixelStreamingPeer 。
-
将 PixelStreamingSignalling 组件拖入事件图表中。拖移此节点并创建 Connect 节点。将 BeginPlay 连接到新节点的输入,并在URL值中输入"ws://localhost"。
-
选择PixelStreamingSignalling组件并从 细节(Details) 窗口添加 On Config 、 On Offer 和 On Ice Candidate 事件。此外还要从PixelStreamingPeer节点添加 On Ice Candidate 事件。
-
拖移 On Config (PixelStreamingSignalling) 节点并创建 Set Config (Pixel Streaming Peer) 节点。确保连接了Set Config和On Config之间的配置值。
-
拖移 On Offer (PixelStreamingSignalling) 节点并创建 Create Answer 节点。确保On Offer节点的 商品(Offer) 输出连接到Create Answer节点的 商品(Offer) 输入。拖移Create Answer节点的 返回值(Return Value) 输出并创建 Send Answer 节点。确保它连接到Send Answer节点的 回答(Answer) 输入。
-
拖移 On Ice Candidate (PixelStreamingSignalling) 节点的"候选项(Candidate)"输出并创建 Receive Ice Candidate 节点。确保它连接到Receive Ice Candidate节点的 候选项(Candidate) 输入。
-
拖移 On Ice Candidate (PixelStreamingPeer) 节点的"候选项(Candidate)"输出并创建 Send Ice Candidate (PixelStreamingSignalling) 节点。确保它连接到 Send Ice Candidate (PixelStreamingSignalling) 节点的 候选项(Candidate) 输入。
-
如果正确完成了上述操作,完成的蓝图应该如下所示:
-
选择蓝图中的 PixelStreamingPeer 组件。在"细节(Details)"窗口的"属性(Properties)"下,你应该会看到 像素流送视频接收器(Pixel Streaming Video Sink) 。选择下拉菜单,然后选择 媒体纹理(Media Texture) 。相应命名并保存。
-
系统提示时,选择并保存 视频输出媒体资产(Video Output Media Asset) 。
-
将你的 蓝图Actor(Blueprint Actor) 拖入场景中。创建简单的平面对象并调整大小和形状,使其适合显示屏。
-
将你保存的
NewMediaPlayer_Video
直接从内容浏览器拖入场景中的平面。这会自动创建材质并将其应用于对象。 -
启动此项目外部的基本本地像素流。启动信令服务器并使用相关的像素流送参数运行应用程序。
-
播放你的场景。现在你应该会看到你的外部像素流显示在你的场景中的平面上!
VCam
VCam是一个新功能,允许你将VCam组件附加到场景中的Actor,并将关卡视口的视频内容流送到输出提供程序。
在此阶段,VCam主要用于虚拟制片用例。它可以与Live Link VCam iOS应用程序配对,并用于ARKit追踪。这很适合在虚幻引擎中导航虚拟摄像机,由像素流送处理触摸事件,并将关卡视口作为实时视频内容流送回iOS设备。如需详细了解Live Link VCam,请前往下面的站点:iOS Live Link VCam
如何使用VCam
-
确保你启用了虚拟摄像机插件
-
将VCam组件添加到场景内Actor(在下面的示例中,它已附加到按上方指南创建的像素流送播放器蓝图)。
-
在VCam组件中,找到 输出提供程序(Output Providers) 并添加下拉菜单中的 像素流送提供程序(Pixel Streaming Provider) 。展开新的 输出(Output) 分段。
-
要开始和停止你的流,请切换"输出(Output)"下的 处于活动状态(Is Active) 复选框。
-
开始后,打开本地浏览器,找到127.0.0.1以查看你的流送显示内容,或打开Live Link iOS应用程序,找到127.0.0.1,然后点击"连接(connect)"。
如果你想通过浏览器与流交互,你需要在浏览器中打开控制面板,并将 控制方案(Control Scheme) 更改为 悬停(Hovering) 。
使用麦克风
利用像素流送,你现在可以允许通过Web浏览器使用WebRTC音频在引擎中播放特定对等端/播放器麦克风。
设置"在项目中使用麦克风"
使你的项目麦克风兼容极其简单,仅需要向你的项目添加一项内容。
-
启用像素流送插件。
-
在场景中的Actor上,添加
PixelStreamingAudio
组件。你可以将其设置保留为默认值。
每个音频组件会将其自身与特定像素流送播放器/对等端关联(使用像素流送播放器ID)
在流中使用麦克风
-
使用
PixelStreamingAudio
组件设置你的项目之后,按照像素流送的正常情况(使用像素流送启动参数打包或独立)运行你的应用程序,并启动你的信令服务器。 -
通过Web浏览器连接到你的信令服务器。
-
打开前端设置面板并将
Use Mic
设置为true
。点击底部的 重启(Restart) 以重新连接。 -
你的浏览器可能会请求使用麦克风的权限,请务必允许访问。
-
向麦克风说话,你应该会听到你的声音通过流播放!
虚拟现实中的像素流送
虚拟现实(VR)像素流送是一种新功能,向用户提供了使用像素流送连接到兼容VR的应用程序的途径。 这样用户可以使用自己的头戴设备享受VR体验,而不用运行本地应用程序。
设置项目
就本示例而言,我们将使用虚拟现实模板项目。
-
使用虚拟现实模板创建新项目。
-
启用像素流送插件并禁用OpenXR插件。重启编辑器。
-
在内容浏览器(Content Browser)中,搜索"Asset_Guideline"并删除"B_AssetGuideline_VRTemplate"。系统提示时,点击 强制删除(Force Delete) 。
-
现在,在内容浏览器中搜索"VRPawn"。双击打开VRPawn,然后编译蓝图。如果正常工作,它应该会成功编译。保存并关闭此蓝图。
-
打开 编辑器偏好设置(Editor Preferences)> 关卡编辑器(Level Editor) > 播放(Play) 并添加
-PixelStreamingURL=ws://127.0.0.1:8888 -PixelStreamingEnableHMD
创建必需证书
你需要HTTPS证书才能将VR用于像素流送。这是因为,WebXR的标准要求该API仅可用于通过安全连接(HTTPS)加载的站点。对于制片用途,你将需要使用安全的来源,以支持WebXR。你可以在此处找到有关这些要求的额外信息:https://developer.oculus.com/documentation/web/port-vr-xr/#https-is-required。
就本示例而言,我们将通过Gitbash设置基本证书。如果你之前没有安装Gitbash,请前往此处的页面,了解Gitbash的安装步骤:https://www.atlassian.com/git/tutorials/git-bash。
-
在
SignallingWebServer
目录中创建certificates
文件夹,如下所示: -
在
certificates
目录中右键点击,然后打开Gitbash。输入openssl req -x509 -newkey rsa:4096 -keyout client-key.pem -out client-cert.pem -sha256 -nodes
。 -
按Enter键多次,直到命令完成。当certificates文件夹中创建了2个
.pem
文件时,命令即完成。 -
打开位于
SignallingWebServer
文件夹中的config.json
文件,将UseHTTPS
值设置为true
。
你现在应该可以开始运行并测试你的VR应用程序!
上面创建的证书仅用于测试用途。如需完整云部署,你将需要整理恰当的证书。
加入VR流
就本示例而言,我们将使用Meta Quest 2。
-
启动位于
\SignallingWebServer\platform_scripts\cmd
中的Start_Signalling.ps1
脚本 -
返回编辑器,独立运行应用程序。因为你在之前步骤中添加了启动参数,所以它应该在完全启动之后连接到信令服务器。
-
现在使用你的VR头戴设备,打开Web浏览器并输入你的计算机的IP地址。你将看到"连接不安全(Connection not secure)"页面,打开"高级(Advanced)"选项卡并点击"继续到IP(Proceed to IP)"
-
你应该会在浏览器窗口中看到应用程序流送到两个视图。点击左侧的XR按钮以切换到VR。
-
大功告成!现在你应该位于你的像素流送的VR项目中!