赵 娅,陆 谣,单可欣,吕浩原
(东北石油大学 计算机与信息技术学院,黑龙江 大庆 163318)
摄像技术课程是教育技术学专业的一门必修课,课程目标是培养学生具备娴熟的拍摄技能以及节目创作技能。该课程的重点和难点是教学中实践与理论相互转化的过程,其实践操作性在教学中更为突出[1]。然而,受经济、空间等现实条件影响,给人才培养带来了很大的限制。其一是摄像课程相关的操作设备价格昂贵、更新维护成本高昂,不可能保证人手一台的标准;其二是该课程传统授课方式往往采用集体授课的形式,过程中难以形成直观的感受;其三是实训场地范围有限,不能保证学生有充足的训练时间。
虚拟现实技术(Virtual Reality,VR)是指利用计算机建立的人工媒体空间,它往往通过视觉、听觉、触觉等使人进入虚拟环境,给人身临其境的感受,它既可以是真实世界的模拟体现,也可以是构想的世界[2]。随着虚拟现实技术的不断发展,其应用范围也越来越广泛。将虚拟现实技术引入到摄像技术课程的教学中,可以有效弥补传统摄像技术课程实践场地及设备短缺的现象。综上所述,该文设计开发了一种基于Unity 3D的摄像技术仿真实训系统,利用虚拟现实技术的优势,打造出高沉浸性的仿真实训环境,供学生使用。
摄像技术仿真实训系统以Unity 3D游戏引擎作为开发平台,基于Visual Studio软件使用C#语言进行功能编写,采用3ds Max软件进行建模。Unity是一个能够满足多平台开发需求的综合型专业游戏引擎,随着它的逐渐发展,Unity引擎在三维游戏、三维动画、仿真系统开发等各个方面都有着广泛的应用[3]。3ds Max是一款三维建模及动画制作软件,具有操作简单、对电脑配置需求较低、模型制作弹性较大等特点,被广泛应用于工程可视化、机械仿真、三维动画等领域[4]。
系统采用三层架构体系,从下到上分别为数据层、功能层、操作层,系统架构如图1所示。
图1 系统架构
(1)数据层是该系统的最底层,摄像技术仿真实训系统包含多个典型实训项目,涉及到多种实训设备(摄像机、调音台等)以及多个实训场景(教室、演播室等),实验操作流程也不同,因此该层设有实训设备、实训场景、实验数据、操作脚本,分别对应不同实训项目的数据储存和管理。
(2)功能层主要实现系统的界面显示和人机交互,其主要功能包括场景漫游、导航菜单、双视角显示、成绩测评。该系统使用XML和C#语言实现操作流程的复现,并以此流程为标准来判断实验所得成绩。XML文件是一种带结构格式的文本,不但可以存储系统的文字脚本,还可以通过代码获取文字脚本中的关键信息[5]。
(3)操作层位于整个系统的最上层,主要完成各个子系统的功能集成,形成完整的模块。根据课程目标,系统设置摄像机景别划分、运动镜头分类、节目视频录制、虚拟演播室四个典型实训项目。
摄像技术仿真实训系统包括多个子系统,相关要素众多,在设计开发时要进行完整的流程规划,系统设计开发流程如图2所示。
图2 系统设计开发流程
在开发系统时,首先根据实际操作步骤编写系统仿真操作脚本,并统计好需要制作的模型及场景。前期准备工作完成后,需要对实训环境进行实地考察,拍摄实物图片并测量其尺寸,根据收集到的图片、数据,在3ds MAX中制作环境模型、操作设备模型,并将其导出为FBX文件。其次,需要将模型导入到Unity 3D中,并添加材质、灯光等进行场景集成,本系统中涉及到三个场景,分别是校园、教室、演播室。然后按照正确的操作流程设计人机交互功能和UI界面,例如场景漫游、导航菜单、双视角显示、成绩测评。最后将系统打包发布成可通过浏览器直接访问的开放平台,并进行调试。
在虚拟现实的交互系统中,虚拟场景的真实程度将对使用者的沉浸感产生影响。因此,在实现系统的过程中,三维模型的真实度以及虚拟场景的逼真度至关重要。
虚拟现实中建模实现方式主要分为三种,即基于图像的虚拟建模法、基于几何模型的虚拟建模法、基于图形和图像混合建模的虚拟建模法[6]。该文采用基于几何模型的虚拟建模法。基于几何模型的建模以计算机图形学为基础,是指在三维软件中利用几何体多边形对真实场景进行抽象化设计、构建虚拟对象与场景的技术[7]。由于整个系统的模型种类多、规模大,故在构建前先规划好建模任务,尤其是参与交互操作的设备是系统模型的核心内容,具体建模任务如表1所示。为了尽可能地复现真实的实训场景,同时又能保证系统流畅运行,该系统对于具有交互操作的精细模型,在构建过程中使用面数较多的几何形体;反之,可以使用面数较少的几何体建立粗略模型。
表1 建模任务
(1)物体建模。
物体建模首先需要根据采集的实物尺寸,按照计算完成的比例对模型进行缩放,确保所有模型的缩放比例一致,并对其进行旋转、移动等基础操作,从而构成模型的大体轮廓;其次,根据实际效果将部分基本模型转换成可编辑多边形,选择模型的点、线、面添加修改器,并通过挤出、塌陷、倒角、平滑、弯曲等命令调整模型细节使模型更加真实;最后,为模型附上贴图,并根据模型的归属将模型成组,并按照实际名称进行命名,方便后期的修改与管理。
调音台的外形边缘与其他操作模型相比更加没有规则,因此模型制作时也更为复杂,调音台拍摄图片如图3所示,三维模型如图4所示。首先,在3ds Max中导入此模型的平面图,选中“点”对其进行描边,为最后的闭合图形添加“挤出”命令。然后,模型上的按钮通过建立长方体、球体、球棱柱等基本几何模型,并进行组合完成。最后,按照模型比例对长宽高以及分段数进行设置。建模时模型面数的多少会严重影响运算速度,因此需要注意模型的面数优化,在模型的分段数上应该能少则少。对于调音台模型通过两方面实现模型面数优化,第一,通过编辑多边形功能内编辑面的功能,将场景内真实存在但不可见的面,如按钮背面、部件与主体连接面等删除;第二,为构建完成的模型添加“专业优化”修改器,降低面数及平滑程度,以此降低模型的内存占比。
图3 拍摄图片
图4 构建模型
(2)人物建模。
人物建模与物体建模相比更为复杂,除创建身体模型外,还需为其绑定骨骼与蒙皮作为动画制作的基础。制作人物模型时采用了Biped骨骼,将其与人物模型进行形状、大小及动作匹配,将调整后的Biped骨骼与人物模型对应部分进行绑定。骨骼绑定完成后进入“蒙皮”选项,选中绑定好的Biped骨骼进行添加,利用权重工具,根据实际情况调整人物各身体部位的权重数值,确保其运动效果与真实人物动作基本一致,随后利用关键帧工具制作骨骼动画,即在动作的起、始关键帧调整骨骼的形态、位置,平台将根据骨骼变化自动生成骨骼动画,通过关键帧变换,最终形成人物动画。
为方便在Unity 3D平台中进行后续操作以及系统资源的统一管理,统一在Unity 3D中赋予材质。首先,将真实拍摄的照片根据需要在Photoshop软件中进行处理,作为模型的贴图;其次,将FBX文件格式的模型及其所需材质贴图一并导入到Unity 3D的Assets文件夹下,并在三维空间中放置各实训设备、工具、室内装饰等模型;最后,根据需要添加棚顶、地面、墙壁、光照等,完成虚拟场景的集成和优化。图5为节目视频录制实验的虚拟场景。
图5 虚拟场景
人机交互是实现用户与计算机之间进行信息交换的通路,用户界面则是这一通路传递和交换信息的桥梁[8]。设计UI界面及人机交互时应该秉承“以用户为中心”的理念,该理念认为机器应该适应人、减轻人的体力和脑力负担[9]。因为人类视觉系统对信息的处理能力有限,无法同时处理所有视觉信息[10],所以人机交互设计时需要满足易引起视觉注意和操作难度适中两个条件。一般来说,针对不同软件依据其具体功能会稍有不同,但总体上都应满足简洁原则、突出原则、顺序原则。
场景漫游功能不仅可以让使用者更加了解虚拟环境的整体构造,增加沉浸感,还可以辅助使用者进行人机交互。该系统在开发时采用第一人称视角,以虚拟人物为中心展开,分为两种漫游方式。第一种是通过鼠标和键盘操作来控制场景观看视角,例如使用者可以从任意角度观察摄像机模型。第二种是由提前设定的代码控制人物在场景中进行浏览,例如虚拟演播室实验中虚拟教师人物自动漫游。
导航菜单的作用是引导使用者完成实训流程,因此在设计时首先要遵循突出原则。主菜单按钮设置在界面的右下角,按钮形状为球体,颜色选择与地面颜色为对比色的蓝色,并在四周添加光晕进行突出加强,便于用户把注意力集中在上面。主菜单的下级菜单设置在页面的右侧,以时间轴的形式显示,体现了实训操作的顺序性。
相机作为虚拟场景与屏幕展示之间的媒介,将拍摄的场景展示给用户。在虚拟场景中,至少需要一台相机,也可以有多台相机,给多台相机设定不同的优先级,让相机拍摄场景中不同的位置,可以实现特殊的效果。为了使用者在实训时可以实时观看到虚拟摄像机中的拍摄画面,系统设置双视角显示功能。主观视角是人物拍摄视角,辅助视角设置在界面左上角,为摄像机取景框视角。
学习评价具有诊断、调节等作用,是学习过程中不可缺少的反馈手段[11]。该系统的学习评价方式为成绩测评,通过对比使用者的操作与仿真脚本中所描述的当前步骤是否相符,判断是否得分,且只有在第一次操作就正确时才会获得该步骤的分数。除此之外,系统提供完整的实验流程演示视频,以便学生针对失分点随时随地进行个性化学习。在仿真系统中采用流程化实训步骤的设计具有重要意义,可以强化学生对实训操作流程的记忆,提高学习效率[12]。
以节目视频录制实验项目为例,根据教学目标,将实训的具体操作内容分为摄像机机位的选择操作、调光台的操作、多讯道信号源导播切换操作、非线性编辑系统的采集操作四大类共25个小步骤,总分100分。使用者在操作每个步骤过程中,系统自动根据使用者的操作判断对错,整个实训流程结束后,系统对使用者的实训操作进行最终的得分计算,并在页面中间显示成绩面板,包括总分数以及各步骤操作得分情况,如图6所示。
图6 成绩测评
系统使用Unity中的Navigation导航系统实现场景内虚拟角色从一个位置点运动到另外一个位置点的漫游功能。Navigation的核心是A*算法,A*算法通过启发信息指引搜索方向,具有搜索时间短、搜索效率高的优点[13]。利用该方法进行寻路包含两部分,生成导航网格和根据网格利用A*算法进行寻路。具体步骤为,第一步在场景中选择路径设置为Navigation Static;第二步为防止虚拟人物与其他区域碰撞,将行走区域上有物体的地面设置为碰撞位置,并进行路径烘焙,生成导航网格;第三步给虚拟人物添加Nav Mesh Agent组件,并设置参数,主要设置Speed(行走最大速度)、Acceleration(行走加速度)、Radius(物体中心距离障碍物的半径)等值,参数根据具体情况而定,该系统分别设置为0.2、8、0.3;最后,给定目的地,设置寻路目标,根据生成的导航网格,利用A*算法实现导航功能,生成避免碰撞的行走路线,完成场景漫游功能。
(1)相机跟随。
系统开发过程中相机视角一般分为两种,即第一人称视角和第三人称视角。第一人称视角最简单的实现方式是创建一个相机(Camera),并将其挂载到虚拟角色上,高度设置为眼睛的高度。如果想采用第三人称视角,在将相机挂载到虚拟角色身上后,还需将相机的位置设置在相对于虚拟角色头部位置的后上方,以此来实现上帝视角。第三人称视角强调客观性,第一人称视角强调真实感,本系统整体采用第一人称视角,具有更强的沉浸感。
(2)双视角显示
系统为了充分符合摄像技术实验课程体验性、直观性、真实性等特性,在开发时大部分场景都使用了双视角显示功能,在少部分特殊需求上使用了多视角显示功能,例如导播台操作部分。双视角显示功能的实现方法是,在场景中再次创建一个Camera,将新相机拍摄的图片映射到贴图上,并将渲染贴图附在辅助视角的窗口上。如需要多视角显示,重复操作该方法。
碰撞检测技术是指处于相同虚拟环境中的两个三维物体,判断它们在相同时间点是否发生碰撞[14]。碰撞检测常用的方法是层次包围盒法,主要分为轴对齐包围盒、包围球、OBB包围盒、K-dops包围盒四种,其本质是构建一个规则的几何体将被检测的三维物体包含在内,然后将各个物体的几何体在三维坐标上进行投影,通过判断它们在XY、XZ、YZ平面上的投影边界是否发生相交重叠,来最终确定碰撞情况。碰撞检测可以让用户在虚拟环境中进行交互操作时体会到更强的沉浸感和真实感,为用户提供更好的操作体验[15]。例如实验项目中的打开摄像机操作,给摄相机开关按钮添加碰撞体,当用户点击摄像机开关按钮时,从拍摄相机中发射一条射线,一旦这条射线与摄像机开关按钮的碰撞体发生碰撞,射线停止发射,得到碰撞物体的信息,执行摄像机显示器界面变亮操作。
为验证该系统的可行性和有效性,选取本校73名教育技术学本科生进行实验测试。在体验结束后,使用问卷调查法来收集使用者对摄像技术仿真实训系统各项性能的评价。
实验结果与分析:本次共发放问卷73份,回收率100%,有效问卷71份,有效率为97%。调查中使用李克特量表对仿真系统的各项性能进行分析,5分表示很满意,1分表示很不满意,最终易用性4.16分、沉浸性4.05分、流畅性4.13分,如图7所示。除此之外,有超过58%的使用者认为该系统对知识的理解与实验操作流程的掌握有促进作用。
图7 实验结果与分析
在分析摄像技术实践课程目前所存在问题的基础上,设计并开发了摄像技术仿真实训系统,其中包括摄像机景别划分、运动镜头分类、节目视频录制、虚拟演播室四个子系统。经实践证明,该系统易用性、沉浸性以及流畅性等各项性能指标都可以满足用户基本使用需求。虚拟现实技术可以增加学生在学习过程中的动机,有效提高学生学习的主观能动性,增强其学习积极性和主动性[16]。虚拟仿真系统通过计算机创建虚拟实训设备及环境,不仅可以从根本上解决经济、时间、空间上的难题,还支持使用者随时随地进行反复学习和训练,强化使用者对实训知识及技能的掌握。该实训系统的实现为高校实践课程的教学改革提供了新思路。除此之外,该实训系统不仅可以应用于影视相关专业教学,还可以用于影视爱好者进行科普学习,具有广泛用途。