Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

PhysicalBone3D

Inherits: PhysicsBody3D < CollisionObject3D < Node3D < Node < Object

A physics body used to make bones in a Skeleton3D react to physics.

Description

The PhysicalBone3D node is a physics body that can be used to make bones in a Skeleton3D react to physics.

Properties

float

angular_damp

0.0

DampMode

angular_damp_mode

0

Vector3

angular_velocity

Vector3(0, 0, 0)

Transform3D

body_offset

Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)

float

bounce

0.0

bool

can_sleep

true

bool

custom_integrator

false

float

friction

1.0

float

gravity_scale

1.0

Transform3D

joint_offset

Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)

Vector3

joint_rotation

Vector3(0, 0, 0)

JointType

joint_type

0

float

linear_damp

0.0

DampMode

linear_damp_mode

0

Vector3

linear_velocity

Vector3(0, 0, 0)

float

mass

1.0

Methods

void

_integrate_forces ( PhysicsDirectBodyState3D state ) virtual

void

apply_central_impulse ( Vector3 impulse )

void

apply_impulse ( Vector3 impulse, Vector3 position=Vector3(0, 0, 0) )

int

get_bone_id ( ) const

bool

get_simulate_physics ( )

bool

is_simulating_physics ( )


Enumerations

enum DampMode:

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.

DampMode DAMP_MODE_REPLACE = 1

In this mode, the body's damping value replaces any value set in areas or the default value.


enum JointType:

JointType JOINT_TYPE_NONE = 0

JointType JOINT_TYPE_PIN = 1

JointType JOINT_TYPE_CONE = 2

JointType JOINT_TYPE_HINGE = 3

JointType JOINT_TYPE_SLIDER = 4

JointType JOINT_TYPE_6DOF = 5


Property Descriptions

float angular_damp = 0.0

  • void set_angular_damp ( float value )

  • float 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 Area3D the body is in. Depending on angular_damp_mode, you can set angular_damp to be added to or to replace the body's damping value.

See ProjectSettings.physics/3d/default_angular_damp for more details about damping.


DampMode angular_damp_mode = 0

  • void set_angular_damp_mode ( DampMode value )

  • DampMode get_angular_damp_mode ( )

Defines how angular_damp is applied. See DampMode for possible values.


Vector3 angular_velocity = Vector3(0, 0, 0)

  • void set_angular_velocity ( Vector3 value )

  • Vector3 get_angular_velocity ( )

The PhysicalBone3D's rotational velocity in radians per second.


Transform3D body_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)

Sets the body's transform.


float bounce = 0.0

  • void set_bounce ( float value )

  • float get_bounce ( )

The body's bounciness. Values range from 0 (no bounce) to 1 (full bounciness).


bool can_sleep = true

  • void set_can_sleep ( bool value )

  • bool 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.


bool custom_integrator = false

  • void set_use_custom_integrator ( bool value )

  • bool 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 _integrate_forces function, if defined.


float friction = 1.0

  • void set_friction ( float value )

  • float get_friction ( )

The body's friction, from 0 (frictionless) to 1 (max friction).


float gravity_scale = 1.0

  • void set_gravity_scale ( float value )

  • float 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.


Transform3D joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)

Sets the joint's transform.


Vector3 joint_rotation = Vector3(0, 0, 0)

  • void set_joint_rotation ( Vector3 value )

  • Vector3 get_joint_rotation ( )

Sets the joint's rotation in radians.


JointType joint_type = 0

Sets the joint type. See JointType for possible values.


float linear_damp = 0.0

  • void set_linear_damp ( float value )

  • float 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 Area3D the body is in. Depending on linear_damp_mode, you can set linear_damp to be added to or to replace the body's damping value.

See ProjectSettings.physics/3d/default_linear_damp for more details about damping.


DampMode linear_damp_mode = 0

  • void set_linear_damp_mode ( DampMode value )

  • DampMode get_linear_damp_mode ( )

Defines how linear_damp is applied. See DampMode for possible values.


Vector3 linear_velocity = Vector3(0, 0, 0)