:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/PhysicalBone3D.xml. .. _class_PhysicalBone3D: PhysicalBone3D ============== **Inherits:** :ref:`PhysicsBody3D` **<** :ref:`CollisionObject3D` **<** :ref:`Node3D` **<** :ref:`Node` **<** :ref:`Object` Properties ---------- +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`float` | :ref:`angular_damp` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`DampMode` | :ref:`angular_damp_mode` | ``0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Vector3` | :ref:`angular_velocity` | ``Vector3(0, 0, 0)`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Transform3D` | :ref:`body_offset` | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`float` | :ref:`bounce` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`bool` | :ref:`can_sleep` | ``true`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`bool` | :ref:`custom_integrator` | ``false`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`float` | :ref:`friction` | ``1.0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`float` | :ref:`gravity_scale` | ``1.0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Transform3D` | :ref:`joint_offset` | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Vector3` | :ref:`joint_rotation` | ``Vector3(0, 0, 0)`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`JointType` | :ref:`joint_type` | ``0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`float` | :ref:`linear_damp` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`DampMode` | :ref:`linear_damp_mode` | ``0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Vector3` | :ref:`linear_velocity` | ``Vector3(0, 0, 0)`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`float` | :ref:`mass` | ``1.0`` | +-------------------------------------------------+---------------------------------------------------------------------------+-----------------------------------------------------+ Methods ------- +-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_integrate_forces` **(** :ref:`PhysicsDirectBodyState3D` state **)** |virtual| | +-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`apply_central_impulse` **(** :ref:`Vector3` impulse **)** | +-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`apply_impulse` **(** :ref:`Vector3` impulse, :ref:`Vector3` position=Vector3(0, 0, 0) **)** | +-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_bone_id` **(** **)** |const| | +-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`get_simulate_physics` **(** **)** | +-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_simulating_physics` **(** **)** | +-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Enumerations ------------ .. _enum_PhysicalBone3D_DampMode: .. _class_PhysicalBone3D_constant_DAMP_MODE_COMBINE: .. _class_PhysicalBone3D_constant_DAMP_MODE_REPLACE: enum **DampMode**: - **DAMP_MODE_COMBINE** = **0** --- In this mode, the body's damping value is added to any value set in areas or the default value. - **DAMP_MODE_REPLACE** = **1** --- In this mode, the body's damping value replaces any value set in areas or the default value. ---- .. _enum_PhysicalBone3D_JointType: .. _class_PhysicalBone3D_constant_JOINT_TYPE_NONE: .. _class_PhysicalBone3D_constant_JOINT_TYPE_PIN: .. _class_PhysicalBone3D_constant_JOINT_TYPE_CONE: .. _class_PhysicalBone3D_constant_JOINT_TYPE_HINGE: .. _class_PhysicalBone3D_constant_JOINT_TYPE_SLIDER: .. _class_PhysicalBone3D_constant_JOINT_TYPE_6DOF: enum **JointType**: - **JOINT_TYPE_NONE** = **0** - **JOINT_TYPE_PIN** = **1** - **JOINT_TYPE_CONE** = **2** - **JOINT_TYPE_HINGE** = **3** - **JOINT_TYPE_SLIDER** = **4** - **JOINT_TYPE_6DOF** = **5** Property Descriptions --------------------- .. _class_PhysicalBone3D_property_angular_damp: - :ref:`float` **angular_damp** +-----------+-------------------------+ | *Default* | ``0.0`` | +-----------+-------------------------+ | *Setter* | set_angular_damp(value) | +-----------+-------------------------+ | *Getter* | get_angular_damp() | +-----------+-------------------------+ Damps the body's rotation. By default, the body will use the **Default Angular Damp** in **Project > Project Settings > Physics > 3d** or any value override set by an :ref:`Area3D` the body is in. Depending on :ref:`angular_damp_mode`, you can set :ref:`angular_damp` to be added to or to replace the body's damping value. See :ref:`ProjectSettings.physics/3d/default_angular_damp` for more details about damping. ---- .. _class_PhysicalBone3D_property_angular_damp_mode: - :ref:`DampMode` **angular_damp_mode** +-----------+------------------------------+ | *Default* | ``0`` | +-----------+------------------------------+ | *Setter* | set_angular_damp_mode(value) | +-----------+------------------------------+ | *Getter* | get_angular_damp_mode() | +-----------+------------------------------+ Defines how :ref:`angular_damp` is applied. See :ref:`DampMode` for possible values. ---- .. _class_PhysicalBone3D_property_angular_velocity: - :ref:`Vector3` **angular_velocity** +-----------+-----------------------------+ | *Default* | ``Vector3(0, 0, 0)`` | +-----------+-----------------------------+ | *Setter* | set_angular_velocity(value) | +-----------+-----------------------------+ | *Getter* | get_angular_velocity() | +-----------+-----------------------------+ The PhysicalBone3D's rotational velocity in *radians* per second. ---- .. _class_PhysicalBone3D_property_body_offset: - :ref:`Transform3D` **body_offset** +-----------+-----------------------------------------------------+ | *Default* | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` | +-----------+-----------------------------------------------------+ | *Setter* | set_body_offset(value) | +-----------+-----------------------------------------------------+ | *Getter* | get_body_offset() | +-----------+-----------------------------------------------------+ Sets the body's transform. ---- .. _class_PhysicalBone3D_property_bounce: - :ref:`float` **bounce** +-----------+-------------------+ | *Default* | ``0.0`` | +-----------+-------------------+ | *Setter* | set_bounce(value) | +-----------+-------------------+ | *Getter* | get_bounce() | +-----------+-------------------+ The body's bounciness. Values range from ``0`` (no bounce) to ``1`` (full bounciness). ---- .. _class_PhysicalBone3D_property_can_sleep: - :ref:`bool` **can_sleep** +-----------+----------------------+ | *Default* | ``true`` | +-----------+----------------------+ | *Setter* | set_can_sleep(value) | +-----------+----------------------+ | *Getter* | is_able_to_sleep() | +-----------+----------------------+ If ``true``, the body is deactivated when there is no movement, so it will not take part in the simulation until it is awakened by an external force. ---- .. _class_PhysicalBone3D_property_custom_integrator: - :ref:`bool` **custom_integrator** +-----------+----------------------------------+ | *Default* | ``false`` | +-----------+----------------------------------+ | *Setter* | set_use_custom_integrator(value) | +-----------+----------------------------------+ | *Getter* | is_using_custom_integrator() | +-----------+----------------------------------+ If ``true``, internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the :ref:`_integrate_forces` function, if defined. ---- .. _class_PhysicalBone3D_property_friction: - :ref:`float` **friction** +-----------+---------------------+ | *Default* | ``1.0`` | +-----------+---------------------+ | *Setter* | set_friction(value) | +-----------+---------------------+ | *Getter* | get_friction() | +-----------+---------------------+ The body's friction, from ``0`` (frictionless) to ``1`` (max friction). ---- .. _class_PhysicalBone3D_property_gravity_scale: - :ref:`float` **gravity_scale** +-----------+--------------------------+ | *Default* | ``1.0`` | +-----------+--------------------------+ | *Setter* | set_gravity_scale(value) | +-----------+--------------------------+ | *Getter* | get_gravity_scale() | +-----------+--------------------------+ This is multiplied by the global 3D gravity setting found in **Project > Project Settings > Physics > 3d** to produce the body's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object. ---- .. _class_PhysicalBone3D_property_joint_offset: - :ref:`Transform3D` **joint_offset** +-----------+-----------------------------------------------------+ | *Default* | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` | +-----------+-----------------------------------------------------+ | *Setter* | set_joint_offset(value) | +-----------+-----------------------------------------------------+ | *Getter* | get_joint_offset() | +-----------+-----------------------------------------------------+ Sets the joint's transform. ---- .. _class_PhysicalBone3D_property_joint_rotation: - :ref:`Vector3` **joint_rotation** +-----------+---------------------------+ | *Default* | ``Vector3(0, 0, 0)`` | +-----------+---------------------------+ | *Setter* | set_joint_rotation(value) | +-----------+---------------------------+ | *Getter* | get_joint_rotation() | +-----------+---------------------------+ Sets the joint's rotation in radians. ---- .. _class_PhysicalBone3D_property_joint_type: - :ref:`JointType` **joint_type** +-----------+-----------------------+ | *Default* | ``0`` | +-----------+-----------------------+ | *Setter* | set_joint_type(value) | +-----------+-----------------------+ | *Getter* | get_joint_type() | +-----------+-----------------------+ Sets the joint type. See :ref:`JointType` for possible values. ---- .. _class_PhysicalBone3D_property_linear_damp: - :ref:`float` **linear_damp** +-----------+------------------------+ | *Default* | ``0.0`` | +-----------+------------------------+ | *Setter* | set_linear_damp(value) | +-----------+------------------------+ | *Getter* | get_linear_damp() | +-----------+------------------------+ Damps the body's movement. By default, the body will use the **Default Linear Damp** in **Project > Project Settings > Physics > 3d** or any value override set by an :ref:`Area3D` the body is in. Depending on :ref:`linear_damp_mode`, you can set :ref:`linear_damp` to be added to or to replace the body's damping value. See :ref:`ProjectSettings.physics/3d/default_linear_damp` for more details about damping. ---- .. _class_PhysicalBone3D_property_linear_damp_mode: - :ref:`DampMode` **linear_damp_mode** +-----------+-----------------------------+ | *Default* | ``0`` | +-----------+-----------------------------+ | *Setter* | set_linear_damp_mode(value) | +-----------+-----------------------------+ | *Getter* | get_linear_damp_mode() | +-----------+-----------------------------+ Defines how :ref:`linear_damp` is applied. See :ref:`DampMode` for possible values. ---- .. _class_PhysicalBone3D_property_linear_velocity: - :ref:`Vector3` **linear_velocity** +-----------+----------------------------+ | *Default* | ``Vector3(0, 0, 0)`` | +-----------+----------------------------+ | *Setter* | set_linear_velocity(value) | +-----------+----------------------------+ | *Getter* | get_linear_velocity() | +-----------+----------------------------+ The body's linear velocity in units per second. Can be used sporadically, but **don't set this every frame**, because physics may run in another thread and runs at a different granularity. Use :ref:`_integrate_forces` as your process loop for precise control of the body state. ---- .. _class_PhysicalBone3D_property_mass: - :ref:`float` **mass** +-----------+-----------------+ | *Default* | ``1.0`` | +-----------+-----------------+ | *Setter* | set_mass(value) | +-----------+-----------------+ | *Getter* | get_mass() | +-----------+-----------------+ The body's mass. Method Descriptions ------------------- .. _class_PhysicalBone3D_method__integrate_forces: - void **_integrate_forces** **(** :ref:`PhysicsDirectBodyState3D` state **)** |virtual| Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the :ref:`custom_integrator` property allows you to disable the default behavior and do fully custom force integration for a body. ---- .. _class_PhysicalBone3D_method_apply_central_impulse: - void **apply_central_impulse** **(** :ref:`Vector3` impulse **)** ---- .. _class_PhysicalBone3D_method_apply_impulse: - void **apply_impulse** **(** :ref:`Vector3` impulse, :ref:`Vector3` position=Vector3(0, 0, 0) **)** ---- .. _class_PhysicalBone3D_method_get_bone_id: - :ref:`int` **get_bone_id** **(** **)** |const| ---- .. _class_PhysicalBone3D_method_get_simulate_physics: - :ref:`bool` **get_simulate_physics** **(** **)** ---- .. _class_PhysicalBone3D_method_is_simulating_physics: - :ref:`bool` **is_simulating_physics** **(** **)** .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`