0e6b796cf6
Using non-uniform scale is known to cause many issues. Add warnings to the editor and to the class reference. Also remove the warning from SoftBody3D since it is not relevant there: it simulates in global space.
120 lines
7.2 KiB
XML
120 lines
7.2 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="PhysicalBone3D" inherits="PhysicsBody3D" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
</brief_description>
|
|
<description>
|
|
[b]Warning:[/b] With a non-uniform scale this node will probably not function as expected. Please make sure to keep its scale uniform (i.e. the same on all axes), and change the size(s) of its collision shape(s) instead.
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="_integrate_forces" qualifiers="virtual">
|
|
<return type="void" />
|
|
<param index="0" name="state" type="PhysicsDirectBodyState3D" />
|
|
<description>
|
|
Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the [member custom_integrator] property allows you to disable the default behavior and do fully custom force integration for a body.
|
|
</description>
|
|
</method>
|
|
<method name="apply_central_impulse">
|
|
<return type="void" />
|
|
<param index="0" name="impulse" type="Vector3" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="apply_impulse">
|
|
<return type="void" />
|
|
<param index="0" name="impulse" type="Vector3" />
|
|
<param index="1" name="position" type="Vector3" default="Vector3(0, 0, 0)" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="get_bone_id" qualifiers="const">
|
|
<return type="int" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="get_simulate_physics">
|
|
<return type="bool" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="is_simulating_physics">
|
|
<return type="bool" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="0.0">
|
|
Damps the body's rotation. By default, the body will use the [b]Default Angular Damp[/b] in [b]Project > Project Settings > Physics > 3d[/b] or any value override set by an [Area3D] the body is in. Depending on [member angular_damp_mode], you can set [member angular_damp] to be added to or to replace the body's damping value.
|
|
See [member ProjectSettings.physics/3d/default_angular_damp] for more details about damping.
|
|
</member>
|
|
<member name="angular_damp_mode" type="int" setter="set_angular_damp_mode" getter="get_angular_damp_mode" enum="PhysicalBone3D.DampMode" default="0">
|
|
Defines how [member angular_damp] is applied. See [enum DampMode] for possible values.
|
|
</member>
|
|
<member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity" default="Vector3(0, 0, 0)">
|
|
The PhysicalBone3D's rotational velocity in [i]radians[/i] per second.
|
|
</member>
|
|
<member name="body_offset" type="Transform3D" setter="set_body_offset" getter="get_body_offset" default="Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)">
|
|
Sets the body's transform.
|
|
</member>
|
|
<member name="bounce" type="float" setter="set_bounce" getter="get_bounce" default="0.0">
|
|
The body's bounciness. Values range from [code]0[/code] (no bounce) to [code]1[/code] (full bounciness).
|
|
</member>
|
|
<member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep" default="true">
|
|
If [code]true[/code], the body is deactivated when there is no movement, so it will not take part in the simulation until it is awakened by an external force.
|
|
</member>
|
|
<member name="custom_integrator" type="bool" setter="set_use_custom_integrator" getter="is_using_custom_integrator" default="false">
|
|
If [code]true[/code], internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the [method _integrate_forces] function, if defined.
|
|
</member>
|
|
<member name="friction" type="float" setter="set_friction" getter="get_friction" default="1.0">
|
|
The body's friction, from [code]0[/code] (frictionless) to [code]1[/code] (max friction).
|
|
</member>
|
|
<member name="gravity_scale" type="float" setter="set_gravity_scale" getter="get_gravity_scale" default="1.0">
|
|
This is multiplied by the global 3D gravity setting found in [b]Project > Project Settings > Physics > 3d[/b] to produce the body's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object.
|
|
</member>
|
|
<member name="joint_offset" type="Transform3D" setter="set_joint_offset" getter="get_joint_offset" default="Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)">
|
|
Sets the joint's transform.
|
|
</member>
|
|
<member name="joint_rotation" type="Vector3" setter="set_joint_rotation" getter="get_joint_rotation" default="Vector3(0, 0, 0)">
|
|
Sets the joint's rotation in radians.
|
|
</member>
|
|
<member name="joint_type" type="int" setter="set_joint_type" getter="get_joint_type" enum="PhysicalBone3D.JointType" default="0">
|
|
Sets the joint type. See [enum JointType] for possible values.
|
|
</member>
|
|
<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="0.0">
|
|
Damps the body's movement. By default, the body will use the [b]Default Linear Damp[/b] in [b]Project > Project Settings > Physics > 3d[/b] or any value override set by an [Area3D] the body is in. Depending on [member linear_damp_mode], you can set [member linear_damp] to be added to or to replace the body's damping value.
|
|
See [member ProjectSettings.physics/3d/default_linear_damp] for more details about damping.
|
|
</member>
|
|
<member name="linear_damp_mode" type="int" setter="set_linear_damp_mode" getter="get_linear_damp_mode" enum="PhysicalBone3D.DampMode" default="0">
|
|
Defines how [member linear_damp] is applied. See [enum DampMode] for possible values.
|
|
</member>
|
|
<member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity" default="Vector3(0, 0, 0)">
|
|
The body's linear velocity in units per second. Can be used sporadically, but [b]don't set this every frame[/b], because physics may run in another thread and runs at a different granularity. Use [method _integrate_forces] as your process loop for precise control of the body state.
|
|
</member>
|
|
<member name="mass" type="float" setter="set_mass" getter="get_mass" default="1.0">
|
|
The body's mass.
|
|
</member>
|
|
</members>
|
|
<constants>
|
|
<constant name="DAMP_MODE_COMBINE" value="0" enum="DampMode">
|
|
In this mode, the body's damping value is added to any value set in areas or the default value.
|
|
</constant>
|
|
<constant name="DAMP_MODE_REPLACE" value="1" enum="DampMode">
|
|
In this mode, the body's damping value replaces any value set in areas or the default value.
|
|
</constant>
|
|
<constant name="JOINT_TYPE_NONE" value="0" enum="JointType">
|
|
</constant>
|
|
<constant name="JOINT_TYPE_PIN" value="1" enum="JointType">
|
|
</constant>
|
|
<constant name="JOINT_TYPE_CONE" value="2" enum="JointType">
|
|
</constant>
|
|
<constant name="JOINT_TYPE_HINGE" value="3" enum="JointType">
|
|
</constant>
|
|
<constant name="JOINT_TYPE_SLIDER" value="4" enum="JointType">
|
|
</constant>
|
|
<constant name="JOINT_TYPE_6DOF" value="5" enum="JointType">
|
|
</constant>
|
|
</constants>
|
|
</class>
|