From a08d535cd04104616cf0913a5562b6fa9070f00d Mon Sep 17 00:00:00 2001 From: skyace65 Date: Mon, 22 May 2023 21:52:30 -0400 Subject: [PATCH] Update softbody tutorial for 4.0 --- tutorials/physics/img/softbody_cube.webp | Bin 0 -> 8940 bytes tutorials/physics/img/softbody_cube_menu.png | Bin 17219 -> 0 bytes tutorials/physics/soft_body.rst | 22 +++++++++---------- 3 files changed, 10 insertions(+), 12 deletions(-) create mode 100644 tutorials/physics/img/softbody_cube.webp delete mode 100644 tutorials/physics/img/softbody_cube_menu.png diff --git a/tutorials/physics/img/softbody_cube.webp b/tutorials/physics/img/softbody_cube.webp new file mode 100644 index 0000000000000000000000000000000000000000..59ba5973bd4027f07f03dfbbd7a9139ce46108e4 GIT binary patch literal 8940 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 GQvd*<1*4k) literal 0 HcmV?d00001 diff --git a/tutorials/physics/img/softbody_cube_menu.png b/tutorials/physics/img/softbody_cube_menu.png deleted file mode 100644 index 60679814088c2b62c62f54b6fde5d1dd763788a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17219 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 X9>xK_rNI9=2EuDab%hE!vylG-4?He6 diff --git a/tutorials/physics/soft_body.rst b/tutorials/physics/soft_body.rst index d4c69a6860a..6f540f4595c 100644 --- a/tutorials/physics/soft_body.rst +++ b/tutorials/physics/soft_body.rst @@ -13,17 +13,15 @@ A :ref:`SoftBody3D ` node is used for soft body simulations. We will create a bouncy cube to demonstrate the setup of a soft body. -Create a new scene with a ``Node3D`` node as root. Then, create a ``Softbody`` node. Add a ``CubeMesh`` in the ``mesh`` property of the node in the inspector and increase the subdivision of the mesh for simulation. +Create a new scene with a ``Node3D`` node as root. Then, create a ``Softbody3D`` node. Add a ``BoxMesh`` in the ``Mesh`` property of the node in the inspector and increase the subdivision of the mesh for simulation. -.. image:: img/softbody_cube.png +.. image:: img/softbody_cube.webp Set the parameters to obtain the type of soft body you aim for. Try to keep the ``Simulation Precision`` above 5, otherwise, the soft body may collapse. -.. image:: img/softbody_cube_menu.png +.. note:: Handle some parameters with care, as some value can lead to strange results. For example, if the shape is not completely closed and you set pressure to more than 0, the SoftBody3D will fly around like a plastic bag under strong wind. -.. note:: Handle some parameters with care, as some value can lead to strange results. For example, if the shape is not completely closed and you set pressure to more than 0, the softbody will fly around like a plastic bag under strong wind. - -Play the scene to view the simulation. +Add a camera and something for it to collide with then play the scene to view the simulation. .. tip:: To improve the simulation's result, increase the ``Simulation Precision``, this will give significant improvement at the cost of performance. @@ -34,9 +32,9 @@ Let's make a cloak in the Platformer3D demo. .. note:: You can download the Platformer3D demo on `GitHub `_ or `the Asset Library `_. -Open the ``Player`` scene, add a ``SoftBody`` node and assign a ``PlaneMesh`` to it. +Open the ``Player`` scene, add a ``SoftBody3D`` node and assign a ``PlaneMesh`` to it. -Open the ``PlaneMesh`` properties and set the size(x: 0.5 y: 1) then set ``Subdivide Width`` and ``Subdivide Depth`` to 5. Adjust the ``SoftBody``'s position. You should end up with something like this: +Open the ``PlaneMesh`` properties and set the size(x: 0.5 y: 1) then set ``Subdivide Width`` and ``Subdivide Depth`` to 5. Adjust the ``SoftBody3D``'s position. You should end up with something like this: .. image:: img/softbody_cloak_subdivide.png @@ -48,15 +46,15 @@ Add a :ref:`BoneAttachment3D ` node under the skeleton n .. image:: img/softbody_cloak_bone_attach.png -To create pinned joints, select the upper vertices in the ``SoftBody`` node: +To create pinned joints, select the upper vertices in the ``SoftBody3D`` node: .. image:: img/softbody_cloak_pinned.png -The pinned joints can be found in ``SoftBody``'s ``Attachments`` property, choose the ``BoneAttachment`` as the ``SpatialAttachment`` for each pinned joints, the pinned joints are now attached to the neck. +The pinned joints can be found in ``SoftBody3D``'s ``Attachments`` property, choose the ``BoneAttachment`` as the ``SpatialAttachment`` for each pinned joints, the pinned joints are now attached to the neck. .. image:: img/softbody_cloak_pinned_attach.png -Last step is to avoid clipping by adding the Kinematic Body `Player` to ``Parent Collision Ignore`` of the ``SoftBody``. +Last step is to avoid clipping by adding the Kinematic Body `Player` to ``Parent Collision Ignore`` of the ``SoftBody3D``. .. image:: img/softbody_cloak_ignore.png @@ -64,4 +62,4 @@ Play the scene and the cloak should simulate correctly. .. image:: img/softbody_cloak_finish.png -This covers the basic settings of softbody, experiment with the parameters to achieve the effect you are aiming for when making your game. +This covers the basic settings of SoftBody3D, experiment with the parameters to achieve the effect you are aiming for when making your game.