Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Настройка типов узлов при помощи суффиксов в названиях

Часто при редактировании сцены есть общие задачи, которые необходимо выполнить после экспорта:

  • Добавление обнаружения столкновений объектов.

  • Настройка объектов в качестве навигационной сетки.

  • Удаление узлов, которые не используются в игровом движке (например, определенные источники света, используемые для моделирования).

Для упрощения рабочего процесса Godot предлагает несколько суффиксов, которые можно добавлять к названиям объектов в вашей программе для 3D-моделирования. При импорте Godot распознаёт суффиксы в названиях объектов и автоматически выполняет необходимые действия.

Предупреждение

Все описанные ниже суффиксы могут использоваться с -, $ и _ и нечувствительны к регистру.

Отказ от участия

Если вы не хотите, чтобы Godot выполнял какие-либо из действий, описанных ниже, вы можете установить для параметра импорта nodes/use_node_type_suffixes значение false. Это отключит все суффиксы типов узлов, что сохранит узлы того же типа, что и указанный в исходном файле. Однако суффикс -noimp по-прежнему будет учитываться, равно как и неузловые суффиксы, такие как -vcol или -loop.

В качестве альтернативы вы можете полностью отказаться от всех суффиксов имен, установив для параметра импорта nodes/use_name_suffixes значение false. Это полностью остановит просмотр суффиксов имен общим кодом импорта сцены. Однако код импорта, специфичный для формата, может по-прежнему учитывать суффиксы имен, например, импортер glTF может проверять наличие суффикса -loop.

Отключение этих параметров делает импортированные редактором файлы более похожими на исходные файлы и более похожими на импортированные во время выполнения файлы. Для рабочего процесса импорта, который работает во время выполнения, дает более предсказуемые результаты и имеет только явно определенное поведение, рассмотрите возможность установки этих параметров на false и использования вместо этого GLTFDocumentExtension.

Удаление узлов и анимаций (-noimp)

Узлы и анимации, имеющие суффикс -noimp, будут удалены во время импорта независимо от их типа. Они не будут отображаться в импортированной сцене.

Это эквивалентно включению параметра Skip Import для узла в Advanced Import Settings dialog.

Создание столкновений (-col, -convcol, -colonly, -convcolonly)

Параметр -col будет работать только для объектов Mesh. Если это обнаружено, будет добавлен дочерний статический узел столкновения, использующий ту же геометрию, что и сетка. Это создаст форму столкновения треугольной сетки, которая является медленным, но точным вариантом для обнаружения столкновений. Этот параметр обычно подходит для геометрии уровня (но см. также -colonly ниже).

Параметр -convcol создаст ConvexPolygonShape3D вместо ConcavePolygonShape3D. В отличие от треугольных сеток, которые могут быть вогнутыми, выпуклая форма может точно представлять только форму без вогнутых углов (пирамида выпуклая, а полый параллелепипед вогнутый). В связи с этим выпуклые формы коллизий, как правило, не подходят для геометрии уровня. При представлении достаточно простых сеток выпуклые формы коллизий могут обеспечить лучшую производительность по сравнению с треугольными формами коллизий. Этот параметр идеально подходит для простых или динамических объектов, требующих максимально точного обнаружения коллизий.

Однако в обоих случаях визуальная геометрия может быть слишком сложной или недостаточно гладкой для столкновений. Это может привести к физическим сбоям и неоправданному замедлению движка.

Для решения этой проблемы существует модификатор -colonly. Он удаляет сетку при импорте и вместо неё создаёт столкновение StaticBody3D. Это помогает разделить визуальную сетку и фактическое столкновение.

Опция -convcolonly работает аналогичным образом, но вместо этого создает ConvexPolygonShape3D, используя выпуклое разложение.

В файлах Collada параметр -colonly также можно использовать с пустыми объектами Blender. При импорте будет создан класс StaticBody3D с дочерним элементом — узлом коллизии. Узел коллизии будет иметь одну из нескольких предопределенных форм в зависимости от типа отрисовки пустого объекта Blender:

Выбор типа отрисовки для Empty при создании в Blender

Выбор типа отрисовки для Empty при создании в Blender

По возможности, попробуйте использовать несколько примитивных форм столкновения вместо треугольной сетки (triangle mesh) или выпуклых фигур (convex shapes). Примитивные формы часто имеют лучшую производительность и надёжность.

Примечание

Для лучшей видимости в редакторе Blender можно включить опцию «X-Ray» для пустых объектов столкновений и задать для них определенный цвет, выбрав Edit > Preferences > Themes > 3D Viewport > Empty.

Если вы используете Blender 2.79 или более позднюю версию, выполните следующие действия: User Preferences > Themes > 3D View > Empty.

См. также

См. Формы столкновений (3D) для исчерпывающего обзора форм столкновения.

Создать Окклюдер (-occ, -occonly)

Если сетка импортируется с суффиксом -occ, узел Occluder3D будет создан на основе геометрии сетки, но не заменит её. Узел сетки с суффиксом -occonly будет преобразован в узел Occluder3D при импорте.

Создание навигации (-navmesh) (создание навигации)

Узел сетки с суффиксом -navmesh будет преобразован в сетку навигации. Исходный объект Mesh будет удален во время импорта.

Создать VehicleBody (-vehicle) (тело-транспортное средство)

Узел сетки с суффиксом -vehicle будет импортирован как дочерний элемент узла VehicleBody3D.

Создать VehicleWheel (-wheel) (колесо транспортного средства)

Узел сетки с суффиксом -wheel будет импортирован как дочерний элемент узла VehicleWheel3D.

Твердое тело (-rigid)

Узел сетки с суффиксом -rigid будет импортирован как RigidBody3D.

Цикл анимации (-loop, -cycle)

Анимационные клипы в исходном 3D-файле, начинающиеся или заканчивающиеся токеном loop или cycle, будут импортированы как Godot Animation с установленным флагом цикла. В отличие от других суффиксов, описанных выше, этот не требует дефиса.

В Blender для этого требуется использование NLA редактора и именование Действия (Action) с суффиксом или префиксом loop или cycle.

Материал альфа (-alpha)

Материал с суффиксом -alpha будет импортирован с режимом прозрачности TRANSPARENCY_ALPHA.

Цвет вершины материала (-vcol)

Материал с суффиксом -vcol будет импортирован с установленными флагами FLAG_ALBEDO_FROM_VERTEX_COLOR и FLAG_SRGB_VERTEX_COLOR.