- 有两种方式启动三维渲染服务器
一、方式一:使用 UE Editor
作为渲染服务器
- 启用像素流送插件
【Pixel Streaming
】 - 启用触控设备输入(可选)
【编辑(Edit)】 > 【项目设置(Project Settings)】 > 【引擎(Engine)】 > 【输入(Input category)】 下启用 【固定显示触控界面(Always Show Touch Interface)】 设置 - 设置额外启动参数
【编辑(Edit)】 > 【编辑器偏好(Editor Preferences…)】 > 【关卡编辑器(Level Editor)】 > 【播放(Play)】 > 【额外启动参数(Additional Launch Parameters)】中添加参数-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -AllowPixelStreamingCommands
- 启动游戏
通过独立进程游戏的模式启动游戏
二、方式二:通过打包的程序
- 打包前对
UE Editor
进行配置,参照方式一的前两步 - 启动【打包项目】
- 设置启动程序的命令行标签
- 按住 Alt 键并拖动 .exe 文件即可在相同文件夹中(或在其他任意处)新建一个快捷方式
- 右键点击快捷方式并从上下文菜单中选择 属性(Properties)
- 在 快捷方式属性(Shortcut Properties) 窗口的 快捷方式(Shortcut) 选项卡中,在 目标(Target) 域的末尾附加文本
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen
并点击 确认
三、启动服务器
启动一个服务,在虚幻引擎应用程序和客户端浏览器间建立点对点的连接(WebRTC)
- 打开信令服务器路径
在虚幻引擎安装文件或打包的文件中,在Samples / PixelStreaming / WebServers / SignallingWebServer
中找到信令服务器的路径 - 准备信令服务器
以管理员身份打开PowerShell
并运行SignallingWebServer \ platform_scripts \ cmd \ setup.ps1
安装所有需要的依赖项 - 开启信令服务器
运行SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1
开启信令服务器,启动成功如下截图
- 启动虚幻引擎应用程序
运行MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 -RenderOffScreen
或双击上面创建的快捷方式 - 虚幻应用程序连接到信令服务器
在Power Shell
窗口看到以下输出表示连接成功Streamer connected: ::ffff:127.0.0.1
四、浏览器访问
- 本机:在 Web 浏览器地址导航栏输入
http://127.0.0.1
- 其他电脑:输入运行虚幻应用程序电脑的 IP 地址
五、每个连接的客户端从虚幻引擎的单独实例流送内容
上面的方式是启动一个像素流送实例,如果有多个浏览器客户端访问同一个流送实例的话,看到的是相同的场景;有时需要所有用户能拥有各自的交互体验,而非将每个用户都连接到同一流送中。要进行此操作,通过配对服务器管理和分配信令Web
服务器,可为每个用户单独运行他们的像素流送组件的堆栈,并为每个用户单独指定信令Web
服务器,以便开始连接。
- 设置配对服务器
在 Samples/PixelStreaming/WebServers/Matchmaker
文件夹下有一个参考的配对服务器实现,启动信令Web服务器前,运行配对服务器的 run.bat
文件以启动该服务器,也可以在启动命令中设置端口号 run.bat --httpPort 88 --matchmakerPort 9988
,前者是 HTTP 连接(浏览器访问配对服务器)所用的端口,后者是配对服务器聆听传入状态消息(来自信令和Web服务器)所用的端口。
配置参考实例:
```json
{
"HttpPort": 90,
"UseHTTPS": false,
"MatchmakerPort": 9999,
"LogToFile": true
}
```
- 修改每个信令web服务器配置
- 注意:如希望在同一电脑上使用像素流送来运行多个虚幻引擎实例,须注意
NVIDIA GeForce
系列等诸多应用级显卡一次最多只能运行3
个编码器。Quadro
和Tesla
等专业级显卡则无此类限制。
参数 | 描述 |
---|---|
UseMatchmaker | 将此参数设为 true ,以便信令和Web服务器向配对服务器发送自身当前状态。 |
matchmakerAddress | 将与该信令和Web服务器连接的配对服务器IP地址。 |
matchmakerPort | 该信令和网络服务器需要向配对服务器发送消息时所用的端口。请确保此数值与配对服务器所设的 –matchmakerPort 值相匹配。 |
publicIp | 信令和Web服务器的公开可见IP地址。配对服务器将用户重新指定到该信令和Web服务器时,其会把它们发送到该IP地址。因此,其必须对连接浏览器可见。 |
httpPort | 信令和Web服务器聆听HTTP连接所用的端口。配对服务器将用户重新指定到该信令和Web服务器时,其会把它们发送到该端口。 |
配置参考实例:
-
注意:在同一电脑上使用像素流送运行多个虚幻引擎实例时,要注意
StreamerPort
要使用两个不同的端口号 -
信令web服务一:
{ "UseFrontend": false, "UseMatchmaker": true, "UseHTTPS": false, "UseAuthentication": false, "LogToFile": true, "LogVerbose": true, "HomepageFile": "/Public/player.html", "AdditionalRoutes": {}, "EnableWebserver": true, "MatchmakerAddress": "localhost", "MatchmakerPort": "9999", "PublicIp": "localhost", "HttpPort": 81, "HttpsPort": 443, "StreamerPort": 8888, "SFUPort": 8889 }
-
信令web服务二:
{ "UseFrontend": false, "UseMatchmaker": true, "UseHTTPS": false, "UseAuthentication": false, "LogToFile": true, "LogVerbose": true, "HomepageFile": "/Public/player.html", "AdditionalRoutes": {}, "EnableWebserver": true, "MatchmakerAddress": "localhost", "MatchmakerPort": "9999", "PublicIp": "localhost", "HttpPort": 81, "HttpsPort": 443, "StreamerPort": 8878, "SFUPort": 8879 }
- 运行多个虚幻引擎应用程序
对应配置的每个信令web服务的 StreamerPort
端口号,启动两个应用程序实例
MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 -RenderOffScreen
MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8878 -RenderOffScreen
参考: