APP下载

虚拟现实方向毕业设计中可视化编程研究

2021-01-14田晋

现代信息科技 2021年12期
关键词:毕业设计计算思维虚拟现实

摘  要:在数字媒体艺术设计专业的毕业设计中,常常因为学生缺乏专业的编程经验,导致作品的完成度受到桎梏。将可视化编程融入作品开发中,可有效降低非程序员编写脚本代码的难度,使其可将更多的精力投入到作品设计和美工方面,以提高毕设作品的艺术性、美观性、科技性,同时还会培养学生的计算思维,为他们在今后工作中解决难题提供帮助。文章以使用UE4引擎中的蓝图制作天气变化的案例,讲解可视化编程中流程控制的应用。

关键词:虚拟现实;毕业设计;可视化编程;计算思维;UE4引擎

中图分类号:TP311   文献标识码:A 文章编号:2096-4706(2021)12-0068-04

Abstract: In the graduation project of digital media art design specialty, the completion of works is often shackled due to students' lack of professional programming experience. Integrating visual programming into work development can effectively reduce the difficulty of non-programmers in writing script code, so that they can devote more energy to work design and art work, so as to improve the artistry, aesthetics, science and technology of finished works. Furthermore, it will also cultivate students' computational thinking and help them solve difficulties in their future work. Through an example of making weather change by using the blueprint in UE4 engine, this paper explains the application of process control in visual programming.

Keywords: virtual reality; graduation project; visual programming; computational thinking; UE4 engine

0  引  言

隨着计算机技术、网络技术、硬件技术等相关领域的发展,虚拟技术逐渐走向大众。毕业设计中使用虚拟现实技术制作或呈现作品是各大专业的趋势。我校的数字媒体艺术设计专业,毕业设计中设有虚拟现实方向,主要是将虚拟现实相关技术应用到毕设中,以提高作品的艺术性、美观性、科技性。然而,在实际教学和毕设创作中发现,由于该专业属于艺术类,学生对编写代码的功夫欠缺,无论是使用哪种编程语言,他们都需要花费大量的的时间去掌握和运用。可视化编程对使用者的门槛比较低,只需掌握基本使用方法,便可游刃有余地对毕设类小型作品进行简单的交互制作。同时,学生可将更多的精力投入到作品的开发设计和视觉美观中,将专业的艺术特性融入到作品之中,使作品质量得到可视性提高。

1  虚拟现实方向的毕业设计现状

1.1  虚拟现实

虚拟现实(Virtual Reality, VR)是一门融合了计算机、电子信息、仿真技术等多个领域的一项全新的实用技术,其具有沉浸性、交互性和想象性的特点。应用范围也非常广泛,除了常见的游戏、动画、电影等娱乐领域,还在医学、军事、航天、教学等领域发挥着越来越重要的作用,因此被誉为21世纪最有“前途”的技术。

1.2  数媒专业毕业设计现状

毕业设计是对五年制高职学生学习成果的总体检验,在毕设创作中,需要选择合适的技术来匹配学生水平,使作品的完成度、艺术性都有很好的体现。目前数字媒体艺术设计专业的主要课程属于艺术类。学生对作品的设计、呈现有很多上乘的创意和想法,而在毕设中发现,制约学生完成“艺术性创作”的最大障碍是“交互”。交互性作为虚拟现实的三大特点之一,是决定作品是否可以完成以及作品体验感好坏的关键点。所谓交互,在技术上依赖于“编程”。因此选用哪款软件来完成毕设作品,是在启动创作之前最值得斟酌的问题。

2  编程的选择

2.1  编程的实质

2020年发布的《关于政协十三届全国委员会第三次会议提案答复的函》中,教育部提到将编程教育纳入中小学相关课程,帮助学生掌握信息技术基础知识与技能、增强信息意识、发展计算思维、提高数字化学习与创新能力、树立正确的信息社会价值观和责任感。目前,我国中小学普遍开设了编程课,其重点是培养学生的计算思维(Computational Thinking)。计算思维是未来发展的核心技能,是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。通俗地说,编程课的目的是为了让学生更好地去接受信息化社会,而不是学会“写代码”这一专业技术。

2.2  可视化编程

绊住数媒专业学生毕设创作脚步的,是“写代码”本身。虚拟现实技术方面的软件种类繁多,各自运用的编程语言都不尽相同,在有限的学习时间内,只能各有取舍。目前历届数媒学生有一个共同点就是,从小缺乏计算思维的培养和某一编程语言的学习经验,对“写代码”有着先入为主的恐惧感。

对于此类学生,可视化编程是一个不二之选。所谓可视,指的是无须编写代码,使用图形化界面进行较为直观的操作流程,且随时可以看到结果,程序与结果的调整同步。相较于传统的编程方式,可视化编程非常适合新手或业余程序员。可视化编程软件分为基于“块”的编程,如Scratch等适用于儿童或新手学习者的编程教育;以及基于“节点”的编程,如UE4等使用流程图来表示状态、逻辑或数据的变化。目前Unity 3D可免费加载图形化编程插件BOLT。

使用可视化编程可以有效地避免语法错误,解开代码对学生创作的桎梏。有助于将数字媒体艺术设计专业中的艺术与技术充分结合。

3  UE4蓝图的流程控制

3.1  数学中的程序框图

在五年制高职学生第三册数学教材(江苏省职业学校文化课教材,凤凰职教出版社)中,有一章专门讲解算法与程序框图。可能学生在当时并没有留下很深的印象,只需把本章数学内容熟练掌握,即可完成对编程流程控制的学习。程序框图分为顺序结构、条件结构和循环结构,并给出了相应的数学基础练习题。在学习蓝图操作时,可以使用这些题目。其实在编程中还有大量的数学基础知识,都可以在有需求时,进行学习巩固。程序框图的条件结构如图1所示。

3.2  蓝图中的流程控制

UE4是虚幻引擎4的简称,是开发商EpicGames的核心作品之一,近期已推出了虚幻引擎5版本。该引擎最初是以游戏开发为主,现在已经运用到影视与现场活动、建筑、工程与施工、汽车、产品设计和制造等多个领域。其以精湛的渲染画质、可视化编程——蓝图、免费开源等特点,吸引越来越多人去学习创作。

图2为经典C语言中的条件语句,不能因看到语句简练而产生“我也可以胜任”的想法,这只是单条件语句,一般会出现多条件嵌套的情况,且具体步骤A、B还需要详细地编写代码。在编写的几百、几千行代码中寻找编译的错误,是一件非常苦恼的事情。有人将搜寻代码比喻为在黑暗中举着火把查看一大面墙上的信息,难度极大。

在UE4蓝图中,只需要右键单击鼠标搜索中文“分支”即可快速创建出条件结构,然后将对应的条件、步骤进行鼠标拉线连接。如图3所示,其使用方式和图1数学程序框图非常相似,有助于开发者的代码编写和调试。程序框图有规范的图形符号和连接线,表示不同的算法步骤意义。蓝图中同样用不同的颜色来区分不同的节点,如事件节点、执行节点、读取节点,分别用红、蓝、绿表示。包括节点的引脚,根据数据类型也有各自的颜色。有些可以转换的数据,在相连时会自动添加类型转换节点,再也不必担心变量转换出错了。程序框图是由上至下的,蓝图是从左向右。在模拟运行时,流程进行中连接线会以实时动态的形式进行演示,可随时查看编译过程和运行结果,可视化为黑暗中的人提供了清晰的视角。

当然蓝图中不止是分支,还包含编程常用的序列、循环、执行一次、执行N次、门等。根据编程的需要,可以通过搜索快速选择这些节点。蓝图按功能可以分为关卡蓝图、蓝图类等,除流程控制这一基本功能之外,可以说所有的交互功能都可以通过蓝图来实现。同时,UE4中的物理基础渲染PRB材质,也是蓝图的一种,可以将各种复杂的数学计算方式融合到节点和连线中,让美术人员通过参数快速调节所需的视觉效果。

4  天气变化案例的制作

4.1  案例流程图

以天气变化——雨雪为例,使用UE4引擎蓝图来进行简单的创作,展示可视化编程流程控制的应用。编写之前先进行需求分析,绘制流程图。

需求分析:程序开始后进行降雨,水面溅起雨花,地面逐渐湿润。降雨渐小,直到停止,雨花消失。之后进行降雪,地表逐渐积雪,雪停后积雪消融,流程图如图4所示。为匹配蓝图的编写习惯,特使用横向排版,从左至右。另外,对雨花生成制作单独的事件,流程图如图5所示。

4.2  素材的准备

4.2.1  地形的制作

新建一个空关卡,使用地形工具Landscape,创建新的地形并进行绘制。制作地形材质球,UE4中为达到逼真的视觉效果,在高级材质制作中,会用到很多复杂的数学公式、材质函数等。案例中仅简单地设置分层材质,包括草地、石头、泥土。为达到所需的案例效果:针对地面湿润和积雪添加两个材质函数集Snow和Wet,分别两个材质函数集添加一个标量参数,设置相应的名字,并设置默认值为0。材质函数集可以直接拖拽到材质编辑面板中进行使用,标量参数指单个的数值,还有向量参数,包含RGBA四个参数。

如果需要更加逼真的效果,可以对雨花、地面湿润水流效果、积雪进行单独的材质制作,使用材质中的UV移动动画来实现,这种渲染方法对性能要求不高,可以渲染出有一定实感的物体。

4.2.2  蓝图1:雨花生成编写

使用UE4粒子系统分别制作:雨、雨花。其中,在雨的粒子中“生成”标签中设置参数NumberR,用來在蓝图中控制雨量的大小。创建一个静态网格体平面,设置合适的大小,放置在地形凹处作为湖面,对其设置合适的湖水材质。

编写中,单独制作比较复杂的流程,这样既可以使总流程清晰明了,又可以实现复用,这边对雨花生成单独制做了蓝图。在蓝图1雨花生成中,创建自定义事件“生成雨花”,设置变量:Rain Flower(布尔型),用来判断是否需要执行后面的操作。如果变量为真,则执行:检测粒子雨的碰撞,如有则在一定范围内随机生成雨花粒子(检测湖的边界);如没有,则中断。此处使用了“分支”“For Loop”,如图6所示,很好地体现了流程控制的简洁性,只需从节点的输入和输出分别拉线,就可以如流程图所示对流程事件进行条件判断、循环操作。

4.2.3  蓝图2:天气变化准备

制作粒子:降雪,也可以增加参数NumberS,用来控制雪量。创建变量:Lake(引用蓝图1雨花生成,并对其赋值)。在蓝图2天气变化中,为了达到“渐进”的效果,分别创建三个时间轴:湿润、雨量、积雪。时间轴的作用可理解为对时间线上的不同时间点设置关键帧,制作直线或曲线,类似于绘制数学函数图,从而达到数值渐变的效果。时间线在后期类、动画类软件中都很常见,在蓝图中输入输出项较多,可以制作出不同的效果。

4.3  整体案例的编写

最后在蓝图2天气变化中做整体案例编写。根据流程图按顺序连接各节点即可,对同时进行的事件可以使用“序列”来控制,如图7所示,也可以通过时间轴节点上的不同输出项“Update”“Finished”来分支,如图8所示。最后的积雪消融效果,也可以使用时间轴节点上的输入项“Reverse”进行时间轴的倒播,而无须再重新编写一遍消融,比流程图更简洁。

此外,蓝图中还使用了节点:“添加粒子系统组件”“设置标量参数”用来添加雨雪粒子和降雨雪量。为使效果更加清晰,中间可添加节点“延迟”。这些节点都可以在需要使用时,参考官网、图书、视频教程等,了解其用法。

至此,天气变化简单案例的制作已完成,将蓝图2拖入关卡,点击播放可以看到完成的效果,如图9、图10所示。本文仅对流程控制节点进行了讲解,突出可视化编程的优势。无论选用何种编程方式,编写中都不可避免地会出现错误,还是需要不断地进行调试-编写-调试。至少,可以不用在语法检查上花费时间了。

5  结  论

本文以UE4蓝图制作天气变化为例,展示可视化编程使流程控制更加清晰便捷,解决了目前部分数媒学生在“写代码”方面所存在不足。将可视化编程引入艺术类毕业设计创作,可提高毕设作品的艺术性、美观性、科技性,以使毕业生设计出优秀的虚拟现实作品。同时逐渐培养学生的计算思维,为就业做准备。

对于蓝图的学习,初期只需掌握基本操作和常用节点即可,庞大的蓝点可以在需要使用时选择性地学习。目前学生都可以很好地根据教程案例进行模仿、移植,完成简单交互的作品。为了能够使作品流畅地运行在不同的平台上,还需要对编程进行优化,使作品既有很好的视觉效果,又不会太消耗资源造成卡顿,这些还需要继续研究学习。

参考文献:

[1] 教育部.关于政协十三届全国委员会第三次会议第3172号(教育类297号)提案答复的函 [EB/OL].(2020-11-06).http://www.moe.gov.cn/jyb_xxgk/xxgk_jyta/jyta_jiaocaiju/202012/t20201209_504364.html.

[2] 本刊编辑部.美国计算机科学家周以真:使计算思维成为常识 [J].留学生,2017(8):13-15.

[3] 朱月曈.可复用的雨天场景材质设计与实现 [J].影视制作,2021,27(2):55-60.

[4] 朱海南,万定生,余洋.基于UE4的洪水淹没仿真技术研究与应用 [J].信息技术,2020,44(3):13-18.

[5] 孔晨.UE4在高校设计类专业虚拟现实课程中的教学应用 [J].机电信息,2020(23):40-41.

[6] 玄令岐.基于UE4的迷宫逃生游戏设计 [J].电子质量,2017(3):42-46.

作者簡介:田晋(1983.10—),汉族,江苏苏州人,讲师,硕士研究生,研究方向:信息技术、数字媒体。

猜你喜欢

毕业设计计算思维虚拟现实
基于土木工程专业认证毕业设计团队指导模式的实践研究
高职“四层三环节二抽查”毕业设计质量监控体系的构建与实践①
电子商务专业毕业设计实施与探索
虚拟现实,让学习更“沉浸”
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
View Master虚拟现实显示器