Бродилка. [Лог#13]

Игра изнутри
«Скажи мне, Люк, — ты мне жук?» © Неизвестный.


Если кратко

В прошлый раз поведал я про идеи для ИИ, хотя правильнее будет называть это не «искусственный интеллект», а «бот» — от «болванчик».
Мне не всегда нравится, когда в Develop-версии бегают всякие одноцветные кубики, которые символизируют что-то. По этой причине решил я замоделить одного жука. Надеюсь к прототипу номер 3 будет их несколько, но если не получится, то будет только он.
Будет несколько скриншотов-этапов моделирования.



Ближе к теме

Для начала скажу, как всегда в теории бот работает нормально, а на деле — когда как. Вина это моя или, скажем, движка и его внутреннего кода, но по непонятным причинам он даже не может сделать правильный рейкаст. Вообще жук пока бродит как надо, но когда я решил сделать проверку " в лоб", то оказалось, что работает он не так стабильно как хотелось. Надо будет долго сидеть и смотреть что там происходит — ни рейкаст, ни sphere-cast не находит пересечений там где они есть и наоборот — где пустынное поле внезапно он сигнализирует, что мол есть коллизия — странный какой-то.

Ну а теперь уж точно ближе к теме!

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

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

 


Для скульптинга в блендере есть пара вариантов ( а может и больше ) — Dyntopo и через модификатор Multiresolution.
Первый видоизменяет сетку путём добавления новых треугольников при этом модель остаётся «как есть».
А вот со вторым я работал впервые и он идёт другим путём — что-то вроде комбинации модификаторов Subdivide и displacement — сетка модели подразделяется т.е. увеличивает число полигонов в зависимости от исходной сетки, затем кисти могут модифицировать полученную подразделённую сетку ( с обычным Subdivide такое не прокатит ). Модификация скульптингом сохраняется не как отдельная модель, а в виде «сдвигов» — зачем это надо? А вот тут особый плюс от Multiresolution — можно переходить между «уровнями» детализации и даже больше — редактировать исходную сетку.

Лоуполи или ретопология
Данная «скульптура» не годится для игр в реальном времени и я думаю это очевидно — больше кол-во полигонов. Поэтому надо было сделать низко-полигональную модель. Хорошо, что в Blender'е есть особые функции, которые позволяют «привязать» вершины к поверхности объектов. Это конечно не инструмент ретопологии как в 3DCoat, где необходимо по сути просто «тыкать по модели» для создания новой сетки поверх существующей, но тоже облегчает жизнь.

Когда лоу-поли сетка была готова, то принялся я и за создание UV-развёртки — поступил как всегда:
  1. Наметил грани-швы.
  2. Нажал на U — Unwrap UV.

  3. Всё готово, но можно чуть подредактировать.

Затем сделал «запекание»( bake ) карт нормалей ( Normal Map ) и AO (ambient occlusion). Настроил тест-материал и вот как это выглядело:


Затем повторил всё аналогично для других частей жука — тушки, лап (на самом деле одной) и «днища».
Сделал ещё тест-материалов т.к. для каждой часть надо свой и чуть позже объясню почему.
В результате получился вот такой вот жук:


Добавил пару новых текстур, изменил материал и нарисовал подобие Hand-Painted текстурки:


"… Эй! Погоди! Ты же как-то говорил только про текстуры нарисованные вручную и без всяких карт нормалей! Что это ты удумал!?"

Да, изначально я планировал использовать исключительно Hand-Paint Textures, но затем я осознал\вспомнил, что с картами нормалей это могло бы выглядеть интереснее. Учитывая, что технология позволяет (Unity), то почему бы это не использовать? (хотя появилась у меня одна проблема со specular map)

«Ты что-то говорил про отдельные материалы — дак что там?»

Отдельные материалы (и сама сетка) не спроста появились. Дело в том, что планировал сделать некий BugBuilder ( да, автоматически создаёт ошибки на ровном месте! Это будущее программирования! ). Задача это «строителя» в очевидном — строить, но не здания, бункеры или компилированный код, а жуков из заранее определённых частей.
Думаю такая концепция знакома многим — имеется анимированный скелет и на него надеваются различные «шмотки», а в данном случаи части жука, при этом со своим материалом. Это позволить внести некое видовое разнообразие в рамках одного типа врага — жука. Конечно будут и «пресеты»\префабы с готовыми типами, например, вот данного жука я назвал Chacaga (не знаю почему, но созвучно с Чикаго).

Вернёмся к самой модели жука.

Риггинг и анимация
Опять же это вторая работа, но уже с риггом т.е. настройкой костей, различных вспомогательных штук и подготовка к анимации.
До этого игрался с ригом человека ( в блендере есть некий meta-rig — по стуи готовый скелет с настройкой для человекоподобных персонажей ), который я всё же хотел построить сам и тут мои небольшие знания пригодились, хоть жук — не человек.

Сделал скелет, задал некоторых костям constrains для inverse kinematic, короче было даже весело, ведь это не человек, а что-то другое.


Попрактиковался в задании костям произвольной геометрии, которая иногда помогает лучше разобраться и управлять этим всем.
Когда разобрался с этим, тогда пошёл цеплять сетку к костям. И пришлось мне это делать трижды: голова, тело и «лапы».

Протестировал как там всё зацепилось:


Затем предстоял очень сложный момент — анимация.
Наверно кто-то помнит мою плохую анимацию пчело-осы. Жук не стал исключением и она аналогично плохо выглядит :D
Как же я намучился с анимацией «ходьбы» — сначала он ходил как «робот-солдат», затем он был дёрганым и только на третий раз у меня получилось что-то сделать похожее на передвижение жука.

Набор анимаций для теста был очень скуден: «ожидание» и «ходьба».
Нет «атаки», «смерти» и каких-либо дополнительных анимаций.

<< Тут должно быть либо видео, либо gif, но не будет, лол >>

Как это выглядит в игре
Собственно, когда была готова модель, текстуры и анимация, тогда я сразу перекинул всё это дело в проект Unity. Уже был написан небольшой скрипт для ИИ, но не полный функционал конечно.


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

Но жуки решили, что физика им не писана и решили немного «Harlem Shake» устроить.


А вот это дебаг-вид:


Можно заметить, что жуки таки рвутся размножаться :D


Что дальше?

Дальше больше! Или меньше.
Сейчас стараюсь сделать новую модель Люка, но что-то она не нравится мне. Собственно 100% будет подобный лог о модельке Люка (если вообще закончу его).
Ещё хотел чего-нибудь по локациям в общем и про первую локацию в частности.
Конечно поработать ещё с ИИ, сделать лут и прочее, но это наверно уже совсем другая история :)

Всем мир, чуваки!

 

Пфф, да кому нужны эти логи?! ТАМ Е3 ИДЁТ !!

Похожие статьи

  • Бродилка. Новости №1
    Приветствую!Новости от 25.06.2015 ! Сейчас Кардинальная смена приоритетов и по сути «сиденье в бункере».
  • Бродилочный нелог, а новость №0
    Приветствую!Сейчас В данный момент создаётся модель Люка Скайукера, а вернее делается hi-poly, затем будет low-poly и анимация. Вносятся правки в коды, добавляется немного...
  • Бродилка. Лог #12
    Если кратко В этом логе Вы сможете почитать о моих размышлениях на тему искусственного интеллекта для игры Бродилка. Общие идеи, как он должен работать и почему он лучше...
  • Бродилка. неЛог #11
    Если кратко:Немного бесполезный лог содержащий в себе некоторые планы на будущее относительно следующего прототипа. Ближе к темеПрототип номер 2 ничего толком не показал,...
12 комментариев
Kozinaka
Жуков одобряю. Жуки, это хорошо.
DarkDes
Вдохновился кстати твоими «пластиковыми» червями! ) Правда не удалось повторить тот стиль, но просто выглядят очень симпатично они, даже без «текстур» :)
Kozinaka
Зачем повторять — у тебя свой есть. Вон, оса ж эталон простоты и изящества.
DarkDes

Ну вообще да. Надо будет ещё осу переделать или нет. Посмотрю как лучше ) Всё равно переделывать её надо будет.

Про стиль кстати весьма спорно) Делаю как могу, а стиль кидается то в одну сторону, то в другую :D Надо попробовать нормализовать это дело.

Xitilon

Я даже не знаю что там идёт E3, лол. Эти логи мне намного интересней, честно.

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

(Дорогая администрация, я не пытаюсь оскорбить Индюшку таким образом!!1!1111 )

DarkDes

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

Вообще я забыл подвести итог, что я делал эту модель (сукльпт, лоу-поли, текстурку и прочее) 3 дня! ТРИ ДНЯ! Это жесть как долго.

Xitilon
сукльпт
Ктулху фхтагн!
DarkDes
Просто пальцы запутались. А вообще слава Ктулху, да.
Val79K

Как и в обычном полигональном моделировании всё начинается с куба

В Максе всё начинается с чайника )

DarkDes
В Максе всё начинается с чайника )

Ну если говорить о знакомстве с программой, то наверное да)

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

Xitilon
Это была смищная шутка. Видимо, мне смешней, потому что никогда не моделил.
DarkDes
Кстати, если кто помнит, то Kozinaka постил тут конкурс XGM, дак вот, там уже проходит 3ий этап и если кому интересно, то вот тут вот можно налайкать воВконтактыче: vk.com/wall-1750347_2274
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.