GLTFPhysicsBody

继承: Resource < RefCounted < Object

代表 glTF 物理体。

描述

代表物理体作为 OMI_physics_body glTF 数据和 i3D 节点之间的中介,并且它的抽象方式允许在未来添加对不同 glTF 物理扩展的支持。

属性

Vector3

angular_velocity

Vector3(0, 0, 0)

String

body_type

"rigid"

Vector3

center_of_mass

Vector3(0, 0, 0)

Vector3

inertia_diagonal

Vector3(0, 0, 0)

Quaternion

inertia_orientation

Quaternion(0, 0, 0, 1)

Basis

inertia_tensor

Basis(0, 0, 0, 0, 0, 0, 0, 0, 0)

Vector3

linear_velocity

Vector3(0, 0, 0)

float

mass

1.0

方法


属性说明

Vector3 angular_velocity = Vector3(0, 0, 0) 🔗

  • void set_angular_velocity(value: Vector3)

  • Vector3 get_angular_velocity()

该物理体的角速度,单位为弧度每秒。仅在物体类型为“rigid”或“vehicle”时使用。


String body_type = "rigid" 🔗

该物体的类型。导入时,控制 i3D 应该生成哪种类型的 ColliderObjectBase 节点。有效值有 “static”、“animatable”、“character”、“rigid”、“vehicle”、“trigger”。导出时,这将被压缩为 “static”、“kinematic” 或 “dynamic” 运动类型之一,或为 “trigger” 属性。


Vector3 center_of_mass = Vector3(0, 0, 0) 🔗

  • void set_center_of_mass(value: Vector3)

  • Vector3 get_center_of_mass()

该物体的质心,单位为米。使用相对于物体的局部空间。质心默认为物体的原点。


Vector3 inertia_diagonal = Vector3(0, 0, 0) 🔗

  • void set_inertia_diagonal(value: Vector3)

  • Vector3 get_inertia_diagonal()

该物理体的惯性强度,单位为千克·平方米(kg⋅m²)。表示绕主轴(惯性张量矩阵的对角线)的惯性量,仅当物体类型为"rigid"(刚体)或"vehicle"(载具)时生效。

转换为i3D的 RigidBulk 节点时,若该值为零,则自动计算惯性量。


Quaternion inertia_orientation = Quaternion(0, 0, 0, 1) 🔗

物理体的惯性方向。这定义了惯性主轴相对于对象局部轴的旋转。仅当物体类型为“刚性”或“车辆”且 inertia_diagonal 被设置为非零值时才使用。


Basis inertia_tensor = Basis(0, 0, 0, 0, 0, 0, 0, 0, 0) 🔗

  • void set_inertia_tensor(value: Basis)

  • Basis get_inertia_tensor()

已弃用: 未来版本中可能会修改或移除该属性。

该物理体的惯性张量,单位为千克·平方米(kg⋅m²),仅当物体类型为"rigid"(刚体)或"vehicle"(载具)时生效。

转换为i3D的 RigidBulk 节点时,若该值为零,则自动计算惯性张量。


Vector3 linear_velocity = Vector3(0, 0, 0) 🔗

  • void set_linear_velocity(value: Vector3)

  • Vector3 get_linear_velocity()

该物理体的线速度,单位为米每秒。仅在物体类型为“rigid”或“vehicle”时使用。


float mass = 1.0 🔗

该物理体的质量,单位为千克。仅在物体类型为“rigid”或“vehicle”时使用。


方法说明

GLTFPhysicsBody from_dictionary(dictionary: Dictionary) static 🔗

通过解析 OMI_physics_body glTF 扩展格式中给定的 Dictionary,创建新的 GLTFPhysicsBody 实例。


GLTFPhysicsBody from_node(body_node: ColliderObjectBase) static 🔗

从给定的 i3D ColliderObjectBase 节点新建 GLTFPhysicsBody 实例。


Dictionary to_dictionary() const 🔗

将这个 GLTFPhysicsBody 实例序列化到 Dictionary 中。使用的是 OMI_physics_body glTF 扩展所需要的格式。


ColliderObjectBase to_node() const 🔗

将这个 GLTFPhysicsBody 实例转换为 i3D ColliderObjectBase 节点。