韩君利
(辽沈工业集团有限公司,辽宁沈阳,110045)
底排火箭复合增程弹由引信、防潮垫、炸药、弹丸壳体、火箭推进剂、火箭发动机、喷管、点火炬、底排药剂、底排壳体、弹带组成。其二维装配图如下图1所示。根据底排火箭复合增程弹的装配图,使用ProE软件对各个零件进行三维建模如2—6所示。
图1 底排火箭复合增程弹CAD装配图
在ProE软件中绘制的零件模型,默认的是“prt”格式,并不能在3ds Max中正常识别,需要我们转换成能正常识别的“stl”格式的文件,然后进行导入。打开3ds Max软件,然后点击“导入”,选择要导入的文件,所有零部件导入后的效果如图7所示。模型导入后通过移动和旋转对零件的位置和方向进行调整,调整到合适的位置。
图2 火箭推进剂
图3 引信
图4 防潮垫
图5 弹体
图6 炸药
图7 零件导入示意图
把导入的每个零件的位置摆放正确后,通过设置坐标来确定零件的正确位置。然后设置关键帧,每移动一次零件的位置,记录一次关键帧,设置每一个动作为50帧。最后通过每一次移动零件位置,记录下关键帧,最终完成底排火箭复合增程弹模型的装配,形成一个完整的动画。
系统的主界面主要是为用户提供一个进入其它场景的入口,是一个二维的场景,直接使用NGUI来搭建,完成后的效果如图8所示。
图8 系统主界面
首先将设计界面所需的图片准备好,然后打包成NGUI的Atlas,这时就完成了将UI设计时的图片元素集的生成,在进行UI设计时就可以随时到这个图集中进行调用。
其次,NGUI中默认不显示中文字体,所以需要进行中文字体的制作。对于字体的制作,可从互联网下载中文字体添加到字体目录,这样在进行字体选择时就可以选择相应的中文字体。NGUI提供了两种字体方案,即动态字体(Dynamic Font),和静态字体(Normal Font)。本设计对于字体的显示选择静态字体。这种方式需要提前预估需要用到的文字,然后使用BM Font软件制作纹理,导入到NGUI生成字体预制才能使用[2]。
场景的设计是系统设计的关键部分,好的场景能够完美的显示系统的特点和实现系统功能。这样在进行系统应用时,使用者通过系统的既定功能,就可完成对所设计的底排火箭复合增程弹进行操作训练。
将3ds Max中制作出的装配动画以“FBX”的格式导出后,打开Unity3D的装配场景,把动画文件首先拖进到Project窗口中的Assets文件夹中,然后选中该文件后,就可以在Inspector视图的Import Settings面板中,编辑该模型的导入设置。在Inspector视图的Import Settings面板中,有一个Animations子面板,该面板的主要作用是可以对模型的动画片段进行编辑[3]。导入后的模型动画是一个完整的装配动画,根据需要,要把它拆分成若干个独立的动画片段,每一个动画片段播放的是一个零件的装配,拆分后的动画片段如图9所示。
图9 拆分后的动画片段
在交互过程中,场景中的对象要对鼠标的单击作出相应的反应,所以要对场景中的对象添加碰撞检测,然后当鼠标接触对象时通过相应的程序代码就可实现场景中对象的相应动作。在Unity3D中,做碰撞检测有三种方法[4]。第一种是碰撞器,第二种是触发器,最后一种是射线检测。碰撞器是一群组件,它包含了很多种类,本设计采用碰撞器。
碰撞器设置之后,如果要实现一个片段的动画跳转到另一片段动画,使用脚本控制它们可能是一个潜在的复杂工作。而Unity3D的Mecanim动画系统借用了计算机工程师熟知的一个概念,那就是状态机来简单的控制和序列化动画[5]。而底排火箭复合增程弹的拆装必须要按照正确的装配顺序进行装配,所以每一个片段的动画转换到另一个片段的顺序是唯一的,不能互换顺序,所以在Animator[6]窗口中设计各个片段动画的关系如图10所示。
图10 装配动画状态机
在系统运行时,首先播放一段动画,这段动画是将一个装配好的底排火箭复合增程弹进行拆解,相当于一段教程,培训者通过观看底排火箭复合增程弹的拆解,就会了解到正确的装配顺序,从而快速而准确地完成火箭复合增程弹的装配。观看完这段动画,就可进行装配操作,在操作过程中设计有操作考评系统,通过这个考评系统,可使操作者知道自己的装配顺序是否正确,最终顺利完成装配底排火箭复合增程弹的任务。考评系统设计的思路是,满分为100分,用户点击零件进行装配,如果用户装配顺序错误,每错误一次,就会减去10分,当总分低于60分时,系统会弹出对话框提示你重新装配,如图11所示,这时就要重新播放底排火箭复合增程弹的拆解,然后才能开始装配,这也就相当于重新进行系统操作。
图11 提示重新装配界面