UE像素流送、 交互

这篇具有很好参考价值的文章主要介绍了UE像素流送、 交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官网地址 =====》 https://docs.unrealengine.com/4.26/zh-CN/

第一步

先决条件

  • 检查操作系统和硬件-

像素流送插件只能在运行Windows和Linux操作系统的电脑上编码视频,对电脑的GPU硬件还有一定要求。欲知详情,请查阅像素流送参考

  • 安装node.js -

如果电脑上尚未安装 node.js,则需要下载并安装

  • 打开网络端口-

必须打开本地网络上的以下端口进行通信:80、888。如需修改默认端口,请查阅像素流送参考

  • 停止其他web服务器 -

如果电脑正在运行其他Web服务器,则将其停止。

  • IP地址-

如果你希望通过网络测试像素流,你需要知悉电脑的IP地址。

不过,你可以先通过LAN或VPN测试像素流送。你可以使用 localhost127.0.0.1 作为你的像素流IP地址。 如果尝试从不同网络的电脑或移动设备上进行连接,则你可能需要将信令服务器配置成使用STUN/TURN服务器。访问此像素流参考页面了解操作方法。

1 - 准备虚幻引擎应用程序

在这个步骤中将为项目创建一个standalone可执行文件。

  • 只有将项目作为打包应用程序运行时、或使用

Standalone Game 选项在虚幻引擎中启动时才能使用像素流送插件。

  • 要使像素流送插件从应用程序中提取并流送音频,需要用一条特殊的命令行标签启动虚幻引擎:

-AudioMixer。以下步骤将解释如何在两种情况下进行设置。

  1. 在虚幻编辑器中打开项目。

  1. 在虚幻编辑器的主菜单中选择

编辑(Edit) > 插件(Plugins)

  1. 图像(Graphics) 下找到 像素流送(Pixel Streaming) 插件并勾选 启用(Enabled) 框。

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
  1. 点击 立即重启(Restart Now) 重启项目并应用修改。

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
  1. 返回虚幻编辑器,从主菜单中选择

编辑(Edit) > 项目设置(Project Settings)

  1. 如果项目中有角色,而您希望启用触控设备的输入(如手机和平板电脑)在关卡中移动此角色,则可能需要在屏幕上显示触摸控制器。

引擎(Engine) > 输入类型(Input category) 下启用 固定显示触控界面(Always Show Touch Interface) 设置。

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档

此项为任选,并非所有项目强制要求。然而,在第三人称面板之类的项目中,这能确保拥有触控设备的用户能对流送的应用程序进行控制(前提是项目的玩家控制器支持输入)。

  1. 在主菜单中选择

编辑(Edit) > 编辑器偏好(Editor Preferences...)

关卡编辑器(Level Editor) > 播放(Play) 中找到 额外启动参数(Additional Launch Parameters) 设置,并将其值设为 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
  1. 打包Windows项目。从虚幻编辑器的主菜单中选择 文件(Files) > 打包项目(Package Project) > Windows > Windows (64-bit)

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
  1. 在项目找打开虚幻引擎放置项目打包版本的文件夹,点击 选择文件夹(Select Folder)

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
  1. 虚幻编辑器将开始打包进程。

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
  1. 打包进程完毕后,前往上方第6步中选择的文件夹。将找到一个名为 WindowsNoEditor 的文件夹,其中的内容类似于下图:

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
  1. 每次启动打包应用程序时,均需要传递与第9步中一样的命令行标签。执行此操作的一种方法是设置一个快捷方式:

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档

右键点击快捷方式并从上下文菜单中选择 属性(Properties)

在 *快捷方式属性(Shortcut Properties)** 窗口的 **快捷方式(Shortcut)** 选项卡中,在 **目标(Target)** 域的末尾附加文本 `-AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888` 并点击 **确认**。

2 - 启动服务器

在这个步骤中将开启网络服务,在虚幻引擎应用程序和客户端浏览器间建立点对点的连接。

以下步骤假设你使用的是Windows系统。不过,Linux系统上的操作方式相同,唯一不同在于你要执行 SignallingWebServer\platform_scripts\cmd\bash 目录中的脚本。

  1. 在虚幻引擎安装文件夹中,在

Samples/PixelStreaming/WebServers/SignallingWebServer 中找到信令服务器的路径。

![信令服务器和网络服务器](pixelstreaming-gs-servers-signalling.png)

  1. 为了准备信令服务器,首先以管理员身份打开PowerShell并运行

SignallingWebServer\platform_scripts\cmd\setup.ps1。这会安装所有需要的依赖项。

  1. 运行

SignallingWebServer\platform_scripts\cmd\Start_SignallingServer.ps1 开启信令服务器。首次运行服务器时其将下载需要的所有依赖性。服务器启动,能够接收连接后,控制台窗口中将出现以下命令行:

WebSocket listening to Streamer connections on :8888WebSocket listening to Players connections on :80Http listening on *: 80

  1. 现在用上一节中创建的快捷方式来启动虚幻引擎应用程序。或者,如果你习惯用命令行来启动应用,请执行以下命令:

MyPixelStreamingApplication.exe -PixelStreamingIP=127.0.0.1 -PixelStreamingPort=8888

启动信令服务时遇到的问题

1.

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档

解决方法: 取消代理 ,并设置淘宝镜像

npm config delete proxy
npm config delete https-proxy
npm install -g cnpm --registry=https://registry.npm.taobao.org

app.js 修改端口

ws = new WebSocket('ws://127.0.0.1:80')

页面通讯

点击UE魔板时 js发送数据到UE js-----> UE

所有的信息传递都由 UE工程写好蓝图

例如

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档

相对应的在UE里的蓝图表现为

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档

理解为js端 通过apiSend调用emitUIInteraction 方法 类似于事件发送

UE端拿到json后解析funName(poi,jt)然后拿到值

/**
 *向后端发送一个json对象,进行数据交互
 * @param {JSON} jsonData
 */
export function apiSend (jsonData) {
  debounce(() => emitUIInteraction(jsonData), 100)
}

反过来

UE像JS端发送消息

场景为====》当点击某个模型时 传回该模型的Id 以ID查到该模型的数据 再通过上述方法传回UE进行实时渲染。

那么这个UE传ID到JS的过程就是

UE的蓝图写了一个方法 然后我点击模型的时候UE会通过apiOnResponse方法调用addResponseEventListener (类似监听器),

代码为

传入 funcName==getXY

意思是监听UE的getXY 方法,返回一个回调函数 ,返回值作为参数传入

这样 就能监听到UE传来的值了

UE像素流送、 交互,vue,vue.js,javascript,ue4,Powered by 金山文档
apiOnResponse('getXY', (data) => {
  const msg = JSON.parse(data)
  const tips = document.getElementsByClassName('tips')[0]
  if (msg.devStop) {
    console.log(msg)
  } else {
    const x = JSON.parse(msg.name).x / 3840 * 100
    const y = JSON.parse(msg.name).y / 1080 * 100
    /* const name = JSON.parse(msg.name).name */
    this.isShow = true
    tips.style.left = `${x}%`
    tips.style.top = `${y}%`
  }
})
/**
 *创建一个监听后端返回数据的事件
 * @param {*} funName 监听函数名
 * @param {*} callback 后端响应后的回调函数
 */
export function apiOnResponse (funName, callback) {
  addResponseEventListener(funName, callback)
}

值得一提的是

之前我试了好几次的js发送json到UE都不行,后面发现UE场景里面要加上玩家控制器才可以。。。正常发送数据文章来源地址https://www.toymoban.com/news/detail-725248.html

到了这里,关于UE像素流送、 交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE4(虚幻4)预算上的纹理流送池(texture streaming poor over)报警解决方法

    我们在运行UE4程序时会遇到警告:预算上的纹理流送池,虽然不影响程序正常运行,但就是看着挺刺眼的。有强迫症的我是在忍不哈,于是决定灭了他 _ 问了一下度娘: 纹理流送是运行时将纹理加载和卸载进出内存的系统,当场景中的纹理流送超过默认值将会产生警告,解决

    2024年02月03日
    浏览(58)
  • 【UE4 像素流 WEBUI插件】部署像素流

    目录 一、单实例本地像素流送 步骤 1. 勾选插件 2. 打包工程并启动信令服务器 3. 创建快捷方式并启动游戏 二、单实例局域网像素流送 步骤 1. 编辑cirrus.js 2. 编辑快捷方式属性 3. 启动 三、集成WEBUI插件 勾选使用“Pixel Streaming”插件,然后点击立即重启 打包一个工程(注意:

    2024年02月16日
    浏览(39)
  • 虚幻引擎集成web前端<一>:win环境UE4.27导出像素流并集成到vue2环境(附案例)

     本案例附件:https://download.csdn.net/download/rexfow/88303544 -AudioMixer -PixelStreamingIP=localhost -PixelStreamingPort=8888 1、执行run_local.bat: SamplesPixelStreamingWebServersSignallingWebServerplatform_scriptscmd F:UEpackageUE4271WindowsNoEditorSamplesPixelStreamingWebServersSignallingWebServerplatform_scriptscmd 运行后

    2024年02月09日
    浏览(40)
  • 虚幻引擎集成web前端<二>:UE4 像素流 与 web 通信

    Vue 和 Unreal Engine (UE) 之间的通信可以通过多种方式实现。以下是一些建议的方法: 使用 Websockets:Websockets 是一种在客户端和服务器之间进行双向通信的技术。在 Vue 端,你可以使用一个 Websockets 库(如 socket.io)来与 UE 服务器建立连接。在 UE 端,你可以创建一个 Websockets 服务

    2024年02月09日
    浏览(43)
  • UE4 控件蓝图与蓝图的交互

    我现在想实现的是点击场景中的一个蓝图中的某个静态网格体,然后在控件蓝图中的文本控件中就能显示这个被点击的静态网格体的名称。 首先我在控件蓝图中对其中的一个文本控件创建了一个绑定函数 绑定函数的逻辑如下: “整车 内部无系统”是我添加的一个变量,该变

    2024年02月11日
    浏览(44)
  • UE4 UltraDynamicSky 天气与水体交互

    最上面的Lerp的A通道为之前的水面效果,B是做的冰面效果 用Dynamic_Landscape_Weather_Effects的BaseColor的R通道四舍五入作为Lerp的Alpha值 使用一张贴图,乘以RadialGradientExponential对材质边缘做弱化,RadialGradientExponential的Raidius让BaseColor与一个常量相乘,这样可以做出小雪,中雪,大雪对

    2024年02月06日
    浏览(37)
  • UE4 3DUI显示与交互案例

    实现效果:   实现步骤: 1.打开一个第一人称游戏模板,创建控件蓝图,命名为 全自动_UMG    2.双击打开全自动_UMG,创建两个按钮  3.新建一个蓝图,命名为3DUI_test   4.双击打开3DUI_test,添加一个控件组件    5.选中widget组件,控件类选为全自动_UMG  6.选中widget,设置绘制大

    2023年04月18日
    浏览(46)
  • UE4和C++ 开发-C++与UMG的交互2(C++获取UMG的属性)

    1、...C++获取UMG的属性 1.1、第一种方法:通过名称获取控件。 优点:可以拿到对象引用,调用系统预定义好的事件(函数)。 缺点:无法拿到在蓝图中创建的属性,可以C++创建控件父类,属性也在C++中定义,这样的话可以拿到。 1.2、第二种方法:通过宏绑定控件 (控件类型

    2024年02月08日
    浏览(39)
  • UE5.1 利用WEBUI插件完成UE与JS的交互 (UE5.1嵌入WEB)

    目录 一、UE4显示Echart图表 二、UE调用JS(修改Echart图表数据) 三、JS调用UE(UE4中打印js传递过来的数据) 步骤: 1.下载WEBUI插件 我的UE编辑器版本是4.24.3对应版本的插件下载地址是 webui 插件:链接:https://pan.baidu.com/s/1vaZiqre8K2GEueVJOtZ2fA?pwd=xsby  提取码:xsby  下载后解压放到

    2024年03月20日
    浏览(36)
  • vue项目与ue交互

            要使vue文件在ue中正常使用,首先要打包后的index.html文件可以正常打开。所以先来配置vue项目。 1,找到vue.config.js文件,在module.exports里面配置 publicPath: \\\"./\\\"。 2,找到你的路由文件  router/index.js,将路由的mode改成hash。 3,上述两步就可以让页面正常显示了,但现

    2023年04月17日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包