Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Logic Bricks — это система визуального программирования в Cave.

Они позволяют создавать игровое поведение, соединяя узлы, а не напрямую писать код на Python.

cave-nocode-b.png

Этот урок вводит, что такое Logic Bricks, где они находятся, как работают и когда их следует использовать. Позже вы изучите всю систему подробнее, но этот обзор поможет понять место Logic Bricks в рабочем процессе Cave.

Видео-урок

У нас есть полный видео-урок о том, как начать работу с Logic Bricks. Рекомендуем его посмотреть.

Смотреть на YouTube

Это лучший способ глубоко изучить их.

Если вы хотите продолжить здесь, то давайте кратко познакомимся:


Что такое Logic Bricks?

Logic Bricks — это визуальные графы логики, позволяющие быстро создавать логику без написания кода.

image.png

Если вы знакомы с другими системами визуального программирования, например, Blueprints в Unreal Engine, то каждый Brick — это узел. В Cave для терминологии применяют слово "Bricks". Bricks могут представлять различные виды логики:

  • События.
  • Действия.
  • Значения.
  • Математику.
  • Строки.
  • Утилиты движка.
  • Операции с Entity.
  • Операции с Component.
  • Ссылки на Asset.
  • Функции.

Вы строите поведение, соединяя друг с другом эти bricks.

Если вы новичок в программировании, Logic Bricks могут быть дружелюбным способом начать создавать взаимодействия, так как поведение видно в виде графа.

Например, простой граф может означать:

Когда игрок касается этого триггера:
  Открыть дверь.
  Воспроизвести звук.
  Отключить триггер.

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

Это не полный курс по Logic Bricks

Этот урок — лишь обзор.

Logic Bricks могут быть гораздо сложнее:

  • Функции.
  • Контроль потока.
  • Сокеты значений.
  • Отладка во время выполнения.
  • Комментарии.
  • ブриксы для работы с Asset.
  • Многоразовые графы.
  • Интеграция с State Machine.

Эти темы заслуживают отдельных уроков позже.

Сейчас важно понять роль Logic Bricks: это визуальный способ создавать поведение, связывать системы, прототипировать взаимодействия и заставлять игровые объекты реагировать на события.

Если хотите полный туториал, смотрите это.

Logic Bricks как Asset

Граф Logic Bricks — это asset. Вы создаёте его в Asset Browser, так же, как сцены, Python скрипты, timelines, материалы или entity templates.

Как asset, он может:

  • Иметь имя.
  • Организовываться в папках.
  • Выбираться в Asset Browser.
  • Редактироваться во вкладке Properties.
  • Использоваться в нескольких entity.
  • Сохраняться вместе с проектом.

Важно понимать: сам граф — это содержимое проекта.

Например, вы можете создать asset Door Logic и использовать его для нескольких дверей. Позже, изменив граф, эти двери смогут использовать обновлённое поведение в зависимости от структуры повторного использования.

Logic Bricks Component

Чтобы запустить Logic Bricks asset в игре, прикрепите его к entity через Logic Bricks Component.

image.png

Компонент выбирает, какой Logic Bricks asset использовать. Во время выполнения создаётся отдельный экземпляр графа для каждой сущности.

Это значит:

  • Asset определяет общее поведение.
  • Каждая сущность получает свой экземпляр логики.
  • Один граф может использоваться многими сущностями.

Это похоже на то, как reusable Python скрипт запускается на многих сущностях отдельно.

Многоразовые Logic Bricks

Logic Bricks переиспользуемы, и это одно из их больших достоинств.

Например, можно создать Logic Bricks asset Open Door и несколько дверей использовать один и тот же граф.

Многоразовое использование удобно, когда:

  • Много объектов имеют одинаковое поведение.
  • Каждому объекту нужны немного разные локальные значения.
  • Хотите улучшить поведение в одном месте.
  • Хотите сохранить порядок в проекте.

Это похоже на:

Многоразовый Asset Использующие
Python Script Python Components
Entity Template Экземпляры в сценах
Material Сущности с мешами
Logic Bricks Logic Bricks Components

Вместо копирования графа повсюду, вы храните один asset поведения и настраиваете сущности.

Свойства Logic Bricks

Logic Bricks могут иметь свойства.

Эти свойства синхронизируются в Logic Bricks Component, где могут иметь локальные значения.

Например, универсальный граф урона может содержать:

  • Максимальное здоровье.
  • Количество урона.
  • Время перезарядки урона.
  • Целевой тег.
  • Нужно ли уничтожать объект после активации.

Каждая сущность, использующая граф, может иметь свои значения.

Одна ловушка с шипами может наносить небольшой урон, тогда как область лавы использует ту же логику с большим уроном.

События потока

Логика обычно начинается с событий.

Распространённые события потока:

Событие Когда происходит
On Start При запуске логики
On First Update При первом обновлении после старта
On Update Повторяется во время обновления игры
On Paused Update Пока разрешены обновления на паузе
On Late Update Позже в цикле обновлений
On End При завершении логики

События — это точки входа графа.

Без события или другого триггера граф не начнёт работать.

Поток логики

Поток логики определяет, что происходит и в каком порядке. Сокеты потока связывают события и действия.

Например:

image.png

Это значит, что действие "печать" запускается при старте графа.

Важно помнить:

Тип соединения Назначение
Потоковые соединения Определяют, когда запускаются действия
Значения Передают данные для действий

Когда это становится понятным, Logic Bricks значительно проще читать.

Более сложные графы могут ветвиться, делать задержки, планировать, вызывать функции, читать значения, модифицировать сущности и взаимодействовать с компонентами.

Отладка во время выполнения

Logic Bricks могут показывать полезную обратную связь во время тестирования.

Когда сущность выбрана в режиме Play, выполненные bricks и связи можно подсвечивать, чтобы видеть, что сработало:

image.png

Отладка помогает понять:

  • Выполнилось ли событие?
  • Прошла ли проверка условия?
  • Выполнилось ли действие?
  • Дошёл ли граф до нужного объекта?
  • Появились ли ошибки в Консоли?

Если, например, дверь не открылась, такой вывод поможет проверить, сработал ли триггер, прошли ли условия и достигло ли действие двери.

После теста при выборе логической bricks в левом нижнем углу отображается сколько раз она выполнялась и среднее время выполнения.

Logic Bricks в State Machine

Logic Bricks используются не только в качестве самостоятельных компонентов. Их можно применять внутри State Machines.

Например:

  • Состояния State Machine могут включать Logic Bricks для поведения.
  • Переходы могут использовать Logic Bricks для условий.

State Machines будут объяснены позже, но полезно знать, что Logic Bricks могут быть частью более крупных систем поведения.

Это значит, что визуальная логика подходит как для простых взаимодействий, так и для организованного поведения, например, состояний врагов.

Когда использовать Logic Bricks

Logic Bricks подходят для:

  • Новичков, изучающих игровую логику.
  • Дизайнеров, предпочитающих визуальное представление.
  • Быстрых прототипов.
  • Простых взаимодействий.
  • Триггеров.
  • Логики UI.
  • Повторно используемых игровых событий.
  • Связывания систем.

Хорошие примеры для начинающих:

  • Плита давления, открывающая дверь.
  • Подбираемый предмет, восстанавливающий здоровье.
  • Триггер, запускающий Timeline.
  • UI кнопка, меняющая сцены.
  • Опасность, наносящая урон игроку.
  • Контрольная точка, сохраняющая позицию.

Для очень больших или сложных систем Python может быть удобнее для организации. Для многих игровых взаимодействий Logic Bricks быстрые, визуальные и легко проверяемые.

Простое правило

Визуальное программирование в Cave Engine имеет эквивалентность с API Python один к одному, то есть каждая функция, доступная через код, должна быть доступна и через Logic Bricks. Это значит, что вы можете свободно выбирать, что использовать для создания логики вашей игры:

  • Используйте Logic Bricks, если хотите видеть поведение в виде графа.
  • Используйте Python, когда логику проще выразить кодом.
  • Можно комбинировать оба подхода!

Обе технологии входят в Cave, и многие проекты используют визуальную логику для одних систем и Python для других.