Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Node type customization using name suffixes

Při úpravách scény se často vyskytují běžné úkony, které je třeba provést po exportu:

  • Přidání detekce kolizí k objektům.

  • Nastavení objektů jako navigačních sítí.

  • Deleting nodes that are not used in the game engine (like specific lights used for modeling).

To simplify this workflow, Godot offers several suffixes that can be added to the names of the objects in your 3D modeling software. When imported, Godot will detect suffixes in object names and will perform actions automatically.

Varování

All the suffixes described below are case-sensitive.

Odstranění uzlů (-noimp)

Objekty s příponou -noimp budou při importu odstraněny bez ohledu na jejich typ. V importované scéně se neobjeví.

This is equivalent to enabling Skip Import for a node in the Advanced Import Settings dialog.

Vytvoření kolizí (-col, -convcol, -colonly, -convcolonly)

Volba -col funguje pouze pro objekty Mesh. Pokud je detekována, bude přidán podřízený statický kolizní uzel se stejnou geometrií jako síť. Tím se vytvoří trojúhelníkový kolizní tvar sítě, což je pomalá, ale přesná možnost detekce kolize. Tato volba je obvykle to, co chcete pro geometrii úrovní (ale viz také -colonly níže).

The option -convcol will create a ConvexPolygonShape3D instead of a ConcavePolygonShape3D. Unlike triangle meshes which can be concave, a convex shape can only accurately represent a shape that doesn't have any concave angles (a pyramid is convex, but a hollow box is concave). Due to this, convex collision shapes are generally not suited for level geometry. When representing simple enough meshes, convex collision shapes can result in better performance compared to a triangle collision shape. This option is ideal for simple or dynamic objects that require mostly-accurate collision detection.

V obou případech však může být vizuální geometrie příliš složitá nebo nedostatečně plynulá pro kolize samotné. To může způsobovat závady ve fyzice a zbytečně zpomalovat engine.

To solve this, the -colonly modifier exists. It will remove the mesh upon importing and will create a StaticBody3D collision instead. This helps the visual mesh and actual collision to be separated.

The option -convcolonly works in a similar way, but will create a ConvexPolygonShape3D instead using convex decomposition.

With Collada files, the option -colonly can also be used with Blender's empty objects. On import, it will create a StaticBody3D with a collision node as a child. The collision node will have one of a number of predefined shapes, depending on Blender's empty draw type:

Choosing a draw type for an Empty on creation in Blender

Choosing a draw type for an Empty on creation in Blender

Pokud je to možné, pokuste se místo trojúhelníkové sítě nebo vypouklých tvarů použít několik primitivních kolizních tvarů. Primitivní tvary mají často nejlepší výkon a spolehlivost.

Poznámka

For better visibility on Blender's editor, you can set the "X-Ray" option on collision empties and set some distinct color for them by changing Edit > Preferences > Themes > 3D Viewport > Empty.

If using Blender 2.79 or older, follow these steps instead: User Preferences > Themes > 3D View > Empty.

Viz také

Komplexní přehled kolizních tvarů naleznete v Kolizní tvary(3D).

Vytvoření navigace (-navmesh)

Uzel sítě s příponou -navmesh bude převeden na navigační síť. Původní objekt Mesh bude při importu odstraněn.

Vytvořit VehicleBody (-vehicle)

A mesh node with the -vehicle suffix will be imported as a child to a VehicleBody3D node.

Vytvoření kola VehicleWheel (-wheel)

A mesh node with the -wheel suffix will be imported as a child to a VehicleWheel3D node.

Rigid Body (-rigid)

A mesh node with the -rigid suffix will be imported as a RigidBody3D.

Animační smyčka (-loop, -cycle)

Animation clips in the source 3D file that start or end with the token loop or cycle will be imported as a Godot Animation with the loop flag set. Unlike the other suffixes described above, this does not require a hyphen.

V programu Blender je k tomu nutné použít editor NLA a pojmenovat akci předponou nebo příponou loop nebo cycle.