importing_scenes.rst 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. .. _doc_importing_3d_scenes:
  2. Importing 3D scenes
  3. ===================
  4. Godot scene importer
  5. --------------------
  6. When dealing with 3D assets, Godot has a flexible and configurable importer.
  7. Godot works with *scenes*. This means that the entire scene being worked on in your favorite 3D DCC will be
  8. transferred as close as possible.
  9. Godot supports the following 3D *scene file formats*:
  10. - glTF 2.0 **(recommended)**. Godot has full support for both text (``.gltf``) and binary (``.glb``) formats.
  11. - ``.blend`` (Blender). This works by calling Blender to export to glTF in a
  12. transparent manner (requires Blender to be installed).
  13. - DAE (COLLADA), an older format that is fully supported.
  14. - OBJ (Wavefront) format + their MTL material files. This is also fully
  15. supported, but pretty limited given the format's limitations (no support for
  16. pivots, skeletons, animations, UV2, PBR materials, ...).
  17. - FBX, supported via `FBX2glTF <https://github.com/godotengine/FBX2glTF>`__ integration.
  18. This requires installing an external program that links against the proprietary FBX SDK,
  19. so we recommend using other formats listed above (if suitable for your workflow).
  20. Just copy the scene file together with the texture to the project repository, and Godot will do a full import.
  21. It is important that the mesh is not deformed by bones when exporting. Make sure that the skeleton is reset to its T-pose
  22. or default rest pose before exporting with your favorite 3D editor.
  23. Exporting glTF 2.0 files from Blender (recommended)
  24. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  25. There are 3 ways to export glTF files from Blender:
  26. - As a glTF binary file (``.glb``).
  27. - As a glTF text-based file with embedded binary data (``.gltf`` file)
  28. - As a glTF text-based file with separate binary data and textures (``.gltf``
  29. file + ``.bin`` file + textures).
  30. glTF binary files (``.glb``) are the smallest of the three options. They include
  31. the mesh and textures set up in Blender. When brought into Godot the textures
  32. are part of the object's material file.
  33. glTF embedded files (``.gltf``) function the same way as binary files. They
  34. don't provide extra functionality in Godot, and shouldn't be used since they
  35. have a larger file size.
  36. There are two reasons to use glTF with the textures separate. One is to have the
  37. scene description in a text based format and the binary data in a separate
  38. binary file. This can be useful for version control if you want to review
  39. changes in a text-based format. The second is you need the texture files
  40. separate from the material file. If you don't need either of those, glTF binary
  41. files are fine.
  42. .. warning::
  43. If your model contains blend shapes (also known as "shape keys" and "morph
  44. targets"), your glTF export setting **Export Deformation Bones Only** needs
  45. to be configured to **Enabled** under the Animation export configurations.
  46. Exporting non-deforming bones anyway will lead to incorrect shading.
  47. .. note::
  48. Blender versions older than 3.2 do not export emissive textures with the
  49. glTF file. If your model uses one and you're using an older version of
  50. Blender, it must be brought in separately.
  51. By default, Blender has backface culling disabled on materials and will
  52. export materials to match how they render in Blender. This means that
  53. materials in Godot will have their cull mode set to **Disabled**. This can
  54. decrease performance since backfaces will be rendered, even when they are
  55. being culled by other faces. To resolve this, enable **Backface Culling** in
  56. Blender's Materials tab, then export the scene to glTF again.
  57. Importing ``.blend`` files directly within Godot
  58. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  59. .. note::
  60. This functionality requires Blender 3.0 or later.
  61. From Godot 4.0 onwards, the editor can directly import ``.blend`` files by
  62. calling `Blender <https://www.blender.org/>`__'s glTF export functionality in a
  63. transparent manner.
  64. This allows you to iterate on your 3D scenes faster, as you can save the scene
  65. in Blender, alt-tab back to Godot then see your changes immediately. When
  66. working with version control, this is also more efficient as you no longer need
  67. to commit a copy of the exported glTF file to version control.
  68. To use ``.blend`` import, you must install Blender before opening the Godot
  69. editor (if opening a project that already contains ``.blend`` files). If you
  70. keep Blender installed at its default location, Godot should be able to detect
  71. its path automatically. If this isn't the case, configure the path to the
  72. Blender executable in the Editor Settings (**Filesystem > Import > Blender >
  73. Blender 3 Path**).
  74. If you keep ``.blend`` files within your project folder but don't want them to
  75. be imported by Godot, disable **Filesystem > Import > Blender > Enabled** in the
  76. advanced Project Settings.
  77. .. note::
  78. When working in a team, keep in mind using ``.blend`` files in your project
  79. will require *all* team members to have Blender installed. While Blender is
  80. a free download, this may add friction when working on the project.
  81. ``.blend`` import is also not available on the Android and web editors, as
  82. these platforms can't call external programs.
  83. If this is problematic, consider using glTF scenes exported from Blender
  84. instead.
  85. Exporting DAE files from Blender
  86. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  87. Blender has built-in COLLADA support, but it does not work properly for the
  88. needs of game engines and shouldn't be used as-is. However, scenes exported with
  89. the built-in Collada support may still work for simple scenes without animation.
  90. For complex scenes or scenes that contain animations, Godot provides a
  91. `Blender plugin <https://github.com/godotengine/collada-exporter>`_
  92. that will correctly export COLLADA scenes for use in Godot.
  93. Importing OBJ files in Godot
  94. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  95. OBJ is one of the simplest 3D formats out there, so Godot should be able to
  96. import most OBJ files successfully. However, OBJ is also a very limited format:
  97. it doesn't support skinning, animation, UV2 or PBR materials.
  98. There are 2 ways to use OBJ meshes in Godot:
  99. - Load them directly in a MeshInstance3D node, or any other property that
  100. expects as mesh (such as GPUParticles3D). This is the default mode.
  101. - Change their import mode to **OBJ as Scene** in the Import dock then restart
  102. the editor. This allows you to use the same import options as glTF or Collada
  103. scenes, such as unwrapping UV2 on import (for :ref:`doc_baked_lightmaps`).
  104. .. note::
  105. Blender 3.4 and later can export RGB vertex colors in OBJ files (this is a
  106. nonstandard extension of the OBJ format). Godot is able to import those
  107. vertex colors since Godot 4.0, but they will not be displayed on the
  108. material unless you enable **Vertex Color > Use As Albedo** on the material.
  109. Vertex colors from OBJ meshes keep their original color space once imported
  110. (sRGB/linear), but their brightness is clamped to 1.0 (they can't be
  111. overbright).
  112. Importing FBX files in Godot
  113. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  114. When opening a project containing FBX scenes, you will see a dialog asking you
  115. to configure FBX import. Click the link in the dialog to download a fbx2gltf
  116. binary, then extract the ZIP archive, place the binary anywhere you wish, then
  117. specify its path in the dialog.
  118. If you keep ``.fbx`` files within your project folder but don't want them to
  119. be imported by Godot, disable **Filesystem > Import > FBX > Enabled** in the
  120. advanced Project Settings.
  121. .. seealso::
  122. The full installation process for using FBX in Godot is described on the
  123. `FBX import page of the Godot website <https://godotengine.org/fbx-import>`__.
  124. Exporting textures separately
  125. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  126. While textures can be exported with a model in certain file formats, such as glTF 2.0, you can also export them
  127. separately. Godot uses PBR (physically based rendering) for its materials, so if a texturing program can export PBR
  128. textures they can work in Godot. This includes the `Substance suite <https://www.substance3d.com/>`__,
  129. `ArmorPaint (open source) <https://armorpaint.org/>`__, and `Material Maker (open source) <https://github.com/RodZill4/material-maker>`__.
  130. .. note:: For more information on Godot's materials, see :ref:`doc_standard_material_3d`.
  131. Exporting considerations
  132. ~~~~~~~~~~~~~~~~~~~~~~~~
  133. Since GPUs can only render triangles, meshes that contain quads or N-gons have
  134. to be *triangulated* before they can be rendered. Godot can triangulate meshes
  135. on import, but results may be unpredictable or incorrect, especially with
  136. N-gons. Regardless of the target application, triangulating *before* exporting
  137. the scene will lead to more consistent results and should be done whenever
  138. possible.
  139. To avoid issues with incorrect triangulation after importing in Godot, it is
  140. recommended to make the 3D DCC triangulate objects on its own. In Blender, this
  141. can be done by adding a Triangulate modifier to your objects and making sure
  142. **Apply Modifiers** is checked in the export dialog. Alternatively, depending on
  143. the exporter, you may be able to find and enable a **Triangulate Faces** option
  144. in the export dialog.
  145. To avoid issues with 3D selection in the editor, it is recommended to apply the
  146. object transform in the 3D DCC before exporting the scene.
  147. Import workflows
  148. ----------------
  149. Godot scene importer allows different workflows regarding how data is imported. Depending on many options, it is possible to
  150. import a scene with:
  151. * External materials (default): Where each material is saved to a file resource. Modifications to them are kept.
  152. * External meshes: Where each mesh is saved to a different file. Many users prefer to deal with meshes directly.
  153. * External animations: Allowing saved animations to be modified and merged when sources change.
  154. * External scenes: Save each of the root nodes of the imported scenes as a separate scene.
  155. * Single scene: A single scene file with everything built in.
  156. .. image:: img/scene_import1.png
  157. As different developers have different needs, this import process is highly customizable.
  158. Import options
  159. --------------
  160. The importer has several options, which will be discussed below:
  161. .. image:: img/scene_import2.png
  162. Nodes
  163. ~~~~~
  164. Root Type
  165. ^^^^^^^^^
  166. By default, the type of the root node in imported scenes is "Node3D", but this can be modified.
  167. Root Name
  168. ^^^^^^^^^
  169. Allows setting a specific name to the generated root node.
  170. Root Scale
  171. ^^^^^^^^^^
  172. The scale of the root node.
  173. Custom Script
  174. ^^^^^^^^^^^^^
  175. A special script to process the whole scene after import can be provided.
  176. This is great for post processing, changing materials, doing funny stuff
  177. with the geometry etc.
  178. Create a script like this:
  179. ::
  180. tool # Needed so it runs in the editor.
  181. extends EditorScenePostImport
  182. func post_import(scene):
  183. # Do your stuff here.
  184. return scene # remember to return the imported scene
  185. The ``post_import`` function takes the imported scene as argument (the
  186. parameter is actually the root node of the scene). The scene that
  187. will finally be used must be returned. It can be a different one.
  188. Storage
  189. ^^^^^^^
  190. By default, Godot imports a single scene. This option allows specifying
  191. that nodes below the root will each be a separate scene and instanced
  192. into the imported one.
  193. Of course, instancing such imported scenes in other places manually works, too.
  194. Materials
  195. ~~~~~~~~~
  196. Location
  197. ^^^^^^^^
  198. Godot supports materials in meshes or nodes. By default, materials will be put
  199. on each node.
  200. Storage
  201. ^^^^^^^
  202. Materials can be stored within the scene or in external files. By default,
  203. they are stored in external files so editing them is possible. This is because
  204. most 3D DCCs don't have the same material options as those present in Godot.
  205. When materials are built-in, they will be lost each time the source scene
  206. is modified and re-imported.
  207. .. note::
  208. Godot will not reimport materials that are stored in external files unless
  209. you remove the associated ``.material`` file before reimporting.
  210. To force reimporting materials every time the 3D scene is reimported, change
  211. the material storage mode in the 3D scene by selecting it in the FileSystem
  212. dock, going to the Import dock then setting **Material > Storage** to
  213. **Built-In** instead of **Files**.
  214. Keep On Reimport
  215. ^^^^^^^^^^^^^^^^
  216. Once materials are edited to use Godot features, the importer will keep the
  217. edited ones and ignore the ones coming from the source scene. This option
  218. is only present if materials are saved as files.
  219. Meshes
  220. ~~~~~~
  221. Compress
  222. ^^^^^^^^
  223. Makes meshes use less precise numbers for multiple aspects of the mesh in order
  224. to save space.
  225. These are:
  226. * Transform Matrix (Location, rotation, and scale) : 32-bit float to 16-bit signed integer.
  227. * Vertices : 32-bit float to 16-bit signed integer.
  228. * Normals : 32-bit float to 32-bit unsigned integer.
  229. * Tangents : 32-bit float to 32-bit unsigned integer.
  230. * Vertex Colors : 32-bit float to 32-bit unsigned integer.
  231. * UV : 32-bit float to 32-bit unsigned integer.
  232. * UV2 : 32-bit float to 32-bit unsigned integer.
  233. * Vertex weights : 32-bit float to 16-bit unsigned integer.
  234. * Armature bones : 32-bit float to 16-bit unsigned integer.
  235. * Array index : 32-bit or 16-bit unsigned integer based on how many elements there are.
  236. Additional info:
  237. * UV2 = The second UV channel for detail textures and baked lightmap textures.
  238. * Array index = An array of numbers that number each element of the arrays above; i.e. they number the vertices and normals.
  239. In some cases, this might lead to loss of precision, so disabling this option
  240. may be needed. For instance, if a mesh is very big or there are multiple meshes
  241. being imported that cover a large area, compressing the import of this mesh(es)
  242. may lead to gaps in geometry or vertices not being exactly where they should be.
  243. Ensure Tangents
  244. ^^^^^^^^^^^^^^^
  245. If textures with normal mapping are to be used, meshes need to have tangent arrays.
  246. This option ensures that these are generated if not present in the source scene.
  247. Godot uses `Mikktspace <http://www.mikktspace.com/>`__ for this,
  248. but it's always better to have them generated in the exporter.
  249. Storage
  250. ^^^^^^^
  251. Meshes can be stored in separate files (resources) instead of built-in. This does
  252. not have much practical use unless one wants to build objects with them directly.
  253. This option is provided to help those who prefer working directly with meshes
  254. instead of scenes.
  255. Light Baking
  256. ^^^^^^^^^^^^
  257. Whether or not the mesh is used in baked lightmaps.
  258. - **Disabled:** The mesh is not used in baked lightmaps.
  259. - **Enable:** The mesh is used in baked lightmaps.
  260. - **Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second UV layer for lightmaps.
  261. .. note:: For more information on light baking see :ref:`doc_using_lightmap_gi`.
  262. External Files
  263. ~~~~~~~~~~~~~~
  264. Generated meshes and materials can be optionally stored in a subdirectory with the
  265. name of the scene.
  266. Animation options
  267. -----------------
  268. Godot provides many options regarding how animation data is dealt with. Some exporters
  269. (such as Blender) can generate many animations in a single file. Others, such as
  270. 3DS Max or Maya, need many animations put into the same timeline or, at worst, put
  271. each animation in a separate file.
  272. .. image:: img/scene_import3.png
  273. Import of animations is enabled by default.
  274. .. attention::
  275. To modify animations from an imported 3D scene, you need to change the animation
  276. storage option from **Built-In** to **Files** in the Import dock. Otherwise,
  277. changes made to animations from Godot will be lost when the project is run.
  278. FPS
  279. ~~~
  280. Most 3D export formats store animation timeline in seconds instead of frames. To ensure
  281. animations are imported as faithfully as possible, please specify the frames per second
  282. used to edit them. Failing to do this may result in shaky animations.
  283. Filter Script
  284. ~~~~~~~~~~~~~
  285. It is possible to specify a filter script in a special syntax to decide which tracks from which
  286. animations should be kept.
  287. The filter script is executed against each imported animation. The syntax consists of two types of
  288. statements, the first for choosing which animations to filter, and the second for filtering
  289. individual tracks within the matched animation. All name patterns are performed using a case
  290. insensitive expression match, using ``?`` and ``*`` wildcards (using ``String.matchn()`` under the
  291. hood).
  292. The script must start with an animation filter statement (as denoted by the line beginning with an
  293. ``@``). For example, if we would like to apply filters to all imported animations which have a name
  294. ending in ``"_Loop"``::
  295. @+*_Loop
  296. Similarly, additional patterns can be added to the same line, separated by commas. Here is a
  297. modified example to additionally *include* all animations with names that begin with ``"Arm_Left"``,
  298. but also *exclude* all animations which have names ending in ``"Attack"``::
  299. @+*_Loop, +Arm_Left*, -*Attack
  300. Following the animation selection filter statement, we add track filtering patterns to indicate
  301. which animation tracks should be kept or discarded. If no track filter patterns are specified, then
  302. all tracks within the matched animations will be discarded!
  303. It's important to note that track filter statements are applied in order for each track within the
  304. animation, this means that one line may include a track, a later rule can still discard it.
  305. Similarly, a track excluded by an early rule may then be re-included once again by a filter rule
  306. further down in the filter script.
  307. For example: include all tracks in animations with names ending in ``"_Loop"``, but discard any
  308. tracks affecting a ``"Skeleton"`` which end in ``"Control"``, unless they have ``"Arm"`` in their
  309. name::
  310. @+*_Loop
  311. +*
  312. -Skeleton:*Control
  313. +*Arm*
  314. In the above example, tracks like ``"Skeleton:Leg_Control"`` would be discarded, while tracks such
  315. as ``"Skeleton:Head"`` or ``"Skeleton:Arm_Left_Control"`` would be retained.
  316. Any track filter lines that do not begin with a ``+`` or ``-`` are ignored.
  317. Storage
  318. ~~~~~~~
  319. By default, animations are saved as built-in. It is possible to save them to a file instead. This
  320. allows adding custom tracks to the animations and keeping them after a reimport.
  321. Optimizer
  322. ~~~~~~~~~
  323. When animations are imported, an optimizer is run, which reduces the size of the animation considerably.
  324. In general, this should always be turned on unless you suspect that an animation might be broken due to it being enabled.
  325. Clips
  326. ~~~~~
  327. It is possible to specify multiple animations from a single timeline as clips. For this to work, the model
  328. must have only one animation that is named ``default``. To create clips, change the clip amount to something
  329. greater than zero. You can then name a clip, specify which frames it starts and stops on, and choose whether
  330. the animation loops or not.
  331. .. If this PR (https://github.com/godotengine/godot/pull/36709) is merged for Godot 4.0 this section must
  332. be updated to reflect that for the 4.0 documentation.
  333. Scene inheritance
  334. -----------------
  335. In many cases, it may be desired to make modifications to the imported scene. By default, this is not possible because
  336. if the source asset changes (source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling app), Godot will re-import the whole scene.
  337. It is possible, however, to make local modifications by using *Scene Inheritance*. Try to open the imported scene and the
  338. following dialog will appear:
  339. .. image:: img/scene_import4.png
  340. In inherited scenes, the only limitations for modifications are:
  341. * Nodes can't be removed (but can be added anywhere).
  342. * Sub-Resources can't be edited (save them externally as described above for this)
  343. Other than that, everything is allowed!
  344. Import hints
  345. ------------
  346. Many times, when editing a scene, there are common tasks that need to be done after exporting:
  347. - Adding collision detection to objects.
  348. - Setting objects as navigation meshes.
  349. - Deleting nodes that are not used in the game engine (like specific lights used for modelling).
  350. To simplify this workflow, Godot offers several suffixes that can be added to
  351. the names of the objects in your 3D modelling software. When imported, Godot
  352. will detect suffixes in object names and will perform actions automatically.
  353. .. note::
  354. All the suffixes described below are *case-sensitive*.
  355. Remove nodes (-noimp)
  356. ~~~~~~~~~~~~~~~~~~~~~
  357. Objects that have the ``-noimp`` suffix will be removed at import-time no matter
  358. what their type is. They will not appear in the imported scene.
  359. Create collisions (-col, -convcol, -colonly, -convcolonly)
  360. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  361. The option ``-col`` will work only for Mesh objects. If it is detected, a child
  362. static collision node will be added, using the same geometry as the mesh. This
  363. will create a triangle mesh collision shape, which is a slow, but accurate
  364. option for collision detection. This option is usually what you want for level
  365. geometry (but see also ``-colonly`` below).
  366. The option ``-convcol`` will create a :ref:`class_ConvexPolygonShape3D` instead of
  367. a :ref:`class_ConcavePolygonShape3D`. Unlike triangle meshes which can be concave,
  368. a convex shape can only accurately represent a shape that doesn't have any
  369. concave angles (a pyramid is convex, but a hollow box is concave). Due to this,
  370. convex collision shapes are generally not suited for level geometry. When
  371. representing simple enough meshes, convex collision shapes can result in better
  372. performance compared to a triangle collision shape. This option is ideal for
  373. simple or dynamic objects that require mostly-accurate collision detection.
  374. However, in both cases, the visual geometry may be too complex or not smooth
  375. enough for collisions. This can create physics glitches and slow down the engine
  376. unnecessarily.
  377. To solve this, the ``-colonly`` modifier exists. It will remove the mesh upon
  378. importing and will create a :ref:`class_StaticBody3D` collision instead.
  379. This helps the visual mesh and actual collision to be separated.
  380. The option ``-convcolonly`` works in a similar way, but will create a :ref:`class_ConvexPolygonShape3D` instead.
  381. With Collada files the option ``-colonly`` can also be used with Blender's empty objects.
  382. On import, it will create a :ref:`class_StaticBody3D` with
  383. a collision node as a child. The collision node will have one of a number of predefined shapes,
  384. depending on Blender's empty draw type:
  385. .. image:: img/3dimp_BlenderEmptyDrawTypes.png
  386. - Single arrow will create a :ref:`class_SeparationRayShape3D`.
  387. - Cube will create a :ref:`class_BoxShape3D`.
  388. - Image will create a :ref:`class_WorldBoundaryShape3D`.
  389. - Sphere (and the others not listed) will create a :ref:`class_SphereShape3D`.
  390. When possible, **try to use a few primitive collision shapes** instead of triangle
  391. mesh or convex shapes. Primitive shapes often have the best performance and
  392. reliability.
  393. .. note::
  394. For better visibility on Blender's editor, you can set the "X-Ray" option
  395. on collision empties and set some distinct color for them by changing
  396. **Edit > Preferences > Themes > 3D Viewport > Empty**.
  397. If using Blender 2.79 or older, follow these steps instead:
  398. **User Preferences > Themes > 3D View > Empty**.
  399. .. seealso::
  400. See :ref:`doc_collision_shapes_3d` for a comprehensive overview of collision
  401. shapes.
  402. Create navigation (-navmesh)
  403. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  404. A mesh node with the ``-navmesh`` suffix will be converted to a navigation mesh.
  405. The original Mesh object will be removed at import-time.
  406. Create a VehicleBody (-vehicle)
  407. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  408. A mesh node with the ``-vehicle`` suffix will be imported as a child to a
  409. :ref:`class_VehicleBody3D` node.
  410. Create a VehicleWheel (-wheel)
  411. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  412. A mesh node with the ``-wheel`` suffix will be imported as a child to a
  413. :ref:`class_VehicleWheel3D` node.
  414. Rigid Body (-rigid)
  415. ~~~~~~~~~~~~~~~~~~~
  416. A mesh node with the ``-rigid`` suffix will be imported as a :ref:`class_RigidBody3D`.
  417. Animation loop (-loop, -cycle)
  418. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  419. Animation clips in the COLLADA document that start or end with the token ``loop`` or ``cycle``
  420. will be imported as a Godot Animation with the loop flag set.
  421. **Unlike the other suffixes described above, this does not require a hyphen.**
  422. In Blender, this requires using the NLA Editor and naming the Action with the ``loop`` or
  423. ``cycle`` prefix or suffix.