褚丽娜,李建增,谢志刚(军械工程学院无人机工程系,石家庄 050003)
基于Unity3D的无人机交互式课件开发
褚丽娜,李建增,谢志刚
(军械工程学院无人机工程系,石家庄050003)
目前,无人机作为一种复杂装备,教学常用的文字、图片、视频等手段很难将其内部复杂的结构关系展示清晰,学生很难形成直观的感受,需要通过空间想象来理解相关知识。结合实装的上机练习虽然可以让学生形成直观的感受,但是装备价格昂贵、寿命有限,教学用装备数量有限,不允许每个学生在训练中反复练习提高[1-3]。在装备信息化建设背景下,为提高装备教学能力,减少训练费用,提高学生动手能力,探索更加科学有效的教学训练方法意义重大。
Unity3D是由Unity Technologies开发的一个跨平台专业游戏引擎,支持主流的三维建模软件,可以实时处理大量的三维模型,同时支持C#、JavaScript、Boo等多种脚本语言[4]。除了游戏开发领域,它还被广泛运用于航天、军事国防、工业仿真、教育培训、医学模拟、建筑漫游等领域。李葳[5]等将Unity3D虚拟现实技术用于土工试验教学,达到良好的教学效果;张延[6]等设计实现导弹视景方针系统,降低了实验成本;刘金明[7]等设计实现了电动机虚拟仿真展示Web平台,对学生和维修人员的学习具有一定应用价值。本文针对无人机装备在教学、训练等方面的需求,以Unity3D作为虚拟开发平台,设计并实现了无人机课程交互课件的开发,教学训练时只需用鼠标进行操作,价格便宜,无须维护。
基于Unity3D的交互式课件开发流程包括模型和场景的构建、人机交互界面的实现、交互控制脚本的编写和软件发布等四个环节。
1.1模型和场景的构建
Unity3D作为一个引擎,只提供盒子、球体、胶囊体等基础的模型,要制作出无人机的3D模型需要借助Maya、3DMax、Pro/E等三维建模软件。在分析无人机设备实体结构组成,进行零件拆分的基础上,选用3DMax完成装备各部分模型的创建和美化工作,最终导出模型为.FBX格式。
将3DMax中导出的模型和贴图文件放到Unity工程文件夹下的assets文件夹中,即可在Project视图中看到模型文件,完成导入。在场景中添加主摄像机和灯光等虚拟环境的必备元素,使模型达到最佳显示效果。同时,据需要对模型进行相关父子关系和属性的设置,通过父节点包含子节点,子节点又可以包含另外的子节点。当父节点运动时,子节点随之做同样运动,但子节点运动时,父节点保持不变,为下面拆装功能的实现提供基础设置。
1.2人机交互界面的实现
在Unity3D中,基本的环境、灯光、摄影机和组件添加好后,需要建立操作界面。交互式课件的操作界面由一个主界面和多个子界面组成,主界面中设置多个按钮引导用户进行拆卸、组装、使用提示帮助等相关内容操作,均通过鼠标进行操作。Unity3D的操作界面由脚本实现,利用OnGUI实现,部分代码如下:
提示帮助采用GUI Window和GUI.Label实现提示信息的显示与隐藏。
1.3交互控制脚本的编写
交互控制技术是交互式课件的关键,需要采用脚本语言编写控制代码形成脚本文件,将脚本文件加载到需要实现此行为的物体下面,运行程序时该物体就能按照脚本所编辑的规律运动。目前Unity3D支持C#、JavaScript和Boo三种脚本语言,本文选用JavaScript编写。具体实现功能如下:
(1)摄像机的控制。通过加载在摄像机上的脚本控制物体的旋转、缩放和平移,可以使观察视角任意改变,并能深入到装备内部进行查看。在脚本中通过改变受控物体的Transform组件中的position和Rotation属性实现物体的旋转、缩放和平移运动,实现对无人机的全方位观察。
(2)标签的显示/隐藏。为了更方便学生课下自己操作练习,为无人机的每个零部件都添加了实时名称标签,当鼠标移入该零部件区域时,标签出现;鼠标移出时标签消失。部分控制代码如下:
将该脚本加载到每个需要显示名称标签的物体上后,需要为这些物体分别添加碰撞体,才能实现函数OnMouseEnter和OnMouseExit中预设的控制。当物体形状比较简单时,可以根据物体形状添加盒子、球体或胶囊体碰撞体,例如可以为中外翼添加盒子碰撞体;当物体形状比较复杂或安装位置零部件较多时,需要添加网格碰撞体,例如发动机整流罩本身形状不规则,而且涉及安装螺钉较多,且内部包裹的发动机也要添加碰撞体,为了避免碰撞体想过重叠产生错误,为其添加网格碰撞体。
最后在Inspector视图中添加物体名称到参数tipname,如图1所示,即可实现物体标签的显示与隐藏。
图1 添加组件名称
(3)拆装功能的实现。拆装功能是针对物体本身的运动操作,实现方法有两种,一是通过代码直接控制物体的Transform组件实现运动控制,二是先通过Unity3D自带的Animation组件为物体制作轨迹动画,再用代码控制动画播放的条件和时刻。本文采用方法二实现,轨迹动画制作界面如图2所示,对于螺栓、螺母等小零件,在改变Transform组件参数实现拆装动画的同时,改变其Scale参数,使小零件在拆卸后放大,便于观察和组装时寻找。
图2 轨迹动画制作界面
由于无人机的拆装过程需要按照一定的顺序进行,鼠标单击物体时,需要判断是否满足该物体拆卸或组装的条件,若满足条件方可播放拆卸或组装的轨迹动画;若不满足条件,则显示提示信息,提醒应先拆卸或组装某零部件。部分代码如下:
将上述代码写入function Update函数中,同时利用标签显示/隐藏的方法显示提示信息,为每个需要拆卸或组装的零部件加载该脚本。当同时有多个螺钉或螺母需要拆装时,例如左中外翼整流罩安装螺钉共6个,并没有为这6个螺钉都加载上述动画控制脚本,而是动画控制脚本随机加载到其中一个螺钉上,只有单击该螺钉才能执行6个螺钉的拆装动画,这样的设置既压缩了课件的大小,又保证学生可以得到充分的练习,全面地认识无人机上的细小结构组成。无人机拆卸完成界面如图3所示。
(4)帮助功能的实现。课件的相应部分会提供使用帮助功能,帮助中详细说明课件操作的方法、无人机拆装的步骤和详细操作流程,并为学生和教师提供必要的提示导航信息,帮助初学者熟悉软件操作流程,巩固课程相关知识。如图3所示,当操作熟练后,可以点击左下角的“收起提示”按钮,隐藏左上角的拆装步骤栏和右下角对应步骤的具体操作提示信息,进行自测练习。
图3 系统拆卸完成界面
1.4软件发布
Unity3D支持Windows、Linux、Mac OS X、iOS、Android、Web等多个平台。根据日常教学需要,本文直接发布为.exe程序,直接双击打开即可进行操作。后续根据教学需求,可以发布到iOS、Android等移动平台,让学生可以直接通过智能手机随时随地浏览该课件。
本文将Unity3D引入无人机教学训练中,开发的无人机课程交互式课件,可以全方位、多角度展示无人机的机械构造、拆装流程等训练教学内容,使学生能够在单独的PC上模拟操作练习,符合装备信息化建设的需要。该系统实现了结构演示、安装与拆卸等功能,对无人机的教学和训练提供了一种新的手段。
[1]杨思,李小民.基于虚拟现实的无人机维修训练系统的开发[J].计算机仿真,2008,25(1):302-313.
[2]高颖,连明,许志国等.无人机模拟训练系统的设计与实现[J].燕山大学学报,2005,29(2):117-122.
[3]丁进勇,寇昆湖,陈勇等.无人机模拟训练教学系统设计[J].实验室研究与探索,2014,33(7):221-224.
[4]Unity Technologies主编.Unity4.x从入门到精通[M].北京:中国铁道出版社,2013.11.
[5]李葳,马桦.Unity3D虚拟技术在高职土工试验教学中的应用[J].科技创新导报,2012,(12):124.
[6]张延,余红英,戚艺雪等.基于Unity3D/3DMAX的导弹视景仿真系统[J].科技视界,2013,(25):151.
[7]刘金明,马铁民,王娜.基于Unity3D的电动机虚拟仿真展示平台设计[J].黑龙江八一农垦大学学报,2014,26(3):66-69.
Unity3D;UAV;Interactive Courseware
Implementation of UAV Interactive Courseware Based on Unity3D
CHU Li-na,LI Jian-zeng,ZUO Xian-zhang
(Department of Unmanned Aerial Vehicle,Ordnance Engineering College,Shijiazhuang 050003)
1007-1423(2015)24-0039-04
10.3969/j.issn.1007-1423.2015.24.010
褚丽娜(1983-),女,河北涿州人,军械工程学院讲师,硕士研究生,研究方向为虚拟现实技术
李建增(1966-),男,河北石家庄人,硕士研究生,讲师,研究方向为无人机信息处理
谢志刚(1975-),男,湖北汉川人,博士研究生,讲师,研究方向为无人机信息处理
2015-07-14
2015-09-10
从无人机教学训练的角度出发,研究如何利用Unity3D引擎实现交互式课件开发,探索交互式课件开发的关键技术和具体实现方法,制作出仿真性强、交互灵活、支持拆装的无人机交互式课件。
Unity3D;无人机;交互式课件
军械工程学院教学研究立项课题(No.jxlx1548)
From the perspective of teaching and training,mainly studies how to effectively use Unity3D to design the interactive courseware,to explore key technology and steps,and to create interactive courseware which has the characteristic of strong simulation,flexible control and supporting dismounting and assembling.