Игра от гуманитария. Часть 2.
Привет. Это хроники любительской разработки игры After Stars. Вводная часть тут: http://pikabu.ru/story/kak_sdelat_igru_esli_tyi_gumanitariy_...
Что ж, прошло две недели, я немножко затянул со вторым постом, потому что случилось кое-что невероятное. В ночь очередной субботы некий безумец создал пост: http://pikabu.ru/story/besplatno_za_imya_napishu_muzyikuzvuk... Я тут же написал ему, и мы договорились, написать музыку для главного меню. Это было непросто, но мы справились. Мы — потому что он работал, а я мешал ему :D Наконец, и вы можете оценить труд Владимира Ананьева по ссылке: https://soundcloud.com/playb-2/after-stars-theme
Я тоже без дела не сидел. (Не без помощи Володи) как смог, развил одну из музыкальных тем из сериала Lexx для презентации одноимённого корабля. Также по многочисленным требованиям поработал с перемещениями, камерой, космосом и кое-какими мелочами. Скрыл последний самый крутой корабль и описания способностей, чтоб сохранить немножко интриги. По традиции включите субтитры на YouTube при необходимости.
Состав этот не окончательный, и один корабль обязательно изменится к выходу. И, возможно, ещё один добавится. А пока в краце расскажу, как создавались и менялись корабли, которые уже есть. Для начала я определил свои и чужие любимые (кино)вселенные, а потом вырвал из них по самому запоминающемуся кораблю. Дальше я пытался найти готовые низкополигональные (пригодные для real-time прорисовки) модели, но безуспешно. Однако в сети гуляет много высокополигональных (High Poly) моделей популярных кораблей, в основном используемых для рендера изображений с помощью 3DS Max, Maya, Blender и т.п. Итак, как же обычно создают игровые модели?
В 3DS Max или аналогах создаётся High Poly с учётом всех мелочей, прорабатывается каждая деталь. На каждую деталь накладывается материал (Текстура с обработкой и эффектами. Где-то блестящий металл, где-то шероховатое дерево, где-то подсвеченный пластик и т. д.) После этого создаётся Low Poly модель, исключая мелкие детали и используя меньшее количество полигонов. На ней производится развёртка текстуры (Unwrap). Развёрка по сути — оборачивание 3D объекта 2D текстурой как листом бумаги.
Далее модели накладываются друг на друга с максимально возможным соответствием, и идёт запекание (Bake), то есть рендер текстур через проекцию.
Прежде всего нам нужны текстуры цвета и объёма (Diffuse Map и Normal Map). Normal Map как раз позволяет выглядить вашему Low Poly объету как High Poly, она с некоторой потерей качества, но зато без потери производительности отображает мелкие детали и рельеф во всём их объёме.
Вот скриншоты созданных моделей. Для такой игры, конечно, кое-где многовато полигонов. Отмерять можно сколько угодно раз, а отрезать только один, так что делал с запасом, что называется. Самый сложный корабль — Lexx, состоит из около 7 000 полигонов. К счастью сейчас даже телефоны среднего сегмента достаточно мощные и нет нужды отказываться от пары лишних полигонов.
И немножко истории — предыдущие версии ангара, Millenium Falcon и Enterprise.
Благодарю за внимание. Через какое-то время напишу пост о механике, генерации уровней и, наверно, много о чём другом ;)