четверг, 7 октября 2021 г.

Разработка ландшафта.

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

Создание ландшафта в Blender 2.79b.

Если запустить игру, то можно наблюдать такую картину.

Взаимодействие с ландшафтом в Blender 2.79b.

Здесь есть две проблемы: гриб частично погружён внутрь платформы, платформа затемнена.
Вторая проблема решается простым добавлением освещения. Я рекомендую поставить здесь «Солнце». Вторая проблема решается смещением центра тела. Центром тела является точка, которая отображается во время выделения этого тела. Чтобы её сместить необходимо войти в «режим правки», выделить все полигоны объекта и сместить его (с помощью G или осями) так, чтобы центр оказался у основания ножки гриба.

Центр масс тела в Blender 2.79b.
Центр масс тела в Blender 2.79b.

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

Платформа и персонаж.

Проверьте правильность работы управления персонажем. Если вам кажется, что прыжки или смещение достаточно малы или, наоборот, большие, то можно всегда изменить значения в настройках. В «Движении» изменяем значение смещения, а в физике персонажа изменяем «силу прыжка».

Настройка персонажа.

Настроим систему таких платформ для прохождения уровня, так чтобы это было по силу пройти с данным видом управления.

Создание ландшафта.

Теперь чтобы отслеживать и правильно управлять персонажем, необходимо привязать камеру к нему. Предварительно, нужно настроить положение камера так, чтобы она смотрела на персонажа и при этом охватывала какую-то часть мира, чтобы можно было ориентироваться в пространстве. Для того чтобы просмотреть какой обзор у камеры, достаточно нажать клавишу «Num 0» — это клавиша 0 на дополнительной раскладке клавиатуры NumPad.

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

— Выделить привязываемый объект. В данном случае – камера;

— Удерживаем клавишу shift и выделяем объект, к которому будем привязывать;

— Нажмём клавишу «P» и выберем команду «Объект».

Как только камера будет привязана, то можно запустить игру и проверить работу системы «Персонаж-камера».

Привязка камеры к персонажу.
Создание ландшафта.

Если всё правильно сделали, камера будет плавно следовать за персонажем.

Протестируйте проект – пройдите препятствия, параллельно фиксируя недочёты. Периодически выходите из игры подправляйте окружение и запускайте проект заново.

На каком-то этапе может возникнуть такая проблема – застревание персонажа в текстуре.

Создание ландшафта.

Для того чтобы решить данную проблему, нужно сделать все платформы «Твёрдым телом», но при этом ограничить их перемещение.

Настройка физики платформ.

Протестируйте свою игру, убедитесь в правильности её работы.

На каком-то шаге добавим усложнение в виде пропасти. Между двумя отдалёнными платформами будет курсировать синяя платформа, на которую можно запрыгнуть и добраться до следующей.

Настройка сложности в игре.

Для того чтобы синяя платформа перемещалась между двумя соседними, необходимо создать анимацию движения для данной платформы. Для этого нужно перейти в окно «Default» и создать для синей платформы анимацию: движение от первой до второй платформы (100 кадров) и от второй – к первой (100 кадров).

Настройка сложности в игре.

Протестируйте игру, не забудьте наложить физику на платформу (твёрдое тело или динамическое) с ограничением движения.

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

Скольжение персонажа в игре.

 Тут можно подойти двумя, самыми лёгкими, способами. Первый – настроить скорость перемещение гриба или скорость анимации движения платформы так, чтобы персонаж поспевал двигаться по перемещающейся платформе. Второй – сделать для платформы ограничители в виде кубов с настроенной физикой «твёрдого тела» и привязать к синей платформе с помощью клавиши «P».

Ограничение персонажа на платформе.

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

Ограничение персонажа
Ограничение персонажа по оси X.

Как видно, полностью не стали ограничивать смещение по оси X, а оставили в пределах . Если нужно ограничить полностью смещение по заданной оси, просто оставьте значение 0 в максимуме и минимуме.

Теперь настроим фон, для красочность игры. Для фона создадим плоскость и растянем его по оси X и Z. Затем наложим материал. Цвет материала можете выбирать на своё усмотрение.

Фон игры.

Если плоскость развёрнута, то необходимо повернуть по нужной оси, чтобы она была перпендикулярно платформам. Теперь нужно найти рисунок фона, желательно чтобы она была из категории free. Такой материал можно использовать в своих проектах не опасаясь претензий по заимствованию. Можно сделать самостоятельно фотографии или нарисовать свой фон в любом графическом редакторе. Формат изображения должен быть png или jpg.

Картинка free для фона игры.
взято с сайта  https://pixabay.com/ru/vectors/  

Сохраним её в паку «Материалы_текстуры». После того как мы выбрали материал для плоскости, необходимо перейти в окно «Текстуры» для наложения нашего изображения.

Фон игры.

Для того чтобы изображение правильно наложилось на плоскость, нужно сделать развёртку, на которую и накладывается картинка. Для того чтобы сделать развёртку нужно перейти в окно «UV Editing».

Наложение текстуры в UV Editing.

Далее, выделенную плоскость переводим в «режим правки». В данном режиме можно проводить развёртку, для этого наводим указатель мыши на 3d сцену и нажимаем клавишу «U». После этого выскакивает контекстное меню, в котором выбираем «Умное UV-проецирование». Для начального уровня этот способ наиболее оптимален.

Наложение текстуры в UV Editing.

При выборе функции «Умное UV- проецирование» появляется ещё одно окно, в котором ничего не меняем и жмём кнопку «Да».

Умное UV-проецирование.

Теперь в левом окне была создана пустая рамка – развёртка. Её мы заполним изображением.

В данном окне активируем кнопку «Открыть».

Загрузка изображения.

В открывшимся окне необходимо найти файл изображения. В данном случае это папка «Материалы_текстуры».

Загрузка изображения.
Загрузка изображения.

Как видно, изображение наложилось на развёртку плоскости. Теперь можно выйти в «режим объекта» и перейти к окну «Game Logic». На этом шаге нужно выбрать отображение «Текстур».

Загрузка изображения.

Теперь переходим в режим просмотра с камеры и запускаем игру.

Отладка проекта.

Данную плоскость можно продублировать «Shift+D», тем самым мы продлеваем фоновую локацию игры вдоль оси движения персонажа.

Перейти к странице курса

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

Выделим гриб и развернём его так, чтобы лицо гриба располагалось в той же плоскости, что и перемещение личинок. Личинки перемещались вдоль оси Y, согласно книжному примеру. Изменять направления движения можно самостоятельно, согласно предыдущим инструкциям.

Настройка игровой логики гриба в Blender 2.79b.

Построим для гриба логику управления. Согласно стилю игры, главный персонаж перемещается в плоскости ZY. Следовательно, необходимо настроить перемещение в данной плоскости. Управляться гриб будет с помощью клавиш: W, S, Space. Ниже представлен пример управления грибом клавишей W. Сенсор – клавиатура.

Настройка игровой логики гриба в Blender 2.79b.

Обратите внимание, что гриб хоть и расположен в плоскости ZY, но правильное движение «вперёд» совершает, когда настроено в актуаторе смещение по x. Возникает парадокс, который связан с выбором системы координат: глобальная и локальная. В данном случае, на сцене мы видим глобальную систему координат, а в актуаторе выбрана локальная система координат.

Настройка игровой логики гриба в Blender 2.79b.

Если нам нужно, чтобы гриб правильно смещался по глобальным координатам вдоль оси Y, то необходимо снять выделение с кнопок «L».

Как только разобрались с ориентировкой на плоскости, можно приступить к созданию следующих элементов управления:

S – движение назад, а Spase – прыжок.

Настройка игровой логики гриба в Blender 2.79b.

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

Если запустить проигрывание игры, то мы сможем управлять клавишами W и S, но не сможем прыгать с помощью клавиши «Пробел» (Space). Для того чтобы наш гриб мог прыгать и, в дальнейшем, взаимодействовать с окружающим миром, необходимо настроить ему физику. Физику можно настроить в правом окне «Свойства» — крайняя вкладка в виде синей галочки. Здесь необходимо выбрать «Персонаж» и поставить галочку напротив слова «Актёр».

Настройка игровой логики гриба в Blender 2.79b.
Настройка игровой логики гриба в Blender 2.79b.

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

Перейти к странице курса

Игровая логика личинок. Настройка игровой логики объектов игры

Создадим для всех трёх личинок логику игрового поведения. В данном случае, она простая —
им необходимо непрерывно перемещаться в одну сторону.
Для этого переходим в окно «Game Logic» и выделяем кость личинки (зелёной), которая находиться в «режиме объекта». Во вкладке «Сенсор» выберем «Всегда», а во вкладке «Актуатор» — «Движение». Для точного указания движения, необходимо выделить кость и посмотреть на направление осей. В зависимости от этого указывать значение по данной оси (осям). Значение может быть как положительное, так и отрицательное.

Запуск игры в Blender 2.79b.

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

Для случая, представленного в книге, личинка будет двигаться по оси Y скорость 0.02, т.е в сторону, куда смотрит её голова. Для того чтобы во время движения запускалась анимация личинки, необходимо добавить ещё один актуатор «Действие». В нём необходимо выбрать нужный объект с анимацией. В данном случае это скелет, который записывается как «скелет Action». После нужно выбрать длительность кадров. В нашем случае это от 0 до 40.

Настройка логики игры в Blender 2.79b.

Если вы заметили, то про контроллер ничего не было написано – это связано с тем, что, если соединить «сенсор» и «актуатор», минуя «контроллер», то последний ставится в логику автоматически и, по умолчанию, это «И» то что нам нужно.

Данную процедуру необходимо провести с оставшимися скелетами личинок. Для второй (жёлтой) личинки поставим скорость перемещения 0.01, а третьей (синей) – 0.005. Не забудьте поставить «Действие» с выбором нужных анимированных скелетов. Если запустить игру, то можно наблюдать разную скорость движения личинок. Итак, с первоначальной логикой.

Перейти к странице курса

Моделирование игрового персонажа и противников в Blender 2.79

Начнём с создания персонажей: гриб и три вида личинок. Для этого откроем blender и приступим к созданию. Начнём с гриба. Для простоты моделирования, сделаем его из куба и цилиндра.

Создание ножки гриба в Blender 2.79b.

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

Создание ножки гриба в Blender 2.79b.

Чтобы выделить несколько рёбер используют комбинацию: удерживание клавиши Shift и последовательное выделение рёбер ПКМ. Затем выйдем в «режим объекта» и воспользуемся функцией «Гладко»

Создание ножки гриба в Blender 2.79b.
Создание гриба в Blender 2.79b.

 Добавляем шляпку гриба из цилиндра.

В качестве психологического эффекта, чтобы игрок олицетворял себя с персонажем, проведём олицетворение гриба. Для этого добавим глазки, и рот. Глаза делаем из сфер, а рот и нос  — из куба.

Создание гриба в Blender 2.79b.

Осталось добавить материал к ножке и шляпке и объединить все элементы персонажа. Для того чтобы объединить элементы, нужно их выделить с помощью Shift и ПКМ  и воспользоваться командой «Ctrl + J».

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

Создание личинок в Blender 2.79b.

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

Создание скелета личинок в Blender 2.79b.

Для того чтобы видеть, как кости располагаются в 3d модели, необходимо установить галочку на функции «Рентген».

Создание скелета для личинки в Blender 2.79b.
Создание скелета для личинки в Blender 2.79b.

Теперь осталось соединить кости с телом личинки. Для этого необходимо выделить 3d тело и, удерживая Shift, созданный скелет. После выделения этих двух частей воспользуемся комбинацией клавиш «Ctrl + P», а затем выбрать пункт «с автоматическими весами». Если вы правильно расположили кости строго по сегментам, то проблем не возникнет и кости присвоятся к сегментам тела.

Связь скелета с моделью личинок

Теперь выделив скелет, можно перейти в «режим позы». В данном режиме можно ПКМ вращать кость и видеть, как следом за ней будет перемещаться фрагмент, привязанного к ней, тела.

Проверка связи скелета с моделью

Теперь осталось записать простенькую анимацию, имитирующую движение личинки на месте. Для этого в окне «Временная шкала» необходимо выбрать запись вращения тела (Rotation). Далее, необходимо выделить скелет личинки и перейти в «Режим позы».

Первоначальная поза будет, когда личинка лежит ровно на поверхности. Чтобы записать данную позу необходимо выделить все кости (клавиша A) и нажать на значок «Ключ».

Далее, выбирается следующий кадр (20) и меняется поза костей, затем кости выделяются и записываются с помощью значка «Ключ». Последний шаг, нужно выбрать следующий кадр (40) и изменить позу костей к первоначальному положению с последующей записью.

Анимация скелета для личинки в Blender 2.79b.

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

Платформер. Подробный обзор жанра игры. И определение структуры игры.

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

2.1 Платформер

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

Название игры «Грибное царство»

Сюжет: главный персонаж гриб, который должен спасти грибницу, победив личинок мух, главных поедателей грибов.

Цель: пройти все игровые уровни с минимальным временем и максимальным количеством очков.

Задачи проектирования игры:

— разработка персонажей: гриб, личинки (три вида)

— разработка ландшафта (дизайн уровней)

— разработка дополнительных интерактивных элементов: индикаторы повреждений (жизни), грибные споры (очки), аптечки (жизни).

— настройка звукового сопровождения: переход между уровнями, повреждение, сбор, поражение, победа, фоновая музыка.

Для реализации проекта рекомендую его систематизировать, т.е. создать папку с именем «Платформер», а в ней создать такие папки, как: музыка, модельки, материалы_текстуры.

Создание папок для проекта.

Платформер подразумевает, что в структуре игры будут многоуровневые «платформы», по которым и придётся перемещаться нашему персонажу.

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

Главный персонаж — это гриб. Противники — это личинки. Обе категории игровых элементов создаём в blender.
Для примера, мы создадим два уровня игры:

  • классический платформер.
  • action с бесконечным набиранием очков.

Обновление редактора BlocklyKlik до верси 2.0

Сегодня вышло обновление графического редактора кода BlocklyKlik 2.0 Его задача - это упростить процесс написания программ и помочь учителям...