廊坊师范学院学报(自然科学版)
Journal of Langfang Teachers University (Natural Science Edition)Dec.2017Vol.17 No.4
基于UE4引擎的航天科技视景仿真
系统的设计与实现
李楠,王晓宁,林智峰,梁雪松,朱志强
(北华航天工业学院,河北廊坊065000)
【摘要】介绍了一个采用虚幻4引擎(UE4)开发的火箭发射视景仿真系统的设计与实现。系统软件运行于一台
高性能图形工作站,支持HTC vive虚拟现实(VR)套装。使用3DS MAX和Maya分别制作编辑虚拟场景中的模型和 动画;在UE4中利用其蓝图系统集成并处理模型等各类资源和功能。体验者可以第一人称视角在火箭发射场等场 景虚拟漫游并使用HTC vive与场景交互。【关键词】视景仿真;航天科技;科普;UE4;蓝图
Design and Implementation of Space Technology Vision SimulationSystem Based on UE4 Engine
LI Nan, WANG Xiao-ning,LIN Zhi-feng,LIANG Xue-song,ZHU Zhi-qiang
(North China Institute of A stronautic Engineering, Langfang 065000 , China )【Abstract】 This paper introduces the design and the implementation of a visual simulation system on rocket launching based on the Unreal Engine 4 (UE4). The system software runs on a high-performance graphics workstation that supports the HTC vive Virtual Reality (VR) suite. The models and animations in the virtual scene are edited by 3DS MAX and Maya. Resources and functions of the system are integrated and managed by the blueprints system of UE4. With first-person perspective, experiencers can roam in the scenes such as the rocket launching site and so on and interact with the HTC vive suite. 【Keywords】 visual simulation; space technology; popularization of science; UE4; blueprints〔中图分类号〕TP391
〔文献标识码〕A
〔文章编号〕1674 - 3229(2017)04 - 0011 - 06
〇引言
近年来,我国的航天事业进人了快速发展时期,
用,使科普教育彻底打破了时间、空间的限制,并能 够弥补客观条件的不足,营造良好的虚拟学习和体验环境。
本系统的研发是以航天科技科普为应用背景, 将基于UE4的游戏引擎开发技术和HTC vive虚拟 现实套装(即SteamVR)应用于航天主题的科普展 品,帮助体验者在虚拟的环境中了解和体验航天科 技。限于篇幅,本文将不具体介绍对HTC vive的开发 过程。
在卫星导航、载人航天和探月工程等方面取得了重 大的成就。由于航天科技具有高技术、高机密性等特 殊性,普通人要了解和认识航天科技事业,大多通过 文字、图片、视频、动画以及实物等方式,无法亲身到 相关环境和设施中观察和体验。虚拟现实技术(VR) 一定程度上可以帮助人们近距离了解和体验航天科 技。VR技术具备的交互性、沉浸感、构想性和全息 性的特点,使其成为当代科普展教品研发和制作的 一个主要的技术手段。VR技术在科普展教中的应
[收稿日期][基金项目][作者简介]
2017-10-20
2015河北省科技厅科普展教品项目(15K55403D)
1 UE4简介
UE4即虚幻4引擎,是一■款由Epic Games公司
李捕(1976-),男,硕士,北华航天工业学院计算机与遥感信息技术学院讲师,研究方向:计算机应用。
• 11 •
2017年12月廊坊师范学院学报(自然科学版)第17卷•第4期
开发的游戏引擎,多用于开发第一人称射击游戏[1]。 UE4的高级动态光照处理功能,使其具备了实时渲 染机制,并弥补了 3DS Max、Maya等建模软件中在光 照处理方面的不足。强大的资源管理功能,可以ft速、 直观地查找资源并对其进行管理。值得一提的是
UE4的蓝图开发。
蓝图是一个完整的可视化游戏脚本系统,其 设计思想是使用基于节点的界面从虚幻编辑器中 创建游戏元素。该系统为设计人员提供了仅供程 序员使用的所有概念及工具。用蓝图开发的过程, 就是使用连线把节点、事件、函数及变量连接到一 起,创建复杂的游戏元素、实现各种行为及功能的 过程H。本系统中基于UE4的开发工作,均在引擎 的编辑器(虚幻编辑器)上进行,且绝大部分用蓝 图开发。
2系统软件设计
2.1情节设计
本系统软件共包括三个场景,分别为火箭发射 场、地面控制室和空间站场景。
火箭发射场场景包括了发射场地形、发射塔架、 火箭箭体和各类附属建筑。虚拟角色可在发射场中 漫游,并在适当的条件下(靠近某个物体或按下某个 手柄按键时)听到或看到语音和文字介绍;可进人地 面控制室场景。
在地面控制室场景中,虚拟角色可通过大屏幕 看到发射前的发射塔、箭体的多角度监视视频和发 射过程中的监视视频以及对火箭的跟踪视频;可通 过键盘或者手柄下达火箭发射命令。
在空间站场景中,虚拟角色可在空间站舱外漫 游,能看到空间站舱体、同伴宇航员、地球以及其他 太空景象。
以上场景中均实现物体的碰撞检测功能;支持
HTC vive 套装。2.2关卡设计
我们设计三个关卡对应三个场景。火箭发射场 是第一个关卡,设计两个按键触发事件来实现到控 制室和空间站的关卡切换;控制室和空间站场景则 分别为第二、第三关卡,都只需按下一个按键即可返
• 12 •
回火箭发射场关卡。2.3交互设计
本系统的用户交互主要是基于HTC vive套件 完成的,包括虚拟角色的移动、关卡切换、提示信息 的播放显示及控制、火箭发射控制。移动通过手柄的 方向键完成;关卡的切换通过左右手柄上的菜单键 实现;提示信息的显示通过左手柄扳机实现;火箭发 射命令通过右手柄的扳机完成'2.4动画设计
本系统的模型动画主要是在火箭发射场景。动 画体现了真实的火箭发射全过程,包括火箭升空、升 空后各个部件的脱落。这部分动画的设计和制作在
Maya中完成,其余简单的动画在UE4中设计完成, 比如空间站场景中地球的自转等。
3系统实现
本系统的实现经历了场景搭建、人物角色的蓝图
实现和交互的蓝图实现3个主要阶段。场景搭建阶 段仅以火箭发射场场景的实现为例说明。3.1发射场场景的实现
场景的搭建分为模型的导入、场景环境设置、模 型碰撞设置几个阶段,以下分别简要说明。
⑴将模型导入UE4
采用3Ds Max和Maya建模后,将其产生的FBX 文件导人UE4中。为了在后续的工作中为模型自由 添加刚体,实现理想的模型碰撞,在导人模型时应注 意在导入选项里勾选skeleton mesh (骨架网格模型), 而不是static mesh (静态网格模型)。
⑵场景环境设置
UE4中每一个关卡中的地图都是一个球,而天 空就是这个球面的一部分。它不是单纯的贴图,而是 一个蓝图类,包括很多子类如云朵、太阳等。在火箭 发射的场景中采用的是UE4默认的天空,而在空间 站关卡的场景则是用户自定义的一个蓝图类,包括 宇宙中太阳的模型。当场景环境搭建完成,就可以开 始操作模型了。
⑶模型碰撞设置
在UE4中,为了使用户在虚拟漫游中的体验感 更加真实,在模型外部都要添加刚体,使用户不能随
第17卷•第4期李楠等:基于UE4引擎的航天科技视景仿真系统的设计与实现2017年12月
意穿梭在模型内部或场景中一些不能被用户触及 的部分,例如火箭发射架和地面。因为UE4软件自 动添加的刚体总是凌乱而且不准确,所以往往需要 把原先的刚体删除然后自己加上刚体,具体步骤如 下:找到需要定义刚体的模型的物理评定(Physics
Assess )并打开,拖拽界面查看此模型的刚体,若发 现有不满意的刚体添加,选中后删除。
UE4中有四种不同精度的刚体添加方式,可以 根据自己的需要选择不同的添加方式。本系统大部 分模型都采用第四种精度最高的刚体添加方式。
(4) 为场景导入模型
在内容窗口中点击过滤器,选择skeleton mesh (骨架网格模型hUE4会自动拼接好所有模型,同时 也会根据模型的分组把模型分成几部分,更方便操 作。也可以把所有组件放在同一个文件夹整体拖拽 实现导入。
(5) 模型的位置调整
模型导入场景后,需要调整位置以符合项目的 需要。UE4提供了两种自定义坐标的方法:第一种 是相对自身坐标轴的距离;第二种是相对世界中心 坐标的距离。通过输入x,y,z轴三个值,用户可以 精准控制模型的位置,把需要的模型摆放在需要的 位置。
(6) 模型碰撞检查
首先需要在视图中查看模型的碰撞视图。点 击“透视图”,选择“碰撞”选项,查看碰撞情况。更 直接的方法则是,点击菜单栏中的开始按键,以游 戏者的身份,亲自测试模型的碰撞效果是否贴近实 际情况。
测试完模型的碰撞效果,确定了场景的模型位 置,接下来就是根据开发者的关卡设计理念,对这些 模型进行蓝图类的可视化编程。3.2场景功能实现 3.2.1文字提示的实现
要实现当虚拟角色靠近某一区域或物体时会有 提示信息的功能,需要在场景中放置一个碰撞体,并 设置相应的触发事件,具体步骤如下。
(1)在内容浏览器中新建actor蓝图类。⑵在蓝图编辑器的内容框中添加一个box,即
碰撞体。
(3)进人碰撞体的事件图表,在事件图表中选 择“为box添加一■个时间”,选择on component over
lap。 该节点的功能是当有物体与该立方体发生碰 撞时,触发节点的后续功能。碰撞蓝图的设置如图 1所示〇
图1碰撞蓝图设置
(4)为了实现虚拟角色与立方体碰撞时显示提示 信息的功能,就需要在蓝图类中添加一个Text Render 组件,该节点功能是显示文本文字。在视图窗口摆 放完毕后也要进入事件图表中进行编程,因为Text
Render节点默认情况下是激活的,所以需要在下一 个步骤中初始化(设置为未激活)。
(5 )Text Render需要首先设置为未激活,这就需 要添加一个Event Begin Play节点,后面连接set vis
ibility 节点 ,节点 内不选择任何选项。 该节点作用是 控制Text Render的激活。为了使碰撞能触发Text
Render,要在 on component overlap 后添加一个 set visibility 节点, 并把选项勾上,激活 Text Render。 完成后 把set visibility节点的目标设置为Text Render。
(6)完成蓝图类编辑后,进入关卡蓝图界面,把 新建的蓝图类拖拽进场景内,设置相应的位置。运行 程序,测试相应功能。3_2.2按键播放动画的实现
本系统采用的模型本身就带有动画,因此,在导 人后只要设计动画的触发机制即可。我们在前期为 了便于开发和测试,先用蓝图实现了用键盘按键触发 动画的功能,具体步骤如下。
(1)在关卡蓝图中添加一个触发键盘事件(此用 例为键盘F键),在后面连接一个play motion节点,
.13 •
2017年12月廊坊师范学院学报(自然科学版)第17卷•第4期
用于触发事件后播放目标模型的动画。
(2)在视图窗口点击需要播放动画的模型(此用 例为开启夹),转到关卡蓝图,选择引用一个开启夹, 把该节点连接到play animation目标,如图2(a)所7K。
(3 )在針模型动画播放前增加4
delay节点,
用于设置延迟播放的时间,以使全部动画按既定顺 序播放。动画的总体实现如图2(b)所示。
图2(a)动画播放蓝图局部图
图2(b)动画蓝图总体实现
• 14 •
后期又实现了手柄按键触发,编程方法与键盘按键十分相近,在此不再赘述。3.2.3按键播放声音的实现
声音播放的实现和动画播放基本相同,需要在场 景内添加音源并进行蓝图编程。具体步骤说明省略。 3.2_4发射场灯光处理
在处理发射场灯光时,应该在考虑用户观感同时,
的真实性。獅《®^光的麵口下:
(1)
构建一个蓝图类,添加以下组件:一个灯柱
模型、两个射线光源、两个点光源。
(2)
把灯柱在蓝图编辑器视图场景中摆放好之
后,让自发光的点光源放置在灯柱的灯泡处,射线光 的光源也放置与灯泡齐平。
(3)
通过对蓝图编辑器的set visibility节点进行
设置,实现自定义的灯开关。3.3场景的细节处理 3.3.1模型贴图的处理
在一些情况下,模型导人场景之后会产生贴图 丢失或者错乱的现象,这时就需要开发者手动进行
材质的编辑。
UE4有很强大的材质编辑功能,在本系 统用到的主要是对基本面和法线的渲染。基本面就 是材质表面的颜色,默认情况下没有任何其他的渲 染。法线渲染则是一种基本的渲染方式,通过编辑法 线,材质能实现凹凸的效果,搭配基本颜色,可以制 作出类似岩石的沟壑,木板的纹理之类的效果。完成 后的材质编辑蓝图如图3所示。
图3材质编辑蓝图
第17卷•第4期李楠等:基于UE4引擎的航天科技视景仿真系统的设计与实现2017年12月
3_3.2火箭发射的粒子徹
火箭发射时推进器会喷出大量的火焰和烟雾, 这时就要用到粒子特效来体现。需要说明的是,粒子
火焰也是一个物体,本系统中我们通过在火焰效果 中添加绑定使其和火箭一起移动'粒子特效初始化 蓝图如图4所示。
New Visibility Q Propagate to Children Q
图4粒子特效初始化
此类功能在编程完成后可随即进行测试,观察 运行效果。
3.3_3跟踪摄像机的设置
在实际的火箭发射过程中,当火箭上升到一定 高度后,地面的高速摄影机就无法继续拍摄到火 箭。为了改善系统的用户体验,我们设置了一个跟 踪摄像机全程拍摄火箭发射(直到卫星进人预定轨 道前)并显示在地面控制室的大屏幕上。实现的方 法通过在UE4的内容浏览器中对相机组件—
Active节点,也可以是控制关卡转换的Open Level 节点,这样就可以实现手柄按键对关卡切换的控制。 蓝图编程如图5所示。
SceneCapture进置。具体步骤不再赞述。
3.4关卡切换的实现
本系统中关卡切换同样是在关卡蓝图里编程 的。无论采用传统键盘、鼠标输人,还是采用HTC
vive手柄控制器输入来切换关卡,都可采用蓝图编 程实现。具体做法是:打开关卡蓝图,新建一个输人 节点,在输入节点后连接一个open level节点,节点 中输入需要跳转关卡的名称。如图5所示,图中输入 节点“Q”可切换到地面控制室关卡;“E”可切换到空 间站关卡。
采用HTC vive手柄控制器输人来切换关卡,其 实现方法与前文介绍的用按键实现的步骤基本相 同,具体如下。
(1) 打开关卡蓝图,点击事件图表。(2)
包括运动控制器(右)肩部、运动控制器(左)肩部、运 动控制器(右)扳机、运动控制器(左)扳机,每个按键 都可以当做一个触发事件在蓝图中编程。
(3)
的动画播放(Play Animation),可以是控制声音的Set
4
测试
图5关卡蓝图控制设置
此外,在每一个关卡的界面上都设计了相应的 提示信息,如图6(a)、6(d)所示。此类提示信息也用蓝 图的Text Render组件实现。
UE4是一款所见即所得的游戏引擎,测试可以 在各阶段编程实现后同时进行。本系统的测试阶段 段的测试气前三个阶段的测试均已完成,这里主要 说明最后的打包测试阶段。
系统的测试环境为Inter i7 6700处理器,主频 7操作系统。系统运行正常流畅,平均超过60如。
• 15 .
右键界面,找到运动控制器节点,该类节点 经过了播放场景、光照编译、蓝图和打包运行4个阶
输人触发节点后连接事件,可以是前文提到 3_4GHz,内存 16GB,显卡为 GTX1080 8GB ; windows
2017年12月廊坊师范学院学报(自然科学版)第17卷•第4期
图6(c)空间站场景运行系统,首先显示火箭发射场场景界面,如 图6⑷所示。在火箭发射场景按键盘Q键或右手 柄的肩部按键切换控制室场景,如图6(b)所示;按 下E键或左手柄的肩部按键切换至空间站场景如 图6(c)所示。在关卡1中按下F键实现动画的播 放,如图6(d)所亦。
5结语
本系统在制作开发过程中,首先用3DS Max和
Maya建好模型和动画,然后在UE4中完成了场景 设置、关卡设置、交互功能、粒子特效、动画调用、音 效等,实现了全部预期功能并达到了预期性能,具有 画面质量高、视景躲好、姐方式新颖灵活的特点。 未来,我们除了进一步优化场景的模型、材质等,使 系统在防眩晕方面进一步改善外,还将增加更多的 交互情节和航天科技知识,使体验者有更丰富、更新
• 16 •
图6(b)地面控制室场景
图6(d)火箭发射场动画播放
奇的体验,从而激发体验者了解航天科技知识的热 情乃至探索太空未知领域的激情。
[参考文献]
[1] Wikipedia•虚幻引擎[EB/OL]. https://zh.wikipedia.org/wiki/
%E8%99%9A%E5%B9%BB%E5%BC%95%E6%93%8E, 2012- 08-23.
[2] £卩丨〇〇腿68,1110;..蓝图-可视化脚本[£8/〇]^].1111;卩8://(1〇〇8.unrealengine.com/latest/CHN/Engine/Blueprints/index.html,
2016-08-16.
[3] Valve Corporation. Steam VR Support[EB/OL]. https://sup-
porLsteampowered.com/kb_article.php?refc5254—FJKZ—7829,
2016-04-15.
[4] Epic Gaines,Inc..级联粒子系统[EB/OL]. https://docs.un-
realengine.com/latest/CHN/Engine/Rendering^ParticleSystems/ index.html, 2016-08-16.
[5 ] Epic Games,Inc•.打包项目[EB/OL] ♦ https://docs.unrealengine
.com/latesl/CH N/Engine/Basics/Projects/Packaging^ndexJitml, 2016-08-16.
因篇幅问题不能全部显示,请点此查看更多更全内容