Vue3中集成Unreal 5.2 像素流(Pixel Streaming插件)

news2024/11/26 13:38:48

目录

        • 1. 创建一个Unreal项目
        • 2. 启用Pixel Streaming插件
        • 3. 下载Unreal 5.2对应的Pixel Streaming Infrastructure
        • 4. 创建一个Vue项目
        • 5. 推流方式一:使用Unreal Engine 5.2
        • 6. 推流方式二:打包项目
        • 参考资源:

1. 创建一个Unreal项目

默认大家都已经成功安装好了Unreal Engine 5.2版本。如果没有的话,可以先去官网下载一个EPIC,然后从EPIC里下载一个Unreal Engine 5.2,推荐大家安装的时候选一个空间大一些的盘,最好放在固态里,这样启动可以快很多。
首先,在EPIC里启动安装好的Unreal Engine 5.2.
在这里插入图片描述
点击游戏,选择空白项目,取消勾选初学者内容包,这样可以少占一些空间,选择合适的项目位置,最好不要选择C盘,因为Unreal项目所占的空间都比较大,然后单击创建。
在这里插入图片描述
现在就创建好了一个空白项目,如下图所示。
在这里插入图片描述

2. 启用Pixel Streaming插件

单击菜单栏-编辑-插件,搜索Pixel Streaming,勾选后点击立即重启。
在这里插入图片描述
当重启完成后,出现像素流送按钮,说明插件启用成功。
在这里插入图片描述

3. 下载Unreal 5.2对应的Pixel Streaming Infrastructure

推荐大家直接从github上下载PixelStreamingInfrastructure最新版的,也可以打包项目,打包完成后里也是有的。
找一个空白目录,打开cmd,输入以下命令,确保已经安装过git。

git clone https://github.com/EpicGames/PixelStreamingInfrastructure.git

clone完成后,目录是这个样子,未来也许会改变。
在这里插入图片描述
简单介绍一下,每个文件夹的内容。

  1. 配对器(MatchMaker):该文件夹包含配置和运行配对器所需的所有脚本。
    在这里插入图片描述
  2. SFU:该文件包含配置和运行选择性转发单元(SFU)所需的所有内容。
    在这里插入图片描述
  3. SignallingWebServer :这是必需像素流送元素的位置,例如信令服务器、Web服务器和前端。
    在这里插入图片描述
    Platform_scripts 目录是用于启动每个像素流送元素的所有脚本的常用位置。你可以在 cmdbash 中分别找到Windows和Linux的脚本。

4. 创建一个Vue项目

创建vue项目的方式很多,通过手脚架或者命令行都可以。
创建一个新的Vue项目,然后通过vscode或者webstorm打开,目录大致如下所示:
在这里插入图片描述
安装UE5.2的PixelStreaming对应的前端依赖,一个是API库依赖,一个是UI库依赖。

npm install @epicgames-ps/lib-pixelstreamingfrontend-ue5.2
npm install @epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.2

在views目录下,新建一个vue文件,命名为Player.vue
代码如下:

<template>
    <div>
      <!-- 页面内容 -->
    </div>
</template>
  
  <script>
import { Config, PixelStreaming } from '@epicgames-ps/lib-pixelstreamingfrontend-ue5.2';
import { Application, PixelStreamingApplicationStyle } from '@epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.2';

export default {
    name: 'PlayerView',
    mounted() {
      const PixelStreamingApplicationStyles = new PixelStreamingApplicationStyle();
      PixelStreamingApplicationStyles.applyStyleSheet();
  
      // Example of how to set the logger level
      // Logger.SetLoggerVerbosity(10);
  
      // Create a config object
      const config = new Config({ useUrlParams: true });
  
      // Create a Native DOM delegate instance that implements the Delegate interface class
      const stream = new PixelStreaming(config);
      const application = new Application({
        stream,
        onColorModeChanged: (isLightMode) => PixelStreamingApplicationStyles.setColorMode(isLightMode)
      });
  
      document.body.appendChild(application.rootElement);
    },
    methods: {
      // ...
    }
}
</script>
  
<style>
body {
    width: 100vw;
    height: 100vh;
    min-height: -webkit-fill-available;
    font-family: 'Montserrat';
    margin: 0;
}
</style>
  

修改router目录下的index.js:
将其引入:
在这里插入图片描述

import PlayerView from '@/views/Player.vue'

然后将其暴露出去:
在这里插入图片描述

{
    path: '/',
    name: 'player',
    component: PlayerView
  },

启动项目,在命令行中输入:

npm run serve

启动完成后,在浏览器中输入网址http://localhost:8080/

此时,可以看到默认的播放器画面。
在这里插入图片描述

5. 推流方式一:使用Unreal Engine 5.2

回到我们刚才的Unreal项目,点击像素推流,点击启动信令服务器,然后点击流送关卡编辑器。
在这里插入图片描述
现在,回到浏览器中,点击默认播放器左边的设置按钮,将Signaling url修改为ws://localhost:80;
在这里插入图片描述
现在就可以正常看到画面了,并且支持鼠标、键盘的基础操作,此时的画面和Unreal Engine中是同步的。
在这里插入图片描述

6. 推流方式二:打包项目

如果项目未来要发布的话,一定是采用这种方式的。
点击菜单栏-编辑-编辑器偏好设置
在这里插入图片描述
选择,关卡播放器-播放
在这里插入图片描述
找到额外启动参数选项,输入参数为:-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
在这里插入图片描述
完成这步后,打包项目:
在这里插入图片描述
打包完成后,找到文件夹打开,目录大致如下:
按住Alt键拖动一个快捷方式出来,然后右键-属性,添加启动参数:
-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888
在这里插入图片描述
在这里插入图片描述
完成这些工作后,启动我们在第三步下载的信令服务器。
使用管理员权限打开powershell,进入目录PixelStreamingInfrastructure\SignallingWebServer\platform_scripts\cmd
启动Start_SignallingServer.ps1
启动完成后,界面如下:
在这里插入图片描述
现在,双击打开快捷方式,然后在浏览器中打开我们的vue项目,也可以看到界面了。

参考资源:

Unreal官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人的免费使用方法

目录 一、机器人是什么&#xff1f; 二、机器人免费使用的方法&#xff1a; 第一点&#xff1a;电脑端 第二点&#xff1a;手机端 三、结语&#xff1a; 一、机器人是什么&#xff1f; 博主理解&#xff1a;方便生活&#xff0c;比Siri更加高级&#xff0c;能够智能的对我们…

chatgpt赋能python:Python就业前景分析

Python就业前景分析 Python已成为全球最流行的编程语言之一&#xff0c;因其易学、易用、高效、可扩展性强等特点&#xff0c;Python在各个领域都发挥着重要作用。Python的发展和应用迅猛&#xff0c;拥有Python编程经验的工程师在各个领域都面临着广泛的就业机会。 Python的…

推荐一个Edge浏览器中的一个好用问答插件。

目录 ChatGPT介绍:一、ChatGPT是什么?二、ChatGPT发展:三、ChatGPT 优点:四、Edge浏览器插件五、结语: ChatGPT介绍: 一、ChatGPT是什么? ChatGPT 是一个基于语言模型 GPT-3.5 的聊天机器人&#xff0c;ChatGPT模型是Instruct GPT的姊妹模型&#xff08;siblingmodel&#x…

Sql Server 自动备份

Sql Server 自动备份 文章目录 Sql Server 自动备份1. 打开SQL Server&#xff0c;在管理下找到”维护计划”&#xff0c;右键点击”维护计划向导”&#xff0c;如图&#xff1b;2. 再次点击维护计划向导3. 在选择维护任务下勾选”备份数据库”、”清楚维护任务”4.选择需要备份…

ChatGPT应用于软件测试中的切入口(干货!)

以上均为本人原创&#xff0c;转载请说明出处&#xff0c;谢谢&#xff01; 如果您觉得这篇文章还不错的话&#xff0c;请点击关注&#xff0c;转发&#xff0c;再看&#xff1b; 全是干货&#xff0c;话不多说 开搞&#xff01; 1. 测试想法生成器 可以使用ChatGPT技术&…

宝塔反代教程+国内服务器访问openai api接口+502 Bad Gateway问题解决!

前言 宝塔反代教程国内服务器访问openai api接口502 Bad Gateway问题解决! 此方法最简单快捷&#xff0c;没有复杂步骤&#xff0c;不容易出错&#xff0c;即最简单&#xff0c;零代码、零部署的方法。 实现前提 一台海外VPSOpenAI官方的API_KEYChatGPT网站系统源码 ChatGP…

手机上谷歌的方法有哪些

google的方法 一般情况下&#xff0c;我们打开谷歌都是提示无法显示页面的&#xff0c;如图 先百度搜索下载一个能切换IP地址的软件 下载压缩包客户端到桌面上(没安装winRAR的童鞋请安装一下) 把客户端解压到桌面&#xff0c;双击里面的exe文件 输入注册好的账户和密码&#xf…

Spring项目启动报错java.lang.NoClassDefFoundError : javax/xml/soap/SOAPException

文章目录 1.背景2.原因3.解决办法4.参考资料 1.背景 今天&#xff0c;在新设备上启动一个之前的项目的时候&#xff0c;发现启动不了了&#xff0c;报错 java.lang.NoClassDefFoundError : javax/xml/soap/SOAPException2.原因 网上查询了一下&#xff0c;大概的原因就是因为…

bert预训练梳理

BERT (Bidirectional Encoder Representation Transformers) 是在2018年由Google AI 团队发布的&#xff0c;虽然在此前刚发布不久的ELMo模型已经相比过去带来了很大的改善&#xff0c;但是BERT在各主流任务上取得的成绩仍然是一个质的飞跃。可以说&#xff0c;此后2-3年陆续出…

线程的start方法剖析

线程的start方法剖析 public synchronized void start() {if (threadStatus&#xff01;0)throw new IllegalThreadStateException();group.add(this);boolean started false;try {start0();started true;} finally {try {if (&#xff01;started){group.threadStartFailed…

javascript基础三十一:web常见的攻击方式有哪些?如何防御?

一、是什么 Web攻击&#xff08;WebAttack&#xff09;是针对用户上网行为或网站服务器等设备进行攻击的行为 如植入恶意代码&#xff0c;修改网站权限&#xff0c;获取网站用户隐私信息等等 Web应用程序的安全性是任何基于Web业务的重要组成部分 确保Web应用程序安全十分重…

安裝系列 之《Ubuntu 22.04 Mysql 8.0 在线安装和设置静态IP》

为了以后我能直接用&#xff0c;特此记录下来&#xff0c;方便你我他。 开始安装 apt-get update sudo apt install mysql-server -y输入命令&#xff0c;直接安装 输入 mysql --version 就可以看到版本 然后&#xff0c;开始设置默认密码和允许外网访问 sudo mysql -uroot …

异步任务池

Java中的线程池设计得非常巧妙&#xff0c;可以高效并发执行多个任务&#xff0c;但是在某些场景下需要对线程池进行扩展才能更好地服务于系统。例如&#xff0c;如果一个任务仍进线程池之后&#xff0c;运行线程池的程序重启了&#xff0c;那么线程池里的任务就会丢失。另外&a…

Linux 配置系统白名单 gcc/g++

推荐书籍《程序员的自我修养》《深入理解计算机系统》 配置系统白名单 我们在使用普通用户的时候&#xff0c;有些时候需要使用 sudo 指令来对某一条指令直接进行权限提升&#xff0c;因为某一些指令可能因为使用的路径或者其他原因&#xff0c;普通用户没有权限使用这个命令&…

spring boot + minio 分布式文件上传

介绍 1、分布式文件系统 简单理解为&#xff1a;一个计算机无法存储海量的文件&#xff0c;通过网络将若干计算机组织起来共同去存储海量的文件&#xff0c;去接收海量用户的请求&#xff0c;这些组织起来的计算机通过网络进行通信。 好处&#xff1a; 一台计算机的文件系统…

固定风格任意内容的快速风格迁移(讲解网络模型部分)

目录 一、目标&#xff1a;求出一个某种固定风格图像转换网络二、对比一下&#xff1a;v1算法和v2算法的区别在哪里&#xff1f;三、参数四、v2算法的优点五、图像风格转换算法的扩展性六、网络细节&#xff08;该算法的特点&#xff09;七、参考资料 下面我们统一把&#xff1…

《计算机网络——自顶向下方法》精炼——4.3.1-4.4.1

学习和研究好比爬梯子,要一步一步地往上爬,企图一脚跨上四五步,平地登天,那就必须会摔跤了。——华罗庚 文章目录 路由器工作原理输入端口概述交换结构概述输出端口何处出现排队路由选择控制平面 网际协议&#xff1a;因特网中的转发和编址数据报格式IP数据报分片 路由器工作原…

29 # node 中的 eventloop

process.cwd cwd&#xff1a;current working directory 表示当前用户的工作目录&#xff08;这个目录可以更改用户自己切换即可&#xff09; 当用户在哪执行 node 命令&#xff0c;就去哪找配置文件 console.log(process.cwd());__dirname&#xff1a;表示当前文件所在的目…

【计算机网络】网络编程套接字(一)

目录 1.预备知识 1.1.理解源IP地址和目的IP地址 1.2.认识端口号 1.2.1.理解"端口号"和"进程ID" 1.2.2.理解源端口号和目的端口号 1.3.认识TCP/UDP协议 1.3.1.TCP协议 1.3.2.UDP协议 1.4.网络字节序 网络字节序和主机字节序的转换 2.socket编程接…

8B/10B编码

8B/10B编码 8B/10B编码介绍实现方式8b/10b编码中的编码表和字节编码RD控制符号 8B/10B编码 介绍 8b/10b编码是将8位符号映射到10位符号&#xff0c;以实现直流平衡&#xff0c;同时提供足够多的状态来实现时钟恢复。这意味着在一个至少20位的字符串中&#xff0c;1和0的计数之…