Vega Prime入门教程13.06:碰撞检测

Vega Prime入门教程索引:Vega Prime入门教程索引

Isectors是接触检测,一些接触检测有大量复杂的运算,可以支持你用地线夹将运动模式固定在地面。还有一些相对简单的,包含几行代码行的运算,用来区分目标。根据检测类型的不同,您可以在C++程序中编写适当的反应程序,如在墙体前停车。

你可以从以下内容选择运算:

  • Tripod - 三条聚集数据的直立线段,指引使用t者到指到目标。Tripod 用于在水平地面上。
  • Bump-六条线段,沿X,Y,Z轴正负方向聚集爆炸。
  • LOS-单根视线线段,沿Y轴向辐射。它聚集您面前的数据。
  • HAT-单根线段,沿Z轴辐射,它计算地形上的高度。
  • XYZPR-计算及斜度和转向
  • ZPR-计算爆炸点的Z轴方向的斜度和转向
  • Z-计算Z轴上的爆炸点。

在我们指南中,我们将添加一个Isector来用地线夹将汽车固定在地形上,然后给汽车添加一个bump检测爆炸。我们将使用LynX Prime添加这两个运算。

接触检测

添加之前,你必须创建一个实例来用地夹线通过Isector来固定一个运动模式。

在myMotion的用户操作区中,点击创建新实例的键,这个按键在Next Position Strategy列表旁边。

mymotion

在创建新实例对话框中,选择GroundClamp,点击Ok。

groundclamp

效果如图

mymotion

点前进键显示myGoundClamp用户操作区。

new instance

点击lsector列表旁边的创建新实例键,在创建新实例的对话框中选择IsectorTripod,Ground Clamp实例将会使用这个功能来计算爆炸信息。最终运动方法将接触信息反绩给汽车。

isectortripod

myisector

将myIsector重命名为tripodIsector。

我们需要将地形做为tripod检测的目标,tripodIsector将用地形来寻找接触,并将信息传递给所有相关的运动模式。

在tripodIsector用户操作区,在Target列表中选择地形物体作为目标。

tripod isector target

设置选择Render Isector复选框用于Isector显示。如果isector找到地形目标,线条显示为绿色,否则线条显示为红色。

render isector

预览效果

预览

起重机发出三条绿线,表示起重机检测到了地面。

这个时候再次移动起重机,起重机不会再进入地形里面,而是在地面移动

设置tripod检测的宽度为10,长度为12,这样可以检测更大的接触面。宽度和长度的参数表示三根线彼此之间的距离。重新设置后,三根线的之间距离会拉大,您将能看到地面上三根直线间的三角形联线。但这个三角形不处理任何爆炸信息,而是由这三根垂线处理所有的工作。

参数调整后

当起重机驶离数据库区,当你离开仿真世界的边缘时,起重机发出的三根线呈红色,因为这时他们无法再检测到与地面目标的接触。

无地面接触

爆炸检测

如果汽车面前有农舍时,Bump检测就会检验到。

如果在Lynx prime定义碰撞检测,那么它无法阻止汽车穿越农舍。你必须在API 中定义这个动作,这部分将不在本文范围之内。随后,你要在Lynx prime中添加汽车与房屋相撞时的效果。

在工具条中点击创建实例键,在对话框中选择lsectorBump。

isector bump

将myIsector改名为bumpIsector。将碰撞的宽,长和高的参数设置为10 ,因为默认设置值太小。

bump isector参数设置

在Target列表中选择农舍为目标。接触检测将根据边靠边标准检测与农舍的接触。

bumpIsector目标

打开lsector Mask旁的测览按键,打开Bitmask Editor,bitmask将会把指导地形目标(我们将在后面的指南中建立这些地形目标)从一些检测中排 除出去,在检测最新过程中节约时间。

除了Bit1之外,清除所有的的bit 。Bitmask将会显示为0000001。点击ok保存bitmask。

bitmask

在position Reference列表中选择汽车目标,碰撞检测自己就会与汽车建立联接。

position reference

在用户操作区中选择Render lsector复选框,以便在Active preview中查看线段。

选择指示线

点击owning lsector service列表旁的创建实例键,

owning isector service

并且选择IsectorServiceInline 。

isector service inline

在线服务将会为每个结构提供最新的相关的检测,这样就把接触数据存贮起来为以后使用做准备。处理接触信息的流程与处理应用的流程一样。

我们不必给tripod检测添加在线服务,因为三角检测不直接联接于运动模式,而运动模式处理最新数据。但是,接触测试不与地夹线或运动模式联接。三角检测本身只确认它的位置与汽车直接相关。在线服务确认每个结构的检测是最新的,这样才能存贮数据。

演示视频


Vega Prime入门教程13.06:碰撞检测
https://blog.jackeylea.com/vegaprime/vegaprime-isector/
作者
JackeyLea
发布于
2023年10月9日
许可协议