PhysicsServer

Inherits: Object

Interfaz de servidor para acceso a la física de bajo nivel.

Descripción

PhysicsServer is the server responsible for all 3D physics. It can create many kinds of physics objects, but does not insert them on the node tree.

Métodos

void

area_add_shape ( RID area, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

void

area_attach_object_instance_id ( RID area, int id )

void

area_clear_shapes ( RID area )

RID

area_create ( )

int

area_get_object_instance_id ( RID area ) const

Variant

area_get_param ( RID area, AreaParameter param ) const

RID

area_get_shape ( RID area, int shape_idx ) const

int

area_get_shape_count ( RID area ) const

Transform

area_get_shape_transform ( RID area, int shape_idx ) const

RID

area_get_space ( RID area ) const

AreaSpaceOverrideMode

area_get_space_override_mode ( RID area ) const

Transform

area_get_transform ( RID area ) const

bool

area_is_ray_pickable ( RID area ) const

void

area_remove_shape ( RID area, int shape_idx )

void

area_set_area_monitor_callback ( RID area, Object receiver, String method )

void

area_set_collision_layer ( RID area, int layer )

void

area_set_collision_mask ( RID area, int mask )

void

area_set_monitor_callback ( RID area, Object receiver, String method )

void

area_set_monitorable ( RID area, bool monitorable )

void

area_set_param ( RID area, AreaParameter param, Variant value )

void

area_set_ray_pickable ( RID area, bool enable )

void

area_set_shape ( RID area, int shape_idx, RID shape )

void

area_set_shape_disabled ( RID area, int shape_idx, bool disabled )

void

area_set_shape_transform ( RID area, int shape_idx, Transform transform )

void

area_set_space ( RID area, RID space )

void

area_set_space_override_mode ( RID area, AreaSpaceOverrideMode mode )

void

area_set_transform ( RID area, Transform transform )

void

body_add_central_force ( RID body, Vector3 force )

void

body_add_collision_exception ( RID body, RID excepted_body )

void

body_add_force ( RID body, Vector3 force, Vector3 position )

void

body_add_shape ( RID body, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

void

body_add_torque ( RID body, Vector3 torque )

void

body_apply_central_impulse ( RID body, Vector3 impulse )

void

body_apply_impulse ( RID body, Vector3 position, Vector3 impulse )

void

body_apply_torque_impulse ( RID body, Vector3 impulse )

void

body_attach_object_instance_id ( RID body, int id )

void

body_clear_shapes ( RID body )

RID

body_create ( BodyMode mode=2, bool init_sleeping=false )

int

body_get_collision_layer ( RID body ) const

int

body_get_collision_mask ( RID body ) const

PhysicsDirectBodyState

body_get_direct_state ( RID body )

float

body_get_kinematic_safe_margin ( RID body ) const

int

body_get_max_contacts_reported ( RID body ) const

BodyMode

body_get_mode ( RID body ) const

int

body_get_object_instance_id ( RID body ) const

float

body_get_param ( RID body, BodyParameter param ) const

RID

body_get_shape ( RID body, int shape_idx ) const

int

body_get_shape_count ( RID body ) const

Transform

body_get_shape_transform ( RID body, int shape_idx ) const

RID

body_get_space ( RID body ) const

Variant

body_get_state ( RID body, BodyState state ) const

bool

body_is_axis_locked ( RID body, BodyAxis axis ) const

bool

body_is_continuous_collision_detection_enabled ( RID body ) const

bool

body_is_omitting_force_integration ( RID body ) const

bool

body_is_ray_pickable ( RID body ) const

void

body_remove_collision_exception ( RID body, RID excepted_body )

void

body_remove_shape ( RID body, int shape_idx )

void

body_set_axis_lock ( RID body, BodyAxis axis, bool lock )

void

body_set_axis_velocity ( RID body, Vector3 axis_velocity )

void

body_set_collision_layer ( RID body, int layer )

void

body_set_collision_mask ( RID body, int mask )

void

body_set_enable_continuous_collision_detection ( RID body, bool enable )

void

body_set_force_integration_callback ( RID body, Object receiver, String method, Variant userdata=null )

void

body_set_kinematic_safe_margin ( RID body, float margin )

void

body_set_max_contacts_reported ( RID body, int amount )

void

body_set_mode ( RID body, BodyMode mode )

void

body_set_omit_force_integration ( RID body, bool enable )

void

body_set_param ( RID body, BodyParameter param, float value )

void

body_set_ray_pickable ( RID body, bool enable )

void

body_set_shape ( RID body, int shape_idx, RID shape )

void

body_set_shape_disabled ( RID body, int shape_idx, bool disabled )

void

body_set_shape_transform ( RID body, int shape_idx, Transform transform )

void

body_set_space ( RID body, RID space )

void

body_set_state ( RID body, BodyState state, Variant value )

bool

body_test_motion ( RID body, Transform from, Vector3 motion, bool infinite_inertia, PhysicsTestMotionResult result=null, bool exclude_raycast_shapes=true, Array exclude=[ ] )

float

cone_twist_joint_get_param ( RID joint, ConeTwistJointParam param ) const

void

cone_twist_joint_set_param ( RID joint, ConeTwistJointParam param, float value )

void

free_rid ( RID rid )

bool

generic_6dof_joint_get_flag ( RID joint, Vector3.Axis axis, G6DOFJointAxisFlag flag )

float

generic_6dof_joint_get_param ( RID joint, Vector3.Axis axis, G6DOFJointAxisParam param )

void

generic_6dof_joint_set_flag ( RID joint, Vector3.Axis axis, G6DOFJointAxisFlag flag, bool enable )

void

generic_6dof_joint_set_param ( RID joint, Vector3.Axis axis, G6DOFJointAxisParam param, float value )

int

get_process_info ( ProcessInfo process_info )

bool

hinge_joint_get_flag ( RID joint, HingeJointFlag flag ) const

float

hinge_joint_get_param ( RID joint, HingeJointParam param ) const

void

hinge_joint_set_flag ( RID joint, HingeJointFlag flag, bool enabled )

void

hinge_joint_set_param ( RID joint, HingeJointParam param, float value )

RID

joint_create_cone_twist ( RID body_A, Transform local_ref_A, RID body_B, Transform local_ref_B )

RID

joint_create_generic_6dof ( RID body_A, Transform local_ref_A, RID body_B, Transform local_ref_B )

RID

joint_create_hinge ( RID body_A, Transform hinge_A, RID body_B, Transform hinge_B )

RID

joint_create_pin ( RID body_A, Vector3 local_A, RID body_B, Vector3 local_B )

RID

joint_create_slider ( RID body_A, Transform local_ref_A, RID body_B, Transform local_ref_B )

int

joint_get_solver_priority ( RID joint ) const

JointType

joint_get_type ( RID joint ) const

void

joint_set_solver_priority ( RID joint, int priority )

Vector3

pin_joint_get_local_a ( RID joint ) const

Vector3

pin_joint_get_local_b ( RID joint ) const

float

pin_joint_get_param ( RID joint, PinJointParam param ) const

void

pin_joint_set_local_a ( RID joint, Vector3 local_A )

void

pin_joint_set_local_b ( RID joint, Vector3 local_B )

void

pin_joint_set_param ( RID joint, PinJointParam param, float value )

void

set_active ( bool active )

void

set_collision_iterations ( int iterations )

RID

shape_create ( ShapeType type )

Variant

shape_get_data ( RID shape ) const

ShapeType

shape_get_type ( RID shape ) const

void

shape_set_data ( RID shape, Variant data )

float

slider_joint_get_param ( RID joint, SliderJointParam param ) const

void

slider_joint_set_param ( RID joint, SliderJointParam param, float value )

RID

space_create ( )

PhysicsDirectSpaceState

space_get_direct_state ( RID space )

float

space_get_param ( RID space, SpaceParameter param ) const

bool

space_is_active ( RID space ) const

void

space_set_active ( RID space, bool active )

void

space_set_param ( RID space, SpaceParameter param, float value )

Enumeraciones

enum JointType:


enum PinJointParam:

  • PIN_JOINT_BIAS = 0 --- La fuerza con la que los objetos clavados tratan de mantenerse en relación posicional entre sí.

Cuanto más alto, más fuerte.

  • PIN_JOINT_DAMPING = 1 --- La fuerza con la que los objetos clavados tratan de mantenerse en relación posicional entre sí.

Cuanto más alto, más fuerte.

  • PIN_JOINT_IMPULSE_CLAMP = 2 --- If above 0, this value is the maximum value for an impulse that this Joint puts on its ends.


enum HingeJointParam:

  • HINGE_JOINT_BIAS = 0 --- La velocidad con la que los dos cuerpos se juntan cuando se mueven en diferentes direcciones.

  • HINGE_JOINT_LIMIT_UPPER = 1 --- La máxima rotación a través de la Hinge.

  • HINGE_JOINT_LIMIT_LOWER = 2 --- La máxima rotación a través de la Hinge.

  • HINGE_JOINT_LIMIT_BIAS = 3 --- La velocidad con la que se corrige la rotación a través del eje perpendicular a la bisagra.

  • HINGE_JOINT_LIMIT_SOFTNESS = 4

  • HINGE_JOINT_LIMIT_RELAXATION = 5 --- Cuanto más bajo es este valor, más se ralentiza la rotación.

  • HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6 --- Velocidad objetivo para el motor.

  • HINGE_JOINT_MOTOR_MAX_IMPULSE = 7 --- Aceleración máxima para el motor.


enum HingeJointFlag:

  • HINGE_JOINT_FLAG_USE_LIMIT = 0 --- Si true, la Hinge tiene una rotación máxima y una mínima.

  • HINGE_JOINT_FLAG_ENABLE_MOTOR = 1 --- Si true, un motor hace girar el Hinge.


enum SliderJointParam:

  • SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0 --- La máxima diferencia entre los puntos de pivote en su eje X antes de que se produzca la amortiguación.

  • SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1 --- La diferencia mínima entre los puntos de pivote en su eje X antes de que se produzca la amortiguación.

  • SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2 --- Un factor aplicado al movimiento a través del eje del deslizador una vez que se superan los límites. Cuanto más bajo, más lento es el movimiento.

  • SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3 --- La cantidad de la restitución una vez que se superen los límites. Cuanto más bajo, más energía de velocidad se pierde.

  • SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4 --- La cantidad de amortiguación una vez que se superan los límites del deslizador.

  • SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5 --- Un factor aplicado al movimiento a través del eje del deslizador mientras el deslizador esté en los límites. Cuanto más bajo, más lento es el movimiento.

  • SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6 --- La cantidad de restitución dentro de los límites del deslizador.

  • SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7 --- La cantidad de amortiguación dentro de los límites del deslizador.

  • SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8 --- Un factor aplicado al movimiento a través de ejes ortogonales al deslizador.

  • SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9 --- La cantidad de restitución cuando el movimiento es a través de ejes ortogonales al deslizador.

  • SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10 --- La cantidad de amortiguación cuando el movimiento es a través de ejes ortogonales al deslizador.

  • SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11 --- El límite superior de rotación en el deslizador.

  • SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12 --- El límite inferior de rotación en el deslizador.

  • SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13 --- Un factor que se aplica a toda la rotación una vez superado el límite.

  • SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14 --- La cantidad de restitución de la rotación cuando se supera el límite.

  • SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15 --- La cantidad de amortiguación de la rotación cuando se supera el límite.

  • SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16 --- Un factor que se aplica a toda la rotación en los límites.

  • SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17 --- La cantidad de restitución de la rotación en los límites.

  • SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18 --- La cantidad de amortiguación de la rotación en los límites.

  • SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19 --- Un factor que se aplica a toda la rotación a través de ejes ortogonales al deslizador.

  • SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20 --- La cantidad de restitución de la rotación a través de ejes ortogonales al deslizador.

  • SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21 --- La cantidad de amortiguación de la rotación a través de ejes ortogonales al deslizador.

  • SLIDER_JOINT_MAX = 22 --- Representa el tamaño del enum SliderJointParam.


enum ConeTwistJointParam:

  • CONE_TWIST_JOINT_SWING_SPAN = 0 --- Swing is rotation from side to side, around the axis perpendicular to the twist axis.

The swing span defines, how much rotation will not get corrected along the swing axis.

Could be defined as looseness in the ConeTwistJoint.

If below 0.05, this behavior is locked.

  • CONE_TWIST_JOINT_TWIST_SPAN = 1 --- La torsión es la rotación alrededor del eje de la torsión, este valor definió cuán lejos puede torcerse la articulación.

La torsión se bloquea si está por debajo de 0,05.

  • CONE_TWIST_JOINT_BIAS = 2 --- La velocidad con la que se producirá la oscilación o la torsión.

Cuanto más alto, más rápido.

  • CONE_TWIST_JOINT_SOFTNESS = 3 --- The ease with which the Joint twists, if it's too low, it takes more force to twist the joint.

  • CONE_TWIST_JOINT_RELAXATION = 4 --- Define cuán rápido se sincroniza la diferencia de velocidad de giro en ambos lados.


enum G6DOFJointAxisParam:

  • G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0 --- La diferencia mínima entre los puntos de pivote de sus ejes.

  • G6DOF_JOINT_LINEAR_UPPER_LIMIT = 1 --- La diferencia máxima entre los puntos de pivote de sus ejes.

  • G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS = 2 --- Un factor que se aplica al movimiento a través de los ejes. Cuanto más bajo, más lento es el movimiento.

  • G6DOF_JOINT_LINEAR_RESTITUTION = 3 --- La cantidad de restitución en el movimiento de los ejes. Cuanto más bajo, más energía de velocidad se pierde.

  • G6DOF_JOINT_LINEAR_DAMPING = 4 --- La cantidad de amortiguación que ocurre en el movimiento lineal a través de los ejes.

  • G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY = 5 --- La velocidad que el motor lineal de la articulación intentará alcanzar.

  • G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT = 6 --- La máxima fuerza que el motor lineal puede aplicar mientras intenta alcanzar la velocidad objetivo.

  • G6DOF_JOINT_ANGULAR_LOWER_LIMIT = 10 --- La rotación mínima en dirección negativa para soltarse y girar alrededor de los ejes.

  • G6DOF_JOINT_ANGULAR_UPPER_LIMIT = 11 --- La rotación mínima en dirección positiva para soltarse y girar alrededor de los ejes.

  • G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS = 12 --- Un factor que se multiplica en todas las rotaciones a través de los ejes.

  • G6DOF_JOINT_ANGULAR_DAMPING = 13 --- La cantidad de amortiguación rotacional a través de los ejes. Cuanto más bajo, más amortiguación se produce.

  • G6DOF_JOINT_ANGULAR_RESTITUTION = 14 --- La cantidad de amortiguación rotacional a través de los ejes. Cuanto más bajo, más amortiguación se produce.

  • G6DOF_JOINT_ANGULAR_FORCE_LIMIT = 15 --- La máxima cantidad de fuerza que puede ocurrir, al girar alrededor de los ejes.

  • G6DOF_JOINT_ANGULAR_ERP = 16 --- Cuando se corrige el cruce de límites en la rotación a través de los ejes, este factor de tolerancia al error define cuánto se ralentiza la corrección. Cuanto más bajo, más lento.

  • G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY = 17 --- La velocidad del objetivo para el motor en los ejes.

  • G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT = 18 --- Aceleración máxima para el motor en los ejes.


enum G6DOFJointAxisFlag:

  • G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT = 0 --- If set, linear motion is possible within the given limits.

  • G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT = 1 --- If set, rotational motion is possible.

  • G6DOF_JOINT_FLAG_ENABLE_MOTOR = 4 --- If set, there is a rotational motor across these axes.

  • G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR = 5 --- If set, there is a linear motor on this axis that targets a specific velocity.


enum ShapeType:


enum AreaParameter:

  • AREA_PARAM_GRAVITY = 0 --- Constante para fijar/obtener la fuerza de gravedad en un área.

  • AREA_PARAM_GRAVITY_VECTOR = 1 --- Constante para fijar/obtener el vector/centro de gravedad en un área.

  • AREA_PARAM_GRAVITY_IS_POINT = 2 --- Constante para establecer/obtener si el vector de gravedad de un área es una dirección, o un punto central.

  • AREA_PARAM_GRAVITY_DISTANCE_SCALE = 3 --- Constante para fijar/obtener el factor de caída para el punto de gravedad de un área. Cuanto mayor es este valor, más rápido disminuye la fuerza de gravedad con el cuadrado de la distancia.

  • AREA_PARAM_GRAVITY_POINT_ATTENUATION = 4 --- Esta constante se usó para fijar/obtener el factor de caída para la gravedad puntual. Ha sido reemplazada por AREA_PARAM_GRAVITY_DISTANCE_SCALE.

  • AREA_PARAM_LINEAR_DAMP = 5 --- Constante para fijar/obtener el factor de amortiguación lineal de un área.

  • AREA_PARAM_ANGULAR_DAMP = 6 --- Constante para fijar/obtener el factor de amortiguación angular de un área.

  • AREA_PARAM_PRIORITY = 7 --- Constante para establecer/obtener la prioridad (orden de procesamiento) de un área.


enum AreaSpaceOverrideMode:

  • AREA_SPACE_OVERRIDE_DISABLED = 0 --- Esta zona no afecta a la gravedad/humedad. Estas son generalmente áreas que existen sólo para detectar colisiones, y objetos que entran o salen de ellas.

  • AREA_SPACE_OVERRIDE_COMBINE = 1 --- Esta área añade sus valores de gravedad/humedad a lo que se ha calculado hasta ahora. De esta manera, muchas áreas superpuestas pueden combinar su física para hacer efectos interesantes.

  • AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2 --- Esta área añade sus valores de gravedad/amortiguación a lo que se ha calculado hasta ahora. Luego deja de tener en cuenta el resto de las áreas, incluso la predeterminada.

  • AREA_SPACE_OVERRIDE_REPLACE = 3 --- Esta área reemplaza cualquier gravedad/amortiguación, incluso la predeterminada, y deja de tener en cuenta el resto de las áreas.

  • AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4 --- Esta área reemplaza cualquier gravedad/amortiguación calculada hasta ahora, pero sigue calculando el resto de las áreas, hasta la predeterminada.


enum BodyMode:

  • BODY_MODE_STATIC = 0 --- Constante para los cuerpos estáticos.

  • BODY_MODE_KINEMATIC = 1 --- Constante para los cuerpos cinemáticos.

  • BODY_MODE_RIGID = 2 --- Constante para cuerpos rígidos.

  • BODY_MODE_CHARACTER = 3 --- Constante para cuerpos rígidos en modo personaje. En este modo, un cuerpo no puede rotar, y sólo su velocidad lineal se ve afectada por la física.


enum BodyParameter:

  • BODY_PARAM_BOUNCE = 0 --- Constante para fijar/obtener el factor de rebote de un cuerpo.

  • BODY_PARAM_FRICTION = 1 --- Constante para fijar/obtener la fricción de un cuerpo.

  • BODY_PARAM_MASS = 2 --- Constante para fijar/obtener la masa de un cuerpo.

  • BODY_PARAM_GRAVITY_SCALE = 3 --- Constante para fijar/obtener el multiplicador de gravedad de un cuerpo.

  • BODY_PARAM_LINEAR_DAMP = 4 --- Constante para fijar/obtener el factor de amortiguación lineal de un cuerpo.

  • BODY_PARAM_ANGULAR_DAMP = 5 --- Constante para fijar/obtener el factor de amortiguación angular de un cuerpo.

  • BODY_PARAM_MAX = 6 --- Representa el tamaño del enum BodyParameter.


enum BodyState:

  • BODY_STATE_TRANSFORM = 0 --- Constante para fijar/obtener la matriz de transformación de la corriente del cuerpo.

  • BODY_STATE_LINEAR_VELOCITY = 1 --- Constante para fijar/obtener la actual velocidad lineal del cuerpo.

  • BODY_STATE_ANGULAR_VELOCITY = 2 --- Constante para fijar/obtener la actual velocidad angular del cuerpo.

  • BODY_STATE_SLEEPING = 3 --- Constante para dormir/despertar un cuerpo, o para saber si está durmiendo.

  • BODY_STATE_CAN_SLEEP = 4 --- Constante para establecer/obtener si el cuerpo puede dormir.


enum AreaBodyStatus:

  • AREA_BODY_ADDED = 0 --- El valor del primer parámetro y la función de retrollamada de área recibe, cuando un objeto entra en una de sus formas.

  • AREA_BODY_REMOVED = 1 --- El valor del primer parámetro y la función de llamada de área recibe, cuando un objeto sale de una de sus formas.


enum ProcessInfo:

  • INFO_ACTIVE_OBJECTS = 0 --- Constante para obtener el número de objetos que no están durmiendo.

  • INFO_COLLISION_PAIRS = 1 --- Constante para obtener el número de posibles colisiones.

  • INFO_ISLAND_COUNT = 2 --- Constante para obtener el número de regiones espaciales donde podría ocurrir una colisión.


enum SpaceParameter:

  • SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0 --- Constante para fijar/obtener la máxima distancia que un par de cuerpos tiene que moverse antes de que su estado de colisión tenga que ser recalculado.

  • SPACE_PARAM_CONTACT_MAX_SEPARATION = 1 --- Constante para fijar/obtener la máxima distancia que una forma puede ser de otra antes de que se consideren separadas.

  • SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION = 2 --- Constante para fijar/obtener la máxima distancia que una forma puede penetrar en otra forma antes de que se considere una colisión.

  • SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 3 --- Constante para fijar/obtener el umbral de velocidad lineal de actividad. Un cuerpo marcado como potencialmente inactivo tanto para la velocidad lineal como para la angular será puesto a dormir después del tiempo dado.

  • SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 4 --- Constante para fijar/obtener el umbral de velocidad angular de actividad. Un cuerpo marcado como potencialmente inactivo tanto para la velocidad lineal como para la angular será puesto a dormir después del tiempo dado.

  • SPACE_PARAM_BODY_TIME_TO_SLEEP = 5 --- Constante para fijar/obtener el tiempo máximo de actividad. Un cuerpo marcado como potencialmente inactivo tanto para la velocidad lineal como para la angular será puesto a dormir después de este tiempo.

  • SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO = 6

  • SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7 --- Constante para establecer/obtener el sesgo del solucionador por defecto para todas las restricciones de la física. Un sesgo del solucionador es un factor que controla cuánto "rebotan" dos objetos, después de violar una restricción, para evitar dejarlos en ese estado debido a la imprecisión numérica.


enum BodyAxis:

  • BODY_AXIS_LINEAR_X = 1

  • BODY_AXIS_LINEAR_Y = 2

  • BODY_AXIS_LINEAR_Z = 4

  • BODY_AXIS_ANGULAR_X = 8

  • BODY_AXIS_ANGULAR_Y = 16

  • BODY_AXIS_ANGULAR_Z = 32

Descripciones de Métodos

  • void area_add_shape ( RID area, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

Añade una forma a la zona, junto con una matriz de transformación. Las formas suelen estar referenciadas por su índice, por lo que se debe rastrear qué forma tiene un índice determinado.


  • void area_attach_object_instance_id ( RID area, int id )

Asigna el área a un descendiente de Object, para que pueda existir en el árbol de nodos.


  • void area_clear_shapes ( RID area )

Elimina todas las formas de un área. No elimina las formas, por lo que pueden ser reasignadas más tarde.


  • RID area_create ( )

Creates an Area.


  • int area_get_object_instance_id ( RID area ) const

Obtiene el ID de la instancia del objeto al que está asignada el área.


Devuelve un valor de parámetro de área. Una lista de los parámetros disponibles se encuentra en las constantes AreaParameter.


  • RID area_get_shape ( RID area, int shape_idx ) const

Devuelve el RID de la forma enésima de un área.


  • int area_get_shape_count ( RID area ) const

Devuelve el número de formas asignadas a un área.


Devuelve la matriz de transformación de una forma dentro de un área.


  • RID area_get_space ( RID area ) const

Devuelve el espacio asignado a la zona.


Devuelve el modo de anulación de espacio para el área.


Devuelve la matriz de transformación de un área.


  • bool area_is_ray_pickable ( RID area ) const

Si true, el área colisiona con los rayos.


  • void area_remove_shape ( RID area, int shape_idx )

Elimina una forma de un área. No borra la forma, por lo que puede ser reasignada más tarde.


  • void area_set_area_monitor_callback ( RID area, Object receiver, String method )


  • void area_set_collision_layer ( RID area, int layer )

Asigna el área a una o varias capas de la física.


  • void area_set_collision_mask ( RID area, int mask )

Establece qué capas de la física monitoreará el área.


  • void area_set_monitor_callback ( RID area, Object receiver, String method )

Establece la función de llamar cuando cualquier cuerpo/área entra o sale del área. Esta llamada será llamada para cualquier objeto que interactúe con el área, y toma cinco parámetros:

1: AREA_BODY_ADDED o AREA_BODY_REMOVED, dependiendo de si el objeto entró o salió del área.

2: RID del objeto que entró/salió del área.

3: ID del objeto que entró/salió del área.

4: El índice de forma del objeto que entró/salió del área.

5: El índice de forma del área donde el objeto entró/salió del área.


  • void area_set_monitorable ( RID area, bool monitorable )


Establece el valor de un parámetro de área. Una lista de los parámetros disponibles se encuentra en las constantes AreaParameter.


  • void area_set_ray_pickable ( RID area, bool enable )

Establece un objeto que se puede recoger con los rayos.


  • void area_set_shape ( RID area, int shape_idx, RID shape )

Sustituye una forma de área dada por otra. La forma antigua es seleccionada por su índice, la nueva por su RID.


  • void area_set_shape_disabled ( RID area, int shape_idx, bool disabled )


  • void area_set_shape_transform ( RID area, int shape_idx, Transform transform )

Establece la matriz de transformación para la forma de un área.


  • void area_set_space ( RID area, RID space )

Asigna un espacio a la zona.


Establece el modo de anulación de espacio para el área. Los modos se describen en las constantes AreaSpaceOverrideMode.


Establece la matriz de transformación para un área.


  • void body_add_central_force ( RID body, Vector3 force )


  • void body_add_collision_exception ( RID body, RID excepted_body )

Añade un cuerpo a la lista de cuerpos exentos de colisiones.



  • void body_add_shape ( RID body, RID shape, Transform transform=Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), bool disabled=false )

Añade una forma al cuerpo, junto con una matriz de transformación. Las formas suelen estar referenciadas por su índice, así que debes rastrear qué forma tiene un índice determinado.


  • void body_add_torque ( RID body, Vector3 torque )


  • void body_apply_central_impulse ( RID body, Vector3 impulse )


Da al cuerpo un empujón en una position en la dirección del impulse.


  • void body_apply_torque_impulse ( RID body, Vector3 impulse )

Le da al cuerpo un empujón para rotarlo.


  • void body_attach_object_instance_id ( RID body, int id )

Asigna el área a un descendiente de Object, para que pueda existir en el árbol de nodos.


  • void body_clear_shapes ( RID body )

Elimina todas las formas de un cuerpo.


Crea un cuerpo físico. El primer parámetro puede ser cualquier valor de las constantes de BodyMode, para el tipo de cuerpo creado. Además, el cuerpo puede ser creado en estado de sueño para ahorrar tiempo de procesamiento.


  • int body_get_collision_layer ( RID body ) const

Devuelve la capa o capas físicas a las que pertenece un cuerpo.


  • int body_get_collision_mask ( RID body ) const

Devuelve la capa física o las capas con las que un cuerpo puede colisionar.


Returns the PhysicsDirectBodyState of the body. Returns null if the body is destroyed or removed from the physics space.


  • float body_get_kinematic_safe_margin ( RID body ) const


  • int body_get_max_contacts_reported ( RID body ) const

Devuelve el máximo de contactos que se pueden reportar. Ver body_set_max_contacts_reported.


Devuelve el modo de cuerpo.


  • int body_get_object_instance_id ( RID body ) const

Obtiene el ID de la instancia del objeto al que está asignada el área.


Devuelve el valor de un parámetro corporal. Una lista de parámetros disponibles se encuentra en las constantes BodyParameter.


  • RID body_get_shape ( RID body, int shape_idx ) const

Devuelve el RID de la enésima forma de un cuerpo.


  • int body_get_shape_count ( RID body ) const

Devuelve el número de formas asignadas a un cuerpo.


Devuelve la matriz de transformación de una forma corporal.


  • RID body_get_space ( RID body ) const

Devuelve el RID del espacio asignado a un cuerpo.


Devuelve un estado corporal.



  • bool body_is_continuous_collision_detection_enabled ( RID body ) const

Si true, se activa el modo de detección de colisión continua.


  • bool body_is_omitting_force_integration ( RID body ) const

Devuelve si un cuerpo utiliza una función de retrollamada para calcular su propia física (ver body_set_force_integration_callback).


  • bool body_is_ray_pickable ( RID body ) const

Si true, el cuerpo puede ser detectado por los rayos.


  • void body_remove_collision_exception ( RID body, RID excepted_body )

Elimina un cuerpo de la lista de cuerpos exentos de colisiones.

La detección continua de colisiones intenta predecir dónde colisionará un cuerpo en movimiento, en lugar de moverlo y corregir su movimiento si colisionara.


  • void body_remove_shape ( RID body, int shape_idx )

Quita una forma de un cuerpo. La forma no se borra, por lo que puede ser reutilizada después.



  • void body_set_axis_velocity ( RID body, Vector3 axis_velocity )

Establece una velocidad del eje. La velocidad en el eje vectorial dado se fijará como la longitud del vector dado. Esto es útil para el comportamiento de salto.


  • void body_set_collision_layer ( RID body, int layer )

Establece la capa o capas físicas a las que pertenece un cuerpo.


  • void body_set_collision_mask ( RID body, int mask )

Establece la capa física o las capas con las que un cuerpo puede colisionar.


  • void body_set_enable_continuous_collision_detection ( RID body, bool enable )

Si true, se activa el modo de detección de colisión continua.

La detección de colisión continua trata de predecir dónde colisionará un cuerpo en movimiento, en lugar de moverlo y corregir su movimiento si colisionara.


  • void body_set_force_integration_callback ( RID body, Object receiver, String method, Variant userdata=null )

Establece la función utilizada para calcular la física de un objeto, si ese objeto lo permite (véase body_set_omit_force_integration).


  • void body_set_kinematic_safe_margin ( RID body, float margin )


  • void body_set_max_contacts_reported ( RID body, int amount )

Establece los contactos máximos a reportar. Los organismos pueden mantener un registro de los contactos con otros organismos, esto se habilita estableciendo la cantidad máxima de contactos reportados a un número mayor que 0.


Establece el modo del cuerpo, a partir de una de las constantes de BodyMode.


  • void body_set_omit_force_integration ( RID body, bool enable )

Establece si un cuerpo utiliza una función de llamada de retorno para calcular su propia física (ver body_set_force_integration_callback).


Establece un parámetro corporal. Una lista de parámetros disponibles se encuentra en las constantes BodyParameter.


  • void body_set_ray_pickable ( RID body, bool enable )

Establece que el cuerpo puede ser elegido con rayos si se establece el enabled.


  • void body_set_shape ( RID body, int shape_idx, RID shape )

Sustituye una forma corporal dada por otra. La forma antigua es seleccionada por su índice, la nueva por su RID.


  • void body_set_shape_disabled ( RID body, int shape_idx, bool disabled )


  • void body_set_shape_transform ( RID body, int shape_idx, Transform transform )

Establece la matriz de transformación para una forma corporal.


  • void body_set_space ( RID body, RID space )

Asigna un espacio al cuerpo (ver space_create).


Obtiene un parámetro cone_twist_joint (ver las constantes ConeTwistJointParam).


Returns true if a collision would result from moving in the given direction from a given point in space. PhysicsTestMotionResult can be passed to return additional information in.


Obtiene un parámetro cone_twist_joint (ver las constantes ConeTwistJointParam).


Establece un parámetro cone_twist_joint (ver las constantes ConeTwistJointParam).


  • void free_rid ( RID rid )

Destroys any of the objects created by PhysicsServer. If the RID passed is not one of the objects that can be created by PhysicsServer, an error will be sent to the console.


Obtiene una flag generic_6_DOF_joint (véase las constantes G6DOFJointAxisFlag).


Obtiene un parámetro generic_6_DOF_joint (véase las constantes G6DOFJointAxisParam).


Establece una flag generic (véase las constantes G6DOFJointAxisFlag).


Establece un parámetro generic_6_DOF_joint (véase las constantes G6DOFJointAxisParam).


Devuelve una información definida por la entrada ProcessInfo dada.


Obtiene una flag de hinge_joint (ver constantes de HingeJointFlag).


Obtiene un parámetro de hinge_joint (ver HingeJointParam).


Establece una flag de hinge_joint (ver las constantes de HingeJointFlag).


Establece un parámetro de hinge_joint (ver las constantes HingeJointParam).


Creates a ConeTwistJoint.


Creates a Generic6DOFJoint.


Creates a HingeJoint.


Creates a PinJoint.


Creates a SliderJoint.


  • int joint_get_solver_priority ( RID joint ) const

Gets the priority value of the Joint.


Returns the type of the Joint.


  • void joint_set_solver_priority ( RID joint, int priority )

Sets the priority value of the Joint.


  • Vector3 pin_joint_get_local_a ( RID joint ) const

Devuelve la posición de la articulación en el espacio local del cuerpo a de la articulación.


  • Vector3 pin_joint_get_local_b ( RID joint ) const

Devuelve la posición de la articulación en el espacio local del cuerpo b de la articulación.


Obtiene un parámetro pin_joint (ver las constantes PinJointParam).


  • void pin_joint_set_local_a ( RID joint, Vector3 local_A )

Establece la posición de la articulación en el espacio local del cuerpo a de la articulación.


  • void pin_joint_set_local_b ( RID joint, Vector3 local_B )

Establece la posición de la articulación en el espacio local del cuerpo b de la articulación.


Establece un parámetro pin_joint (ver las constantes PinJointParam).


  • void set_active ( bool active )

Activa o desactiva el motor de física 3D.


  • void set_collision_iterations ( int iterations )

Sets the amount of iterations for calculating velocities of colliding bodies. The greater the amount of iterations, the more accurate the collisions will be. However, a greater amount of iterations requires more CPU power, which can decrease performance. The default value is 8.

Note: Only has an effect when using the GodotPhysics engine, not the default Bullet physics engine.


Crea una forma de un tipo de ShapeType. No la asigna a un cuerpo o a un área. Para ello, debes usar area_set_shape o body_set_shape.


Devuelve los datos de la forma.


Devuelve el tipo de forma (ver las constantes ShapeType).


Establece los datos de forma que definen su forma y tamaño. Los datos que se pasarán dependen del tipo de forma creada shape_get_type.


Obtiene un parámetro slider_joint (ver las constantes SliderJointParam).


Obtiene un parámetro slider_joint (ver las constantes SliderJointParam).


  • RID space_create ( )

Crea un espacio. Un espacio es una colección de parámetros para el motor de la física que puede ser asignado a un área o a un cuerpo. Puede ser asignado a un área con area_set_space, o a un cuerpo con body_set_space.


Returns the state of a space, a PhysicsDirectSpaceState. This object can be used to make collision/intersection queries.


Devuelve el valor de un parámetro espacial.


  • bool space_is_active ( RID space ) const

Devuelve si el espacio está activo.


  • void space_set_active ( RID space, bool active )

Marca un espacio como activo. No tendrá efecto, a menos que se asigne a un área o cuerpo.


Establece el valor de un parámetro espacial. Una lista de los parámetros disponibles se encuentra en las constantes SpaceParameter.