Переводчик-фрилансер
353,7
рейтинг
3 декабря 2015 в 17:34

Разработка → Создание изометрических объектов для игр в Blender из песочницы



Статья будет полезна начинающим разработчикам игр. В ней мы рассмотрим преимущества и способы создания и рендеринга трёхмерных объектов для изометрических 2D-игр на примере Blender. В статье не будет каких-то сложных операций, достаточно начальных знаний 3D-редактора. Для примера рендеринга и анимации я взял башню из Dune2, и, чтобы ей было не так скучно одной, дополнил двумя постройками из Desert Strike.

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

Недостатки: снижение «душевности» изображений и, собственно, необходимость знания 3D-моделирования.

Начало работы, подготовка сцены


По умолчанию «пустой» файл Blender создается с тремя объектами: камерой, источником света и кубиком в центре. Начнём настройку с камеры, в её свойствах переключимся с режима Perspective на Orthographic, затем укажем для неё в панели Properties следующие параметры:

Transform
X: 12.0
Y: -12.0
Z: 12.0

(как видите, координаты имеют вид N, -N, N, при этом N может быть любым, ведь у нас ортогональная камера)

Rotation
X: 54.8°
Y: 0°
Z: 45°



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

Попробовав отрендерить (F12) первую изометрическую пробу, вы убедитесь, что грани куба освещены очень неравномерно. Займемся же светом! Во-первых, в свойствах мира (вкладка World) включим Ambient Occlusion и укажем для него нужное значение Factor (в примере установлено 0.5). Во-вторых, сменим тип источника света с Point на Sun. Это нужно, чтобы все тени были направлены в одну сторону и не зависели от положения объекта относительно источника света.


Пример рендера с источником света Point


Пример рендера с источником света Sun

Кстати о тенях, не повторяйте моей ошибки! Если вы по какой-то причине хотите, чтобы все игровые объекты находились на одной сцене и рендерились одновременно (например, чтобы не склеивать spritesheet из отдельных изображений), то следите за тем, чтобы друг на друга они никак не влияли и их тени и освещение (неоновые вывески, фонари и т.д.) не перекрывали другие объекты. На изображении в начале статьи заметно, что тень от башни падает на дозорную вышку.

Кубики наши рендерятся на некрасивом сером фоне, который конечно же нужно отключить, чтобы не мучаться потом с вырезанием фона объектов. Для этого во вкладке Render найдите раздел Shading и измените режим Alpha со Sky на Transparent (если вы используете рендер Blender Render) или поставьте галочку Transparent в разделе Film (в Cycles Render).

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


Башня бодро вращается

Во многих стратегиях используется визуальное отображение строительства зданий: сначала возводится фундамент, затем стены и так далее. Попробуем сделать что-нибудь подобное. Выделим все объекты в сцене (A), затем дублируем их (Shift-D) и переместим во второй слой (M и выбрать нужный слой). Операцию можно повторять столько раз, сколько нам нужно фаз строительства. Перейдём во второй слой и «разрушим» башню.


Повторим нужное количество раз, et voila!



Постпроцессинг


В начале статьи среди недостатков такого подхода я упомянул отсутствие ощущения «ламповости». К счастью, его можно частично вернуть, воспользовавшись постпроцессингом и встроенным в Blender движком Freestyle. Не буду рассматривать его подробно, просто покажу, на что он способен.




Примеры работы Freestyle

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

@PatientZero
карма
107,0
рейтинг 353,7
Переводчик-фрилансер
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (21)

  • +3
    достаточно начальных знаний 3D-редактора


    Те, у кого начальные знания Blender все в статье и так очевидно. Лично мне было бы интереснее про само моделирование почитать. После 3Ds Max ничто другое осилить не смог.
    • 0
      достаточно начальных знаний 3D-редактора

      Эта фраза предназначалась не тем, кто уже знает Blender, а новичкам, выбирающим себе инструмент для работы.
      Лично мне было бы интереснее про само моделирование почитать.

      А что именно про моделирование хотите узнать?
      После 3Ds Max ничто другое осилить не смог.

      У Blender хорошее community, есть учебники и куча видео, в чём у вас проблемы с освоением?
      • +19
        image
        • 0
          В синдроме утенка может? После 3d max все кажется каким-то неправильным и неудобным. Но это даже не хобби, а так. Одно время немного увлекался, потом забил.
          • +1
            Стоит учесть, что 3DS MAX имеет более однозначную разбивку окна, и куча инструментов изначально на панели. Привычный многим подход «найди кнопку» в нем срабатывает хорошо.
            Для Blender же сначала надо освоить более «продвинутый» тайловый интерфейс, который гибче, и заучить хоткеи для базовых операций. Порог входа в этот редактор выше.

            Но как людям, работавшим в 3DS MAX, неудобно в Blender, так и в обратную сторону — «синдром утенка» работает и против Вас, и против меня, и наверное применим для каждого.
            • +1
              У меня получилось наоборот, после «классических» редакторов в блендере стало легче дышать.
          • 0
            проблема в том, что на 2.5 сильно поменялся интерфейс. И, внезапно, все гайды стали чуток outdated.
            • 0
              зато появился поиск по инструментом на пробел, главное знать его название или часть.
              Очень удобно для начинающих, с вводом этой фичи я перестал гуглить хоткеи
    • 0
      Есть очень годный набор уроков для начинающих Blender TUT
      • 0
        Он уже устарел с точки зрения интерфейса, к сожалению.
        • 0
          Там только первые один-два урока в старом интерфейсе. Да и все равно там на горячих клавишах все действия, поэтому вам и сложно после Макса привыкнуть. Посмотрите, поможет продвинуться огромными шагами.
          • 0
            Я автор статьи, а не первого комментария, но всё равно спасибо, если так. У Шамшадинова я LevelUp смотрел, понравилось, может и из этих видео что-то почерпну.
  • 0
    Для теней могу посоветовать почитать http://www.mattgreer.org/articles/dynamic-lighting-and-shadows/ (может быть её стоит перевести?). Ну и, кстати, хотелось бы узнать как получить эти normal maps из блендера.

    Потому что эффект мне очень нравится, посмотреть в динамике можно тут (не сочтите за саморекламу)
  • 0
    Мне кажется несколько странным обвинять пререндеренное 3Д для 2Д игр в «бездушности». Раньше очень многие игры делались подобным образом, включая HoMM 3, который очень сложно упрекнуть в отсутствии «души».
    • 0
      Я имел в виду качество работ начинающих, в них вполне эта «бездушность» проявляется. А вы уверены, что в HoMM 3 использовали 3D? Возможно, его потом дорабатывали в 2D? Сейчас сравнил скриншоты с четвёртой частью, вот в ней в полной мере проявляется пластиковость 3D.
      • 0
        Наверняка дорабатывали. Но в основе — 3Д. Особенно со второй частью заметна разница, так как там честный пиксель арт использовался.
        А у начинающих и 2Д будет так себе.
  • 0
    А есть более-менее успешные игры на Blender Game Engine?
    • 0
      Буквально две недели назад в Стиме KRUM появилась. Можно ли считать это успехом?
      • +1
        Спасибо. Видимо, неверно выразился. Я имел в виду законченный продукт. На официальном форуме видел только много проектов в разработке.
        • 0
          Ну, тогда KRUM вполне подпадает под условия. На вики есть упоминание готовых проектов, но там маловато, конечно.

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