UE4的NDisplay可构建Cave系统(ue4 createdefaultsubobject)
liebian365 2024-11-15 21:47 36 浏览 0 评论
官方文档,版本UE4.27
https://docs.unrealengine.com/4.27/zh-CN/WorkingWithMedia/IntegratingMedia/nDisplay/
可以参照文档了解NDisplay的相关内容。
1.创建工程,以第三人称射击游戏为例。
2.勾选插件,重启项目
nDisplay:
Switchboard:
3.项目设置,使得nDisplay起作用。按照提示重启项目
4.在项目中右键创建nDisplayConfig文件
出现对话框,可以选择模板也可以选择全新的。我们此例选择新的。
5.打开新建的配置文件并进行三幕拼接配置。如果点击编译会报警告
因为我们是单机测试加一个节点即可,如果需要多机器渲染那么按照需求添加。
弹出对话框,把IP填上,本机测试填127.0.0.1
其他按照需求修改
默认有一幕,然后添加两幕,并分别命名Left Front Right
结果如下图:
6.三个nDisplayScreen进行Transform设置以达到拼接目的
根据nDisplayScreen的屏幕比例进行等比设置缩放scale,这里选择16:9
三块屏参数如下:
7.对第5步创建的渲染节点根据屏幕块数增加node并命名。注意后面有Master的node为控制机
对三个node节点进行设置。三个节点无缝连接成一排。大小根据需求缩放。
下图为左边节点数据。Front的横轴位置右移768,Right的右移2*768即为1536
对node的子节点即代表的屏幕进行设置。VP_Left设置如下:
VP_Front和VP_Right对应Screen选择Front,Right
预览视图OutputMapping内显示的嵌套关系,三块屏幕横向放置。提示可以按照比例根据需求缩放,效果如下:
8.保存然后将设置完的nDisplayConfig文件拖到场景中。
9.为了让渲染效果随控制器变化,可以把nDisplayConfig放置在第三人称控制器下做子物体。nDisplayConfig初始化为0.
10.在第三人称控制器内加点逻辑,让nDisplayConfig的视角跟随控制器视角变化
(1)让鼠标显示,便于聚焦主屏幕。获取控制器下的子物体
(2)新建事件,把控制器的相机旋转赋给nDisplayConfig
(3)将新建的事件放在相机旋转变化的事件之后
11.设置nDisplay的控制工具 Switchboard。
(1)在编辑器视口上方打开Switchboard。第一次安装会弹出安装窗口。这里要注意:环境链接非国内。如果安装完后,打不开Switchboard面板,那么是环境没装好。
(2)打开面板会出现如图窗口,点击Ok.如果ConfigPath和uProject为空则将uProject定位到当前项目即可自动填写
(3)添加设备nDisplay
(4)点击扫描配置文件按钮。看到配置文件,点击OK即可。
(5)结果如图:
(6)更改Switchboard的默认设置,图示关闭多人连接器
多屏显示设置如下图:启用多核支持,选择dx11增加兼容性,GPU数量改为1,进程质量选择Low,方便测试效果。
(7)打开Switchboard服务端监听
窗口会立刻窗口化
(8)运行Switchboard,点击设备连接
连接成功如图:
(9)点击开始所有已经连接的多屏设备
12.多屏效果如图:
为了看着效果好,可以把人物模型隐藏或者拖到相机之后。效果如图:
注意:鼠标点击左侧窗口或者选择左侧窗口方可控制运动和镜头
13.打包部署
正常打包即可。打完包,导出nDisplayConfig文件到打包的文件夹里。
14.关闭引擎后,switchboard不关闭。如果想单独起switchboard,那么需要追踪到switchboard.bat后,将其关联的路径进行修改。
15.修改switchboard配置,关联为打包好的项目。
清空uProject和EngineDir目录
修改nDisplayConfigFile位置为打包文件夹里导出的nDisplayConfig
nDisplayExecutableFilename改为打包后的exe
16.启动屏幕设备,看到效果。这样基本的Cave显示效果搭建完毕。
相关推荐
- msp的昌伟哥哥(伟昌怎么样)
-
佩戴HoloLens的多个用户可以使用场景共享特性来获取集合视野,并可以与固定在空间中某个位置的同一全息对象进行交互操作。这一切是通过空间锚共享(AnchorSharing)来实现的。为了使用共享服...
- VOculus Rift、Gear VR平台开发者合作申请指南
-
编译/游戏陀螺案山子OculusHome平台——OculusRift和三星Gear主要的应用平台,包括PC版和移动版都可以使用。而现在使用的OculusShare平台,据悉将来也会整合到Ocu...
- 游戏中的"状态机”和"行为树”是什么?
-
状态机是一种模型,用于描述对象在不同状态下的行为和转换。在游戏里,状态机通常用于控制角色或NPC在不同状态下的行为。比如说,一个角色可以有多个状态,比如“待机”、“行走”、“攻击”、“受伤”等,每个状...
- JetBrains Rider现已支持PS5和Xbox主机游戏开发
-
IT之家3月27日消息,Rider是一款由JetBrains出品的跨平台.NETIDE,在2024.3版本中,JetBrainsRider增加了对PlayStation5...
- Unity WebGL 应用开发总结(unity webgl发布)
-
UnityWebGL应用开发总结1.开发环境软件版本Unity2020.1.0f1PyCharm2022.3.2Python3.7.32.编译WebGL对Unity项目进行WebGL编译时...
- 【6.Physics和动画】5.动画(动画电影)
-
5.动画现在,角色可以移动了,但在移动时形象一直不变,对于玩家来说比较生硬,本节中我们让角色在移动时能够播放动画。Unity2D游戏中,角色动画一般采用帧动画的形式来实现。所谓帧动画就是在每一帧显...
- unity3d开发教程-开发环境搭建(unity3d开源项目)
-
一、安装Unity1、从官网下载UnityHub:https://unity.com/download,选择[DownloadforWindows]下载完成后,双击打开安装。一直点...
- 【2.UI元素】3.Panel and Button(ui界面元素)
-
3.PanelandButton3.1PanelPanel(面板)本质上就是预先设置好的Image。可以作为其他UI元素的父级。在层级窗口右击选择UI->Panel即可创建。...
- 揭秘!你玩的字节抖音小游戏制作流程公布
-
1.1注册字节开发者后台1.2Unity版本说明1.3检查AppID是否有效2.1创建项目2.2接入SDK3.1发布安卓Apk3.2发布双端WebGL3.3IOS15.4版本问题字节抖...
- 临时工闯下大祸《糖豆人》源代码更新时不慎泄露
-
这次《糖豆人》工作室Mediatonic的临时工闯下了大祸,在更新时一不留神把游戏的源代码给泄露了。当然,这次泄露之后,官方删除的动作也很快,但是没快过SteamDB创始人PavelDjundik...
- 为3D手游打造, Visual Studio Unity扩展下载
-
IT之家(www.ithome.com):为3D手游打造,VisualStudioUnity扩展下载7月30日消息,微软正式发布升级版VisualStudioToolsforUnity扩...
- 【2.C#基础】3.脚本入门(c# 脚本引擎)
-
3.脚本入门3.1脚本概要在上一节创建的脚本中,包含了一段模板代码,双击工程窗口中的脚本图标,系统自动打开代码编辑器(VSCode)可以看到代码如下图所示:说明:System.Collections...
- unity专题:unitask库(1)(unitypackage)
-
UniTask是一个Unity引擎中的异步编程库,它可以帮助你在Unity项目中编写更简洁、高性能的异步代码。UniTask以Promise/Task的编程模式为基础,提供了与C#...
- 零基础带你看游戏内灰度效果实现原理
-
前言在Unity中实现后处理效果有两种方式:一种是通过使用Unity官方提供的Post-Processing插件。另外一种方式就是使用脚本获取到渲染后帧缓冲区的图像,再通过shader写后处理的效果,...
- 团结引擎自定义Scene视图的层叠面板和工具栏
-
团结引擎提供的了功能,可以为Scene视图添加层叠面板和自定义工具栏,这里学习官方的经典案例。创建层叠面板。总结需要三个步骤:1、创建编辑器脚本(需存放在Editor目录下)2、继承Overlay类,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)