基于Unity3D的电动机虚拟仿真展示平台设计

2014-03-13 05:06刘金明马铁民王娜
黑龙江八一农垦大学学报 2014年3期
关键词:树形网页电动机

刘金明,马铁民,王娜

(黑龙江八一农垦大学信息技术学院,大庆 163319)

虚拟现实技术通过生成比较真实的模拟环境,使用户沉浸在虚拟环境中,通过用户与虚拟环境的交互打造身临其境的感觉,其在沉浸感、交互性和实时性方面优势明显[1-2]。利用虚拟现实技术,不仅能够构建具有真实感的产品虚拟仿真展示平台,用于产品的演示和培训,而且可以在产品开发设计过程中通过虚拟设计平台降低研发成本,避免新产品开发的风险[3-4]。Unity3D作为虚拟现实软件的后起之秀,起步就定义为多平台高端大型游戏开发引擎。它对DirectX和OpenGL的图形渲染管道进行了高度优化,使低端硬件也可以流畅地运行漫游展示、虚拟仿真、交互式动画等,并能够创造出高质量3D仿真系统和真实视觉效果。它能够与HTML、Flash等进行良好的交互,并支持C#、JavaScript等多种脚本语言。基于Unity3D进行三维展示、虚拟漫游和仿真已成为当前的研究热点。郭海新[5]对Unity3D与HTML网页的交互机制进行了深入的研究,并设计了一个型材虚拟仿真展示系统,充分展示了Unity3D在实时交互方面的优势。陈洪等[6]基于Unity3D设计并实现了一个交互式虚拟农业仿真系统,对虚拟作物在各种环境下的生长过程进行了模拟。郭兵兵等[7]基于Unity3D开发了一套三维矿井漫游演示系统,该系统在相关人员的安全培训、安全管理方面发挥着重要作用。段金荣等[8]基于Unity3D实现了三维标本场馆的虚拟演示系统,对鱼类标本和虚拟场景进行交互漫游展示。针对电动机产品在销售展示、使用培训、工作原理学习等方面的需求,基于Unity3D游戏开发引擎,设计并实现了电动机虚拟仿真展示Web平台,对电动机的结构、拆装和工作原理进行在线展示。

1 虚拟仿真展示平台架构及设计流程

基于Unity3D的电动机虚拟仿真展示在线平台采用B/S结构,其主要分为网页树形结构和Unity3D虚拟仿真展示两部分。其中网页树形结构部分负责用户在浏览器上的各种操作和管理,重点是选取要展示的电动机产品及相关零部件;而Unity3D虚拟展示部分则利用Unity3D引擎开发具有统一接口的展示框架,实现相关电动机产品载入场景及交互式虚拟仿真展示。基于Unity3D的电动机虚拟仿真展示在线平台设计流程如图1所示。

图1 系统设计流程图Fig.1 Flowchart of system design

2 虚拟仿真展示平台设计与实现

2.1 三维仿真建模

2.1.1 Pro/E零件建模及装配

虚拟现实三维模型是整个虚拟仿真展示平台的基础,模型的好坏直接影响运行的速度和虚拟环境的逼真度。平台首选Pro/E进行电动机三维建模,其步骤如下:

(1)分析电动机设计图纸或电动机设备实体的结构组成,进行零部件拆分。

(2)根据设计思路,选取零部件的基本截面,进行基本特征草绘,然后利用拉伸、阵列等操作添加附加特征完成零部件整体制作,最后使用倒角、拔模等操作完成修饰特征的设计。

(3)利用Pro/E强大的装配功能,通过各种约束条件组装、零部件镜像和阵列等操作,完成电动机模型的装配。

2.1.2 3DS Max模型贴图及动画制作

为获得更好的仿真效果,系统采用3DS Max对模型进行贴图渲染,配合使用Photoshop对材质贴图进行处理,提升3DS Max的渲染效果。

对于电动机内部的绕组等具有不规则特性的零部件,使用Pro/E进行建模时很难获得逼真的效果,可以在3DS Max中进行真实感建模。同时,需要在3DS Max中对Pro/E制作的电动机三维模型零部件进行重命名、成组、坐标轴调节、模型面数优化等操作。

3DS Max具有强大的三维动画制作功能,使用它很容易在制作3D模型过程中实现电动机的拆装动画,且没有任何局限性。在3DS Max中,通过在各关键帧处记录相应零部件的位置变化关系来实现电动机的拆装动画。

2.2 Unity3D虚拟仿真设计

2.2.1 虚拟场景设计

将3DS Max处理后的电动机三维模型导出为.FBX格式文件,并放到 Unity3D的资源文件夹Assets中,Unity3D将自动导入对应的三维模型及相应的贴图和动画文件。然后,将模型添加到虚拟场景中,并对电动机三维模型进行缩放、移动、旋转、显示隐藏等相关属性的设置。

为了进行可视化虚拟仿真展示,必须在场景中添加主摄像机和灯光等其他虚拟环境的必备元素,并进行相关属性和主从关系的设置。

2.2.2 虚拟交互脚本设计

Unity3D支持JavaScript、C#和Boo三种脚本语言,其中C#的功能最强大,因此本平台采用C#进行交互脚本的开发和设计。

为了对电动机模型进行多角度虚拟展示,编写了MouseView.cs脚本实现鼠标拖动旋转和滚轮缩放的功能。同时,将该脚本赋予主摄像机,并将观察目标对准到模型的中部,即可完成以电动机模型为视角中心的虚拟仿真展示。

为了对电动机的拆装过程进行清晰展示,编写了AssembleDisplay.cs脚本,并设置了触发按钮。由于在3DS Max中进行电动机拆装动画设计时,仅设计了电动机的拆解动画,因此组装动画需要使用拆解动画的倒序播放来实现。

2.3 HTML网页与Unity3D交互实现

2.3.1 网页树形结构设计

在电动机虚拟仿真展示在线平台中,用户可以通过单击网页树形结构中相应电动机产品前的单选按钮,将其载入到Unity3D虚拟仿真展示部分,并通过鼠标点击该产品各零部件前的复选框进行相应零部件的显示和隐藏,利于用户观察产品的内部结构和工作原理。

网页树形结构的生成方法为:规划电动机产品的类型和对应产品的零部件名称,并依据此名称制作生成树形结构所需的.XML文件;然后通过编写的JavaScript小程序将.XML文件转化为网页树形结构。

2.3.2 HTML网页调用Unity3D脚本函数

为实现HTML树形结构中单选按钮和复选框状态改变时,Unity3D虚拟仿真展示部分载入特定电动机模型及对相应零部件进行显示和隐藏,需要在HTML网页中使用SendMessage()函数向Unity3D发送消息。在Unity3D 4.0版本导出的HTML网页中,在添加复选框状态改变时对应的JavaScript触发函数后,需要在该函数中添加如下代码:

此时,若复选框状态改变,则HTML网页中对应的JavaScript触发函数将向Object对象的Function函数传递字符串参数String,进而触发Unity3D虚拟仿真展示部分内容的改变。

3 虚拟仿真展示平台效果展示

在展示平台中,鼠标单击三相鼠笼式异步电动机前的单选按钮,将该电动机模型载入虚拟场景;然后通过鼠标拖动可实现模型的旋转、通过滚轮滚动可实现模型的缩放;通过取消选中零部件前的复选按钮,可以在虚拟场景中实现相应零部件的隐藏。交互式展示效果如图2所示。

图2 交互展示Fig.2 Interactive display

在图2中的虚拟场景部分点击“加电转动”按钮,可将电动机转换到工作状态,还可以通过触发的速度调节滑块调节其转子的转动速度。当点击“拆解电机”按钮时可以播放电动机的拆解动画,此时拆解电机按钮变为“组装电机”按钮,再次点击时可以进行电动机的组装。通过点击触发的“暂停拆装”按钮可以暂停电动机的拆装动画,能够增进用户对电动机结构和工作原理的理解。动画展示效果如图3所示。

图3 动画展示Fig.3 Display of animation

4 小结

针对电动机产品在销售展示、使用培训、工作原理学习等方面的需求,基于Unity3D设计并实现了电动机虚拟仿真展示Web平台,并对Unity3D虚拟场景的交互技术进行了深入研究。该平台动态展示效果好、逼真度高,对企业设计和展示电动机产品,学生及维修人员学习电动机结构和工作原理,掌握电动机维修和保养知识具有一定的应用价值。

[1] 冯桂珍,池建斌,王大鸣,等.VRML虚拟校园漫游与交互技术[J].工程图学学报,2011,32(5):40-45.

[2] 白海军,高云丽.计算机虚拟现实技术在高校体育训练中的应用研究[J].黑龙江八一农垦大学学报,2013,25(3):105-107.

[3] 任镤,王文剑,白雪飞.基于虚拟现实技术的山西大学堂建筑复原[J].计算机仿真,2012,29(11):20-23.

[4] 胡星星,王君泽,瞿畅.基于Cult3D的牧草收割机切割组件的虚拟装配[J].农机化研究,2012,24(2):200-202.

[5] 郭海新.Unity3D与HTML交互机理的研究[J].煤炭技术,2011,30(9):228-229.

[6] 陈洪,马钦,朱德海.基于Unity3D的交互式虚拟农业仿真平台研究[J].农机化研究,2012,24(3):184-186.

[7] 郭兵兵.基于虚拟现实技术的三维矿井漫游演示系统开发与应用[J].中国煤炭,2013,39(3):64-67.

[8] 段金荣,胡玉萌,刘凯.鱼类标本及标本馆场景三维演示系统的研发[J].南方水产科学,2013,9(1):63-67.

猜你喜欢
树形网页电动机
苹果高光效树形改造综合配套技术
浅析电动机日常维护与保养
莱阳茌梨老龄园整形修剪存在问题及树形改造
永磁同步电动机的节能计算
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
猕猴桃树形培养和修剪技术
休眠季榆叶梅自然开心树形的整形修剪
基于URL和网页类型的网页信息采集研究
网页制作在英语教学中的应用