姚震宇(苏州旅游与财经高等职业技术学校)
虚幻引擎英文名称为Unreal Engine,简称UE。该引擎是由Epic Games 公司开发的一款引擎,提供了程序开发者需要的大量的核心技术、数据生成工具和基础支持。虚幻引擎4 是当前应用最广的、最稳定的虚幻引擎版本。UE4 不仅仅是一款游戏引擎,还能为各行各业的专业人士都能带去无穷的创作自由,基于UE4 除了开发者能用来制作游戏,影视从业者还能进行影视制作、建筑设计师可以进行建筑还原,数字孪生方向可以用来制作3D 可视化程序。总之,一切可以用到三维仿真表达、虚拟环境模拟的行业都可以用UE4 进行制作。而虚幻引擎5 也由Epic 于2020 年公布,为第五代引擎。2022 年发布的完整版本可以让制作者使用其核心技术——Nanite 虚拟几何体,可以利用数以亿计的多边形模型直接导入引擎,而无须像在虚幻4中那样需要将次世代高面数模型烘焙到法线贴图才能完成此类效果。Lumen 为虚幻5 中的全动态全局光照解决方案,能够对场景和光照变化做出实时反应。
云旅游的常见实现方式是导游借助手机录像直播,通过镜头向众网友带来旅游资源的直接展示,让观众做到人在家中足不出户饱览外界景点的效果。云旅游现在也是基于云理论的概念进行的功能性扩展,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。“云旅游”的更高阶段的效果是把“云游玩应用”与“云社交运用”,还有“虚拟现实技术”三者结合的一种融合技术展示。笔者所理解的利用PBR 三维建模和虚幻引擎技术所打造的“云旅游”概念就是一种可以让虚拟游客走进虚拟景区,来一场虚拟的旅游活动。游客与游客甚至可以在景区里碰个照面,互相交流,合影留念。
照片建模的概念是指通过相机等设备对被摄物体进行照片采集,经过计算机图形图像处理及三维算法计算,从而生成被摄物体的三维模型的技术。基于虚幻引擎技术的场景还原的基础部分,照片采集建模和3Dsmax 建模Maya 建模同等重要,相对于传统手工建模来比,照片采集建模有着高还原度,高写实光影等一系列优点。照片采集的工具分为相机或手机,还有无人机拍摄。无人机拍摄采集也分为线下处理整合照片建模和外出航飞采集照片、整合数据在云端建模平台生成模型这两种模式。
基于软件算法来处理照片采集的方案首选在这一领域的常用软件——Reality Capture,基于图像和三维点云快速建模软件。这个软件扫描速度很快,扫描品质极高,导出的模型能达到高精度模型的品质要求。其可以用专业的相机、常用的手机拍摄和无人机拍摄等手法完成初步的照片采集。其在拍摄时要围绕被摄主体进行环绕拍摄,要是对于小物件的采集可以用相机或手机拍摄取景比较方便,但是对于古建筑等体量比较大的场景需要用到无人机进行环绕飞行拍摄,并且拍摄环境的光线一定要好,也不能有雾气阻挡。其他要求就是尽量保证每张照片与每张照片有很多重复的图像,这些图像导入Reality Capture软件就能利用算法来计算图片位置,进而计算点云。人们会在软件中见到通过点云生成的模型。这套模型拥有着拍照时带来的颜色贴图,最终可以从软件中导出扫描好的模型进入下一个阶段进行制作。
对于照片采集建模之外的建模方式就是最传统的利用三维软件进行模型建模。这部分也是大多数人面临场景建模时所考虑的制作步骤。对于场景搭建来讲,往往需要一个基础建模来作为基底,这部分是可以用Maya 或者3Dsmax 进行制作。对于模型赋予更多的细节就需要给基础建模增加更多的制作流程,这套流程最终的渲染效果是基于物理渲染的效果,也就是PBR 流程,英文全称为Physically Based Rendering。这是一种着色和渲染技术,用于更精确的描述光如何与物体表面互动,由于其高度的易用性以及方便的工作流,已经被影视行业广泛使用。PBR 流程建模的优势还在于其通过精确的物理计算公式,可以准确地得到各种光照环境下的效果,为不同的3D 设计师们提供统一的工作流程。
对于基于PBR 流程进行的模型建模,是要对原始基础模型加以加工。
其流程为(1)基础模型建模:可用Maya 或者3Dsmax。
(2)低模到高模的转换:将低精度模型导入Zbrush 进行细节雕刻建模,此环节要增加模型的面数,来呈现更加逼真的细节,以此来烘焙出带有雕刻细节的法线贴图。
(3)高模转回低模:主要做法是用Maya 拓扑,维持高模的特征的同时减少面数,并方便下一个流程的开展。
(4)展UV:作为给模型绘制贴图的基础步骤,就是给模型展UV,而上一部的拓扑就是把高面数的模型的布线简化成可以展UV 的低面数形态。常用的展UV 软件有UV layout 和Unfold3D,Maya 中也因为有Unfold3D插件的加持,让Maya 也可以方便的展好低模的UV。
(5)烘焙贴图:利用Substance Painter 软件,简称SP。其进行制作烘焙法线贴图、AO 贴图、曲线贴图、置换贴图等,用来保留高模上面的细节,再贴图至低模上进行展现。
(6)SP 贴图制作:此流程即用上一个部分的烘焙出来的贴图载入到SP 软件中,利用SP 软件中强大的材质库与编辑能力完成出彩的光照贴图效果。
(7)导入引擎:此部分也是最后一个流程,是把前面制作的带有SP 贴图的低模载入至UE4 或Unity3D 或者八猴渲染器(Marmoset Toolbag)进行展示,或者进一步2 参与程序或者影视制作,来达到工业级的渲染效果。
举项目中的例子来讲,当制作同里古镇的著名三桥景区时,三桥中的太平桥是用PBR 流程来制作,起先利用照片采集的方式,在光照充足的夏天拍摄了大量的桥体照片,这部分的照片用来辅助建模,从Maya 中建出低模,再导入Zbrush 中进行细节雕刻,增加石桥的肌理和石砖上的纹路雕刻效果。再通过Maya 进行拓扑,再进行展UV。进入SP 软件进行贴图烘焙,把ZB 雕刻出的效果烘焙提炼,再赋予低模,同时在SP 中进行石砖材质的赋予,甚至青苔等细节的添加,让太平桥的真实感逐级增加。最后,进入UE4 进行场景的搭建,把桥搭建在河道上,逐步丰满同里景区的场景。
虚幻引擎能够使用强大的地形编辑工具进行创建场景地貌,可以使用地形(landscape)工具创建室外场景区域,这些地貌经过优化可以在不同设备上保持稳定帧率运行。编辑地形的方法有三种。
第一,使用引擎内置的地形工具从头搭建新的地形高度图。
第二,导入以前在虚幻引擎编辑器中创建的或在外部工具中创建的地形高度图。
第三,创建自己的格式来导入地形,这里参照创建自定义地形导入程序。
在虚幻引擎中主要使用的还是本体软件中自带的地形编辑器,使用方法就是在主工具栏中点击选择模式(Select Mode),然后选择地形(Landscape),创建一个地形。这其中的分段大小、组件分段、数量、分辨率等都是根据同里三桥景观的场景去创建,同里景区的第一手地图由之前无人机拍摄取景时的俯拍照片做地形的参照,再对照百度地图里的景区地图进行比对,力争取得一个相对高质量的精度地图。
创建好地形后,就利用雕刻工具,按住Shift 加鼠标右键,可以做凹陷下去的雕刻绘制,用来模拟景区里的河道凹陷的效果。利用平整功能可以将沿岸的边缘处理的平滑一些。而平整功能就是将雕刻功能中将像半球体一样的凹陷给做推平的效果,以此来达到平整河道底面的效果。最后一个斜坡功能就是在河道边上将指示器在Z 轴做上下偏移,做一个斜坡,用来表现河道边上的楼梯斜坡的效果。以上四个功能都要配合相关的画笔强度、笔刷大小、衰减效果等来协同处理雕刻的效果,以此方便制作出近似真实的景区河道这部分的地形效果。其通过这两种方案把场景的模型与材质完全覆盖住基础的地形,再调整天光效果与摄像机镜头取景,一个完整的虚拟景区场景基本就制作完成了。
在虚幻引擎中,蓝图编程的作用在于给运行的程序加上可行化的程序加持,让模型或者场景添加上蓝图脚本功能,可以起到交互的作用,给玩家带来交互的体验。在这个工程中,虚拟景区的光照强度,光照角度等等自然天光的效果更需要跟显示时间所结合,让游客在任何现实时间里造访虚拟景区都能让画面里的光影效果同步。这部分的需要创建Clock 控件蓝图,设置方案就是依照钟表的时间与天空的运动联系起来,利用Light Source 的Y 角度与时钟相匹配,让时间与光线存在联动。在这种场景漫游的程序中也较为常见一种小地图的交互界面,创建导航小地图是为了让游客在浏览过程中能定位自己所在景区的位置。用的交互方案是创建命名为MAP的Render Target,利用Third Person Character 蓝图,添加相机,并旋转相机角度,利用摄像机的效果实现小地图的效果。
在场景的布置上,除了建筑模型的建构、光影天光与时间的同步,还需要考虑进一步的仿真效果,为场景的交互继续增加临场的写实感。为了让这套云旅游项目程序能顾及各个天气场景的展现,天气系统的交互也要增加进去。这部分需要一个插件Ultra Dynamic Sky下载到项目中,利用Ultra Dynamic Sky 替换掉默认项目中的灯光等,接着把Ultra Dynamic weather导入场景中,这样景区中的天气拥有了可调节的选项Weather Type。在天气这个选项中就有了晴空、多云、阴天、大雾、雨、雪、风暴等十一个不同的天气效果,而能用在江南水乡同样的天气效果。我们选择基础的晴空、阴天、多云之外,适当的小雨和初雪效果,都能很好地丰富整个江南的天气系统。这个插件是可以很方便地改变天气变化,但是也需要后续的蓝图编译调整来完善天气与场景的交互效果。比如,当雨雪飘落在景区中,但是三桥景区的地面、桥面、周围的房屋屋檐都没有落雨雪,也没有湿漉漉的感觉,这里就需要让场景模型的材质与这套插件的脚本进行结合,让整个场景的模型都与这套脚本的特效接应上蓝图的端口,场景的气候变化始终能与场景建筑产生交互关联。最后,为了让游客能在场景漫游中可切换不同天气的变化,需要给变换的天气系统设置不同的开关进行控制。在蓝图中复制Construction Script Function 节点到事件里粘贴,然后通过变量Weather Type 来触发它。在关卡蓝图中设置按键“1”来简单设置一个启动按键,后续连接Get Actor of Class,最后连接Weather Type 这个变量。这样调整Weather Type 为Rain,回到场景界面按键盘上的“1”,天气就变成雨天。同样的模式复制刚才的一串蓝 图,改“1” 为“2”Weather Type为Snow,这样在场景里运行,点击“2”,场景会由雨天变雪天。这解释了用按键来切换天气效果,延伸的做法是由键盘按键变为屏幕上的UI 按键,这样比较方便在手机上运行程序,图标UI 也更能直观地表达天气变化的效果。以上只是作为交互内容的一点案例展现,具体的项目案例还会有更多复杂的蓝图变化,需要制作的时候多方考虑运行的合理性,才能顺利运行整个程序。
当前面的制作部分都完成,就可以将工程文件打包成可以在电脑或者手机等移动设备上运行的程序。景区的场景程序主要是提供给游客进行虚拟游览的,所以需要提供一整套大小合适、安装便利的程序安装包,方便游客通过互联网下载并安装。
从虚幻引擎里将程序打包主要分为导出为Android 系统手机、IOS 系统手机或者Windows 系统的程序。在打包之前,其需要对程序进行测试。如果程序能完美运行,场景的构建没有贴图或者建模bug,就可以进行打包导出。打包的要点如下:尽量保证工程文件的保存路径都是英文,项目名称也是英文格式。选择项目配置为“发行”,能让打包好的安装包容量比项目配置为“发开”的选项缩小一半。在默认RHI 选项中选择最为稳定的DirectX11,编译器版本如果是UE4 开发的选择Visual Studio 2017,如果是UE5 开发的选择Visual Studio 2019或者2022,Splash 中的编辑器启动画面和游戏启动画面乃至Icon 中的程序图标,都可以按照其提示尺寸进行上传替换。最后,以Windows 平台打包为例,在平台选项中选Windows,选择“发行”,并在内容管理中点击“打包项目”选择输出路径,也要务必选择英文路径,这套打包流程就算完成。等待制作完成可以运行测试,有问题还可以进行修改来完善工程质量,多次尝试打包出合适设备运行的程序。
至此,整个虚幻引擎制作江南古镇景区的工程的简略流程如上文所述。该流程结合业界成熟的PBR 建模流程与虚幻引擎制作大型影视类型的场景理念,力图把同里这座江南水乡的景点一比一分批还原到虚幻引擎中。本文只记录了同里三桥景区的制作部分,还有后续的退思园、嘉荫堂、崇本堂、王绍鏊纪念馆等重要的特色景点还需要逐步制作,并于后续版本更新中再加入进来。等到景区的线上版本全部开发完,就让游客能在不方便到场的前提下也能“云旅游”,在线上“游览”这座古镇,欣赏它的四季美景。待到游客能自己到景区一探究竟时能体会到虚拟与现实的精妙,对于感兴趣的场馆可以做到线上打卡,线下采风。感慨在方寸之间的景色已然存在于云端之上,乃至作为一个虚拟场景地图的功能,提升了线下旅游的新维度。
试想一下,仅仅一个优秀的线上云体验景区游览就能给游客带来莫大的方便,要是全国的景区都上线自己的云旅游场景并提供游客预览部分景点,就能让游客拥有了更多的选择权,方便游客找寻更合适的游览景点和旅行路线,甚至能带动线下景点的建设与维护,提升各地的景区竞争力,让旅游行业更加透明化。此类虚幻引擎打造的景区方案无论商业价值,还是经济价值、社会价值、人文价值都有着不可估量前景。同时,相信未来科技的进步还会让云旅游的体验更加丰富和拟真。