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 могут представлять множество видов логики:

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

Вы создаете поведение, соединяя Bricks вместе.

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

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

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

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

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

Этот урок является лишь общим обзором.

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

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

Эти темы заслуживают отдельного изучения позже.

На данный момент цель — понять роль Logic Bricks: они являются визуальным способом создания поведения, соединения систем, прототипирования взаимодействий и заставления игровых объектов реагировать на события.

Если вы хотите полноценный учебник по Logic Bricks, пожалуйста, посмотрите это.

Активы Logic Bricks

Граф Logic Bricks является активом. Вы создаете его в браузере активов, так же как вы создаете сцены, Python-скрипты, временные линии, материалы или шаблоны сущностей.

Поскольку это актив, он может быть:

  • Назван.
  • Организован в папках.
  • Выбран в браузере активов.
  • Отредактирован во вкладке свойств.

  • Переиспользован несколькими сущностями.

  • Сохранен с проектом.

Это важно: сам граф является содержимым проекта.

Например, вы можете создать актив Логика Двери и использовать его на нескольких дверях. Позже, если вы улучшите граф, эти двери могут разделять обновленное поведение в зависимости от того, как вы структурируете переиспользуемую настройку.

Компонент Logic Bricks

Чтобы запустить актив Logic Bricks в игре, прикрепите его к сущности с Компонентом Logic Bricks.

image.png

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

Это означает:

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

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

Переиспользуемые Logic Bricks

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

Например, вы можете создать один актив Logic Bricks под названием Открыть Дверь. Затем несколько сущностей дверей могут использовать один и тот же граф.

Переиспользуемая логика хорошо работает, когда:

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

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

Переиспользуемый актив Переиспользуется
Python-скрипт Python-компоненты.
Шаблон сущности Экземпляры сцены.
Материал Сущности меша.
Logic Bricks Компоненты Logic Bricks.

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

Свойства Logic Bricks

Logic Bricks могут предоставлять свойства.

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

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

  • Макс. здоровье.
  • Сумма урона.
  • Ожидание урона.
  • Тег цели.
  • Нужно ли уничтожать объект после срабатывания.

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

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

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

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

Распространенные события потока включают:

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

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

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

Поток логики

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

Например:

image.png

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

Важное различие для новичков:

Тип соединения Цель
Потоковые соединения Определяют, когда выполняются действия.
Соединения значений Предоставляют данные для этих действий.

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

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

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

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

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

image.png

Отладка во время выполнения может помочь ответить на вопросы, такие как:

  • Сработало ли событие?
  • Прошло ли условие?
  • Выполнилось ли действие?
  • Достиг ли граф правильного объекта?
  • Было ли сообщение об ошибке напечатано в консоль?

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

Когда вы выбираете logic brick после тестирования игры, она также показывает в нижнем левом углу экрана, сколько раз она была выполнена и среднее время выполнения.

Logic Bricks в автоматах состояний

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

Например:

  • Состояние автомата состояний может использовать Logic Bricks для своего поведения.
  • Переход может использовать Logic Bricks для своего условия.

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

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

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

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

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

Хорошими примерами начала могут стать:

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

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

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

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

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

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