Блог


RayCast3D в Godot

RayCast3D в Godot — это узел, который позволяет бросать луч (ray) в 3D-пространстве и определять, пересекается ли он с объектами. Это мощный инструмент для обнаружения препятствий, определения расстояний, реализации выстрелов, взаимодействий с объектами и многого другого.


Основные функции:

  1. Бросок луча

    • Луч начинается в позиции узла и направляется вдоль его оси -Z (по умолчанию).
    • Длина луча задаётся через свойство target_position.
  2. Обнаружение столкновений

    • Если луч пересекает объект, RayCast3D возвращает информацию о точке столкновения, нормали и объекте.
    • Свойство enabled включает/выключает проверку столкновений.
  3. Фильтрация объектов

    • Используйте Collision Mask и Collision Layer, чтобы указать, с какими объектами может сталкиваться луч.
    • Исключайте определённые объекты через exclude_parent или exclude (список объектов).
  4. Динамическое обновление

    • Луч автоматически обновляется каждый кадр, если enabled = true.

PathFollow3D в Godot

PathFollow3D в Godot — это узел, который позволяет объектам двигаться вдоль пути, заданного родительским узлом Path3D. Он автоматически обновляет позицию, вращение и масштаб объекта в зависимости от его положения на кривой. Это ключевой инструмент для создания движения по заданным траекториям, например, для врагов, транспорта или анимации камеры.


Основные функции:

  1. Движение по пути

    • Управляется через свойство progress (пройденное расстояние в единицах) или progress_ratio (относительное положение от 0 до 1).
    • Пример:
      $PathFollow3D.progress += speed * delta  # Движение вперёд
  2. Автоматическое вращение

    • Если включено rotation_mode (Rotation Mode), объект поворачивается вдоль кривой (например, поезд следует за изгибами рельсов).
    • Доступные режимы: ORIENTATION_NONE, ORIENTATION_Y, ORIENTATION_XYZ.
  3. Зацикливание

    • Свойство loop определяет, будет ли объект возвращаться в начало пути после достижения конца.
  4. Смещение и наклон

    • position_offset и rotation_offset позволяют корректировать позицию и угол объекта относительно пути.

Path3D в Godot

Path3D в Godot — это узел, предназначенный для создания и управления 3D-путями на основе кривых (Curve3D). Он позволяет задавать маршруты, по которым могут двигаться объекты (например, персонажи, враги, транспорт) с помощью дочернего узла PathFollow3D. Вот ключевые аспекты его работы и применения:


Основные функции :

  1. Создание пути через Curve3D

    • Path3D содержит кривую, которая определяет форму пути.
    • Кривая состоит из точек (add_point), которые можно редактировать в редакторе или через код.
    • Поддерживает создание плавных изгибов с помощью контрольных точек (используйте Shift + перетаскивание в редакторе) .
  2. Интеграция с PathFollow3D

    • Дочерние узлы PathFollow3D автоматически перемещаются вдоль кривой.
    • Управление движением осуществляется через свойство progress (пройденное расстояние) или progress_ratio (относительное положение от 0 до 1) .
  3. Относительная система координат

    • Путь считается относительным к позиции PathFollow3D, поэтому кривая обычно начинается с точки (0, 0, 0) .
  4. События

    • Сигнал curve_changed вызывается при изменении кривой, что полезно для динамического обновления маршрута .

OccluderInstance3D в Godot

OccluderInstance3D в Godot — это узел, предназначенный для оптимизации рендеринга 3D-сцен через окклюзионный каллинг (скрытие объектов, невидимых камере). Он улучшает производительность, особенно в закрытых или полуоткрытых средах, где геометрия перекрывается другими объектами (например, стенами, зданиями).


Основные функции :

  1. Создание окклюдеров
    Окклюдеры — это упрощённые геометрические формы, которые "блокируют" видимость объектов за ними. Godot использует их, чтобы определить, какие части сцены можно не рендерить.

    • Автоматическое выпекание (baking) окклюдеров из статичной геометрии сцены (например, стен).
    • Ручное добавление примитивов: QuadOccluder3D, BoxOccluder3D, SphereOccluder3D, PolygonOccluder3D.
  2. Работа с CPU
    Окклюдеры рендерятся на CPU с помощью библиотеки Embree в низком разрешении. Это позволяет движку быстро проверять, какие объекты скрыты.

  3. Динамическое управление
    Окклюдеры можно перемещать или скрывать во время выполнения, но это вызывает пересчёт в фоне (занимает несколько кадров). Рекомендуется использовать их статично или обновлять редко .

NavigationLink3D в Godot

NavigationLink3D в Godot — это узел, предназначенный для создания связей между точками навигационной сетки (navmesh), которые позволяют агентам (например, NPC или врагам) перемещаться по нестандартным маршрутам, таким как телепорты, лестницы, прыжковые платформы или зиплайны. Он расширяет возможности навигации, добавляя пути, которые невозможно выразить через обычную сетку.


Основные функции и свойства :

  1. Соединение точек

    • start_position и end_position — начальная и конечная позиции связи. Они привязываются к ближайшим полигонам навигационной сетки в радиусе, заданном в настройках проекта (default_link_connection_radius).
    • bidirectional — определяет, можно ли перемещаться по связи в обоих направлениях (по умолчанию true).
  2. Управление стоимостью пути

    • enter_cost — стоимость "входа" в связь (добавляется к расстоянию пути при переходе из другого региона).
    • travel_cost — множитель для расстояния, пройденного по связи (используется для определения оптимального маршрута).
  3. Слои навигации

    • navigation_layers — битовая маска, указывающая, к каким слоям навигации принадлежит связь. Это позволяет разделять маршруты для разных типов агентов.
  4. Активация/деактивация

    • enabled — если false, связь игнорируется при поиске пути.

NavigationAgent3D в Godot

NavigationAgent3D в Godot — это узел, который управляет перемещением объектов (например, персонажей, врагов) по навигационной сетке (navmesh). Он автоматически вычисляет путь, избегает препятствий и корректирует маршрут в реальном времени, упрощая реализацию ИИ-движения. Это ключевой компонент для создания NPC, которые могут ходить, преследовать игрока или патрулировать уровни.


Основные функции:

  1. Поиск пути
    Находит оптимальный маршрут от текущей позиции объекта до цели, учитывая навигационную сетку (NavigationRegion3D) и динамические препятствия (NavigationObstacle3D).

  2. Сглаживание пути
    Устраняет резкие повороты, делая движение более естественным.

  3. Избегание препятствий
    Динамически корректирует путь, если на маршруте появляются движущиеся объекты.

  4. Сигналы для управления движением
    Генерирует события (например, velocity_computed), чтобы синхронизировать перемещение с физикой игры.

NavigationObstical3D в Godot

NavigationObstacle3D в Godot — это узел, предназначенный для динамических препятствий, которые влияют на перемещение AI-агентов в реальном времени. Он позволяет объектам, которые движутся или изменяются во время игры, корректно взаимодействовать с навигационной сеткой (navmesh), заставляя агенты обходить их.


Основные функции:

  1. Динамическое обновление навигации
    Препятствие автоматически "блокирует" участки навмеша, через которые нельзя пройти, без необходимости пересобирать сетку. Это критически важно для движущихся объектов (например, врагов, дверей, разрушаемых стен).

  2. Работа с NavigationAgent3D
    Агенты (NavigationAgent3D) учитывают NavigationObstacle3D при поиске пути, обходя их в реальном времени.

  3. Настройка формы и параметров
    Можно задать радиус, высоту и форму препятствия через дочерний узел CollisionShape3D или CollisionPolygon3D.

NavigationRegion3D в Godot

NavigationRegion3D в Godot — это узел, предназначенный для создания и управления навигационными сетками (navmesh) в 3D-пространстве. Он используется для реализации ИИ-перемещения персонажей, врагов или других объектов по заранее заданным "проходимым" областям уровня.


Основные функции:

  1. Навигационная сетка (NavMesh)
    Определяет зоны, по которым могут перемещаться агенты (например, полы, платформы, дороги). Непроходимые объекты (стены, пропасти) исключаются из сетки.

  2. Генерация (Baking)
    Навигационная сетка автоматически генерируется (выпекается) на основе геометрии уровня. Для этого используется ресурс NavigationMesh, который настраивается через параметры.

  3. Поиск пути
    С помощью методов NavigationServer3D или узла NavigationAgent3D можно находить оптимальный маршрут между двумя точками в пределах навигационной сетки.

  4. Динамическое обновление
    Навмеш можно перестраивать во время выполнения игры (например, при разрушении объектов или изменении уровня).

AudioStreamPlayer3D в Godot

AudioStreamPlayer3D в Godot — это узел, предназначенный для воспроизведения пространственных 3D-звуков в игровой сцене. Он учитывает положение источника звука относительно AudioListener3D (точки "прослушивания"), чтобы создать эффект направления, расстояния и затухания звука, что делает аудио более реалистичным.


Основные функции:

  1. Позиционирование звука
    Звук меняет громкость и панораму (левый/правый канал) в зависимости от позиции:

    • Чем дальше объект от слушателя — тем тише звук.
    • Звуки слева будут громче в левом динамике, справа — в правом.
  2. Настройки затухания (Attenuation)
    Регулирует, как быстро звук теряет громкость с расстоянием:

    • Attenuation Model: алгоритм затухания (Linear, Logarithmic, Disable).
    • Max Distance: максимальное расстояние, на котором звук ещё слышен.
    • Unit Size: масштаб для корректной работы затухания (соответствует единицам измерения в сцене).
  3. Эффекты и параметры

    • Pitch Scale: изменение тональности звука (например, для ускорения/замедления).
    • Volume dB: громкость в децибелах.
    • Stream: аудиофайл (поддерживает форматы .wav, .ogg, .mp3).
  4. Автовоспроизведение
    Можно включить свойство Autoplay, чтобы звук запускался сразу при старте сцены.

AudioListener3D в Godot

AudioListener3D в Godot — это узел, который определяет точку прослушивания в 3D-пространстве, откуда будут слышны все звуки, воспроизводимые через AudioStreamPlayer3D. Он работает как "уши" игрока и необходим для корректного позиционирования 3D-звуков (панорамирование, громкость в зависимости от расстояния).


Основные функции:

  1. Пространственный звук
    Позволяет 3D-звукам (например, шагам, взрывам, голосам) изменять громкость и стерео-баланс в зависимости от позиции слушателя относительно источника звука.

  2. Активация слушателя
    В сцене может быть только один активный AudioListener3D. Если добавить несколько, активным будет последний включенный.

  3. Привязка к камере
    Обычно AudioListener3D прикрепляют к камере игрока, чтобы звуковая перспектива совпадала с визуальной.

GridMap в Godot

GridMap в Godot — это инструмент для создания сеточных карт (grid-based maps) в 3D-пространстве. Он позволяет быстро строить уровни, лабиринты, комнаты или другие структуры из повторяющихся блоков (плиток), как в конструкторе. Это аналог 2D-TileMap, но для 3D-проектов.


Основные функции:

  1. Сетка с ячейками
    Пространство делится на сетку с фиксированным размером ячеек (например, 1x1x1 метр). В каждую ячейку можно поместить 3D-меш (например, куб, платформу, стену).

  2. Библиотека мешей (MeshLibrary)
    Вы создаете коллекцию мешей (плиток) в ресурсе MeshLibrary, который затем назначается GridMap. Каждая плитка имеет уникальный ID и может включать:

    • 3D-меш,
    • материалы,
    • коллизии (для физики),
    • настраиваемые свойства (например, тип поверхности).
  3. Слои (Layers)
    Можно работать с несколькими слоями, чтобы накладывать объекты друг на друга (например, пол + стены + декорации).

  4. Автоматическое соединение мешей
    Некоторые меши (например, стены или пол) могут автоматически адаптировать свою форму к соседним плиткам (аналогично работе 2D-TileMap с автотайлами).

VisibleOnScreenEnabler3D в Godot

VisibleOnScreenEnabler3D в Godot — это узел-наследник VisibleOnScreenNotifier3D, предназначенный для автоматического включения/выключения определенных процессов у дочерних объектов, когда они находятся в зоне видимости камеры. Он упрощает оптимизацию производительности, управляя ресурсоемкими операциями без написания дополнительного кода.


Основные функции:

  1. Автоматическое управление процессами
    Позволяет выбрать, какие функции объекта должны активироваться только при видимости на экране. Поддерживает:
    • physics (физика: _process, _physics_process),
    • animations (анимации),
    • particles (системы частиц),
    • audio (звуки),
    • и другие процессы.
  2. Наследует функционал VisibleOnScreenNotifier3D
    Использует те же сигналы (screen_entered, screen_exited) и механизм проверки видимости через AABB (границы объекта).
  3. Гибкая настройка через инспектор
    Включает/выключает процессы через галочки в свойствах узла.

VisibleOnScreenNotifier3D в Godot

VisibleOnScreenNotifier3D в Godot — это узел, который отслеживает, находится ли привязанный к нему 3D-объект в поле зрения камеры. Он используется для оптимизации производительности или запуска логики, когда объект становится видимым/невидимым на экране.


Основные функции:

  1. Определение видимости
    Узел вычисляет, попадает ли его AABB (Axis-Aligned Bounding Box) в область видимости камеры. Если да — объект считается видимым.

  2. События (сигналы):

    • screen_entered: вызывается, когда объект появляется в поле зрения камеры.
    • screen_exited: вызывается, когда объект исчезает из поля зрения.
  3. Оптимизация
    Позволяет автоматически останавливать ресурсоёмкие процессы (например, анимации, частицы, физику), когда объект не виден, чтобы снизить нагрузку на CPU/GPU.

ImporterMeshInstance3D в Godot

ImporterMeshInstance3D в Godot — это специальный тип узла, который используется движком во время импорта 3D-моделей (например, из файлов .gltf, .glb, .fbx, .obj). Он является частью системы импорта и позволяет настраивать параметры мешей (сеток) перед их окончательным преобразованием в стандартные узлы MeshInstance3D.


Основные функции:

  1. Настройка импорта
    Позволяет задавать параметры для конкретного экземпляра меша:

    • Генерация коллизий (например, автоматическое создание CollisionShape3D).
    • Управление уровнями детализации (LOD).
    • Назначение материалов.
    • Выбор частей меша для анимации или физики.
  2. Работа в редакторе
    Узел автоматически создается при импорте 3D-моделей. Его параметры настраиваются через Import Dock (панель импорта), которая появляется при выборе файла в папке проекта.

  3. Временный объект
    После завершения импорта ImporterMeshInstance3D заменяется на обычный MeshInstance3D с учетом заданных настроек. В финальной сцене этот узел не сохраняется.

ReflectionProbe в Godot

ReflectionProbe — это компонент в Godot Engine, предназначенный для создания динамических или статических отражений в 3D-сценах. Он захватывает окружающую среду в заданной области и использует эти данные для реалистичного отображения отражений на металлических, зеркальных или других отражающих поверхностях. Это ключевой инструмент для улучшения визуального качества материалов, таких как металл, стекло или вода.


Основные возможности

  1. Захват окружения:
    ReflectionProbe создает кубическую текстуру (кубемап), фиксируя окружающие объекты и освещение в своей зоне влияния.

  2. Режимы работы:

    • Static (статический): Отражения запекаются один раз и не обновляются.
    • Dynamic (динамический): Отражения обновляются в реальном времени (ресурсоемко).
  3. Настройка зоны:
    Определите область влияния через параметры Extents (размер) и Origin Offset (смещение).

  4. Интенсивность и маски:

    • Intensity регулирует яркость отражений.
    • Cull Mask задает, какие объекты участвуют в формировании отражений

LightmapProbe и LightmapGI в Godot

LightmapProbe в Godot — это компонент, связанный с системой запекания освещения (Lightmap GI). Он используется для улучшения качества глобального освещения в статичных 3D-сценах, позволяя более точно захватывать и распространять непрямой свет. Однако в Godot 4.0+ этот компонент был заменен на более современные решения, такие как LightmapGI и SDFGI. Разберемся, как это работает.


LightmapProbe в Godot 3.x

В Godot 3.x пробы (Probes) добавлялись через узел BakedLightmap для уточнения освещения в сложных областях:

  1. Функция:
    Пробы размещались вручную или автоматически для захвата информации о непрямом освещении.
  2. Использование:
    • Добавляли BakedLightmap в сцену.
    • Настраивали зону запекания и плотность проб.
    • Запускали процесс Bake для расчета световых карт.

LightmapGI в Godot 4.0+

В Godot 4 система запекания освещения была переработана:

  1. LightmapGI:

    • Полностью заменяет BakedLightmap из Godot 3.x.
    • Использует пробы автоматически, без ручной настройки.
    • Поддерживает динамические объекты через LightmapProbe (но в документации явно не упоминается отдельный узел).
  2. Как использовать:

    • Добавьте узел LightmapGI в сцену.
    • Настройте параметры запекания (разрешение, качество).
    • Запустите Bake через интерфейс редактора.

VoxelGI в Godot

VoxelGI (Voxel-based Global Illumination) — это компонент в Godot Engine, предназначенный для расчета глобального освещения (непрямого света) и отражений в 3D-сценах. Он использует воксельную (объемную) сетку для моделирования распространения света, создавая более реалистичное освещение, чем стандартные методы. Однако в Godot 4.0 и новее VoxelGI считается устаревшим и заменен на более современные технологии, такие как SDFGI (Signed Distance Field Global Illumination).


Основные особенности VoxelGI

  1. Непрямое освещение:
    Рассчитывает, как свет отражается от поверхностей и освещает другие объекты (например, красная стена отбрасывает красный оттенок на соседние предметы).

  2. Отражения:
    Создает приближенные отражения для металлических и гладких поверхностей.

  3. Воксельная сетка:
    Делит сцену на трехмерные кубы (вокселы) для расчета освещения. Чем выше разрешение сетки, тем точнее результат, но тем больше нагрузка на производительность.

  4. Требует запекания (Baking):
    Освещение рассчитывается заранее (offline) и сохраняется в файлы данных. Это не подходит для полностью динамических сцен.

RootMotionView в Godot

RootMotionView — это компонент в Godot Engine, предназначенный для визуализации и отладки root motion (перемещения корневой кости) в анимациях персонажей. Он помогает разработчикам точно контролировать, как анимации влияют на движение объекта в пространстве, особенно когда используется техника root motion (когда перемещение персонажа управляется данными анимации, а не кодом).


Для чего нужен RootMotionView?

  1. Визуализация root motion:
    Отображает вектор перемещения корневой кости (например, движение ног при ходьбе/беге), чтобы убедиться, что анимация корректно влияет на позицию персонажа.

  2. Интеграция с AnimationTree:
    Работает совместно с нодой AnimationTree, где root motion извлекается из анимации и применяется к трансформациям персонажа.

  3. Отладка анимаций:
    Позволяет увидеть, как анимация перемещает объект в пространстве, даже если сам персонаж управляется физикой или скриптами.

BoneAttachment3D в Godot

BoneAttachment3D — это компонент в Godot Engine, который позволяет привязывать дочерние объекты к определенным костям скелета (Skeleton3D). Это ключевой инструмент для создания динамических элементов, которые должны двигаться вместе с анимированным персонажем или объектом, например, оружия в руке, шляпы на голове или частиц вокруг магического посоха.


Основные возможности

  1. Привязка к костям:
    Объект автоматически наследует трансформации (позицию, вращение, масштаб) выбранной кости.

    var bone_attachment = BoneAttachment3D.new()
    bone_attachment.bone_name = "hand_right" # Имя кости в Skeleton3D
    add_child(bone_attachment)
  2. Динамическое обновление:
    При изменении позы кости (например, во время анимации) все дочерние объекты BoneAttachment3D будут двигаться вместе с ней.

  3. Смещение позиции:
    Можно задать локальное смещение относительно кости через свойства position, rotation и scale узла.

  4. Работа с несколькими скелетами:
    Если в сцене есть несколько Skeleton3D, можно выбрать конкретный скелет через свойство skeleton.

Skeleton3D в Godot

Skeleton3D — это ключевой компонент в Godot Engine, предназначенный для управления 3D-скелетами и создания анимаций. Он позволяет работать с иерархией костей, управлять их трансформациями, а также интегрировать физику (например, ragdoll) и модификаторы для сложных анимаций. Вот основные аспекты этого компонента:


Основные функции

  1. Управление костями:

    • Создание иерархии костей с родительскими и дочерними связями.
    • Настройка позы (текущее положение, вращение, масштаб) и расслабленной позы (исходное состояние костей).
    • Возможность программного изменения позы через методы, такие как set_bone_pose() или set_bone_global_pose().
  2. Анимации и модификаторы:

    • Интеграция с системой анимаций Godot (класс Animation).
    • Использование модификаторов (например, SkeletonModifier3D) для постобработки поз, включая инверсную кинематику (IK) или физические эффекты .
  3. Физика (ragdoll):

    • Поддержка симуляции физики для костей через PhysicalBone3D, что позволяет создавать реалистичные взаимодействия с окружением (например, падение персонажа) .
  4. Работа с кожей (Skin):

    • Привязка мешей к костям с помощью Skin, что обеспечивает деформацию модели в реальном времени (например, движение мышц или одежды) .


Материалы 81 - 100 из 182
Начало | Пред. | 3 4 5 6 7 | След. | Конец