Virtools开发虚拟仿真软件场景展示类的制作术

    张俏++焦战

    摘 要:文章介绍了virtools下快速开发场景漫游,通过轻松简单的方式实现第一人称、第三人称漫游模式制作及切换,并解决人物穿越3D模型的问题,为非计算机类人员提供成熟便捷的虚拟仿真解决方案。

    关键词:Virtools;第三人称;虚拟场景漫游

    在众多的虚拟仿真系统中,煤矿生产环境、龙卷风现场等很多高危场景、现实很难动态再现场景需要虚拟仿真,而在虚拟仿真环境制作中,最主要的是角色控制及视角控制技术。那么如何通过Virtools的模组开发一个简单的虚拟仿真系统,笔者将通过角色控制技术、摄像机控制技术、碰撞检测技术来具体介绍基于virtools的虚拟仿真场景展示的关键技术。

    1 虚拟仿真系统中的控制角色技术

    虚拟仿真系统中的控制角色技术,最常用的通过游戏控制杆、键盘、鼠标等输入接口设备控制角色的运动,在Virtools中提供已经封装好的两个模组分别是:Character Controller模组和Unlimited Controller模组。

    1.1 使用Character Controller设置角色动作

    将角色Eva放入场景,将制作好的Characters/Animations/Skin Character Animations/Eva/的Run、Wait、Walk等动画拖动放到角色身上,即添加好了角色的运动动画。如图1所示。

    左键单击Building Blocks/Characters/Movement/Character Controller模组拖到Eva角色模型上,在弹出的设置框中,分别指定Stand Animation(站立动画)为wait、Walk Animation(前走动画))为walk、Walk Backward Animation(后退动画))为walk Bckwd和Run Animation(跑动动画))为run。如图2所示。

    Virtools中默认的角色控制是使用游戏控制杆,通过以上设置即可实现通过游戏控制杆控制游戏角色的运动。如果需要用键盘控制需要Keyboard Mapper模组进行键盘按键映射,实现从键盘事件到游戏控制杆的映射。

    左键单击Building Blocks/Controllers/Keyboard/Keyboard Mapper模组拖到场景的角色模型上,在弹出的设置框依次添加key为A、D、S、W,Message下拉框分别选择Joy_Left、Joy_Right、Joy_Down、Joy_Up。如图3所示。

    设置完毕两个模组后,将Eva连线到模块的on输入口,完成的整个程序如图4所示。

    1.2 使用Unlimited Controller设置角色动作

    Character Controller中只能设置常见的角色运动动作,而Unlimited Controller模组允许给角色加上多种复杂动作。例如:虚拟仿真中的角色维修机械动作、机器人的机械臂复杂操作动作作等。

    将Building Blocks/Characters/Movement/Unlimited Controller模组添加到角色模型上,在弹出的设置框中,添加角色的动作动画,每个动作对应一种Message。运行机制是当角色接收到某种Message时就会进行对应的动作。如图5所示。

    Unlimited Controller模组和Character Controller模组都是Virtools提供控制角色的模组,两个模组默认都是游戏控制杆控制模式,仍然需要按上面步骤添加Keyboard Mapper才能将事件映射为键盘控制。当然也可以通过Virtools的机制将鼠标事件、按钮事件通过Message发送给角色,实现鼠标按钮的事件执行角色动作,再这里笔者就不介绍了。

    2 虚拟仿真系统中摄像机控制技术

    虚拟仿真系统中摄像机控制技术,主要是通过3D Transformations下的两个BB模块的配合,实现第一人称视角与第三人称视角及相互切换功能。

    2.1 第三人称漫游模式

    选择合适角度新建一个摄像机,在摄像机上创建Script,按Ctrl单击输入新建BB模块Keep At ConstantDistance和look At两个模组并连线如图6所示。

    其中Keep At ConstantDistance模组的功能是让摄像机始终保持在角色后方某个特定位置,Look At模组的功能是让摄像机始终正对角色,通过两个模块的参数设置及可以实现摄像机始终跟随在角色后上方,始终面向角色后背影,实现第三人称视角。具体参数设置如图7所示。

    2.2 第一人称漫游模式

    第一人称漫游模式是第一视角的漫游,可以将第三人称的摄像机镶嵌在角色的正前脑门上即可。也可以隐藏人物模型,充当第一人称漫游模式。本案例笔者通过在主场景添加模组Switch On Key模组,设置F2和F3分别执行Hide角色和Show角色来实现第一人称模式和第三人称模式及切换。Virtools连线如图8所示。

    3 虚拟场景展示

    在虚拟场景展示中,经常会出现角色融合到了物体中,所以碰撞检测技术可以让人物始终保持在可以浏览的场景中,避免出现穿墙等现象。Virtools碰撞检测技术主要有Prevent Collision、Layer Slider、Object Slider三个BB模块。本案例笔者采用Object Slider模组,用物体组的模式快速灵活实现角色与物体组合的碰撞检测。

    首先新建一个Group命名为collsion,在场景中选择不能让穿越的物体,右键Send To Group选择collsion。将Collisions/3D Entity/Object Slider模组添加的角色身上,在弹出对话框设置Radius为0.4,group为collsion,也就是我们之前新建的存放物体的group。在案例完善过程中,新增加的非穿越物体,右键发送到collsion组合即可;可以穿越的物体,移除出collsion组合即可。

    [参考文献]

    [1]刘明昆.三维游戏设计师宝典——Virtools开发工具篇[M].成都:四川电子音像出版中心,2005.

    [2]祁冰.Virtools中控制人物的几种方法[J].网络安全技术与应用,2013(10):106-107.

    [3]李煜.基于Virtools的益智类闯关游戏的设计与实现[J].电脑知识与技术,2013(27):27-30.

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建