воскресенье, 26 сентября 2021 г.

Игровая логика

Игровая логика


Мы немного познакомились с основами моделирования и анимации, теперь настала очередь погрузиться в основную тему «Создание игр». Для создания игрового взаимодействия между объектами используют, так называемую, «игровую логику». Для её настройки нужно открыть окно «Game logic»

Рис. 1. Игровая логика в Blender 2.79b.

Для каждого объекта на сцене можно настроить логику поведения. Настраивается она с помощью трёх основных элементов логики: сенсорконтроллерактуатор.

Рис.2. Игровая логика в Blender 2.79b.

Кроме основных элементов, есть четвертый, который также может влиять на результат – это игровое свойство.

Пройдёмся по порядку. Сенсор – это элемент, который указывает, когда и при каких условиях должен запуститься тот или иной процесс. Сенсором может выступать: клавиатура (набор клавиш), мышь, игровое свойство, столкновение с объектом, нахождением рядом какого-то объекта, джойстик или можно указать чтобы действие происходило всегда и многое другое.

Рис.3. Игровая логика в Blender 2.79b.

Контроллер – оператор математической логики, а также он может быть полноценным скриптом, в котором заложен и оператор, и результат (актуатор).

Рис.4. Игровая логика в Blender 2.79b.

Контроллер выдаёт истинность или ложь для тех сенсоров, которые должны активизировать актуатор. Ниже представлена таблица истинности для этих операторов.

Table 1 «Таблица истинности»

AB   A и BA или BA и-не BA или-не BA искл. Или BA искл. или-не B
11110001
01011010
10011010
00001101

Здесь A и B можно воспринимать как сенсоры. Значение 1 — истина, а 0 – это ложь.

Контроллер «Выражение» — имеет окно для написания логического выражения со множеством сенсоров. В примерах мы не будем применять данный контроллера, так как он относится к теории математической логики.

При истинности работы сенсора активизируется актуатор.  Актуатор – это результат игровой логики сенсора (ов) и контроллера (ов).
Примерами актруатора может быть: движение объекта, удаление или замена объекта, переход между сценами или перезапуск сцены, запуск отдельных игровых файлов, движение за объектом, изменение игрового свойства и анимация объекта, и многое другое.

Рис.5. Игровая логика в Blender 2.79b.
Рис.6. Игровая логика в Blender 2.79b.

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

Основные элементы игровой логики были представлены. Более подробная механика создания игр будет рассмотрена в разделе «Игры и приложения».

Перейти к остальным статьям книги

Анимация в Blender

Важность анимации


Почти в любой игре присутствуют объекты с тем или иным повторяющимся действием или действием, которое проявляется при сочетании условий. Все эти действия были заранее записаны. Создание таких действий и есть анимация. Самая простая анимация — это создание движения тела или части тела в пространстве. Для того чтобы созданное движение повторялось, его необходимо записать.

За запись анимации отвечает окно «Временная шкала», которое, по умолчанию, располагается в нижней части редактора.

Рис.42 Временная шкала в Blender 2.79b.

По умолчанию, для анимации отводиться 250 кадров. Число кадров вы можете менять, вписывая в поле «Конец:» нужное количество кадров. Необходимо помнить, что среднее значение кадров в секунду составляет 24 — 25 кадров.  Если будет меньше чем 24 кадра в секунду, то тогда анимация будет быстрой и резкой, если больше – то медленной.

В поле, где отображены два ключика необходимо выбрать что необходимо записывать: перемещение (location), вращение (rotation), изменение размера (scale) или их комбинацию. Параметров записи анимации множество и это отдельная тема.

Создадим анимацию, для примера, движения куба по оси X.
Для этого выберем, что записывать будем перемещение (location). Затем выделим наш куб и нажмём ЛКМ по значку «Ключик», рядом с параметром записи. В результате, на временной шкале появится жёлтая вертикальная линия – это маркер, показывающий, что кадр записан.

Рис.43 Запись анимации в Blender 2.79b.

Выберем 25 кадр, поставив зелёную метку ЛКМ. Далее необходимо сдвинуть куб по оси X и нажать на значок «Ключ». В результате у вас получиться, размеченная временная шкала. Для каждого кадра должно соответствовать разное перемещение куба. Если отмечены кадры, но перед отметкой вы не сдвигали куб, то анимации не будет.

Рис.44 Запись анимации в Blender 2.79b.

Из этого описания вытекает алгоритм действий:

— выделить нужный объект

— выбрать вид записи анимации

— поставить метку на нужный кадр

— записать кадр, нажатием значка «Ключ»

— выбрать следующий кадр меткой

— провести над объектом действия, которые будут записываться

— записать кадр, нажатием значка «Ключ»

Далее процесс повторяется, пока вы не достигните нужного результата.

Изучить все статьи по Blender можно ЗДЕСЬ

3d модели

Принцип создания 3d моделей для игр


Как было ранее указано, 3d модели создаются из меш-объектов. Есть два основных режима моделирования: «правка объекта», «режим скульптинга».

В режиме «правка объекта» есть три подрежима: выделение вершин, выделение рёбер и выделение граней.

Режимы редактирования объекта в Blender 2.79b.

При выборе одного из них мы можем редактировать объект по вершинам, рёбрам или граням. Редактирование проходит с помощью правой и левой кнопок мыши.

Режимы редактирования объекта в Blender 2.79b.

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

Перед тем как приступить к примерам по моделированию тел, нужно остановиться на инструментарии, который появляется в режиме «правка объекта».

Инструменты режима редактирования объекта в Blender 2.79b.

Чаще всего использую инструмент: «Подразделить», «Выдавить» и «Нож».
Инструмент «Подразделить» разбивает на 4 равные части каждую выделенную грань или на 2 части каждое ребро.

Инструменты режима редактирования объекта в Blender 2.79b.

Второй инструмент «Выдавить» или, по-другому, он называется «Экструдировать» вытягивает элемент выделенного объекта. Горячая клавиша, которая отвечает за выдавливания  — «Е» английского алфавита.

Вытягивание граней из объекта в Blender 2.79b.

Чтобы вытянуть, необходимо:
—  выделить грань

— нажать клавишу Е

— перемещать мышь в нужную сторону.

Для того чтобы поменять направления выдавливания, достаточно нажать клавишу R (или R + нужная ось) и поворачивать грань в нужную плоскость. Если нам нужно изменить размер вытягиваемой грани, то используем клавишу S (или S + нужная ось).

Для примера приведём несколько инструкций по моделированию. Касательно премудростей моделирования, то есть множество книг и видеоуроков. Поэтому на этом мы не будем сильно акцентировать внимания.

А) Моделирование стула (стола)

— создадим куб и сплющим его по оси Z (команда S+Z)

Стул в Blender 2.79b.
Стул в Blender 2.79b.

Далее, переходим в режим «правка объекта» и подразделяем 3 раза (можно 2).

Обратите внимание на то, что все грани перед началом подразделения должны быть выделены.

С помощью нажатого колёсика мышки и её перемещением повернём сцену так, чтобы отображалась нижняя часть нашего стула. А затем выделим одну крайнюю грань ПКМ. Далее удержим нажатой клавишу Shift и выделим все крайние грани.

Стул в Blender 2.79b.

Выдавим выделенные грани с помощью клавиши E.

Стул в Blender 2.79b.

Теперь, уменьшим площадь нижней грани ножки стола, поочерёдно проводя операцию. Уменьшайте на глаз. За изменение размера отвечает клавиша S.

Стул в Blender 2.79b.

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

Стул в Blender 2.79b.

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

Стул в Blender 2.79b.

Сузим верх спинки и наклоним её, с помощью сдвига по оси Y.

Стул в Blender 2.79b.
Мебельный гарнитур в Blender 2.79 b

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

Стулья можно сделать из каждого отдельного куба, а можно дублировать с помощью комбинации клавиш Shift + D.

Здесь мы кратко ознакомились с процессом моделирования и теперь пришла очередь перейти к анимации. Если вы хотите, чтобы ваши персонажи выглядели согласно теме игры, то вам необходимо изучить 3d моделирование.

Далее, пост будет посвящён создания анимации объектов в blender.
Содержание всех статей по Blender можно найти

Редактор Blender

Знакомство с редактором blender 3D


Перед тем как начать создавать игры, необходимо установить 3d редактор blender 2.79b.
Его можно скачать, пройдя по ссылке https://download.blender.org/release/Blender2.79/

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

На момент написания книги вышла версия blender 2.82, которые уже не содержат игрового движка blender. Игровой движок для данной версии blender вынесен отдельно и носит название Armory https://armory3d.org/

Подход создания игр в движке Armory схож с описанным в книге, но есть существенные различия. Схож в использовании блоков для программирования, а различен в подходе программирования игры и дополнительной реализации с использованием разных языков программирования:

  • Python для игр blender 2.79 и  ниже
  • Haxe для Armory в интеграции с blender 2.8X

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

Вернёмся к процедуре установки blender 2.79. Рекомендую скачать файл с расширением .msi.
Но перед тем как приступить к скачиванию узнайте разрядность вашей операционной системы: 32- х или 64 — х битная.

Если вы не знаете версии вашей системы, то откройте окно «Мой компьютер» (Этот компьютер), т.е. то окно где отображаются все ваши локальные диски, подключённые к компьютеру.

Рис.1 Окно «Этот компьютер»

Нажмите правой кнопкой мыши по пустой области окна, чтобы вызвать контекстное меню и выберите параметр «Свойства». Перед вами откроется второе окно, где будет содержаться сведения о вашей операционной системе.

Рис.2. Определение разрядности операционной системы.

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

Как только файл blender-2.79bwindowsXX.msi будет скачен, то необходимо его запустить и следовать инструкциям «установщика». В результате успешной установки, на рабочем столе появится значок в виде оранжевого глаза.

Рис.3. Логотип blender.

Откроем установленный редактор и перед нами предстанет такой вид.

Рис.4. Редактор Blender 2.79b.

Как видно, поверх основного окна есть небольшое окно с информацией. На данном окне отображается версия blender, ссылки на документацию и информация о последних проектах, созданных в редакторе, которые можно запустить. Если он открыт у вас впервые, то последней информации на данном окне не будет.

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

Введём некоторые условные обозначения:

— Левая кнопка мыши (ЛКМ)

— Правая кнопка мыши (ПКМ)

Как только верхнее информационное окно исчезнет, перед нами предстанет вид редактора: в центре находиться 3d окно сцены, для создания модели (сцены из моделей) с последующей обработкой и рендерингом. В левом окне присутствует инструментарий, который непосредственно воздействует на выделенный объект, в правом – инструментарий для настройки, как сцены в целом, так и для выделенного объекта. Окна в редакторе не зафиксированы и поэтому порядок их может меняться, а скрытых окон там достаточно много.

Рис.5. Редактор Blender 2.79b.

Если вы заметите, то многие элементы русифицированы. Переключение на кириллицу осуществляется через вкладку File – User Preference – System

В данном окне необходимо поставить галочку и активировать локализацию, как показано на рис. 6 и 7.

Рис.6. Локализация Blender 2.79b.
Рис.7. Локализация Blender 2.79b.

Процедура локализации пройдена, осталось нажать на кнопку «Сохранить настройки» и закрыть данное окно.

В данном разделе я не буду подробно останавливаться на обзоре инструментария blender, так как это не относится к теме книги. Более подробную информацию можно подчерпнуть из книг по blender автора Андрея Прахова или изучить официальную документацию https://www.blender.org/get-involved/

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

Начнём наш обзор с центрального окна. По умолчанию, центральное окно отображает 3d сцену, на которой отображается созданная модель или целая композиция. На этой сцене сразу отображается геометрический примитив в виде куба, «камера» и источник точечного освещения.

Рис.8. 3D сцена в Blender 2.79b.

Расположение камеры и освещения влияет на конечный результат отображения созданного проекта. Посмотреть, как отображаются в реальности объекты можно с помощью клавиши F12. Такой процесс отображения называется рендеринг.

Рис.9. 3D сцена в Blender 2.79b.

Положение всех объектов в сцене можно менять.  Рассмотрим основные горячие клавиши и комбинации клавиш, которые часто используются.

Для того чтобы посмотреть на со стороны камеры, используют клавишу «0» на дополнительной клавиатуре Num Lock.

Рис.10. Вид с камеры в Blender 2.79b.

Дополнительная клавиатура NumLock содержит функции для отображения проекций – просмотр с разных плоскостей пространства:
1 – вид спереди

3 – вид справа

7 – вид сверху

5 – отображение сцены в двух режимах: перспектива и ортогональная проекция.

2,4,6,8 – вращение по осям

9 – вращение на


Для правильного расположения всех объектов на сцене, часто, используют отображения сцены в четырёх проекциях: вид сверху, вид спереди, вид справа и 3d вид всей сцены. Переход между 3d сценой и отображении четырёх окон проекций осуществляется комбинацией клавиш: Alt+Ctrl+Q.

Рис.11. Сцена с четырьмя видами в Blender 2.79b.

Рассмотрим следующий набор распространённых команд:

ПКМ – выделяет объект и с помощью движения мыши объект перемещается в пространстве.

ЛКМ – фиксирует положение выделенного объекта.

A – выделение всех объектов в сцене (если в режиме «объект») или выделяет все полигоны на объекте (если режим «правка объекта»)

R – вращение выделенного объекта в плоскости: XY, ZX, ZY. При втором нажатии – вращение объекта в пространстве XYZ.

R + X  — вращение по оси X

R + Y – вращение по оси Y

R + Z – вращение по оси Z

S – изменение размера объекта равномерно по осям.
S + X – изменение размера объекта по оси X

S + Y – изменение размера объекта по оси Y

S + Z – изменение размера объекта по оси Z

G – выполняет функцию ПКМ

В blender заложены стандартные примитивы, из которых создают 3d модели и анимируют их.
Данные примитивы носят название «Мешы». Все они могут быть вызваны из вкладки «Создать». По умолчанию, данная вкладка находиться в левой части окна blender.

Рис.12 Мешы в Blender 2.79b.

С помощью нажатия клавиши «N» можно вывести окно с дополнительными свойствами по каждому объекту: положение, вращение, масштаб, размер и т.д.

Рис.13 Свойства меша в Blender 2.79b.

В крайнем правом окне blender находятся очень интересные инструменты. Например, на рис. 13 изображена вкладка «Визуализация». Она нужна для настройки качества отображения рендеринга с последующим сохранением в виде изображения или видеокадров. Для разработки игр, эта часть не всегда нужна, если вы не делает заставочные ролики к этапам игр или началу игры.

Во вкладке «Сцена» можно настроить её отображение из множества камер, если они присутствуют на сцене. Также можно указать единицы измерения объектов, рис 14..

Рис.14 Сцена в Blender 2.79b.

Также можно выбрать отображение углов: в градусах или радианах, рис 15.

Рис.15 Углы в Blender 2.79b.

На рис. 16 представлен пример отображения размеров куба при выборе некоторых свойств сцены.

Рис.16 Углы в Blender 2.79b.

Это очень хороший инструмент, который поможет точно позиционировать объекты в игре.

Во вкладке «World» можно настроить однотонный или градиентный фон мира (сцены) в игре.

Рис.17 Настройка сцены в Blender 2.79b.

Для того чтобы ограничить движение объекта в игре можно использовать инструмент «Ограничитель»

Рис.18 Ограничители в Blender 2.79b.

Для быстрой реализации сложных форм объектов и их физики используют набор инструментов из раздела «Модификаторы».

Рис.19 Модификаторы в Blender 2.79b.

Для настройки цвета и некоторых физических параметров объекта, как отражение и прозрачность, а также свечение используется вкладка «Материал».

Рис.20 Модификаторы в Blender 2.79b.

Для наложения более реалистичного рисунка на объект, используют вкладку «Текстура»

Рис.21 Текстура в Blender 2.79b.

Если вы хотите смоделировать волосы или дождь, то может пригодиться вкладка «Частицы».

Рис.22 Частицы в Blender 2.79b.
Рис.23 Волосы в Blender 2.79b.

Необходимо заметить, что данные функции не отображаются в игровом движке Blender. В качестве замены используют динамические текстуры – несколько текстур, которые меняются с течением времени, создавая нужный эффект.

Очень важная вкладка «Физика». Она позволяет настроить физику объектов в игре.

Рис.24 Физика для игрового движка в Blender 2.79b.

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

Рис.25 Дополнительные окна в Blender 2.79b.

Для того чтобы вы смогли тестировать свою игру необходим режим её проигрывания. С этим справляется функция «Игровой движок blender».

Рис.26 Режимы отображения сцены в Blender 2.79b.

Из представленных мешей можно создавать разного вида объекты как живой, так и неживой природы, в том числе, и фантастической формы.

Для преобразования меш-объектов используют режим «Правка объекта».

Рис.27 Режимы работы с объектом в Blender 2.79b.

Более подробнее о примерах работы в режиме «Правка объекта» вы прочитаете в следующей главе.
Представленная, в этом разделе и следующим, информация, предназначена для новичков в области 3d моделирования. Если вы достаточно опытны в моделировании физических, то следующий раздел можете пропустить.  

Видеоcъемка и фотосъёмка на Raspberry pi в облако.

Здравствуйте дорогие читатели моего блога. Сегодня статья посвещана организации процесса фото - и видиосъёмки с микрокомпьютера Raspberry pi...