• 有两种方式启动三维渲染服务器

一、方式一:使用 UE Editor 作为渲染服务器

  1. 启用像素流送插件
    Pixel Streaming
  2. 启用触控设备输入(可选)
    编辑(Edit)】 > 【项目设置(Project Settings)】 > 【引擎(Engine)】 > 【输入(Input category)】 下启用 【固定显示触控界面(Always Show Touch Interface)】 设置
  3. 设置额外启动参数
    编辑(Edit)】 > 【编辑器偏好(Editor Preferences…)】 > 【关卡编辑器(Level Editor)】 > 【播放(Play)】 > 【额外启动参数(Additional Launch Parameters)】中添加参数 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -AllowPixelStreamingCommands
  4. 启动游戏
    通过独立进程游戏的模式启动游戏
    unreal独立进程游戏

二、方式二:通过打包的程序

  1. 打包前对 UE Editor 进行配置,参照方式一的前两步
  2. 启动【打包项目】
    unreal打包项目
  3. 设置启动程序的命令行标签
    • 按住 Alt 键并拖动 .exe 文件即可在相同文件夹中(或在其他任意处)新建一个快捷方式
    • 右键点击快捷方式并从上下文菜单中选择 属性(Properties)
    • 快捷方式属性(Shortcut Properties) 窗口的 快捷方式(Shortcut) 选项卡中,在 目标(Target) 域的末尾附加文本 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen 并点击 确认

三、启动服务器

启动一个服务,在虚幻引擎应用程序和客户端浏览器间建立点对点的连接(WebRTC)

  1. 打开信令服务器路径
    在虚幻引擎安装文件或打包的文件中,在 Samples / PixelStreaming / WebServers / SignallingWebServer 中找到信令服务器的路径
  2. 准备信令服务器
    以管理员身份打开 PowerShell 并运行 SignallingWebServer \ platform_scripts \ cmd \ setup.ps1 安装所有需要的依赖项
  3. 开启信令服务器
    运行 SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1 开启信令服务器,启动成功如下截图
    unreal信令服务器开启成功结果
  4. 启动虚幻引擎应用程序
    运行 MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 -RenderOffScreen 或双击上面创建的快捷方式
  5. 虚幻应用程序连接到信令服务器
    Power Shell 窗口看到以下输出表示连接成功 Streamer connected: ::ffff:127.0.0.1

四、浏览器访问

  1. 本机:在 Web 浏览器地址导航栏输入 http://127.0.0.1
  2. 其他电脑:输入运行虚幻应用程序电脑的 IP 地址

五、每个连接的客户端从虚幻引擎的单独实例流送内容

上面的方式是启动一个像素流送实例,如果有多个浏览器客户端访问同一个流送实例的话,看到的是相同的场景;有时需要所有用户能拥有各自的交互体验,而非将每个用户都连接到同一流送中。要进行此操作,通过配对服务器管理和分配信令Web服务器,可为每个用户单独运行他们的像素流送组件的堆栈,并为每个用户单独指定信令Web服务器,以便开始连接。

  1. 设置配对服务器

Samples/PixelStreaming/WebServers/Matchmaker 文件夹下有一个参考的配对服务器实现,启动信令Web服务器前,运行配对服务器的 run.bat 文件以启动该服务器,也可以在启动命令中设置端口号 run.bat --httpPort 88 --matchmakerPort 9988,前者是 HTTP 连接(浏览器访问配对服务器)所用的端口,后者是配对服务器聆听传入状态消息(来自信令和Web服务器)所用的端口。

配置参考实例:

```json
{
    "HttpPort": 90,
    "UseHTTPS": false,
    "MatchmakerPort": 9999,
    "LogToFile": true
}
```
  1. 修改每个信令web服务器配置
  • 注意:如希望在同一电脑上使用像素流送来运行多个虚幻引擎实例,须注意 NVIDIA GeForce 系列等诸多应用级显卡一次最多只能运行 3 个编码器QuadroTesla 等专业级显卡则无此类限制。
参数 描述
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
    }
    
  1. 运行多个虚幻引擎应用程序

对应配置的每个信令web服务StreamerPort 端口号,启动两个应用程序实例

MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888 -RenderOffScreen
MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8878 -RenderOffScreen

参考:

  1. 虚幻引擎像素流送入门
  2. 创建主机和网络连接指南