赵良平 李传锋
摘 要 针对计算机实验教学中存在难动手、学习浅、不能反复操作等问题,基于Unity3D虚拟开发引擎,以硬件拆装为重点,开发包括原理介绍、动画演示、机械拆装、试题测验等模块的虚拟教学系统。系统将虚拟现实技术与教学结合,通过了解教学实际需求,创设虚拟教学场景,模拟真实计算机模型,达到激发学生学习热情、提高学生学习效果的目的。
关键词 计算机拆装;Unity3D;系统开发;拆装虚拟教学系统;实验教学
中图分类号:TP391.98 文献标识码:B
文章编号:1671-489X(2023)04-0029-05
Development and Design of Computer Disa-ssembly and Assembly Virtual Teaching System Based on Unity3D//ZHAO Liangping, LI Chuan-
feng
Abstract In view of the problems of difficult hands-on, shallow learning and inability to operate repea-
tedly in computer experimental teaching, this paper
develops a virtual teaching system based on Unity3D
virtual development engine, focusing on hardware disassembly and assembly, including modules of prin-
ciple introduction, animation demonstration, mecha-nical disassembly and assembly, and test questions and quizzes. The system combines VR technology with
teaching and learning by understanding the actual needs of teaching, creating virtual teaching scena-rios and simulating real computer models to achieve the purpose of stimulating students enthusiasm for
learning and improving the learning effect.
Key words computer disassembly and assembly; unity3D; system development; disassembly and assembly virtual teaching system; experimental teaching
Authors address Information Technology Center, Luoyang Institute of Science and Technology, Luoyang,
Henan, China, 471023
0 引言
根據《教育部关于开展国家虚拟仿真实验教学项目建设工作的通知》要求,要推进现代信息技术融入实验教学项目,实验教学内容的广度和深度要拓展、时间和空间要延伸、质量和水平要提升。实验教学理念要突出以学生为中心、教学方式方法要创新多样化[1]。
计算机组装与维护是大学里实践性非常强的一门技术基础课,教学目的是让大学生了解和掌握计算机基础知识及实践经验,培养大学生的创新意识、动手操作能力。但是,目前的课程安排主要存在设备资源和场地有限、教学模式单一、师资水平不高及实践环节安全隐患较大等问题,导致学生在实践过程中存在时间浪费、缺少主动性、受益较浅等情况。通过相关文献检索及分析,发现虚拟教学系统开发大多以机械类实验课程为主,计算机实验方面的开发设计较少,并且集中于动画演示,对于虚拟拆装部分的开发重点研究不多。
因此,本文通过对计算机实验课程目标及需求进行分析,以Unity3D虚拟现实开发引擎为平台,开发了一套计算机拆装虚拟教学系统,解决了当前计算机实验教学中的重难点,还拓展了计算机拆装教学的广度和深度,学生通过虚拟拆装系统随时随地的练习,熟练掌握各类品牌计算机拆装的基本步骤和注意事项,解决了实际生活中计算机硬件故障、设备升级等问题,实现了虚实结合。
1 系统需求分析及功能
系统开发之前,以洛阳理工学院为例,通过对师生调查了解计算机实验课程的现有教学模式,由于教学场地、教学设备的限制,学生大多从书本学习计算机基础知识。教师上课演示动手拆解计算机后,要求学生课下自行寻找设备练习,而学生多因个人计算机型号单一、拆后无法重装、场地工具限制等因素无法开展学习。这样的教学模式使学生无法真正体会到动手操作要领,学习只存在于浅层表面。为了在教学中实现以学生为中心,激励学生主动探索学习。计算机组装与维护课程教学目标设计为:了解计算机的组成、功能及其工作原理;掌握计算机主机中主板、内存等重要部件的安装位置、运行方式;掌握计算机的拆装和装配过程三大模块内容。
围绕实践教学目标,结合调研访谈结果,考虑到网页端师生登录界面、介绍基础知识、虚拟真实计算机运行流程、自主操作拆解计算机、巩固知识练习操作等方面的教学需求。结合Unity3D软件开发特点,本系统主要从以下五个方面实现相应的功能。
1.1 用戶登录
学生及教师使用个人注册账号通过浏览器随时随地登录计算机拆装虚拟教学系统。
1.2 运行原理模块
模拟计算机开机后真实运行状态,观看计算机主板、CPU、硬盘、内存等硬件的构造以及详细外观,通过视频了解其功能和基本参数等信息,帮助学生做好计算机装机准备。
1.3 拆装动画模块
提供本课程相关文档、图片、视频讲解说明,动画讲解演示正确拆装步骤及流程,为用户提供自主学习资源。
1.4 自由拆卸模块
为用户提供台式机、笔记本计算机、工作站等多品牌多型号计算机模型,节省购买资金,丰富学习资源。计算机模型各组成部分进行文字标签说明和选中高亮显示,并且可以放大缩小,360度旋转观察计算机模型,能反复自主动手操作拆解、组装计算机,并伴随拆装提示。
1.5 试题测验模块
具备计算机零部件模拟实操、计算机组装故障介绍和习题练习等功能,学生自由练习巩固学习内容,检测学习效果。
2 系统设计及开发流程
计算机拆装虚拟教学系统是基于Unity 3D开发的一款教学仿真系统,虚拟仿真的实验室环境让学生使用时感觉身临其境。本系统的开发主要分为三个阶段:第一阶段是搭建用户数据库,部署登录服务器;第二阶段是利用3dMax等软件制作三维模型、贴图素材等;第三阶段是利用C#语言进行交互功能开发和脚本编写。最后,通过Unity 3D集成软硬件调试,测试发布计算机拆装虚拟教学系统。系统开发流程如图1所示。
本系统为了师生能随时随地开展学习,将整个系统部署在服务器上,采用数据库存储用户数据,基于B/S架构实现师生使用个人计算机,在校内任意地点通过Chrome浏览器直接登录,开展协作学习、移动学习、泛在学习。系统的后台主要使用PHP进行开发,可以进行用户账号设置、题库批量导入、设置测试、成绩计算保存以及错题统计解析等功能[2]。
本系统主要开发流程为:首先,通过使用三维建模和图片处理软件,对计算机内部的所有硬件进行实物建模、材质贴图、组装连接等;其次,将建好的模型导入Unity3D中进行开发,主要实现模型爆炸演示、自行动手拆解、显示运行原理动画等;再次,根据教学需求,设计交互模块,添加教学文本、图片、视频,教学试题测验系统;最后,调试整个开发系统,测试发布到Win10平台,并嵌入网页端提供登录接口。通过一系列流程开发,设计一套功能完整、针对教学、形式灵活的虚拟实验系统。
3 拆装实现
3.1 三维建模及优化处理
本系统的设计是基于真实操作场景,以市场现有经典品牌型号计算机为原型,三维建模台式计算机、笔记本计算机、工作站等五款计算机模型。三维建模使用3dMax三维建模软件,对计算机内部的所有硬件部件,主板、内存、机箱、显示器、电源、鼠标、键盘等进行1∶1实物建模,要求模型部分与整体之间存在关联,可以放大缩小,360度旋转观察,模型进行文字标签说明和选中高亮显示。并且为模型贴图,设置材质类型,完成三维模型的灯光、材质、外观颜色等渲染工作,提高视觉可视效果,使模型更加逼真。同时,计算机三维模型导出时选择Unity3D支持的FBX格式文件。从教学需求和成本角度出发,开发目前有代表性和典型性的计算机模型,学生通过本系统学习可以达到举一反三、触类旁通的效果。
计算机3D模型建设完成后,通过Unity3D Hub管理软件打开下载安装好的Unity3D引擎,创建Project及场景Scene,布置好摄像机及灯光位置,随后将计算机三维模型直接导入Unity3D中进行初次参数设置操作使用。通过界面右侧Hierarchy面板管理已添加至场景中的模型,Game窗口为运行画面。计算机模型初次导入Assets,需要重新设置灯光、材质、比例等属性,并且为计算机各部件命名,添加碰撞体等物理属性。在Assets文件夹口中为了方便管理本项目各类场景、模型、代码、灯光、材质等资源,分类创建文件夹及子文件夹将所有资源按结构存放。
3.2 两种拆装模式
本系统的核心开发内容为计算机拆装,拆装模块设计两种模式:1)计算机所有模型爆炸展开,分布显示每部分内部结构,可以进行360度旋转放大缩小观察,点击高亮显示部件名称及介绍;2)根据真实拆装顺序引导学生,按步骤自主拆解计算机模型,并且将拆解步骤依次总结显示。通过两种模式,实现让学生深入学习计算机内部运行原理及组成结构,达到教学目标。
3.2.1 爆炸分解
当学生进入计算机爆炸拆装模块时,点击计算机,其所有组件会向四周爆炸散开,把鼠标放在单个零部件上,边缘会呈现发光状态,并显示名称,方便学生快速认识每个零件,也可以对零部件进行放大、缩小并360度旋转查看内部细节。
本系统针对爆炸拆装的算法思路为:第一步,找到虚拟计算机模型的中心,设置为爆炸中心,记录坐标;第二步,获取计算机模型的所有部件,把他们设置为子对象;第三步,计算每一个子对象与爆炸中心之间的距离,并把距离乘以3;第四步,调用函数,将所有的子对象一个个的带入函数中,求得目标坐标,把子对象移动到目标位置;第五步,将父对象赋值给计算机模型对应属性,所有部件围绕中心点,实现均匀拆分的爆炸分离。
Unity3D引擎中UI系统的On GUI方法可以帮助实现计算机的虚拟拆装功能。在Unity3D引擎中给计算机模型添加碰撞体组件后,API中的On Mouse Down方法可以通过Unity 射线检测碰撞体,并在 On Mouse Down方法下编写驱动模型运动的脚本[3]。
3.2.2 手动拆装
計算机手动拆装时,鼠标呈现扳手图形,学生可以对所有部件模型旋转、缩放查看。如果将扳手放在每个零部件上时,单击每个零部件的三维模型会呈发光状态,长按可以进行拖拽,移动拆下计算机模型部件。计算机手动拆装的一般流程为:首先,拔掉鼠标、键盘、电源连接线,拧掉螺丝打开机箱后盖;其次,按照电源→主板→内存→显卡→风扇→中央处理器→光盘驱动器→硬盘等顺序依次拆下;最后,将所有部件摆放整齐,点击界面“返回按钮,计算机模型可自动复原。在手动拆装过程存在严格的先后顺序,学生应依次按正确顺序才能完成,系统手动拆卸界面如图2所示。
将计算机中每一部分模型,使用Animator组件记录拆解动画,当把指示棒放置在模型上为高亮时,播放动画拆解动画,学生不断寻找高亮部分,进行拆除,直到拆解完成。点击复原按钮,模型可按顺序自动装回,便于进行二次拆解,之后可重复操作。
4 系统界面和动态交互功能设计
本系统由运行原理、拆装动画、自由拆卸、习题测试四个模块构成,在Unity3D中对四个模块分别设计界面,添加视频、跳转交互菜单和按钮等。学生通过四个模块的学习,实现先掌握基本知识,明白操作原理,再进行动手拆装,最终完成知识测试,系统拆装界面如图3所示。
4.1 设计UI界面
UI界面在Canvas(画布)的基础上,对UI文本、按钮、图像、视频、音频等属性进行参数设置,
主要包括Scale(大小)、Position(位置)、Rotation(旋转)等。在Asset窗口中所有控件的存放形式,表示他们之间的父子关系。例如,界面中的Text(文本)控件可以设置颜色、字体、样式等。Button(按钮)控件被点击后,会触发下一条指令。
4.2 设置第一人称
为了增强系统的真实感,当学生进入本虚拟系统后,将以“第一人称”进行操作使用。通过Unity商店下载官方人物包,将预制体导入,拖拽至场景中,放置在相机上,并设置属性。通过编写C#脚本,键盘上下左右按键控制摄像机前进、后
退;鼠标及滚轮控制旋转、缩放,学生在场景中进行漫游交互学习,以获得真实体验。
4.3 开发试题测验
本系统的试题测验设置两种模式:基础知识回答和拆装模拟测试,在C#代码里提前编写好试题题目及正确答案。学生进入试题测验模块,界面会显示填空题、选择题、操作题等题型。作答完毕提交答案后系统会进行自动批改,显示分数,同时对错题进行分析解释。如果是拆装测试,会有正确步骤提示。除此之外,系统规范计算机部件的摆放位置,以帮助学生养成良好的拆装习惯,遵守实验操作规范,系统试题测试界面如图4所示。
4.4 进行网页交互
计算机拆装虚拟教学系统发布后直接在浏览器运行,为了能通过Web端显示的按钮来直接控制系统内容,所以设计了模型与网页的交互部分。Unity3D需要直接与浏览器的JavaScript对接,Web GL也需要与Web上的其他内容对接。Unity3D中的API也可以实现此功能。
5 系统测试发布
计算机拆装虚拟教学系统开发完成后,将其与外接硬件设备连接进行联调。本系统选配的硬件设备为Oculus quest 2.0一体式头显、HTC Vive头显设备,主流分辨率,支持 SteamVR2.0定位系统,同时配备了两个操作手柄,来定位用户的坐标位置和操作指示,实现本系统的VR交互使用。用户使用过程中,操作手柄会发射激光射线出现计算机虚拟系统中,移动手柄把激光射线放置在计算机模型部件上,选中模型块呈高亮显示,当扣动手柄内侧扳机,可对模型移动或旋转。同时,手柄也可对系统中按钮及滑块进行选中或点击进行下一步操作。通过多次测试,确定系统界面及按键模型大小,拆装交互动作,拆装交互顺序等细节,不断完善虚拟拆装系统。最后,在Unity3D中设置发布格式,分别生成支持Windows、Mac、Android 多种操作系统的文件。外接式头显设备如图5、图6所示。
6 结束语
本文在了解教学需求的基础上,确定系统功能及开发流程,先利用3dMax建模计算机硬件各个组成部分。再将3D模型导入Unity3D平台对组件之间进行关联设置。接着,使用C#语言编写代码,实现计算机模型爆炸拆解和手动拆解两种模式。最后,进行动态交互设计,完成知识讲解、运行原理、拆装动画、试题测验四个模块,测试发布基于Unity3D的计算机拆装实验教学系统,为计算机组装与维护课程提供教学指导。经过课程教学实践表明,设计的系统有助于学生“身临其境”感受到操作实物的效果,提高了学生参与实践学习的积极性和主动性。
7 参考文献
[1] 中华人民共和国中央人民政府.教育部关于开展国家虚
拟仿真实验教学项目建设工作的通知(教高函〔2018〕5号)
[A/OL].(2018-05-30)[2022-10-24].http://www.gov.cn/
zhengce/zhengceku/2018-12/31/content_5440531.htm.
[2] 管维红,华驰,张蓉,等. 笔记本电脑虚拟拆装实验教
学项目建设与应用[J].中国教育信息化,2019(24):41-
43,47.
[3] 丁毓峰,徐鑫,闵新普,等.基于Unity3D的机电产品
虚拟拆装实验系统[J].实验室研究与探索,2020,39(3):
118-122,137.
[4] 陈果,刘桂芹.基于Unity3D煤矿钻机虚拟装配培训系
统开发[J].包装工程,2022,43(12):106-112.
[5] 赵铭超,孙澄宇.虚拟仿真实验教学的探索与实践[J].
实验室研究与探索,2017,36(4):90-93.