Remove Blender ESCN exporter pages.
@@ -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
|
||||
|
||||
|
@@ -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.
|
||||
|
Before Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 69 KiB |
@@ -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 <doc_importing_3d_scenes_available_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 <https://github.com/godotengine/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 <https://docs.godotengine.org/en/4.0/tutorials/assets_pipeline/escn_exporter/index.html>`__.
|
||||
|
||||
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 <https://github.com/godotengine/godot-blender-exporter>`__.
|
||||
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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
|
||||
<https://github.com/godotengine/godot-blender-exporter/issues>`__,
|
||||
which helps to develop the exporter to have a more precise check of modifiers.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||