三角形(Triangle),又称碰撞三角形(Coltri),是填充节点(Node)间空间的表面(Surface)。它们在实现车辆间碰撞中起根本作用,也被用于定义物体的空气动力学属性。
三角形由3个节点定义,按逆时针顺序选定。
三角形的主要功能是能让JBeam对象(车辆和道具)发生碰撞。需要注意的是碰撞三角形只与节点碰撞,不会与其它碰撞三角形和静态地图物体碰撞。
三角形有两面,通过三角形调试视图(Traingle View Debug)中的绿色和紫色来区分正面和反面。虽两面都具有碰撞和空气动力学属性,但建议将三角形的正面朝外,因为这将减小剧烈碰撞中的穿模。您可用通过翻转其任意2个节点来翻面。
BeamNG中的空气动力学系统的原理是只基于气流速度、三角形的表面积和阻力(Drag)特性计算出所有三角形上的阻力。阻力和升力(Lift Force)会作用到相邻的节点。三角形不会受其它三角形影响,这意味着您车辆尾部的三角形仍会产生完整的阻力。
因此,您可能需要根据各个部件在气流中的暴露程度来微调其阻力系数。您也能添加表面来模拟地面效应,或微调车辆的升力分布。
系统基于三角形相对于气流的攻角模拟升力,意味着三角形上倾将产生升力,三角形下倾将产生下压力。更大的攻角将产生更多升力,只要不超过失速角,超过失速角后升力将会随着攻角增大而减小。
封闭体积(Enclosed Volume)可用于压力模拟。这用于使物体漂浮,也适用于轮胎和床垫这类类似气球的物体。
使用压力模拟系统时,确保封闭体积是没有表面缺失和凹表面的规则形状,以避免虚假力(Ghost Force)。
"triangles": [
["id1:","id2:","id3:"],
["a", "b", "c"],
],
可用的triangleType(三角形种类)为:
“NORMALTYPE” : 适用于大多数情况。
“NONCOLLIDABLE” : 无碰撞,仅防穿模(Anticlip)。用于确保防穿模系统处理悬挂和排气等有碰撞但无三角形的节点时工作正常。
通常,三角形在构成其边的梁之一断裂时断裂。breakGroup可使该行为延伸至其它三角形的梁。这对于断裂两个大型的车辆部件间的三角形很有帮助,例如车身和大梁。
当参数为string,三角形附属于一个单独指定的breakGroup。这是个一般示例。
["a","b","c", {"breakGroup":"group_1"}],
当参数为table,三角形同时属于所有指定的breakGroup。这意味其将在这些breakGroup中的任意梁断裂时自动断裂。这在实践中很少使用,并且这不受梁可视化调试模式(Beam Visualization Debug Mode)支持。
["a","b","c", {"breakGroup":["group_1","group_2"]}],
As of version 0.38.5.0 the following physics materials are available:METAL, PLASTIC, RUBBER, GLASS, WOOD, FOLIAGE, CLOTH, WATER, ASPHALT, ASPHALT_WET, SLIPPERY, ROCK, DIRT_DUSTY, DIRT, SAND, SANDY_ROAD, MUD, GRAVEL, GRASS, ICE, SNOW, FIRESMALL, FIREMEDIUM, FIRELARGE, SMOKESMALLBLACK, SMOKEMEDIUMBLACK, STEAM, RUMBLE_STRIP, COBBLESTONE, FOLIAGE_THIN, SPIKE_STRIP
三角形在groundModels中应使用小写命名。参数解释在此。
spike_strip groundModel是个特例:若车辆轮胎的节点之一接触此groundModel,该轮胎将放气。
可取的值是"in"和"out",参数为空将不会发生偏移。在偏移侧,碰撞三角形会物理的“厚”,以更早检测碰撞。厚碰撞(Thicker Collision)意味着高速撞击时不易穿模,薄(Thinner)碰撞意味着生成(Spawn)时结构能放置得更紧密。
这对非常小的对象很有用它们通常只有一侧会碰撞。
这是个节点a、b和c间的三角形。
"triangles": [
["id1:","id2:","id3:"],
["a", "b", "c"],
],
这是个节点a、b和c间阻力系数为45的三角形。
"triangles": [
["id1:","id2:","id3:"],
["a", "b", "c", {"dragCoef":45}],
],
定义了升力系数和失速角(Stall Angle)的典型尾翼。
"triangles": [
["id1:","id2:","id3:"],
{"dragCoef":35},
{"groundModel":"plastic"},
["wing3ll","wing2ll","wing1l", {"liftCoef":90, "stallAngle":0.55}],
["wing2ll","wing2l","wing1l", {"liftCoef":90, "stallAngle":0.55}],
["wing1l","wing2l","wing2", {"liftCoef":90, "stallAngle":0.55}],
["wing1l","wing2","wing1", {"liftCoef":90, "stallAngle":0.55}],
],
这篇文章对你有用吗?