События

Создаем игру. Часть 9. История со смыслом

2015-03-03

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

Рождение голема из лавы.

Создание голема

Главным врагом на этом уровне будет огненный голем. Перед началом работы в 3D, художником-концептуалистом был выполнен вот такой концепт с несколькими видами моделируемого объекта.

Концепт голема.

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

Сравнение геометрии голема и концепта.

Настройки материала для запекания текстуры голема.

Чтобы сэкономить время на создании черновой текстуры, на геометрию по четырем разверткам (1) был спроецирован с разных сторон концепт-арт (2) и объединен в материале по специальной маске (3).

Демонстрация поэтапного наложения текстуры голема по маскам.

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

Материал, спецэффекты и анимация

Экспортный материал голема.

Материал голема состоит из запеченной ранее диффузной текстуры (1) и небольшого эффекта горения голема (2), сделанного при помощи ноды Time, чтобы создалось впечатление присутствия его внутреннего жара. Карта спекуляра сгенерирована на лету (3) из диффузной текстуры.

Геометрия системы частиц для создания задымления голема (выделено светло-зеленым).

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

Настройки системы частиц дыма голема.

В настройках Relations геометрии системы частиц в качестве Parent объекта указана кость грудной клетки арматуры голема. Это заставит систему частиц учитывать арматурную анимацию персонажа.

Настройка Relations для геометрии системы частиц.

В настройках системы частиц стоит обратить внимание на раздел Rotation - там добавлена случайность к повороту частиц. В настройках движка Blend4Web - в системе координат выставлено значение World, что придаст дыму большую реалистичность в динамике. Материал аналогичен материалу дыма метеоритов, с его настройкой можете ознакомиться в одной из предыдущих статей цикла.

Демонстрация анимации голема с системой частиц в Blender.

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

Рассыпание голема на куски после смерти.

Смерть голема

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

Отдельные составляющие голема. разлетающиеся в разные стороны.

На самом деле для создания анимации развала было сделано две копии такой геометрии: первая одним объектом с арматурой - эта геометрия будет использоваться в игре, вторая геометрия с настройками физики Rigid Body, причем каждая часть голема представляет собой отдельный объект.

Настройка симуляции физики для обломков голема.

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

Геометрия голема, созданная специально для анимации рассыпания и система частиц.

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

Чтобы перенести физическую симуляцию на костную анимацию, необходимо на каждую кость арматуры навесить два констрейна Copy Location и Copy Rotation. В качестве объекта Target выбрать соответствующую каждой кости часть голема. Таким образом при помощи констрейнов кость унаследует все движения, созданные при помощи симуляции.

Настройка констрейнов системы частиц для запекания.

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

Настройка запекателя Blender.

Анимация на выходе после запекания получится перенасыщенная ключами, чтобы её упростить надо воспользоваться утилитой Simplify F-Curves и, настраивая параметр Error, найти наилучшее значение.

Кривые анимации после упрощения.

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

01 - физическая симуляция; 02 - арматурная анимация при помощи констрейнов; 03 - запеченная арматурная анимация; 04 - оптимизированная арматурная анимация.

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

Геометрия для системы частиц дыма при рассыпании голема на кусочки.

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

Настройки системы частиц дыма при рассыпании голема на кусочки.

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

Голем, готовый к бою!

Голем готов для нападения и он пышет яростью!

Магические камни

Но големы - это не только источник опасностей, но и хранители очень важных элементов игры - драгоценных камней!

Магические камни, за которые и начнется схватка.

Всего в игре присутствует 6 типов драгоценных камней. Пять из них связаны цветом каждый со своим островом и обелиском (об этом позже) и один универсальный.

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

Материал магических камней.

В основе материала драгоценных камней лежит текстура типа matcap (1), которая уже использовалась на бутылочках. Она раскрашивается при помощи разных модификаций вертексного цвета, содержащегося на геометрии каждого камушка (2). А при помощи маски по Френелю на краях создан эффект оранжевых и желтых рефлексов (3). Так же, как и в материале магического зелья, здесь присутствует магический блеск (4), который добавляет эффектности камням. Для низких настроек графики он оптимизирован при помощи ноды Level Of Quality.

Обелиски

Обелиск - это сердце каждого острова. Сюда надо будет относить все честно отобранные у бездушных големов магические камни.

Один из обелисков в центре острова.

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

Материал камня обелиска.

Текстура для материала (1) нарисована вручную в режиме Texture Paint. Чтобы острова как-то отличались по цвету, основание геометрии подкрашено (2) по вертексному цвету.

Mагия островов

Когда все кристаллы будут вставлены в обелиск, это активизирует магию острова и он будет защищен от големов.

Появление магического щита вокруг острова.

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

Геометрия для материала магических щитов островов.

Каждая геометрия имеет свой индивидуальный материал с одной общей для всех нодовой группой. Разберем сначала индивидуальные материалы.

Материал магических щитов.

В центре нодовая группа (1), которая собственно и составляет основное тело материала. Также тут присутствует маска для альфа-канала (3) с анимированной нодой Value, которая будет проявлять магический щит в нужный момент. И блок, который будет задавать цвет для магического щита (2). Здесь две группы цветов, так как цвет будет меняться от момента, когда магический щит только начинает проявляться, до момента, когда он полностью проявится. Анимированная нода Value будет осуществлять плавное изменение цвета.

Нодовая группа материала магических щитов.

Разберем подробнее нодовую группу.

На вход (1) нодовой группе подаются: UV-развертка для текстуры с магическими знаками (3), вертексный цвет, который является просто маской для прозрачности по краям магического щита, и два цветовых значения, в которые будет подкрашиваться магический щит.

Все текстуры с магическими знаками (3) двигаются по UV-развертке (2) с помощью ноды Time. Далее они объединяются в единую маску (4) и раскрашиваются (5) при помощи цвета, полученного из входной ноды (1).

Для альфа-канала также создается немного модифицированная маска (6) и подается в выходную ноду (7).

Также в двух местах здесь присутствует нода Level Of Quality, которая позволяет упростить визуализацию для низкого качества настроек графики.

Заключение

Главный герой в пылу сражения!

На этом всё. Это последняя статья о создании графического контента для первого уровня игры. Теперь мир полон разных эффектов, врагов, магии и в нём появился некий смысл и цель. Осталось только добавить звук! О чем и пойдет рассказ в следующей статье.

Запустить игру!

Исходные файлы моделей находятся в составе бесплатного дистрибутива Blend4Web SDK.

Все интересующие вас вопросы по уроку вы можете задать в этой теме, и мы с радостью ответим на них.

Изменения

[2015-03-03] Изначальная публикация.

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