Блог


AspectRatioContainer в Godot

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


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

  1. Сохранение соотношения сторон

    • Контейнер поддерживает заданное соотношение сторон (например, 16:9, 4:3, 1:1).
    • Если размер контейнера изменяется, дочерний элемент масштабируется, чтобы сохранить пропорции.
  2. Гибкость

    • Можно задать соотношение сторон через свойство ratio.
    • Поддерживает различные режимы выравнивания (alignment), чтобы управлять положением дочернего элемента внутри контейнера.
  3. Автоматическое обновление

    • Контейнер автоматически пересчитывает размеры дочернего элемента при изменении своих размеров.

Container в Godot

Container в Godot — это базовый класс для всех контейнерных узлов, которые автоматически управляют расположением и размером своих дочерних элементов. Контейнеры используются для создания гибких и адаптивных пользовательских интерфейсов (UI), где элементы должны выравниваться, распределяться или изменять размер в зависимости от содержимого или размеров родительского контейнера.


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

  1. Автоматическое управление layout
    Контейнеры автоматически изменяют размер и позицию дочерних элементов в зависимости от своих настроек (например, выравнивание, отступы, направление).

  2. Поддержка различных типов контейнеров
    Godot предоставляет множество встроенных контейнеров, таких как HBoxContainer, VBoxContainer, GridContainer, CenterContainer и другие.

  3. Гибкость
    Контейнеры можно комбинировать для создания сложных интерфейсов. Например, VBoxContainer внутри HBoxContainer создаёт строки и столбцы.

  4. Реакция на изменения
    Контейнеры автоматически обновляют layout при изменении размеров окна, добавлении или удалении дочерних элементов.

XR (Extended Reality) в Godot

В Godot компоненты XRNode3D, XRCamera3D, XROrigin3D, XRController3D и XRAnchor3D используются для работы с виртуальной (VR) и дополненной реальностью (AR). Они являются частью системы XR (Extended Reality) и помогают управлять камерами, контроллерами, якорями и другими элементами в XR-сценах. Давайте разберём каждый из них подробнее.


1. XRNode3D

XRNode3D — это базовый узел для всех XR-объектов. Он представляет собой точку отсчёта в XR-пространстве и используется для управления позицией, вращением и масштабом объектов, связанных с XR.

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

  • Управление трансформацией (позиция, вращение, масштаб) в XR-пространстве.
  • Связь с физическими устройствами (например, контроллерами или камерами).

2. XRCamera3D

XRCamera3D — это узел, который представляет камеру в XR-сцене. Она автоматически синхронизируется с позицией и ориентацией VR/AR-устройства (например, шлема или смартфона).

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

  • Отображение сцены с точки зрения пользователя.
  • Автоматическое обновление позиции и вращения в зависимости от движений головы.

3. XROrigin3D

XROrigin3D — это корневой узел для XR-сцены. Он определяет начало координат в XR-пространстве и используется для управления всеми XR-объектами (камерами, контроллерами, якорями).

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

  • Управление глобальной трансформацией XR-сцены.
  • Синхронизация с физическим пространством (например, комнатой в VR).

4. XRController3D

XRController3D — это узел, который представляет контроллер в XR-сцене (например, VR-руки или джойстики). Он автоматически синхронизируется с физическими контроллерами.

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

  • Отслеживание позиции и вращения контроллера.
  • Обработка ввода (например, кнопки, триггеры).

5. XRAnchor3D

XRAnchor3D — это узел, который представляет якорь в XR-сцене. Якоря используются для фиксации объектов в реальном мире (например, в AR) или для создания стабильных точек в VR.

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

  • Фиксация объекта в реальном мире (например, стол, стена).
  • Синхронизация с физическим окружением.

Как всё это работает вместе:

  1. Создайте XROrigin3D как корневой узел для XR-сцены.
  2. Добавьте XRCamera3D для отображения сцены с точки зрения пользователя.
  3. Добавьте XRController3D для управления контроллерами.
  4. Используйте XRAnchor3D для фиксации объектов в реальном мире (например, в AR).

RemoteTransform3D в Godot

RemoteTransform3D в Godot — это узел, который позволяет синхронизировать трансформацию (позицию, вращение, масштаб) одного узла с другим. Он "копирует" трансформацию целевого узла (remote_path) и применяет её к своему родительскому узлу. Это полезно для создания зеркальных объектов, управления группами объектов или синхронизации движений.


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

  1. Синхронизация трансформации

    • Позиция, вращение и масштаб целевого узла копируются на родительский узел RemoteTransform3D.
    • Можно выбрать, какие компоненты синхронизировать: update_position, update_rotation, update_scale.
  2. Гибкость

    • Можно использовать как для статичных, так и для динамических объектов.
    • Поддерживает изменение целевого узла во время выполнения.
  3. Относительная трансформация

    • Если use_global_coordinates = false, трансформация применяется относительно локальных координат целевого узла.

SpringArm3D в Godot

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


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

  1. Автоматическое отдаление

    • Камера отодвигается от объекта, если между ними находится препятствие.
    • Использует RayCast3D для обнаружения столкновений.
  2. Настройка расстояния

    • spring_length: максимальное расстояние от объекта до камеры.
    • margin: дополнительный отступ от препятствий.
  3. Сглаживание движения

    • damping: коэффициент сглаживания движения камеры (чем выше, тем плавнее).
  4. Фильтрация объектов

    • Используйте Collision Mask, чтобы указать, с какими объектами может сталкиваться луч.

ShapeCast3D в Godot

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


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

  1. Бросок формы

    • Форма задаётся через свойство shape (например, SphereShape3D, BoxShape3D, CapsuleShape3D).
    • Форма перемещается из начальной позиции узла в направлении target_position.
  2. Обнаружение столкновений

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

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

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

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 с учетом заданных настроек. В финальной сцене этот узел не сохраняется.


Материалы 141 - 160 из 451
Начало | Пред. | 6 7 8 9 10 | След. | Конец