diff --git a/_tools/redirects/redirects.csv b/_tools/redirects/redirects.csv index 5ffff2807..8abf40579 100644 --- a/_tools/redirects/redirects.csv +++ b/_tools/redirects/redirects.csv @@ -108,13 +108,13 @@ source,destination /getting_started/step_by_step/resources.html,/tutorials/scripting/resources.html /getting_started/step_by_step/scene_tree.html,/tutorials/scripting/scene_tree.html /getting_started/step_by_step/singletons_autoload.html,/tutorials/scripting/singletons_autoload.html -/getting_started/workflow/assets/escn_exporter/animation.html,/tutorials/assets_pipeline/escn_exporter/animation.html +/getting_started/workflow/assets/escn_exporter/animation.html,/tutorials/assets_pipeline/escn_exporter/index.html /getting_started/workflow/assets/escn_exporter/index.html,/tutorials/assets_pipeline/escn_exporter/index.html -/getting_started/workflow/assets/escn_exporter/lights.html,/tutorials/assets_pipeline/escn_exporter/lights.html -/getting_started/workflow/assets/escn_exporter/material.html,/tutorials/assets_pipeline/escn_exporter/material.html -/getting_started/workflow/assets/escn_exporter/mesh.html,/tutorials/assets_pipeline/escn_exporter/mesh.html -/getting_started/workflow/assets/escn_exporter/physics.html,/tutorials/assets_pipeline/escn_exporter/physics.html -/getting_started/workflow/assets/escn_exporter/skeleton.html,/tutorials/assets_pipeline/escn_exporter/skeleton.html +/getting_started/workflow/assets/escn_exporter/lights.html,/tutorials/assets_pipeline/escn_exporter/index.html +/getting_started/workflow/assets/escn_exporter/material.html,/tutorials/assets_pipeline/escn_exporter/index.html +/getting_started/workflow/assets/escn_exporter/mesh.html,/tutorials/assets_pipeline/escn_exporter/index.html +/getting_started/workflow/assets/escn_exporter/physics.html,/tutorials/assets_pipeline/escn_exporter/index.html +/getting_started/workflow/assets/escn_exporter/skeleton.html,/tutorials/assets_pipeline/escn_exporter/index.html /getting_started/workflow/assets/import_process.html,/tutorials/assets_pipeline/import_process.html /getting_started/workflow/assets/importing_audio_samples.html,/tutorials/assets_pipeline/importing_audio_samples.html /getting_started/workflow/assets/importing_images.html,/tutorials/assets_pipeline/importing_images.html diff --git a/tutorials/assets_pipeline/escn_exporter/animation.rst b/tutorials/assets_pipeline/escn_exporter/animation.rst deleted file mode 100644 index 8353f30e0..000000000 --- a/tutorials/assets_pipeline/escn_exporter/animation.rst +++ /dev/null @@ -1,87 +0,0 @@ -Animation -========= -Animation supported: - - transform animation of all types of objects - - transform animation of pose bones - - shape key animation - - light animation - - camera animation - -Multiple Actions For Single Object ----------------------------------- -In most games, one object would have several animations to switch between. -This add-on has support for exporting multiple actions all at once into -a single AnimationPlayer and makes it easy to switch actions. - -This workflow makes use of blender nla_tracks. Here is a brief guide on how -to use this feature: - -**1. Stash active action** - -New created action is always an active action bound to object. There are -several ways to place an active action into NLA track, -one is of course doing it in ``NLA Editor`` - -.. image:: img/nla_editor.jpg -.. image:: img/nla_pushdown.jpg - -Or it can be done stashing the action in ``Dope Sheet`` - -.. image:: img/dope_sheet.jpg -.. image:: img/stash_action.jpg - -**2. Check mute status of NLA tracks** - -An NLA track can be ``mute`` or ``unmute``, the exporter will export all -the ``mute`` NLA track as a separate action, while blends all the ``unmute`` -NLA tracks into every action (including the action) being exported. - -.. image:: img/nla_strip.jpg - -**3. Export the scene** - -Make sure the ``Export Stashed Actions`` option has been turned on. - -.. image:: img/stash_action_option.jpg - -Then all the stashed actions, as well as the active action, are exported -to an AnimationPlayer. - -.. image:: img/in_godot.jpg - - -Constraints ------------ -Sometimes complicated animation is built with object constraint; a usual -example is inverse kinematics. The add-on would automatically check if an -object has some constraint; if it does, all the constraints are baked into -actions and then exported along with the object. - - -Animation Mode ---------------------------- -Godot and Blender have different structure to store animation data. -In Godot animation data is stored in an AnimationPlayer node, instead -of in each animated node. In order to fix this inconsistency and still -make the animation play versatile, this add-on has three animation exporting -modes. - - -**Mode 'Animation as Actions'** - -Treat all the animations as object actions, so in the exported scene, every -object would have its own AnimationPlayer and hold its actions. - - -**Mode 'Scene Animation'** - -If you want your animation to generate the same result as playing at Blender's -timeline, this is what you want. In this mode, all the animations in the scene -are placed in just one AnimationPlayer in the scene root. - -**Mode 'Animation as Action with Squash'** - -This mode has very similar behavior of mode 'Animation as Action', but it -can generate fewer AnimationPlayers; objects in parent-children relationship would -share their AnimationPlayer. It is useful when you have several rigs, and each -Skeleton and Mesh has actions; then one rig would have just one AnimationPlayer. diff --git a/tutorials/assets_pipeline/escn_exporter/img/armature.jpg b/tutorials/assets_pipeline/escn_exporter/img/armature.jpg deleted file mode 100644 index f01c3be96..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/armature.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/body_type.jpg b/tutorials/assets_pipeline/escn_exporter/img/body_type.jpg deleted file mode 100644 index 99d8679be..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/body_type.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/col_only.png b/tutorials/assets_pipeline/escn_exporter/img/col_only.png deleted file mode 100644 index c851f3299..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/col_only.png and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/collision_shapes.jpg b/tutorials/assets_pipeline/escn_exporter/img/collision_shapes.jpg deleted file mode 100644 index 005620015..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/collision_shapes.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/dope_sheet.jpg b/tutorials/assets_pipeline/escn_exporter/img/dope_sheet.jpg deleted file mode 100644 index 504296c20..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/dope_sheet.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/enable_physics.png b/tutorials/assets_pipeline/escn_exporter/img/enable_physics.png deleted file mode 100644 index f177bec5c..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/enable_physics.png and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/external_mat_option.jpg b/tutorials/assets_pipeline/escn_exporter/img/external_mat_option.jpg deleted file mode 100644 index ead4476ae..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/external_mat_option.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/gd_dot_material.jpg b/tutorials/assets_pipeline/escn_exporter/img/gd_dot_material.jpg deleted file mode 100644 index cdcd3bbee..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/gd_dot_material.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/hide.jpg b/tutorials/assets_pipeline/escn_exporter/img/hide.jpg deleted file mode 100644 index 11c945948..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/hide.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/in_godot.jpg b/tutorials/assets_pipeline/escn_exporter/img/in_godot.jpg deleted file mode 100644 index 035a63607..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/in_godot.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/light_properties.jpg b/tutorials/assets_pipeline/escn_exporter/img/light_properties.jpg deleted file mode 100644 index d7e22976b..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/light_properties.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/material_search.jpg b/tutorials/assets_pipeline/escn_exporter/img/material_search.jpg deleted file mode 100644 index 11e2c6f9b..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/material_search.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/nla_editor.jpg b/tutorials/assets_pipeline/escn_exporter/img/nla_editor.jpg deleted file mode 100644 index 56446fc45..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/nla_editor.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/nla_pushdown.jpg b/tutorials/assets_pipeline/escn_exporter/img/nla_pushdown.jpg deleted file mode 100644 index 0f643dc9f..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/nla_pushdown.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/nla_strip.jpg b/tutorials/assets_pipeline/escn_exporter/img/nla_strip.jpg deleted file mode 100644 index 0644bee9b..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/nla_strip.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/stash_action.jpg b/tutorials/assets_pipeline/escn_exporter/img/stash_action.jpg deleted file mode 100644 index cae6ce6b6..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/stash_action.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/img/stash_action_option.jpg b/tutorials/assets_pipeline/escn_exporter/img/stash_action_option.jpg deleted file mode 100644 index babc65763..000000000 Binary files a/tutorials/assets_pipeline/escn_exporter/img/stash_action_option.jpg and /dev/null differ diff --git a/tutorials/assets_pipeline/escn_exporter/index.rst b/tutorials/assets_pipeline/escn_exporter/index.rst index cf7488af6..f607745ba 100644 --- a/tutorials/assets_pipeline/escn_exporter/index.rst +++ b/tutorials/assets_pipeline/escn_exporter/index.rst @@ -3,48 +3,12 @@ Blender ESCN exporter ===================== -.. note:: This chapter relates to the Blender plugin called "Godot Blender Exporter", - which can be downloaded here: https://github.com/godotengine/godot-blender-exporter +To export from Blender to Godot 4.x, use one of the +:ref:`available 3D formats `. -This plugin can be used to export Blender scenes in a Godot-specific scene format -called ESCN, which is similar to TSCN (text format) but will be imported as binary -SCN for performance. +The plugin `Godot Blender Exporter `__ +is not maintained or supported in Godot 4.x. While not officially supported, the plugin may +partially work for some Godot and Blender versions, particularly before Blender version 4.0. +For complete docs on the Blender exporter, see the +`previous version of this page `__. -Details on exporting --------------------- - -.. toctree:: - :maxdepth: 1 - :name: toc-learn-workflow-assets-escn_exporter - - material - physics - lights - mesh - skeleton - animation - - -Disabling specific objects --------------------------- - -Sometimes you don't want some objects exported (e.g. high-res models used for -baking). An object will not be exported if it is not rendered in the scene. -This can be set in the outliner: - -.. image:: img/hide.jpg - -Objects hidden in the viewport will be exported, but will be hidden in the -Godot scene. - - -Build pipeline integration --------------------------- - -If you have hundreds of model files, you don't want your artists to waste time -manually exporting their blend files. To combat this, the exporter provides a -Python function ``io_scene_godot.export(out_file_path)`` that can be called to -export a file. This allows easy integration with other build systems. An -example Makefile and Python script that exports all the blends in a directory -are present in the -`godot-blender-exporter repository `__. diff --git a/tutorials/assets_pipeline/escn_exporter/lights.rst b/tutorials/assets_pipeline/escn_exporter/lights.rst deleted file mode 100644 index 3705f50ee..000000000 --- a/tutorials/assets_pipeline/escn_exporter/lights.rst +++ /dev/null @@ -1,26 +0,0 @@ -Lights -====== -.. warning:: - By default, lamps in Blender have shadows enabled. This can cause - performance issues in Godot. - -.. warning:: - Lamps are exported using their "Blender Render" settings. When Blender 2.8 - is released, this will be removed and this part of the exporter will change. - -Sun, point and spot lamps are all exported from Blender along with many of their -properties: - -.. image:: img/light_properties.jpg - -There are some things to note: - - - In Blender, a light casts light all the way to infinity. In Godot, it is - clamped by the attenuation distance. To most closely match between the - viewport and Godot, enable the "Sphere" checkbox. (Highlighted green) - - Light attenuation models differ between Godot and Blender. The exporter - attempts to make them match, but it isn't always very good. - - Spotlight angular attenuation models also differ between Godot and Blender. - The exporter attempts to make them similar, but it doesn't always look the - same. - - There is no difference between buffer shadow and ray shadow in the export. diff --git a/tutorials/assets_pipeline/escn_exporter/material.rst b/tutorials/assets_pipeline/escn_exporter/material.rst deleted file mode 100644 index 9e3ef9030..000000000 --- a/tutorials/assets_pipeline/escn_exporter/material.rst +++ /dev/null @@ -1,69 +0,0 @@ -Materials -========= - -Using existing Godot materials ------------------------------- - -One way in which the exporter can handle materials is to attempt to match -the Blender material with an existing Godot material. This has the advantage of -being able to use all of the features of Godot's material system, but it means -that you cannot see your model with the material applied inside Blender. - -To do this, the exporter attempts to find Godot materials with names that match -those of the material name in Blender. So if you export an object in Blender -with the material name ``PurpleDots`` then the exporter will search for the -file ``PurpleDots.tres`` and assign it to the object. If this file is not a -``StandardMaterial3D`` or ``ShaderMaterial`` or if it cannot be found, then the -exporter will fall back to exporting the material from Blender. - - -Where the exporter searches for the ``.tres`` file is determined by the "Material -Search Paths" option: - -.. image:: img/material_search.jpg - -This can take the value of: - - Project Directory - Attempts to find the ``project.Godot`` and recursively - searches through subdirectories. If ``project.Godot`` cannot be found it - will throw an error. This is useful for most projects where naming conflicts - are unlikely. - - Export Directory - Look for materials in subdirectories of the export - location. This is useful for projects where you may have duplicate - material names and need more control over what material gets assigned. - - None - Do not search for materials. Export them from the Blender file. - - -Export of Cycles/EEVEE materials --------------------------------- - -The exporter has a primitive support for converting Cycles/EEVEE material node tree -to Godot Shader Material. Note that some of the Shader Node are not supported yet due to -difficulties in implementation, which are: - -- all the ``noisy textures`` -- ``generated texture coordinates`` -- ``group node`` -- shader nodes except ``PrincipledBSDF``, ``Diffuse``, ``Glossy``, ``Glass``, ``add shader`` and ``mix shader`` - -.. warning:: - - If possible, try to use PrincipledBSDF node with GGX distribution as the output shader - node, it is the only one guaranteed to be exactly correct. Others are just based on approximation. - -Sometimes materials may not be valid for exporting (e.g. has some unsupported node) or it -is using Blender Internal Engine, only the diffuse color and a few flags (e.g. unshaded) are -exported and form a StandardMaterial3D. - - -Generate external materials ---------------------------- - -The default configuration of material exporting would keep all the materials internal to -the ``escn`` file. There is an option which could enable generating external ``.material`` -file when the ``escn`` file opens in Godot. - -.. image:: img/external_mat_option.jpg - -``.material`` file can be assigned to any material slot to be an external resource. - -.. image:: img/gd_dot_material.jpg diff --git a/tutorials/assets_pipeline/escn_exporter/mesh.rst b/tutorials/assets_pipeline/escn_exporter/mesh.rst deleted file mode 100644 index 6ccc8c680..000000000 --- a/tutorials/assets_pipeline/escn_exporter/mesh.rst +++ /dev/null @@ -1,23 +0,0 @@ -Mesh -==== - -Modifiers ---------- -There is an exporting option :code:`Apply Modifiers` to -control whether mesh modifiers are applied to the exported mesh. - - -Shape Key ---------- -Exporting mesh shape key is supported, however exporting each shape key -is almost like exporting the mesh again, so don't be surprised -it takes a relatively long time. - -.. warning:: - A lot of modifiers are not compatible with shape keys - (e.g. subsurface modifier), so if you found you have - incorrect shape keys exported, try to disable :code:`Apply Modifiers` - and do the exporting again. Besides, it is worthwhile to report the - incompatible modifier to the `issue list - `__, - which helps to develop the exporter to have a more precise check of modifiers. diff --git a/tutorials/assets_pipeline/escn_exporter/physics.rst b/tutorials/assets_pipeline/escn_exporter/physics.rst deleted file mode 100644 index f13fb5a8e..000000000 --- a/tutorials/assets_pipeline/escn_exporter/physics.rst +++ /dev/null @@ -1,58 +0,0 @@ -Physics properties -================== - -Exporting physics properties is done by enabling "Rigid Body" in Blender's -physics tab: - -.. image:: img/enable_physics.png - -.. important:: - By default, a single Blender object with rigid body enabled will export as - three nodes: a PhysicsBody, a CollisionShape, and a MeshInstance3D. - -Body type ---------- - -Blender only has the concept of "Active" and "Passive" rigid bodies. These -turn into Static and RigidBody nodes. To create a kinematic body, enable the -"animated" checkbox on an "Active" body: - -.. image:: img/body_type.jpg - -Collision shapes ----------------- - -Many of the parameters for collision shapes are missing from Blender, and many -of the collision shapes are also not present. However, almost all of the -options in Blender's rigid body collision and rigid body dynamics interfaces -are supported: - -.. image:: img/collision_shapes.jpg - -There are the following caveats: - - Not all of the collision shapes are supported. Only ``Mesh``, ``Convex - Hull``, ``Capsule``, ``Sphere`` and ``Box`` are supported in both Blender and - Godot - - In Godot, you can have different collision groups and collision masks. In - Blender you only have collision groups. As a result, the exported object's - collision mask is equal to its collision group. Most of the time, this is - what you want. - -.. important:: - To build compound physics shapes, parent together multiple objects with - rigid body enabled. The physics properties are taken from the parent-most - rigid body, and the rest are used as collision shapes. - -Collision geometry only ------------------------ - -Frequently you want different geometry for your collision meshes and your -graphical meshes, but by default, the exporter will export a mesh along with the -collision shape. To only export the collision shape, set the object's maximum -draw type to Wire: - -.. image:: img/col_only.png - -This will also influence how the object is shown in Blender's viewport. -Most of the time, you want your collision geometry to be shown see-through when -working on the models, so this works out fairly nicely. diff --git a/tutorials/assets_pipeline/escn_exporter/skeleton.rst b/tutorials/assets_pipeline/escn_exporter/skeleton.rst deleted file mode 100644 index 58eca4ec4..000000000 --- a/tutorials/assets_pipeline/escn_exporter/skeleton.rst +++ /dev/null @@ -1,40 +0,0 @@ -Skeleton -======== - -.. image:: img/armature.jpg - -Rest Bone ---------- - -Armature object in Blender is exported as a Skeleton node along with -rest position (transform in Godot) of bones. - -.. warning:: - The three check boxes :code:`Inherit Rotation`, :code:`Inherit Scale`, - :code:`Local Location` (colored in red) must be ticked when building - armature in Blender, so that the exported bone transform be - consistent between Blender and Godot - -It is important that the mesh is not deformed by bones when exporting in Blender. Make sure -that the skeleton is reset to its T-pose or default rest pose. - -Bone Weights ------------- - -Blender puts rigged mesh vertices which have no bone weights at their original -position, but these vertices would be placed at (0, 0, 0) in Godot, making the mesh -deformed. Therefore, the exporter will raise an error for any vertex with no bone weights -detected in a rigged mesh. - -Non-Deform Bone ---------------- - -Note that the non-deform bone can be configured as not exported -by enabling the :code:`Exclude Control Bones`; the deform bone -checkbox is shown in the picture. - - -Bone Attachment ---------------- -A bone can be the parent of an object in Blender; this relation is exported -as a BoneAttachment node in the Godot scene.