Как создать 3D персонажа и не выжить из ума

Original author: Данил Соловьев
  • Translation
Character Аrtist Данил Соловьев раскрывает таинство создания 3D моделей на примере юнита Heavy Archer для игры «Спарта: Война империй».





Обычно модель юнита «с нуля» создает Character Аrtist, но на этот раз решили поработать совместно с Сoncept Аrtist. Так что я получил пачку концептов, из которых мы вместе с арт-директором выбрали и утвердили тот, который наиболее подходил для данного юнита.



Прежде всего нужно понимать, насколько важен выбор силуэта, телодвижения (gesture) и какую огромную роль играет так называемые S-curve и С-curve даже на стадии T-позы и болванки. Многие думают, что эти параметры можно задать при постановке персонажа в позу. Отчасти это правда, но поспешу заметить: в таком случае персонаж не получится настолько же плавным и динамичным, как если бы мы установили данные характеристики в болванку (тело) персонажа изначально.



У нас был один шаблон тела для всех юнитов. Его разработал Вова Силкин, наш Team Lead. Имея ранее готовый образец, я начал набрасывать на него малополигональный 3D-макет для того, чтобы быстро представить силуэт и дизайн персонажа.









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



Наконец-то, утвержденный дизайн! Можно приступать к проработке деталей!
Почти вся работа над персонажем была выполнена непосредственно в программе 3ds Max. Так как мы делаем иллюстрации, а не модели для игровых движков, у меня было неограниченное количество полигонов и полная свобода в разрешении текстурных карт.
В итоге у меня получилось 1,5 миллиона полигонов и 10 комплектов карт (diffuse map, reflection map, specular map, normal map,displacement и opacity) разрешением 4096x4096. Один комплект приходился чуть ли не на каждый элемент персонажа, из-за чего в конце очень «тормозила» сцена. В таких случаях надо отключать отображение текстур во вьюпорте.

Возьмем, к примеру, висящий через плечо колчан. Он кожаный, следовательно, фактура колчана не может быть такой идеально гладкой, какой мы ее смоделировали под Turbosmooth. Чтобы избавиться от этого недостатка, накидываем модификатор Noise для придания эффекта мятой поверхности.



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



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

Далее идет болванка под стёганую кожу, которую мы загоняем в ZBrush (рис. 1). Там же разворачиваем болванку при помощи UV master для того, чтобы наложить на нее аlpha-map. Затем делим модель на максимальное количество полигонов. Открываем Noise в свитке Surface (рис. 2), жмем совершенно незаметную кнопку Аlpha on/off для загрузки вашей альфа-карты и включаем кнопку UV, чтобы карта проецировалась по UV-развертке. Если альфа-карта легла криво, то надо выровнять развертку и повторить сделанное. (рис. 3).



После этого выравниваем UV-развертку, чтобы альфа-карта ложилась прямо.
Теперь добавляем складочки кистью Dam-Standart.





Наручи и некоторые детали я слепил в ZBrush.
Фактура металла делалась точно так же, через Noise, только с использованием другой карты.
Когда я начал ваять морду льва, столкнулся с проблемой: наручи не симметричны. Поэтому пришлось лепить без симметрии. После трех неудачных попыток я наконец нашел элементарное решение для себя, вспомнив уроки рисования. Необходимо было расчертить таким образом:



Эта ситуация еще раз доказывает, насколько важно знать и помнить основы дизайна. Возможно, дизайнеры, привыкшие к Аctivate Symmetry, могут также допустить подобные ошибки.

Рассмотрим шаги создания наколенника.

1. Сначала я моделирую болванку в 3ds Max, покрывая тело. Смотрю, нравится ли мне ее пропорции и силуэт. На данном этапе этого достаточно.
2. Начинаю подбирать подходящий дизайн в ZBrush. В данном случае, полагаясь на знание анатомии человека, повторяя направления мышц и костей, мы получим красивые линии. Так, собственно, и делали древние греки, и не только они.
3. Только после того как мы убедились, что нам нравятся пропорции и дизайн, начинаем добавлять мелкие детали. Такой метод (от общего к частному) применяют везде.
4. Теперь, когда мы закончили работу над всеми деталями, можем переносить болванку в 3ds Max обратно. Я делаю иллюстрацию, соответственно, у этой модели нет ограничения в полигонах и картах.

Следовательно, я могу позволить себе авторетопологию ZRemesher – новую функцию ZBrush. Эта опция позволяет в считанные секунды, путем нажатия всего одной кнопки, сделать из миллионной сетки вот такую, как на картинке ниже, сетку в 5к полигонов, что для 3ds Max сейчас абсолютно несмертельно.



По поводу текстурирования я мало что могу написать, потому что он был сделан дедовским способом: в Photoshop. А о Photoshop всем и так давно все известно. Не обошлось все-таки и без Mudbox: в нем я всего лишь намечал маски для царапин и импортировал модель обратно в Photoshop. Данный способ я нахожу самым удобным в последнее время.
Все развертки были произведены автоматически с помощью UV master в ZBrush.
В этой работе я открыл для себя две новые вещи: Additional bump и правила нанесения узоров по краям. Собственно, они связаны между собой.



Мне хотелось нарисовать греческие узоры по краям таким образом, чтобы они чуть-чуть выступали над тканью.



Я не знал, как это лучше сделать, поэтому полез их лепить в ZBrush. Получалось жутко криво и долго. После еще нескольких неудачных попыток я в конечном итоге нашел выход. Итак, берем прямой орнамент.





Применяем к нему Edit>Puppet Warp – функцию в Photoshop, которая позволяет смять и согнуть изображение в любую желаемую форму.
Ставим опорные точки. И, зажимая каждую из точек, выгибаем орнамент в нужную нам форму. Нажимаем Enter – и готово.

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





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



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

Plarium
103.33
Разработчик мобильных и браузерных игр
Share post

Comments 18

    +1
    У меня наблюдаются проблемы с Habrastorage. Если какие-то картинки не подгружаются — попробуйте обновить страницу! Если проблема не исчезнет — пожалуйста, напишите мне в личку и я перезалью иллюстрации.
      +3
      Всё хорошо — проблемы у всех наблюдаются пару дней уже :)
      Сейчас картинки видны.
      +2
      Клево. Вот я примерно такой же пайплайн выстраиваю на открытом\бесплатном ПО.
      0
      Оу! Впервые немного начал понимать как делается ваша работа. Могли бы вы просвятить в одном вопросе.

      Как так получается, что текстура (декали) в играх независимо от разрешения и размера монитора всегда резкие. Я постоянно в догадках, толи просто декали, к примеру ваш рисунок на груди в виде орнамента и черепа изначально в очень большом разрешении, то ли какой-то хитрый рендер.

      И еще вопрос, все эти милионные полигоны учитываются уже в игре? если в одном персонаже у меня 5 000 000 полигонов, а войско у меня 100 000 — это грузит карту?
        +1
        Так как мы делаем иллюстрации, а не модели для игровых движков, у меня было неограниченное количество полигонов и полная свобода в разрешении текстурных карт.

        Хотя мне бы было интересно посмотреть на игру со 100к юнитов в 5М поликов =)
          0
          ага, вот как. А вот тогда такой вопрос.

          У вас есть картинка, где вы накладываете пупетом варпом греческий орнамент, поверх брони передней, которая изображена в виде сетки белой. Вот это белая выкройка — это скриншот, экспорт из збраша в неком формате?

          Когда орнамент готов (искривлен) вы его просто как картинку с прозрачным фоном сохраняете, потом экспортируете в збраш, где он уже объемно накладывает ваш орнамент?
            +1
            Мопед не мой, я просто процитировал
              0
              Это UV развретка из 3ds max по которой далее в фотошопе делеам текстуры (в частности и эта декаль) далее она используется дальше же в фотошопе и накладывается верхним слоем на текстуру ткани.
              Объемной она становится в тот момент, когда этот слой с орнаментом копируется на черно-белую карту bump map.
              0
              Да, так и есть. Мы вставляем в игру рендеры, поэтому не зависим от разрешения карт и количества полигонов.
              0
              Игровые персонажи делаются несколько иным способом (хотя многие пункты совпадают). Если интересна эта тема, можете почитать мою статью: habrahabr.ru/post/230081/ там я как раз про создание игрового персонажа рассказываю.

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

              Полигоны конечно же влияют на производительность, и для игровых моделей есть определенный бюджет полигонов, зависящий от целевой платформы. Для увеличения производительности хитрые разработчики применяют LOD'ы, т.е. несколько разных моделей для одного объекта с разным количеством полигонов, которые движок переключает в зависимости от расстояния.
              +1
              Больше бы статей по этой теме!
                0
                Учтем ваше пожелание. Наши специалисты часто пишут подобные материалы, мы обязательно запланируем ряд публикаций.
                0
                Жаль, что это только перевод… Эх, помню как в былые времена лепил мышь в блендере… Такая страшная модель получилась, что я забросил это дело и стал программистом.
                  0
                  Это перевод статьи Данила Соловьева, он 3D Artist в Plarium. Если у вас есть вопросы по теме — можете задавать, Данил на них с удовольствием ответит.
                    0
                    и правильно сделал, а то сидел бы сейчас моделлером на зарплате 50к как я
                    0
                    С учетом работы концепт-художника, сколько человеко-дней «стоит» такая вот моделька?
                      0
                      Не знаю как в плариуме, но диапазон у разных специалистов получится где то в рамках 10-20 тысяч рублей.

                    Only users with full accounts can post comments. Log in, please.