如何使用Virtools 5.0(VT5)中的Physics Car(BB)构建汽车虚拟驾驶环境

本文详细介绍了如何使用Virtools 5.0中的Physics Car资源来构建汽车虚拟驾驶系统。首先讲解了3ds max中创建汽车和场景模型的注意事项,包括模型的点、线、面数量限制、命名规则、坐标系调整和父子关系建立。接着,阐述了在Virtools中构建虚拟驾驶系统的过程,包括设置地面物理反应、Physics Car BB的使用及其参数配置。最后,详细解析了驱动Physics Car的四个参数数组,包括BODY Parameters、WHEEL-SUSPENSION Parameters、ENGINE-STEERING Parameters和Skidding Output Info,以及它们对汽车行驶效果的影响。
摘要由CSDN通过智能技术生成

    virtools是一种构建三维交互式虚拟系统十分便捷、非常有效的软件,特别是对建立像汽车仿真驾驶那样复杂三维交互式系统,其快速的特征更是表现得淋漓尽致。 

  Physics Car是Virtools软件用于物体物理反应开发资源(Physics)中的一个BB(Building Block),它一个是被优化了的Virtools SDK应用模块,借助这个BB可以方便快捷地实现仿真驾驶的交互式感觉。使用Physics Car在Virtools Dev构建虚拟驾驶系统,可以节约大量的人力、物力和时间。本文较为详细地介绍了如何使用Physics Car构建汽车虚拟驾驶环境。

  1、三维汽车及场景模型的获取

  如果想要用Virtools建立一个虚拟驾驶系统,首先要有汽车和场景的模型。一般是先使用某种三维建模软件,如3ds max等,分别建立汽车和场景模型;然后使用Virtools提供的输出插件将模型输出成Virtools能接受三维物体.nmo文件格式。对一般物体来说,场景的导出较为简单,直接按三维物体输出即可。而对于Physics Car的寄主,也就是汽车模型来说则有许多特殊的要求。以3ds max为例,在建造模型的过程中首先要严格控制构成模型的点、线、面的数量,因为在从3ds max中导出实体模型的时候, 3ds max所提供的Exporter只允许在生成的.nmo文件中储存65536个模型点,超过这个数值,模型将在Virtools中出现面扭、点合并等现象,导致导入模型的不正确,从而不能正确添加进行操作交互的行为BB。由于Physics Car BB要求其寄主必须由一个车身及四个车轮物体构成。因此,在完成模型的创建后,最好将模型塌陷成一个车身和四个车轮物体。并且四个车轮有严格的命名规定,分别用为***。*** _ FL、*** _ FR、***_ BL、*** _ BR。其中最为重要的就是作为标志性的字符串后缀_ FL、_ FR、_ BL和_BR,分别代表左前、右前、左后和右后。他们是Physics Car自动将车轮结合到车体上的重要判断依据。前面的*号代表任何允许使用的字符,如英文字母等。

  由于被导入到Virtools中的三维实体是将车体和四个车轮作为一个碰撞组(collision group)进行处理,并且这个碰撞组的检测是以车体所命名的字符串为检测基础的(即车体名称代表了这个碰撞组的名称),而在Virtools中为了避免在同一个场景中多个使用Physics Car的实体在碰撞时出现错误,Virtools规定碰撞组所使用的字符串的数量不能超过8个字符,所以在命名上也需要注意所选车体使用的字符串的长度不可以超过8字符。另外还要特别注意的是, Virtools和3ds max中使用的坐标系是不同的。为了能满足Physics Car对局部坐标系(3D MAX里先选择成Local局部坐标系)的规定,首先需在3ds max中将车身和车轮的轴心到各部分的中心,然后再将轴心的局部坐标方向调整成Physics Car所要求的方向,即蓝色的Z轴指向前方;绿色的Y轴指向上方;而红色的X轴指向右方。由于两种软件的坐标系是不同的,因此在不改变3ds max的坐标系的情况下,将3ds max模型输出成文件时其输出插件会对坐标系进行转换。通过详细地观察会发现:3ds max模型输出成.nmo文件时会保持原X轴的方向,而Y、Z两则交换位置。有了这个规律,只需在模型输出前,将各模型的轴心点X轴均转到与Physics Car相同的方向,即X轴指向右方,而将Z轴指向上方,而Y轴指向前方(就是选择3D MAX修改面板右侧的层次面板,选择仅影响轴,然后旋转)。经过这样设定后,并按三维物体将其导出,3D MAX导出时需要选择“缩放unit”,不然导入的汽车可能非常大,这样就可以得到坐标系正确的.nmo汽车文件了。另外一个需要特别注意的地方是最好不要在3ds max中对汽车模型进行缩放处理。这种处理可能导致由3ds max导出的.nmo模型产生某畸变,直接影响到汽车在Virtools中的工作状态。汽车会突然出现飞起、翻滚、消失等各种莫明其妙的现象。如果一定要进行缩放处理,则需在模型输出成.nmo之前,对模型进行重置处理。方法是先选中车身和各个车轮,然后选择Utilities命令面板中的Reset Xform命令,再单击Reset Selected即可。Physics Car还要求车身与车轮之间具有父子关系,让四个车轮成为车体的子层级,这样车轮才能和车体共同运动。建立父子关系可以在3ds max中,模型输出之前做,方法是先按下主工具栏上的Select and Link命令按钮,然后用拖拽的方法,将每个车轮链到车身上。如果模型已经输出成.nmo,也可以在Virtools中将四个车轮设置成车身的子物体,方法是打开Hierarchy Manager将四个车轮实体拖拽到车体body上。

  上面的注意事项必须非常认真处理,在拖拽.nmo文件到Virtools5中,可以分别看看3D object中的车身和四个车轮是否局部坐标(Local)是否满足往车头看时,X轴向右,Y轴向上,Z轴向前。如果没有问题,再调整位置,设置IC。另外辅助物体(Dummy)可以在VT5中直接建立(就是3D Frame࿰

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值