PhysicsServer3D

Наследует: Object

Наследуется от: PhysicsServer3DExtension

Серверный интерфейс для низкоуровневого доступа к трехмерной физике.

Описание

PhysicsServer3D — сервер, отвечающий за всю трехмерную физику. Он может напрямую создавать и управлять всеми физическими объектами:

  • пространство — это автономный мир для моделирования физики. Оно содержит тела, области и сочленения. Его состояние может быть запрошено для получения информации о столкновениях и пересечениях, и можно изменить несколько параметров моделирования.

  • форма — это геометрическая форма, такая как сфера, параллелепипед, цилиндр или многоугольник. Ее можно использовать для обнаружения столкновений, добавив ее к телу/области, возможно, с дополнительным преобразованием относительно начала координат тела/области. Тела/области могут иметь несколько (преобразованных) форм, добавленных к ним, и одна форма может быть добавлена к телам/областям несколько раз с различными локальными преобразованиями.

  • тело — это физический объект, который может находиться в статическом, кинематическом или жестком режиме. Его состояние (такое как положение и скорость) можно запрашивать и обновлять. Обратный вызов интеграции силы может быть установлен для настройки физики тела.

  • область - это область в пространстве, которая может использоваться для обнаружения тел и областей, входящих и выходящих из нее. Обратный вызов мониторинга тела может быть установлен для сообщения о входе/выходе форм тела, и аналогичным образом может быть установлен обратный вызов мониторинга области. Гравитация и демпфирование могут быть переопределены в области путем установки параметров области.

  • соединение - это ограничение, либо между двумя телами, либо на одном теле относительно точки. Такие параметры, как смещение сочленения и остаточная длина пружинного соединения, могут быть скорректированы.

Физические объекты в PhysicsServer3D могут быть созданы и изменены независимо; они не должны быть привязаны к узлам в дереве сцены.

Примечание: Все узлы 3D-физики используют физический сервер внутренне. Добавление физического узла в дерево сцены приведет к созданию соответствующего физического объекта на физическом сервере. Узел твердого тела регистрирует обратный вызов, который обновляет преобразование узла с преобразованием соответствующего объекта тела на физическом сервере (каждое обновление физики). Узел области регистрирует обратный вызов, чтобы информировать узел области о перекрытиях с соответствующим объектом области на физическом сервере. Узел raycast запрашивает прямое состояние соответствующего пространства на физическом сервере.

Методы

void

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

void

area_attach_object_instance_id(area: RID, id: int)

void

area_clear_shapes(area: RID)

RID

area_create()

int

area_get_collision_layer(area: RID) const

int

area_get_collision_mask(area: RID) const

int

area_get_object_instance_id(area: RID) const

Variant

area_get_param(area: RID, param: AreaParameter) const

RID

area_get_shape(area: RID, shape_idx: int) const

int

area_get_shape_count(area: RID) const

Transform3D

area_get_shape_transform(area: RID, shape_idx: int) const

RID

area_get_space(area: RID) const

Transform3D

area_get_transform(area: RID) const

void

area_remove_shape(area: RID, shape_idx: int)

void

area_set_area_monitor_callback(area: RID, callback: Callable)

void

area_set_collision_layer(area: RID, layer: int)

void

area_set_collision_mask(area: RID, mask: int)

void

area_set_monitor_callback(area: RID, callback: Callable)

void

area_set_monitorable(area: RID, monitorable: bool)

void

area_set_param(area: RID, param: AreaParameter, value: Variant)

void

area_set_ray_pickable(area: RID, enable: bool)

void

area_set_shape(area: RID, shape_idx: int, shape: RID)

void

area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool)

void

area_set_shape_transform(area: RID, shape_idx: int, transform: Transform3D)

void

area_set_space(area: RID, space: RID)

void

area_set_transform(area: RID, transform: Transform3D)

void

body_add_collision_exception(body: RID, excepted_body: RID)

void

body_add_constant_central_force(body: RID, force: Vector3)

void

body_add_constant_force(body: RID, force: Vector3, position: Vector3 = Vector3(0, 0, 0))

void

body_add_constant_torque(body: RID, torque: Vector3)

void

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

void

body_apply_central_force(body: RID, force: Vector3)

void

body_apply_central_impulse(body: RID, impulse: Vector3)

void

body_apply_force(body: RID, force: Vector3, position: Vector3 = Vector3(0, 0, 0))

void

body_apply_impulse(body: RID, impulse: Vector3, position: Vector3 = Vector3(0, 0, 0))

void

body_apply_torque(body: RID, torque: Vector3)

void

body_apply_torque_impulse(body: RID, impulse: Vector3)

void

body_attach_object_instance_id(body: RID, id: int)

void

body_clear_shapes(body: RID)

RID

body_create()

int

body_get_collision_layer(body: RID) const

int

body_get_collision_mask(body: RID) const

float

body_get_collision_priority(body: RID) const

Vector3

body_get_constant_force(body: RID) const

Vector3

body_get_constant_torque(body: RID) const

PhysicsDirectBodyState3D

body_get_direct_state(body: RID)

int

body_get_max_contacts_reported(body: RID) const

BodyMode

body_get_mode(body: RID) const

int

body_get_object_instance_id(body: RID) const

Variant

body_get_param(body: RID, param: BodyParameter) const

RID

body_get_shape(body: RID, shape_idx: int) const

int

body_get_shape_count(body: RID) const

Transform3D

body_get_shape_transform(body: RID, shape_idx: int) const

RID

body_get_space(body: RID) const

Variant

body_get_state(body: RID, state: BodyState) const

bool

body_is_axis_locked(body: RID, axis: BodyAxis) const

bool

body_is_continuous_collision_detection_enabled(body: RID) const

bool

body_is_omitting_force_integration(body: RID) const

void

body_remove_collision_exception(body: RID, excepted_body: RID)

void

body_remove_shape(body: RID, shape_idx: int)

void

body_reset_mass_properties(body: RID)

void

body_set_axis_lock(body: RID, axis: BodyAxis, lock: bool)

void

body_set_axis_velocity(body: RID, axis_velocity: Vector3)

void

body_set_collision_layer(body: RID, layer: int)

void

body_set_collision_mask(body: RID, mask: int)

void

body_set_collision_priority(body: RID, priority: float)

void

body_set_constant_force(body: RID, force: Vector3)

void

body_set_constant_torque(body: RID, torque: Vector3)

void

body_set_enable_continuous_collision_detection(body: RID, enable: bool)

void

body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant = null)

void

body_set_max_contacts_reported(body: RID, amount: int)

void

body_set_mode(body: RID, mode: BodyMode)

void

body_set_omit_force_integration(body: RID, enable: bool)

void

body_set_param(body: RID, param: BodyParameter, value: Variant)

void

body_set_ray_pickable(body: RID, enable: bool)

void

body_set_shape(body: RID, shape_idx: int, shape: RID)

void

body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool)

void

body_set_shape_transform(body: RID, shape_idx: int, transform: Transform3D)

void

body_set_space(body: RID, space: RID)

void

body_set_state(body: RID, state: BodyState, value: Variant)

void

body_set_state_sync_callback(body: RID, callable: Callable)

bool

body_test_motion(body: RID, parameters: PhysicsTestMotionParameters3D, result: PhysicsTestMotionResult3D = null)

RID

box_shape_create()

RID

capsule_shape_create()

RID

concave_polygon_shape_create()

float

cone_twist_joint_get_param(joint: RID, param: ConeTwistJointParam) const

void

cone_twist_joint_set_param(joint: RID, param: ConeTwistJointParam, value: float)

RID

convex_polygon_shape_create()

RID

custom_shape_create()

RID

cylinder_shape_create()

void

free_rid(rid: RID)

bool

generic_6dof_joint_get_flag(joint: RID, axis: Axis, flag: G6DOFJointAxisFlag) const

float

generic_6dof_joint_get_param(joint: RID, axis: Axis, param: G6DOFJointAxisParam) const

void

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

void

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

int

get_process_info(process_info: ProcessInfo)

RID

heightmap_shape_create()

bool

hinge_joint_get_flag(joint: RID, flag: HingeJointFlag) const

float

hinge_joint_get_param(joint: RID, param: HingeJointParam) const

void

hinge_joint_set_flag(joint: RID, flag: HingeJointFlag, enabled: bool)

void

hinge_joint_set_param(joint: RID, param: HingeJointParam, value: float)

void

joint_clear(joint: RID)

RID

joint_create()

void

joint_disable_collisions_between_bodies(joint: RID, disable: bool)

int

joint_get_solver_priority(joint: RID) const

JointType

joint_get_type(joint: RID) const

bool

joint_is_disabled_collisions_between_bodies(joint: RID) const

void

joint_make_cone_twist(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D)

void

joint_make_generic_6dof(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D)

void

joint_make_hinge(joint: RID, body_A: RID, hinge_A: Transform3D, body_B: RID, hinge_B: Transform3D)

void

joint_make_pin(joint: RID, body_A: RID, local_A: Vector3, body_B: RID, local_B: Vector3)

void

joint_make_slider(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D)

void

joint_set_solver_priority(joint: RID, priority: int)

Vector3

pin_joint_get_local_a(joint: RID) const

Vector3

pin_joint_get_local_b(joint: RID) const

float

pin_joint_get_param(joint: RID, param: PinJointParam) const

void

pin_joint_set_local_a(joint: RID, local_A: Vector3)

void

pin_joint_set_local_b(joint: RID, local_B: Vector3)

void

pin_joint_set_param(joint: RID, param: PinJointParam, value: float)

RID

separation_ray_shape_create()

void

set_active(active: bool)

Variant

shape_get_data(shape: RID) const

float

shape_get_margin(shape: RID) const

ShapeType

shape_get_type(shape: RID) const

void

shape_set_data(shape: RID, data: Variant)

void

shape_set_margin(shape: RID, margin: float)

float

slider_joint_get_param(joint: RID, param: SliderJointParam) const

void

slider_joint_set_param(joint: RID, param: SliderJointParam, value: float)

void

soft_body_add_collision_exception(body: RID, body_b: RID)

void

soft_body_apply_central_force(body: RID, force: Vector3)

void

soft_body_apply_central_impulse(body: RID, impulse: Vector3)

void

soft_body_apply_point_force(body: RID, point_index: int, force: Vector3)

void

soft_body_apply_point_impulse(body: RID, point_index: int, impulse: Vector3)

RID

soft_body_create()

AABB

soft_body_get_bounds(body: RID) const

int

soft_body_get_collision_layer(body: RID) const

int

soft_body_get_collision_mask(body: RID) const

float

soft_body_get_damping_coefficient(body: RID) const

float

soft_body_get_drag_coefficient(body: RID) const

float

soft_body_get_linear_stiffness(body: RID) const

Vector3

soft_body_get_point_global_position(body: RID, point_index: int) const

float

soft_body_get_pressure_coefficient(body: RID) const

float

soft_body_get_shrinking_factor(body: RID) const

int

soft_body_get_simulation_precision(body: RID) const

RID

soft_body_get_space(body: RID) const

Variant

soft_body_get_state(body: RID, state: BodyState) const

float

soft_body_get_total_mass(body: RID) const

bool

soft_body_is_point_pinned(body: RID, point_index: int) const

void

soft_body_move_point(body: RID, point_index: int, global_position: Vector3)

void

soft_body_pin_point(body: RID, point_index: int, pin: bool)

void

soft_body_remove_all_pinned_points(body: RID)

void

soft_body_remove_collision_exception(body: RID, body_b: RID)

void

soft_body_set_collision_layer(body: RID, layer: int)

void

soft_body_set_collision_mask(body: RID, mask: int)

void

soft_body_set_damping_coefficient(body: RID, damping_coefficient: float)

void

soft_body_set_drag_coefficient(body: RID, drag_coefficient: float)

void

soft_body_set_linear_stiffness(body: RID, stiffness: float)

void

soft_body_set_mesh(body: RID, mesh: RID)

void

soft_body_set_pressure_coefficient(body: RID, pressure_coefficient: float)

void

soft_body_set_ray_pickable(body: RID, enable: bool)

void

soft_body_set_shrinking_factor(body: RID, shrinking_factor: float)

void

soft_body_set_simulation_precision(body: RID, simulation_precision: int)

void

soft_body_set_space(body: RID, space: RID)

void

soft_body_set_state(body: RID, state: BodyState, variant: Variant)

void

soft_body_set_total_mass(body: RID, total_mass: float)

void

soft_body_set_transform(body: RID, transform: Transform3D)

void

soft_body_update_rendering_server(body: RID, rendering_server_handler: PhysicsServer3DRenderingServerHandler)

RID

space_create()

PhysicsDirectSpaceState3D

space_get_direct_state(space: RID)

float

space_get_param(space: RID, param: SpaceParameter) const

bool

space_is_active(space: RID) const

void

space_set_active(space: RID, active: bool)

void

space_set_param(space: RID, param: SpaceParameter, value: float)

RID

sphere_shape_create()

RID

world_boundary_shape_create()


Перечисления

enum JointType: 🔗

JointType JOINT_TYPE_PIN = 0

Joint3D — это PinJoint3D.

JointType JOINT_TYPE_HINGE = 1

Joint3D — это HingeJoint3D.

JointType JOINT_TYPE_SLIDER = 2

Joint3D — это SliderJoint3D.

JointType JOINT_TYPE_CONE_TWIST = 3

Joint3D — это ConeTwistJoint3D.

JointType JOINT_TYPE_6DOF = 4

Joint3D — это Generic6DOFJoint3D.

JointType JOINT_TYPE_MAX = 5

Представляет размер перечисления JointType.


enum PinJointParam: 🔗

PinJointParam PIN_JOINT_BIAS = 0

Сила, с которой закрепленные объекты пытаются удержаться в позиционном отношении друг к другу.

Чем выше, тем сильнее.

PinJointParam PIN_JOINT_DAMPING = 1

Сила, с которой закрепленные объекты пытаются удерживаться в скоростном отношении друг к другу.

Чем выше, тем сильнее.

PinJointParam PIN_JOINT_IMPULSE_CLAMP = 2

Если значение больше 0, то это максимальное значение импульса, который Joint3D подает на свои концы.


enum HingeJointParam: 🔗

HingeJointParam HINGE_JOINT_BIAS = 0

Скорость, с которой два тела притягиваются друг к другу, когда они движутся в разных направлениях.

HingeJointParam HINGE_JOINT_LIMIT_UPPER = 1

Максимальный угол поворота Шарнира.

HingeJointParam HINGE_JOINT_LIMIT_LOWER = 2

Минимальное вращение вокруг Шарнира.

HingeJointParam HINGE_JOINT_LIMIT_BIAS = 3

Скорость, с которой корректируется вращение по оси, перпендикулярной шарниру.

HingeJointParam HINGE_JOINT_LIMIT_SOFTNESS = 4

There is currently no description for this enum. Please help us by contributing one!

HingeJointParam HINGE_JOINT_LIMIT_RELAXATION = 5

Чем ниже это значение, тем сильнее замедляется вращение.

HingeJointParam HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6

Целевая скорость двигателя.

HingeJointParam HINGE_JOINT_MOTOR_MAX_IMPULSE = 7

Максимальное ускорение двигателя.


enum HingeJointFlag: 🔗

HingeJointFlag HINGE_JOINT_FLAG_USE_LIMIT = 0

Если true, шарнир имеет максимальное и минимальное вращение.

HingeJointFlag HINGE_JOINT_FLAG_ENABLE_MOTOR = 1

Если true, двигатель вращает шарнир.


enum SliderJointParam: 🔗

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0

Максимальная разница между точками поворота по оси X до наступления амортизации.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1

Минимальная разница между точками поворота по оси X до наступления амортизации.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2

Фактор, применяемый к движению по оси ползунка после превышения пределов. Чем ниже, тем медленнее движение.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3

Величина возмещения после превышения пределов. Чем ниже, тем больше теряется энергия скорости.

SliderJointParam SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4

Величина демпфирования после превышения пределов ползунка.

SliderJointParam SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5

Фактор, применяемый к движению по оси ползунка, пока ползунок находится в пределах. Чем ниже, тем медленнее движение.

SliderJointParam SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6

Сумма возмещения в пределах ползунка.

SliderJointParam SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7

Величина демпфирования внутри пределов ползунка.

SliderJointParam SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8

Коэффициент, применяемый к движению по осям, ортогональным ползунку.

SliderJointParam SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9

Величина восстановления при движении по осям, ортогональным ползунку.

SliderJointParam SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10

Величина демпфирования при движении по осям, перпендикулярным ползунку.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11

Верхний предел поворота ползунка.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12

Нижний предел поворота ползунка.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13

Коэффициент, применяемый ко всему вращению после превышения предела.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14

Сумма возмещения за вращение при превышении лимита.

SliderJointParam SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15

Величина затухания вращения при превышении предела.

SliderJointParam SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16

Фактор, который применяется ко всем вращениям в пределах.

SliderJointParam SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17

Сумма возмещения ротации в пределах.

SliderJointParam SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18

Величина затухания вращения в пределах.

SliderJointParam SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19

Коэффициент, который применяется ко всем вращениям по осям, ортогональным ползунку.

SliderJointParam SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20

Величина восстановления вращения по осям, ортогональным ползунку.

SliderJointParam SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21

Величина демпфирования вращения по осям, ортогональным ползунку.

SliderJointParam SLIDER_JOINT_MAX = 22

Представляет размер перечисления SliderJointParam.


enum ConeTwistJointParam: 🔗

ConeTwistJointParam CONE_TWIST_JOINT_SWING_SPAN = 0

Качание — это вращение из стороны в сторону вокруг оси, перпендикулярной оси скручивания.

Размах качания определяет, насколько вращение не будет исправлено вдоль оси качания.

Может быть определено как ослабление в ConeTwistJoint3D.

Если ниже 0,05, это поведение заблокировано.

ConeTwistJointParam CONE_TWIST_JOINT_TWIST_SPAN = 1

Скручивание — это вращение вокруг оси скручивания, это значение определяет, насколько далеко может скручиваться соединение.

Скручивание блокируется, если ниже 0,05.

ConeTwistJointParam CONE_TWIST_JOINT_BIAS = 2

Скорость, с которой будет происходить взмах или поворот.

Чем выше, тем быстрее.

ConeTwistJointParam CONE_TWIST_JOINT_SOFTNESS = 3

Легкость, с которой Joint3D скручивается, если она слишком низкая, потребуется больше силы для скручивания соединения.

ConeTwistJointParam CONE_TWIST_JOINT_RELAXATION = 4

Определяет, насколько быстро синхронизируется разница в скорости замаха и поворота с обеих сторон.


enum G6DOFJointAxisParam: 🔗

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0

Минимальная разница между осями точек поворота.

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_UPPER_LIMIT = 1

Максимальная разница между осями точек поворота.

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS = 2

Фактор, который применяется к движению по осям. Чем ниже, тем медленнее движение.

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_RESTITUTION = 3

Величина восстановления движения по осям. Чем ниже, тем больше теряется скорость-энергия.

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_DAMPING = 4

Величина амортизации, происходящего при линейном движении по осям.

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY = 5

Скорость, которую будет пытаться достичь линейный двигатель сочленения.

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT = 6

Максимальная сила, которую может приложить линейный двигатель, пытаясь достичь целевой скорости.

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_SPRING_STIFFNESS = 7

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_SPRING_DAMPING = 8

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisParam G6DOF_JOINT_LINEAR_SPRING_EQUILIBRIUM_POINT = 9

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_LOWER_LIMIT = 10

Минимальное вращение в отрицательном направлении для освобождения и вращения вокруг осей.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_UPPER_LIMIT = 11

Минимальное вращение в положительном направлении для освобождения и вращения вокруг осей.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS = 12

Коэффициент, который умножается на все вращения вокруг осей.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_DAMPING = 13

Величина вращательной амортизации по осям. Чем ниже, тем больше амортизация.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_RESTITUTION = 14

Количество вращательного восстановления по осям. Чем ниже, тем больше происходит восстановление.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_FORCE_LIMIT = 15

Максимальное значение силы, которое может возникнуть при вращении вокруг осей.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_ERP = 16

При коррекции пересечения пределов при вращении по осям этот коэффициент допуска погрешности определяет, насколько замедляется коррекция. Чем ниже, тем медленнее.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY = 17

Целевая скорость двигателя по осям.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT = 18

Максимальное ускорение двигателя по осям.

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_SPRING_STIFFNESS = 19

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_SPRING_DAMPING = 20

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisParam G6DOF_JOINT_ANGULAR_SPRING_EQUILIBRIUM_POINT = 21

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisParam G6DOF_JOINT_MAX = 22

Представляет размер перечисления G6DOFJointAxisParam.


enum G6DOFJointAxisFlag: 🔗

G6DOFJointAxisFlag G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT = 0

Если установлено, то линейное движение возможно в заданных пределах.

G6DOFJointAxisFlag G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT = 1

Если установлено, возможно вращательное движение.

G6DOFJointAxisFlag G6DOF_JOINT_FLAG_ENABLE_ANGULAR_SPRING = 2

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisFlag G6DOF_JOINT_FLAG_ENABLE_LINEAR_SPRING = 3

There is currently no description for this enum. Please help us by contributing one!

G6DOFJointAxisFlag G6DOF_JOINT_FLAG_ENABLE_MOTOR = 4

Если установлено, по этим осям имеется вращательный двигатель.

G6DOFJointAxisFlag G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR = 5

Если установлено, на этой оси имеется линейный двигатель, который нацеливается на определенную скорость.

G6DOFJointAxisFlag G6DOF_JOINT_FLAG_MAX = 6

Представляет размер перечисления G6DOFJointAxisFlag.


enum ShapeType: 🔗

ShapeType SHAPE_WORLD_BOUNDARY = 0

Константа для создания формы границы мира (используется ресурсом WorldBoundaryShape3D).

ShapeType SHAPE_SEPARATION_RAY = 1

Константа для создания формы разделительного луча (используется ресурсом SeparationRayShape3D).

ShapeType SHAPE_SPHERE = 2

Константа для создания сферической формы (используется ресурсом SphereShape3D).

ShapeType SHAPE_BOX = 3

Константа для создания прямоугольной формы (используется ресурсом BoxShape3D).

ShapeType SHAPE_CAPSULE = 4

Константа для создания формы капсулы (используется ресурсом CapsuleShape3D).

ShapeType SHAPE_CYLINDER = 5

Константа для создания цилиндрической формы (используется ресурсом CylinderShape3D).

ShapeType SHAPE_CONVEX_POLYGON = 6

Константа для создания выпуклой многоугольной фигуры (используется ресурсом ConvexPolygonShape3D).

ShapeType SHAPE_CONCAVE_POLYGON = 7

Константа для создания вогнутой многоугольной (тримеш) формы (используется ресурсом ConcavePolygonShape3D).

ShapeType SHAPE_HEIGHTMAP = 8

Константа для создания формы карты высот (используется ресурсом HeightMapShape3D).

ShapeType SHAPE_SOFT_BODY = 9

Константа, используемая внутри для создания мягкой формы тела. Любая попытка создать подобную форму приводит к ошибке.

ShapeType SHAPE_CUSTOM = 10

Константа, используемая внутри для создания пользовательской формы. Любая попытка создать подобную форму приводит к ошибке при использовании Godot Physics или Jolt Physics.


enum AreaParameter: 🔗

AreaParameter AREA_PARAM_GRAVITY_OVERRIDE_MODE = 0

Константа для установки/получения режима переопределения гравитации в области. См. AreaSpaceOverrideMode для возможных значений.

AreaParameter AREA_PARAM_GRAVITY = 1

Константа для установки/получения силы гравитации в определенной области.

AreaParameter AREA_PARAM_GRAVITY_VECTOR = 2

Константа для установки/получения вектора/центра гравитации в области.

AreaParameter AREA_PARAM_GRAVITY_IS_POINT = 3

Константа для установки/получения информации о том, является ли вектор силы тяжести области направлением или центральной точкой.

AreaParameter AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE = 4

Константа для установки/получения расстояния, на котором сила гравитации равна силе гравитации, контролируемой AREA_PARAM_GRAVITY. Например, на планете радиусом 100 метров с поверхностной гравитацией 4,0 м/с² установите гравитацию на 4,0, а единичное расстояние на 100,0. Гравитация будет спадать в соответствии с законом обратных квадратов, поэтому в этом примере на расстоянии 200 метров от центра гравитация будет составлять 1,0 м/с² (в два раза больше расстояния, 1/4 гравитации), на расстоянии 50 метров она будет составлять 16,0 м/с² (в два раза больше расстояния, 4x гравитации) и т. д.

Вышесказанное верно только в том случае, если единичное расстояние является положительным числом. Если установлено значение 0,0, гравитация будет постоянной независимо от расстояния.

AreaParameter AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE = 5

Константа для установки/получения режима переопределения линейного затухания в области. См. AreaSpaceOverrideMode для возможных значений.

AreaParameter AREA_PARAM_LINEAR_DAMP = 6

Константа для установки/получения линейного коэффициента затухания области.

AreaParameter AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE = 7

Константа для установки/получения режима переопределения углового демпфирования в области. См. AreaSpaceOverrideMode для возможных значений.

AreaParameter AREA_PARAM_ANGULAR_DAMP = 8

Константа для установки/получения углового коэффициента затухания области.

AreaParameter AREA_PARAM_PRIORITY = 9

Константа для установки/получения приоритета (порядка обработки) области.

AreaParameter AREA_PARAM_WIND_FORCE_MAGNITUDE = 10

Константа для установки/получения величины силы ветра, специфичной для области. Эта сила ветра применяется только к узлам SoftBody3D. Другие физические тела в настоящее время не подвержены влиянию ветра.

AreaParameter AREA_PARAM_WIND_SOURCE = 11

Константа для установки/получения трехмерного вектора, определяющего начало координат, откуда дует ветер в определенной области.

AreaParameter AREA_PARAM_WIND_DIRECTION = 12

Константа для установки/получения трехмерного вектора, определяющего направление, в котором дует ветер в определенной местности.

AreaParameter AREA_PARAM_WIND_ATTENUATION_FACTOR = 13

Константа для установки/получения экспоненциальной скорости, с которой сила ветра уменьшается с расстоянием от источника.


enum AreaSpaceOverrideMode: 🔗

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_DISABLED = 0

Эта область не влияет на гравитацию/влажность. Это, как правило, области, которые существуют только для обнаружения столкновений и объектов, входящих или выходящих из них.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_COMBINE = 1

Эта область добавляет свои значения гравитации/влажности к тому, что было рассчитано до сих пор. Таким образом, многие перекрывающиеся области могут объединить свою физику, чтобы создать интересные эффекты.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2

Эта область добавляет свои значения гравитации/влажности ко всему, что было рассчитано до сих пор. Затем перестает учитывать остальные области, даже область по умолчанию.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_REPLACE = 3

Эта область заменяет любую гравитацию/влажность, даже заданную по умолчанию, и прекращает учитывать остальные области.

AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4

Эта область заменяет все рассчитанные до сих пор значения гравитации/влажности, но продолжает рассчитывать остальные области, вплоть до области по умолчанию.


enum BodyMode: 🔗

BodyMode BODY_MODE_STATIC = 0

Константа для статических тел. В этом режиме тело может перемещаться только пользовательским кодом и не сталкивается с другими телами на своем пути при перемещении.

BodyMode BODY_MODE_KINEMATIC = 1

Константа для кинематических тел. В этом режиме тело может перемещаться только пользовательским кодом и сталкиваться с другими телами на своем пути.

BodyMode BODY_MODE_RIGID = 2

Постоянная для твердых тел. В этом режиме тело может толкаться другими телами и к нему могут быть приложены силы.

BodyMode BODY_MODE_RIGID_LINEAR = 3

Постоянная для линейных твердых тел. В этом режиме тело не может вращаться, и только его линейная скорость подвержена влиянию внешних сил.


enum BodyParameter: 🔗

BodyParameter BODY_PARAM_BOUNCE = 0

Константа для установки/получения коэффициента упругости тела.

BodyParameter BODY_PARAM_FRICTION = 1

Постоянная величина, устанавливающая/получающая трение тела.

BodyParameter BODY_PARAM_MASS = 2

Константа для установки/получения массы тела.

BodyParameter BODY_PARAM_INERTIA = 3

Константа для задания/получения инерции тела.

BodyParameter BODY_PARAM_CENTER_OF_MASS = 4

Константа для установки/получения положения центра масс тела в локальной системе координат тела.

BodyParameter BODY_PARAM_GRAVITY_SCALE = 5

Константа для установки/получения множителя силы тяжести тела.

BodyParameter BODY_PARAM_LINEAR_DAMP_MODE = 6

Константа для установки/получения линейного режима демпфирования тела. См. BodyDampMode для возможных значений.

BodyParameter BODY_PARAM_ANGULAR_DAMP_MODE = 7

Константа для установки/получения режима углового демпфирования тела. См. BodyDampMode для возможных значений.

BodyParameter BODY_PARAM_LINEAR_DAMP = 8

Константа для установки/получения линейного коэффициента затухания тела.

BodyParameter BODY_PARAM_ANGULAR_DAMP = 9

Константа для установки/получения коэффициента углового затухания тела.

BodyParameter BODY_PARAM_MAX = 10

Представляет размер перечисления BodyParameter.


enum BodyDampMode: 🔗

BodyDampMode BODY_DAMP_MODE_COMBINE = 0

Значение демпфирования тела добавляется к любому значению, заданному в областях, или к значению по умолчанию.

BodyDampMode BODY_DAMP_MODE_REPLACE = 1

Значение демпфирования тела заменяет любое значение, заданное в областях, или значение по умолчанию.


enum BodyState: 🔗

BodyState BODY_STATE_TRANSFORM = 0

Константа для установки/получения текущей матрицы преобразования тела.

BodyState BODY_STATE_LINEAR_VELOCITY = 1

Константа для установки/получения текущей линейной скорости тела.

BodyState BODY_STATE_ANGULAR_VELOCITY = 2

Константа для установки/получения текущей угловой скорости тела.

BodyState BODY_STATE_SLEEPING = 3

Постоянно, чтобы заснуть/разбудить тело или узнать, спит ли оно.

BodyState BODY_STATE_CAN_SLEEP = 4

Константа для установки/получения информации о том, может ли тело спать.


enum AreaBodyStatus: 🔗

AreaBodyStatus AREA_BODY_ADDED = 0

Значение первого параметра и функция обратного вызова области получает, когда объект входит в одну из ее фигур.

AreaBodyStatus AREA_BODY_REMOVED = 1

Значение первого параметра и функция обратного вызова области получает, когда объект выходит из одной из своих фигур.


enum ProcessInfo: 🔗

ProcessInfo INFO_ACTIVE_OBJECTS = 0

Константа для получения количества объектов, которые не спят.

ProcessInfo INFO_COLLISION_PAIRS = 1

Константа для получения количества возможных столкновений.

ProcessInfo INFO_ISLAND_COUNT = 2

Константа для получения количества областей пространства, где может произойти столкновение.


enum SpaceParameter: 🔗

SpaceParameter SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0

Константа для установки/получения максимального расстояния, которое должна пройти пара тел, прежде чем их статус столкновения придется пересчитывать.

SpaceParameter SPACE_PARAM_CONTACT_MAX_SEPARATION = 1

Константа для установки/получения максимального расстояния между фигурами, на котором они могут находиться, прежде чем они будут считаться разделенными и контакт будет отменен.

SpaceParameter SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION = 2

Константа для установки/получения максимального расстояния, на которое одна фигура может проникнуть в другую, прежде чем это будет считаться столкновением.

SpaceParameter SPACE_PARAM_CONTACT_DEFAULT_BIAS = 3

Константа для установки/получения смещения решателя по умолчанию для всех физических контактов. Смещение решателя — это фактор, контролирующий, насколько два объекта «отскакивают» после наложения, чтобы избежать их оставления в этом состоянии из-за числовой неточности.

SpaceParameter SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 4

Константа для установки/получения пороговой линейной скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в режим сна по истечении указанного времени.

SpaceParameter SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 5

Константа для установки/получения пороговой угловой скорости активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении указанного времени.

SpaceParameter SPACE_PARAM_BODY_TIME_TO_SLEEP = 6

Константа для установки/получения максимального времени активности. Тело, отмеченное как потенциально неактивное как для линейной, так и для угловой скорости, будет переведено в спящий режим по истечении этого времени.

SpaceParameter SPACE_PARAM_SOLVER_ITERATIONS = 7

Константа для установки/получения количества итераций решателя для контактов и ограничений. Чем больше количество итераций, тем точнее будут столкновения и ограничения. Однако большее количество итераций требует большей мощности ЦП, что может снизить производительность.


enum BodyAxis: 🔗

BodyAxis BODY_AXIS_LINEAR_X = 1

There is currently no description for this enum. Please help us by contributing one!

BodyAxis BODY_AXIS_LINEAR_Y = 2

There is currently no description for this enum. Please help us by contributing one!

BodyAxis BODY_AXIS_LINEAR_Z = 4

There is currently no description for this enum. Please help us by contributing one!

BodyAxis BODY_AXIS_ANGULAR_X = 8

There is currently no description for this enum. Please help us by contributing one!

BodyAxis BODY_AXIS_ANGULAR_Y = 16

There is currently no description for this enum. Please help us by contributing one!

BodyAxis BODY_AXIS_ANGULAR_Z = 32

There is currently no description for this enum. Please help us by contributing one!


Описания метода

void area_add_shape(area: RID, shape: RID, transform: Transform3D = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), disabled: bool = false) 🔗

Добавляет форму к области вместе с матрицей преобразования. Формы обычно ссылаются по индексу, поэтому следует отслеживать, какая форма имеет заданный индекс.


void area_attach_object_instance_id(area: RID, id: int) 🔗

Назначает область потомку Object, чтобы она могла существовать в дереве узлов.


void area_clear_shapes(area: RID) 🔗

Удаляет все фигуры из области. Фигуры не удаляются, поэтому их можно переназначить позже.


RID area_create() 🔗

Создает объект 3D-области на физическом сервере и возвращает RID, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновений и маску, установленные на 1, и monitorable, установленные на false.

Используйте area_add_shape(), чтобы добавить к нему формы, используйте area_set_transform(), чтобы задать его преобразование, и используйте area_set_space(), чтобы добавить область в пространство. Если вы хотите, чтобы область была обнаруживаемой, используйте area_set_monitorable().


int area_get_collision_layer(area: RID) const 🔗

Возвращает физический слой или слои, к которым принадлежит область.


int area_get_collision_mask(area: RID) const 🔗

Возвращает физический слой или слои, с которыми может контактировать область.


int area_get_object_instance_id(area: RID) const 🔗

Получает идентификатор экземпляра объекта, которому назначена область.


Variant area_get_param(area: RID, param: AreaParameter) const 🔗

Возвращает значение параметра области. Список доступных параметров находится в константах AreaParameter.


RID area_get_shape(area: RID, shape_idx: int) const 🔗

Возвращает RID n-й формы области.


int area_get_shape_count(area: RID) const 🔗

Возвращает количество фигур, назначенных области.


Transform3D area_get_shape_transform(area: RID, shape_idx: int) const 🔗

Возвращает матрицу преобразования фигуры внутри области.


RID area_get_space(area: RID) const 🔗

Возвращает пространство, назначенное области.


Transform3D area_get_transform(area: RID) const 🔗

Возвращает матрицу преобразования для области.


void area_remove_shape(area: RID, shape_idx: int) 🔗

Удаляет фигуру из области. Она не удаляет фигуру, поэтому ее можно назначить повторно позже.


void area_set_area_monitor_callback(area: RID, callback: Callable) 🔗

Устанавливает обратный вызов монитора области. Этот обратный вызов будет вызван, когда любая другая (форма) области входит или выходит из (формы) заданной области, и должен принимать следующие пять параметров:

  1. целое число status: либо AREA_BODY_ADDED или AREA_BODY_REMOVED в зависимости от того, вошла или вышла из области форма другой области,

  2. RID area_rid: RID другой области, которая вошла или вышла из области,

  3. целое число instance_id: ObjectID, прикрепленный к другой области,

  4. целое число area_shape_idx: индекс формы другой области, которая вошла или вышла из области,

  5. целое число self_shape_idx: индекс формы области, в которую вошла или вышла другая область.

Подсчитывая (или отслеживая) входящие и выходящие фигуры, можно определить, входит ли область (со всеми ее фигурами) в первый раз или выходит в последний раз.


void area_set_collision_layer(area: RID, layer: int) 🔗

Назначает область одному или нескольким физическим слоям.


void area_set_collision_mask(area: RID, mask: int) 🔗

Устанавливает, какие физические слои будет отслеживать область.


void area_set_monitor_callback(area: RID, callback: Callable) 🔗

Устанавливает обратный вызов монитора тела области. Этот обратный вызов будет вызван, когда любое другое (форма) тело входит или выходит (форма) из заданной области, и должен принимать следующие пять параметров:

  1. целое число status: либо AREA_BODY_ADDED или AREA_BODY_REMOVED в зависимости от того, вошла или вышла из области другая форма тела,

  2. RID body_rid: RID тела, которое вошло или вышло из области,

  3. целое число instance_id: ObjectID, прикрепленный к телу,

  4. целое число body_shape_idx: индекс формы тела, которое вошло или вышло из области,

  5. целое число self_shape_idx: индекс формы области, в которую тело вошло или вышло.

Подсчитывая (или отслеживая) входящие и выходящие формы, можно определить, входит ли тело (со всеми его формами) в первый раз или выходит в последний раз.


void area_set_monitorable(area: RID, monitorable: bool) 🔗

There is currently no description for this method. Please help us by contributing one!


void area_set_param(area: RID, param: AreaParameter, value: Variant) 🔗

Устанавливает значение параметра области. Список доступных параметров находится в константах AreaParameter.


void area_set_ray_pickable(area: RID, enable: bool) 🔗

Позволяет выбирать объекты с помощью лучей.


void area_set_shape(area: RID, shape_idx: int, shape: RID) 🔗

Заменяет заданную форму области другой. Старая форма выбирается по ее индексу, новая — по ее RID.


void area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool) 🔗

There is currently no description for this method. Please help us by contributing one!


void area_set_shape_transform(area: RID, shape_idx: int, transform: Transform3D) 🔗

Задает матрицу преобразования для формы области.


void area_set_space(area: RID, space: RID) 🔗

Назначает пространство области.


void area_set_transform(area: RID, transform: Transform3D) 🔗

Задает матрицу преобразования для области.


void body_add_collision_exception(body: RID, excepted_body: RID) 🔗

Добавляет тело в список тел, освобожденных от столкновений.


void body_add_constant_central_force(body: RID, force: Vector3) 🔗

Добавляет постоянную направленную силу, не влияя на вращение, которая продолжает применяться с течением времени, пока не будет очищена с помощью body_set_constant_force(body, Vector3(0, 0, 0)).

Это эквивалентно использованию body_add_constant_force() в центре масс тела.


void body_add_constant_force(body: RID, force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗

Добавляет к телу постоянную позиционную силу, которая продолжает применяться с течением времени, пока не будет очищена с помощью body_set_constant_force(body, Vector3(0, 0, 0)).

position — это смещение от начала координат тела в глобальных координатах.


void body_add_constant_torque(body: RID, torque: Vector3) 🔗

Добавляет постоянную вращательную силу, не влияя на положение, которая продолжает применяться с течением времени, пока не будет очищена с помощью body_set_constant_torque(body, Vector3(0, 0, 0)).


void body_add_shape(body: RID, shape: RID, transform: Transform3D = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), disabled: bool = false) 🔗

Добавляет форму к телу вместе с матрицей преобразования. Формы обычно ссылаются по их индексу, поэтому следует отслеживать, какая форма имеет заданный индекс.


void body_apply_central_force(body: RID, force: Vector3) 🔗

Применяет направленную силу, не влияя на вращение. Сила зависит от времени и должна применяться при каждом обновлении физики.

Это эквивалентно использованию body_apply_force() в центре масс тела.


void body_apply_central_impulse(body: RID, impulse: Vector3) 🔗

Применяет направленный импульс, не влияя на вращение.

Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").

Это эквивалентно использованию body_apply_impulse() в центре масс тела.


void body_apply_force(body: RID, force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗

Применяет позиционированную силу к телу. Сила зависит от времени и должна применяться при каждом обновлении физики.

position — это смещение от начала координат тела в глобальных координатах.


void body_apply_impulse(body: RID, impulse: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗

Применяет позиционированный импульс к телу.

Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").

position — это смещение от начала координат тела в глобальных координатах.


void body_apply_torque(body: RID, torque: Vector3) 🔗

Применяет вращательную силу, не влияя на положение. Сила зависит от времени и должна применяться при каждом обновлении физики.


void body_apply_torque_impulse(body: RID, impulse: Vector3) 🔗

Применяет вращательный импульс к телу, не влияя на положение.

Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").


void body_attach_object_instance_id(body: RID, id: int) 🔗

Назначает область потомку Object, чтобы она могла существовать в дереве узлов.


void body_clear_shapes(body: RID) 🔗

Удаляет все формы из тела.


RID body_create() 🔗

Создает объект 3D-тела на физическом сервере и возвращает RID, который его идентифицирует. Настройки по умолчанию для созданной области включают слой столкновения и маску, установленные на 1, и режим тела, установленный на BODY_MODE_RIGID.

Используйте body_add_shape(), чтобы добавить к нему формы, используйте body_set_state(), чтобы задать его преобразование, и используйте body_set_space(), чтобы добавить тело в пространство.


int body_get_collision_layer(body: RID) const 🔗

Возвращает физический слой или слои, к которым принадлежит тело.


int body_get_collision_mask(body: RID) const 🔗

Возвращает физический слой или слои, с которыми может сталкиваться тело.


float body_get_collision_priority(body: RID) const 🔗

Возвращает приоритет столкновения тела.


Vector3 body_get_constant_force(body: RID) const 🔗

Возвращает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики.

См. body_add_constant_force() и body_add_constant_central_force().


Vector3 body_get_constant_torque(body: RID) const 🔗

Возвращает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики.

См. body_add_constant_torque().


PhysicsDirectBodyState3D body_get_direct_state(body: RID) 🔗

Возвращает PhysicsDirectBodyState3D тела. Возвращает null, если тело уничтожено или удалено из физического пространства.


int body_get_max_contacts_reported(body: RID) const 🔗

Возвращает максимальное количество контактов, которые могут быть сообщены. См. body_set_max_contacts_reported().


BodyMode body_get_mode(body: RID) const 🔗

Возвращает режим тела.


int body_get_object_instance_id(body: RID) const 🔗

Получает идентификатор экземпляра объекта, которому назначена область.


Variant body_get_param(body: RID, param: BodyParameter) const 🔗

Возвращает значение параметра тела. Список доступных параметров находится в константах BodyParameter.


RID body_get_shape(body: RID, shape_idx: int) const 🔗

Возвращает RID n-й формы тела.


int body_get_shape_count(body: RID) const 🔗

Возвращает количество фигур, назначенных телу.


Transform3D body_get_shape_transform(body: RID, shape_idx: int) const 🔗

Возвращает матрицу преобразования формы тела.


RID body_get_space(body: RID) const 🔗

Возвращает RID пространства, назначенного телу.


Variant body_get_state(body: RID, state: BodyState) const 🔗

Возвращает состояние тела.


bool body_is_axis_locked(body: RID, axis: BodyAxis) const 🔗

There is currently no description for this method. Please help us by contributing one!


bool body_is_continuous_collision_detection_enabled(body: RID) const 🔗

Если true, включен режим непрерывного обнаружения столкновений.


bool body_is_omitting_force_integration(body: RID) const 🔗

Возвращает true, если тело пропускает стандартную интеграцию силы. См. body_set_omit_force_integration().


void body_remove_collision_exception(body: RID, excepted_body: RID) 🔗

Удаляет тело из списка тел, освобожденных от столкновений.

Непрерывное обнаружение столкновений пытается предсказать, где движущееся тело столкнется, вместо того, чтобы перемещать его и корректировать его движение в случае столкновения.


void body_remove_shape(body: RID, shape_idx: int) 🔗

Удаляет форму из тела. Сама форма не удаляется, поэтому ее можно использовать повторно.


void body_reset_mass_properties(body: RID) 🔗

Восстанавливает инерцию и центр масс по умолчанию на основе форм, чтобы отменить любые пользовательские значения, ранее установленные с помощью body_set_param().


void body_set_axis_lock(body: RID, axis: BodyAxis, lock: bool) 🔗

There is currently no description for this method. Please help us by contributing one!


void body_set_axis_velocity(body: RID, axis_velocity: Vector3) 🔗

Устанавливает скорость оси. Скорость в данной векторной оси будет установлена как заданная длина вектора. Это полезно для поведения прыжка.


void body_set_collision_layer(body: RID, layer: int) 🔗

Устанавливает физический слой или слои, к которым принадлежит тело.


void body_set_collision_mask(body: RID, mask: int) 🔗

Устанавливает физический слой или слои, с которыми может сталкиваться тело.


void body_set_collision_priority(body: RID, priority: float) 🔗

Устанавливает приоритет столкновения тела.


void body_set_constant_force(body: RID, force: Vector3) 🔗

Устанавливает общие постоянные позиционные силы тела, применяемые во время каждого обновления физики.

См. body_add_constant_force() и body_add_constant_central_force().


void body_set_constant_torque(body: RID, torque: Vector3) 🔗

Устанавливает общие постоянные вращательные силы тела, применяемые во время каждого обновления физики.

См. body_add_constant_torque().


void body_set_enable_continuous_collision_detection(body: RID, enable: bool) 🔗

Если true, режим непрерывного обнаружения столкновений включен.

Непрерывное обнаружение столкновений пытается предсказать, где движущееся тело столкнется, вместо того, чтобы перемещать его и корректировать его движение в случае столкновения.


void body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant = null) 🔗

Устанавливает функцию обратного вызова интегрирования силы тела на callable. Используйте пустой Callable (Callable()), чтобы очистить пользовательский обратный вызов.

Функция callable будет вызываться каждый физический тик перед стандартным интегрированием силы (см. body_set_omit_force_integration()). Ее можно использовать, например, для обновления линейной и угловой скорости тела на основе контакта с другими телами.

Если userdata не является null, функция callable должна принимать следующие два параметра:

  1. state: PhysicsDirectBodyState3D, используемый для получения и изменения состояния тела,

  2. userdata: Variant; ее значением будет userdata, переданный в этот метод.

Если userdata равен null, то callable должен принимать только параметр state.


void body_set_max_contacts_reported(body: RID, amount: int) 🔗

Устанавливает максимальное количество контактов для отчета. Органы могут вести журнал контактов с другими органами. Это включается путем установки максимального количества сообщаемых контактов на число больше 0.


void body_set_mode(body: RID, mode: BodyMode) 🔗

Устанавливает режим тела.


void body_set_omit_force_integration(body: RID, enable: bool) 🔗

Устанавливает, будет ли тело пропускать стандартную интеграцию силы. Если enable равно true, тело не будет автоматически использовать приложенные силы, крутящие моменты и демпфирование для обновления линейной и угловой скорости тела. В этом случае body_set_force_integration_callback() можно использовать для ручного обновления линейной и угловой скорости.

Этот метод вызывается, когда задано свойство RigidBody3D.custom_integrator.


void body_set_param(body: RID, param: BodyParameter, value: Variant) 🔗

Устанавливает параметр тела. Список доступных параметров находится в константах BodyParameter.


void body_set_ray_pickable(body: RID, enable: bool) 🔗

Устанавливает возможность выбора тела лучами, если установлен enable.


void body_set_shape(body: RID, shape_idx: int, shape: RID) 🔗

Заменяет заданную форму тела другой. Старая форма выбирается по ее индексу, новая — по ее RID.


void body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool) 🔗

There is currently no description for this method. Please help us by contributing one!


void body_set_shape_transform(body: RID, shape_idx: int, transform: Transform3D) 🔗

Задает матрицу преобразования для формы тела.


void body_set_space(body: RID, space: RID) 🔗

Назначает пространство телу (см. space_create()).


void body_set_state(body: RID, state: BodyState, value: Variant) 🔗

Устанавливает состояние тела.


void body_set_state_sync_callback(body: RID, callable: Callable) 🔗

Устанавливает функцию обратного вызова синхронизации состояния тела на callable. Используйте пустой Callable (Callable()), чтобы очистить обратный вызов.

Функция callable будет вызываться каждый физический кадр, предполагая, что тело было активно во время предыдущего физического тика, и может использоваться для получения последнего состояния с физического сервера.

Функция callable должна принимать следующие параметры:

  1. state: PhysicsDirectBodyState3D, используемый для получения состояния тела.


bool body_test_motion(body: RID, parameters: PhysicsTestMotionParameters3D, result: PhysicsTestMotionResult3D = null) 🔗

Возвращает true, если столкновение возникнет в результате движения по вектору движения из заданной точки в пространстве. PhysicsTestMotionParameters3D передается для установки параметров движения. PhysicsTestMotionResult3D может быть передан для возврата дополнительной информации.


RID box_shape_create() 🔗

Создает 3D форму параллелепипеда на физическом сервере и возвращает RID, который ее идентифицирует. Используйте shape_set_data() для установки половинных границ параллелепипеда.


RID capsule_shape_create() 🔗

Создает 3D капсулообразную форму на физическом сервере и возвращает RID, идентифицирующий ее. Используйте shape_set_data() для установки высоты и радиуса капсулы.


RID concave_polygon_shape_create() 🔗

Создает 3D вогнутую многоугольную фигуру на физическом сервере и возвращает RID, идентифицирующий ее. Используйте shape_set_data() для задания треугольников вогнутого многоугольника.


float cone_twist_joint_get_param(joint: RID, param: ConeTwistJointParam) const 🔗

Получает параметр конусного скручивающего соединения (twist joint).


void cone_twist_joint_set_param(joint: RID, param: ConeTwistJointParam, value: float) 🔗

Устанавливает параметр конусного скручивания (twist joint).


RID convex_polygon_shape_create() 🔗

Создает 3D выпуклую многоугольную фигуру на физическом сервере и возвращает RID, идентифицирующий ее. Используйте shape_set_data() для установки точек выпуклого многоугольника.


RID custom_shape_create() 🔗

Создает пользовательскую фигуру в физическом сервере и возвращает RID, который ее идентифицирует. Используйте shape_set_data() для установки данных фигуры.

Примечание: Встроенные физические серверы не поддерживают пользовательские фигуры, поэтому вызов этого метода всегда приводит к ошибке при использовании Godot Physics или Jolt Physics. Пользовательские физические серверы, реализованные как GDExtensions, могут поддерживать пользовательские фигуры.


RID cylinder_shape_create() 🔗

Создает 3D цилиндрическую форму на физическом сервере и возвращает RID, который ее идентифицирует. Используйте shape_set_data() для установки высоты и радиуса цилиндра.


void free_rid(rid: RID) 🔗

Уничтожает любой из объектов, созданных PhysicsServer3D. Если переданный RID не является одним из объектов, которые могут быть созданы PhysicsServer3D, на консоль будет отправлена ошибка.


bool generic_6dof_joint_get_flag(joint: RID, axis: Axis, flag: G6DOFJointAxisFlag) const 🔗

Возвращает значение универсального флага соединения 6DOF.


float generic_6dof_joint_get_param(joint: RID, axis: Axis, param: G6DOFJointAxisParam) const 🔗

Возвращает значение универсального параметра соединения 6DOF.


void generic_6dof_joint_set_flag(joint: RID, axis: Axis, flag: G6DOFJointAxisFlag, enable: bool) 🔗

Устанавливает значение заданного универсального флага соединения 6DOF.


void generic_6dof_joint_set_param(joint: RID, axis: Axis, param: G6DOFJointAxisParam, value: float) 🔗

Устанавливает значение заданного универсального параметра соединения 6DOF.


int get_process_info(process_info: ProcessInfo) 🔗

Возвращает значение состояния физического движка, заданное process_info.


RID heightmap_shape_create() 🔗

Создает 3D карту высот на физическом сервере и возвращает RID, который ее идентифицирует. Используйте shape_set_data() для установки данных карты высот.


bool hinge_joint_get_flag(joint: RID, flag: HingeJointFlag) const 🔗

Получает флаг шарнирного соединения.


float hinge_joint_get_param(joint: RID, param: HingeJointParam) const 🔗

Получает параметр шарнирного соединения.


void hinge_joint_set_flag(joint: RID, flag: HingeJointFlag, enabled: bool) 🔗

Устанавливает флаг шарнирного соединения.


void hinge_joint_set_param(joint: RID, param: HingeJointParam, value: float) 🔗

Устанавливает параметр шарнирного соединения.


void joint_clear(joint: RID) 🔗

There is currently no description for this method. Please help us by contributing one!


RID joint_create() 🔗

There is currently no description for this method. Please help us by contributing one!


void joint_disable_collisions_between_bodies(joint: RID, disable: bool) 🔗

Устанавливает, будут ли тела, прикрепленные к Joint3D, сталкиваться друг с другом.


int joint_get_solver_priority(joint: RID) const 🔗

Получает значение приоритета Joint3D.


JointType joint_get_type(joint: RID) const 🔗

Возвращает тип Joint3D.


bool joint_is_disabled_collisions_between_bodies(joint: RID) const 🔗

Возвращает, будут ли тела, прикрепленные к Joint3D, сталкиваться друг с другом.


void joint_make_cone_twist(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D) 🔗

There is currently no description for this method. Please help us by contributing one!


void joint_make_generic_6dof(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D) 🔗

Сделайте шарнир универсальным с шестью степенями свободы (6DOF). Используйте generic_6dof_joint_set_flag() и generic_6dof_joint_set_param() для установки флагов и параметров шарнира соответственно.


void joint_make_hinge(joint: RID, body_A: RID, hinge_A: Transform3D, body_B: RID, hinge_B: Transform3D) 🔗

There is currently no description for this method. Please help us by contributing one!


void joint_make_pin(joint: RID, body_A: RID, local_A: Vector3, body_B: RID, local_B: Vector3) 🔗

There is currently no description for this method. Please help us by contributing one!


void joint_make_slider(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D) 🔗

There is currently no description for this method. Please help us by contributing one!


void joint_set_solver_priority(joint: RID, priority: int) 🔗

Устанавливает значение приоритета Joint3D.


Vector3 pin_joint_get_local_a(joint: RID) const 🔗

Возвращает положение сустава в локальном пространстве тела a сустава.


Vector3 pin_joint_get_local_b(joint: RID) const 🔗

Возвращает положение сочленения в локальном пространстве тела b сочленения.


float pin_joint_get_param(joint: RID, param: PinJointParam) const 🔗

Получает параметр штифтового соединения (pin joint).


void pin_joint_set_local_a(joint: RID, local_A: Vector3) 🔗

Устанавливает положение сустава в локальном пространстве тела a сустава.


void pin_joint_set_local_b(joint: RID, local_B: Vector3) 🔗

Устанавливает положение сустава в локальном пространстве тела b сустава.


void pin_joint_set_param(joint: RID, param: PinJointParam, value: float) 🔗

Устанавливает параметр штифтового соединения.


RID separation_ray_shape_create() 🔗

Создает 3D форму разделительного луча на физическом сервере и возвращает RID, который ее идентифицирует. Используйте shape_set_data() для установки свойств length и slide_on_slope формы.


void set_active(active: bool) 🔗

Активирует или деактивирует 3D физический движок.


Variant shape_get_data(shape: RID) const 🔗

Возвращает данные о форме, которые определяют её конфигурацию, например, полуграницы прямоугольника или треугольники вогнутой (тримешной) фигуры. Точный формат этих данных в каждом случае см. в shape_set_data().


float shape_get_margin(shape: RID) const 🔗

Возвращает границу столкновения для формы.

Примечание: Это не используется в Godot Physics, поэтому всегда будет возвращать 0.


ShapeType shape_get_type(shape: RID) const 🔗

Возвращает тип фигуры.


void shape_set_data(shape: RID, data: Variant) 🔗

Sets the shape data that configures the shape. The data to be passed depends on the shape's type (see shape_get_type()):


void shape_set_margin(shape: RID, margin: float) 🔗

Устанавливает границу столкновения для формы.

Примечание: Это не используется в Godot Physics.


float slider_joint_get_param(joint: RID, param: SliderJointParam) const 🔗

Получает параметр скользящего соединения.


void slider_joint_set_param(joint: RID, param: SliderJointParam, value: float) 🔗

Получает параметр скользящего соединения.


void soft_body_add_collision_exception(body: RID, body_b: RID) 🔗

Добавляет указанное тело в список тел, освобожденных от столкновений.


void soft_body_apply_central_force(body: RID, force: Vector3) 🔗

Распределяет и применяет силу ко всем точкам. Сила зависит от времени и должна применяться при каждом обновлении физики.


void soft_body_apply_central_impulse(body: RID, impulse: Vector3) 🔗

Распределяет и применяет импульс ко всем точкам.

Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").


void soft_body_apply_point_force(body: RID, point_index: int, force: Vector3) 🔗

Прикладывает силу к точке. Сила зависит от времени и должна применяться при каждом обновлении физики.


void soft_body_apply_point_impulse(body: RID, point_index: int, impulse: Vector3) 🔗

Применяет импульс к точке.

Импульс не зависит от времени! Применение импульса в каждом кадре приведет к силе, зависящей от частоты кадров. По этой причине его следует использовать только при моделировании одноразовых ударов (в противном случае используйте функции "_force").


RID soft_body_create() 🔗

Создает новое мягкое тело и возвращает его внутренний RID.


AABB soft_body_get_bounds(body: RID) const 🔗

Возвращает границы заданного мягкого тела в глобальных координатах.


int soft_body_get_collision_layer(body: RID) const 🔗

Возвращает физический слой или слои, к которым принадлежит заданное мягкое тело.


int soft_body_get_collision_mask(body: RID) const 🔗

Возвращает физический слой или слои, с которыми может сталкиваться заданное мягкое тело.


float soft_body_get_damping_coefficient(body: RID) const 🔗

Возвращает коэффициент затухания заданного мягкого тела.


float soft_body_get_drag_coefficient(body: RID) const 🔗

Возвращает коэффициент сопротивления заданного мягкого тела.


float soft_body_get_linear_stiffness(body: RID) const 🔗

Возвращает линейную жесткость заданного мягкого тела.


Vector3 soft_body_get_point_global_position(body: RID, point_index: int) const 🔗

Возвращает текущее положение заданной точки мягкого тела в глобальных координатах.


float soft_body_get_pressure_coefficient(body: RID) const 🔗

Возвращает коэффициент давления заданного мягкого тела.


float soft_body_get_shrinking_factor(body: RID) const 🔗

Возвращает коэффициент сжатия заданного мягкого тела (soft body).


int soft_body_get_simulation_precision(body: RID) const 🔗

Возвращает точность моделирования заданного мягкого тела.


RID soft_body_get_space(body: RID) const 🔗

Возвращает RID пространства, назначенного данному мягкому телу.


Variant soft_body_get_state(body: RID, state: BodyState) const 🔗

Возвращает заданное состояние мягкого тела.

Примечание: Реализация физики Godot по умолчанию не поддерживает BODY_STATE_LINEAR_VELOCITY, BODY_STATE_ANGULAR_VELOCITY, BODY_STATE_SLEEPING или BODY_STATE_CAN_SLEEP.


float soft_body_get_total_mass(body: RID) const 🔗

Возвращает общую массу, присвоенную данному мягкому телу.


bool soft_body_is_point_pinned(body: RID, point_index: int) const 🔗

Возвращает, закреплённую ли заданную точку мягкого тела.


void soft_body_move_point(body: RID, point_index: int, global_position: Vector3) 🔗

Перемещает заданную точку мягкого тела в положение в глобальных координатах.


void soft_body_pin_point(body: RID, point_index: int, pin: bool) 🔗

Прикрепляет или открепляет заданную точку мягкого тела на основе значения pin.

Примечание: Прикрепление точки фактически делает ее кинематической, предотвращая воздействие на нее сил, но вы все равно можете перемещать ее с помощью soft_body_move_point().


void soft_body_remove_all_pinned_points(body: RID) 🔗

Открепляет все точки заданного мягкого тела.


void soft_body_remove_collision_exception(body: RID, body_b: RID) 🔗

Удаляет указанное тело из списка тел, освобожденных от столкновений.


void soft_body_set_collision_layer(body: RID, layer: int) 🔗

Устанавливает физический слой или слои, к которым принадлежит заданное мягкое тело.


void soft_body_set_collision_mask(body: RID, mask: int) 🔗

Устанавливает физический слой или слои, с которыми может сталкиваться заданное мягкое тело.


void soft_body_set_damping_coefficient(body: RID, damping_coefficient: float) 🔗

Устанавливает коэффициент затухания данного мягкого тела. Более высокие значения будут замедлять тело более заметно при приложении сил.


void soft_body_set_drag_coefficient(body: RID, drag_coefficient: float) 🔗

Устанавливает коэффициент сопротивления данного мягкого тела. Более высокие значения увеличивают сопротивление воздуха этого тела.

Примечание: Это значение в настоящее время не используется в стандартной реализации физики Godot.


void soft_body_set_linear_stiffness(body: RID, stiffness: float) 🔗

Устанавливает линейную жесткость заданного мягкого тела. Более высокие значения приведут к более жесткому телу, а более низкие значения увеличат способность тела изгибаться. Значение может быть между 0.0 и 1.0 (включительно).


void soft_body_set_mesh(body: RID, mesh: RID) 🔗

Устанавливает сетку заданного мягкого тела.


void soft_body_set_pressure_coefficient(body: RID, pressure_coefficient: float) 🔗

Устанавливает коэффициент давления данного мягкого тела. Имитирует нарастание давления изнутри этого тела. Более высокие значения увеличивают силу этого эффекта.


void soft_body_set_ray_pickable(body: RID, enable: bool) 🔗

Устанавливает, будет ли заданное мягкое тело доступно для выбора при использовании выбора объекта.


void soft_body_set_shrinking_factor(body: RID, shrinking_factor: float) 🔗

Устанавливает коэффициент сжатия заданного мягкого тела.


void soft_body_set_simulation_precision(body: RID, simulation_precision: int) 🔗

Устанавливает точность моделирования данного мягкого тела. Увеличение этого значения улучшит результирующее моделирование, но может повлиять на производительность. Используйте с осторожностью.


void soft_body_set_space(body: RID, space: RID) 🔗

Назначает пространство данному мягкому телу (см. space_create()).


void soft_body_set_state(body: RID, state: BodyState, variant: Variant) 🔗

Устанавливает заданное состояние тела для заданного тела.

Примечание: Реализация физики Godot по умолчанию не поддерживает BODY_STATE_LINEAR_VELOCITY, BODY_STATE_ANGULAR_VELOCITY, BODY_STATE_SLEEPING или BODY_STATE_CAN_SLEEP.


void soft_body_set_total_mass(body: RID, total_mass: float) 🔗

Устанавливает общую массу для данного мягкого тела.


void soft_body_set_transform(body: RID, transform: Transform3D) 🔗

Устанавливает глобальное преобразование заданного мягкого тела.


void soft_body_update_rendering_server(body: RID, rendering_server_handler: PhysicsServer3DRenderingServerHandler) 🔗

Запрашивает, чтобы физический сервер обновлял сервер рендеринга последними позициями точек заданного мягкого тела через интерфейс rendering_server_handler.


RID space_create() 🔗

Создает пространство. Пространство — это набор параметров для физического движка, которые можно назначить области или телу. Его можно назначить области с помощью area_set_space() или телу с помощью body_set_space().


PhysicsDirectSpaceState3D space_get_direct_state(space: RID) 🔗

Возвращает состояние пространства, PhysicsDirectSpaceState3D. Этот объект можно использовать для создания запросов на столкновение/пересечение.


float space_get_param(space: RID, param: SpaceParameter) const 🔗

Возвращает значение параметра пространства.


bool space_is_active(space: RID) const 🔗

Возвращает, активно ли пространство.


void space_set_active(space: RID, active: bool) 🔗

Отмечает пространство как активное. Не будет иметь эффекта, если не назначено области или телу.


void space_set_param(space: RID, param: SpaceParameter, value: float) 🔗

Устанавливает значение для параметра пространства. Список доступных параметров находится в константах SpaceParameter.


RID sphere_shape_create() 🔗

Создает 3D сферическую форму на физическом сервере и возвращает RID, идентифицирующий ее. Используйте shape_set_data() для установки радиуса сферы.


RID world_boundary_shape_create() 🔗

Создает 3D форму границы мира на физическом сервере и возвращает RID, идентифицирующий ее. Используйте shape_set_data() для установки свойств направления нормали и расстояния формы.