欢迎来到学术参考网

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

发布时间:2016-05-21 11:29

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

 

在众多的虚拟仿真系统中,煤矿生产环境、龙卷风现场等很多高危场景、现实很难动态再现场景需要虚拟仿真,而在虚拟仿真环境制作中,最主要的是角色控制及视角控制技术。

 

那么如何通过Virtools的模组开发一个简单的虚拟仿真系统,笔者将通过角色控制技术、摄像机控制技术、碰撞检测技术来具体介绍基于virtools的虚拟仿真场景展示的关键技术。

 

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

 

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

 

  1.1 使用Character Controller设置角色动作

 

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

 

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

 

Virtools中默认的角色控制是使用游戏控制杆,通过以上设置即可实现通过游戏控制杆控制游戏角色的运动。

 

如果需要用键盘控制需要Keyboard Mapper模组进行键盘按键映射,实现从键盘事件到游戏控制杆的映射。

 QQ截图20160514172552.jpg

  左键单击Building Blocks/Controllers/Keyboard/Keyboard Mapper模组拖到场景的角色模型上,在弹出的设置框依次添加keyADSWMessage下拉框分别选择Joy_LeftJoy_RightJoy_DownJoy_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 ConstantDistancelook At两个模组并连线如图6所示。

 

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

 

  2.2 第一人称漫游模式

 

第一人称漫游模式是第一视角的漫游,可以将第三人称的摄像机镶嵌在角色的正前脑门上即可。也可以隐藏人物模型,充当第一人称漫游模式。

 

本案例笔者通过在主场景添加模组Switch On Key模组,设置F2F3分别执行Hide角色和Show角色来实现第一人称模式和第三人称模式及切换。Virtools连线如图8所示。

 

  3 虚拟场景展示

 

在虚拟场景展示中,经常会出现角色融合到了物体中,所以碰撞检测技术可以让人物始终保持在可以浏览的场景中,避免出现穿墙等现象。Virtools碰撞检测技术主要有Prevent CollisionLayer SliderObject Slider三个BB模块。

 

本案例笔者采用Object Slider模组,用物体组的模式快速灵活实现角色与物体组合的碰撞检测。

 

首先新建一个Group命名为collsion,在场景中选择不能让穿越的物体,右键Send To Group选择collsion。将Collisions/3D Entity/Object Slider模组添加的角色身上,在弹出对话框设置Radius0.4groupcollsion,也就是我们之前新建的存放物体的group

 

在案例完善过程中,新增加的非穿越物体,右键发送到collsion组合即可;可以穿越的物体,移除出collsion组合即可。

 

  作者:张俏 焦战 来源:无线互联科技 20153

上一篇:试论计算机辅助软件CAD的开发与应用

下一篇:软件开发技术的应用研究