Наконец, пришло время переделывать старых мультяшных червей на новый лад. Процесс начался в середине декабря прошлого года и ещё не далеко не закончен. Тем не менее, уже хочется побросаться скринами и видеороликами по теме.
Это, вот, один из кучи ранних набросков тупикового пути развития - попытались сходу делать скетчи нового вида червя. В отрыве от реальной кинематики червя скетчи оказались слишком далеки и неконкретны.
Этот скетч оказался удачливей, из него выжил стиль постобработки с шарпом.
Это результаты окончания "скетчевания", польза от которых была велика, но в чистом виде в нынешнем черве мало что сохранилось:
После анализа неудачи со скетчами зашли с другой стороны. Я сделал опорные контуры частей червя - мы называем это шейпами. Гоняя их непосредственно в движке я искал форму звеньев, при которой тело смотрится цельно, собирается в единый организм, но при этом на поворотах подчёркиваются изгибы. Вообще на анатомии звена мы с художником сломали довольно много копий. Даже об общей терминологии договориться потребовало серьёзно поперекидываться картинками и потратить немного нервов на преодолении стены взаимного недопонимания. :)
Исходные шейпы для моделирования вчерне (а теперь мы решили зайти с этой стороны) выглядели в сборе так:
Дальше художник под эти контуры стал делать модель червя, которую после многочисленных переделок и препирательств утвердили.
Вот один из промежуточных вариантов (ещё без обвеса головы):
Уже со жвалами:
А это финальный голый рендер из утверждённой модели:
Небольшой эксперимент по постобработке этой модели (я его называю рыбочервь :)
Правда, этот вариант был отброшен, после него мы перешли к чёрным червям и поиску фишки, которая заставит червей быть объёмнее и вылечит их от очень неприятной болезни - выворачивания тела червя наизнанку, если хотя бы раз поймать это ощущение. Вот на нижней картинке, если долго всматриваться, то можно воспринимать тело червя не как выпуклое, а как вогнутое. В динамике это выскакивает при подготовке червя к прыжку, когда шея сжимается. Один раз увидел - никак развидеть не получается. Наваждение просто.
В итоге я нашел фейковое решение, которое вроде работает. К каждому звену червя изготавливается два спрайта с накладываемым светом. Каждый привязывается к определённому углу поворота звена и блендится при приближении угла поворота к заданному.
Вот черновых набросках выглядело так:
Белое, это свет с одной стороны, зелёное свет с другой.
Сейчас наброски также черновые, но свет чуть причёсан. В итоге получается вот такая подсветка изгибов:
Вот ещё несколько скринов с подсветкой + черновые пробы забрызгивания морды червя:
Ещё молодые черви отличаются от старых. Сейчас раскраска моя тестовая, на ней молодые черви более желтые и полосатые, а взрослые сплошняком чёрные. Для каждой части червя есть две картинки, которые при отрисовки блендятся друг с другом в зависимости от размера части червя. Поэтому хвост червя немного "моложе", чем он сам.
Я думаю вы уже заметили, что параллельно с червями в игре появились деревья. Вот они поближе:
Всё, пока новостей нет, мячик на стороне художника, я свои черновухи сделал и с нетерпением жду их преображения в финальные варианты.
По мере возникновения новых материалов по червю буду их сюда публиковать, а пока видео с последними черновыми червями, деревьями (живыми и мёртвыми), а также размыливанием нижнего уровня:
Добавлен индикатор проглатываемой еды (он находится в левой части экрана, под яйцом), вот видео по этому случаю (с червями всё по-прежнему):
11 марта 2015: Всё больше обвешиваюсь шейдерами, отказался от FFP, пытаемся перейти от фейковых бликов к более реалистичным, рассчитываемых по картам нормалей. Набор карт выглядит так:
Сверху диффузная составляющая (рассивание поверхностью падающего света в разные стороны), чуть ниже карта нормалей (из каждой точки тремя компонентами цвета закодирован трёхмерный вектор нормали к поверхности), самая нижняя карта, это спекуляр (отражаемые поверхностью лучи света, попадающие в наблюдателя, блики).
Пока только пробую, вот что сегодня получилось:
Смотрите также:
Комментарии
Блики на панцире выглядят прекрасно! И всего двумя картинками (помимо кода) сделаны, надо же. Я когда первое превью увидел, подумал — не уж то у вас модели вместо спрайтов появились?
А по какой причине slow motion включается у вас там? :)
Кстати, новый червь классный!
Кет:
Блики на панцире выглядят прекрасно!
а мне кажется наоборот. Как будто из пластмассы черной сделаны, выглядит совсем не органично. Кстати насчет света, мне на видео все равно кажется как будто черви "вогнуты" внутрь, стоит только один раз посмотреть на него под таким углом, и дальше мозг все время воспринимает вогнутого червя.
Нужно вообщем уйти от пластмассы, сделать червя более похожим на органику. (может шейдер слизи сделать, которая будет как-бы "стекать" в обе стороны от центра.. Вообщем не знаю точно, что тут поможет. Попробуй просто живых червей найти на улице, и посмотри на то как они выглядят.
H, так это по сути не червь, а насекомое. Судя по конструкции, это, очевидно, не кожа, а экзоскелет.
Хитин да
...хех, а я кстати думал насчёт изменения червя, можно вообще сделать потом в мультиплеере, как делают стимовцы, за ачивки и прохождение давать новый облик червя, ну а дальше и за уже не просто так...
Красиво, жвалы теперь тоже эпичные )
Деревья тоже неплохое решение, однако какой же тогда червь - если деревцо меньше его? можно травинки добавить хотя бы, а то это как-то)
А игра хорошая и вообще есть куда расти, я прошлую версу прошёл взахлёб и мне понравилось
удачи
однако какой же тогда червь - если деревцо меньше его?
Мб это бонсай, а червь размером со сколопендру какую-нибудь. Если сравнить с божьей коровкой, примерно так и выходит.
какой же тогда червь - если деревцо меньше его?
Покайся, нечестивец! ЭТО ШАЙ-ХУЛУД!!! Отец Пряности!
Выглядит классно, но если присмотреться к черному червю на картинке ниже, то ощущение вогнутости тоже имеется. Хотя, в сравнении с предыдущим вариантом этот намного лучше =)
Красивые, реалистичные (по сравнею с прошлыми), но при этом жуткие! Сейчас они похожи на многоножек без ножек, а не на червей. А почему "рыбо-червь" отброшен?
CollectableItemData.cs
[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]