Инди Alexander Kulkov
481

Проект XPL

Кибернетический герой в поисках смысла существования.

В закладки

В процессе жизни разработчики мигрируют между различными средами разработки. Вот и я понемногу доплыл до связки Unity c Blender, пройдя Flash, Blitz3d в упряжке с 3ds Max, не говоря про Delphi, QBasic и спектрумовский Basic.

Пару слов о самом инструментарии. Blender впечатлял и раньше - полноценный мощный 3d-пакет, который весил какие-то жалкие десятки мегабайт. Правда он требовал к нему привыкнуть, но это того стоило. Правда глубоко в его возможности я поначалу не залезал, в основном мне тогда нравилась возможность красить вертексы, а так я привык пользоваться максом. Прошли годы и я снова вернулся к 3d, и уже не рассматривал макс совершенно, нацелившись на Blender. С тех пор тот успел обзавестись "честным" рейтрейсинг рендером Cycles, 3d карандашом, скульптом и прочими полезностями. На этот раз интерфейс не показался мне чем-то космическим, хотя требуется навостриться - может быть пригодился тот первый опыт, может быть действительно среда стала более интуитивной. Тем временем версия 2.8 обещает быть ещё интереснее - не только шустрый "игровой" рендер Eevee, но и изменённый интерфейс, буст анимационных возможностей. В принципе это уже всё есть, но пока в нестабильных сборках - допустим, у меня в 2.8 немного глючит сцена и в редакторе нодов связи совершенно прозрачные (а вот на Linux эта версия работает более стабильно). Вобщем, Blender - это очень правильный опенсурс.

Unity. Тоже отличный инструмент. Для понимания того как всё устроено мне пригодился опыт использования Blitz3d и Flash, на котором я как раз собирал законченные игры, а не только прототипы. Таким образом в Unity я нашёл всё что нужно, чтобы делать 3d-графику работающую на скриптах. Хотя сейчас в принципе движков появилось много - не проблема делать на чём угодно. Сейчас скорее проблема в оптимизации, потому что среды разработки стали более дружелюбны к пользователям и велик соблазн забить всё доступное пространство сверх-тяжёлыми супер-детализированными объектами, а код писать так, как будто моделируешь реальную ситуацию, в лоб. При том, что классический подход состоял в тотальном использовании таблиц, массивов, матриц, многообразия операций с ними, и формирования у пользователя всевозможных иллюзий - иллюзия объема, иллюзия перемещения, иллюзии эффектов и так далее. Что давало хорошую оптимизацию при скромных мощностях.

Возвращаясь к своему "гоночному" проекту. В первых набросках полуантигравитационный байк состоял из примитивов и ездил не шибко гладко. Как всё это выглядело можно посмотреть в этой статье.

Погрузившись недавно с головой в новый Blender, а особенно в область рендеринга, я занялся более детализированными моделями и дошла очередь и до того, чтобы сделать более технологичную модель байка для XPL. Планировал просто сделать модельку для рендера, чтобы было. Вот что в итоге получилось:

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

сетка рендер-модели

Благо моделька была не скульптом, к тому же моделилась через симметрию, поэтому слегка упростить её вручную оказалось быстрее, чем проводить полноценную ретопологию. Поэтому оптимизировать её было не трудно:

упрощённая сетка - так уже гораздо лучше

Кроме новой модели я задумался над тем, что некоторые уровни могли бы иметь камеру закреплённую над героем. Так появилась отдельная сцена с видом сверху. Правда управление в ней уже не работало так как нужно, потому что в оригинале повороты контролировались отклонием мышки от центра и в другой перспективе полноценной езды не получалось. Ну что же, это было сигналом к тому, что управление нужно менять, хотя бы в рамках новой сцены. В итоге я переписал модель управления и теперь болид поворачивает в стороны на боковые стрелки, а по вверх/вниз едет вперёд либо назад. Попутно поменялись составные элементы персонажа, благодаря чему он стал лучше кататься и самое главное - получил способность "залипать" на поверхности, не соскальзывая. Я как раз хотел добиться этого эффекта, потому что он лучше подходит для отражения того, как должен вести себя задуманный полуантиграфитационный транспорт. Да, он теперь стал настоящим скалолазом.

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

новая модель и наброски уровня с видом сверху

В принципе, встроенная в Unity система шейдеров позволяет настроить материалы довольно гибко, однако мне не хватало каких-то более красочных бликующих эффектов и я поискал различные способы того, как их проще сделать. Решением оказалась концепция маткапов (matcap) - в том же Blender есть наборы этих простых текстур, хранящих световую карту окружения, которые подменяют собой материалы всей сцены, хорошо выглядят и на лету отрисовываются в реальном времени. С ними удалось добиться ещё более сочного вида модельки.

Попутно я занялся локацией для вида сверху, переделывая её с нуля, рисуя дорожки, горы и расставляя там разные новые элементы:

Так как сверху сложновато ориентироваться по окружающему ландшафту, то сама собой попросилась мини-карта. Но этот элемент в Unity добавляется относительно легко - буквально в несколько кликов. А вот другая вещь, которая пришла мне в голову, потребовала куда больше времени на реализацию, хотя тут тоже в итоге кода получилось не много. Я имею в виду автоматический зум, который отдаляет основную камеру, когда болид разгоняется - как в первых GTA. И вот, когда уже всё это заработало, то последовала очередная, пока последняя сборка, содержащая все эти новые изменения. Видеонарезка:

текущий вид проекта XPL

На этом пока всё. Удачи вам в разработке ваших проектов!

#xpl

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Alexander Kulkov", "author_type": "self", "tags": ["xpl"], "comments": 30, "likes": 3, "favorites": 9, "is_advertisement": false, "subsite_label": "indie", "id": 47940, "is_wide": false, "is_ugc": true, "date": "Wed, 24 Apr 2019 15:15:49 +0300" }
{ "id": 47940, "author_id": 25870, "diff_limit": 1000, "urls": {"diff":"\/comments\/47940\/get","add":"\/comments\/47940\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/47940"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64960, "last_count_and_date": null }

30 комментариев 30 комм.

Популярные

По порядку

Написать комментарий...
1

Лично я за Unity по одной простой причине – C#. Только времени особо нет заниматься движком =/ А Blender 2.8 тема. Я перешёл на Blender не так давно (года полтора назад, это была 2.78 версия, если не ошибаюсь), поэтому привык уже к старому интерфейсу, но новый во многом лучше, хотя всё равно есть дикие косяки – например, у меня в редакторе кривых не работает Box Selection по-умолчанию, только через соответствующий шорткат, и в редакторе нод выделение тоже не соотносится с 3D View, нельзя снять выделение кликом на пустом месте. И до сих пор не добавили импорт *.3ds файлов, который мне регулярно нужен) Приходится держать Portable-версию 2.79 и скакать туда-сюда. Но если всё это отбросить, 2.8 это вещь. Сижу на ней уже давненько, время от времени качая актуальные билды с сайта разработчиков.
В остальном – ты молодец, удачи тебе) Завидую по-доброму)

Ответить
1

Спасибо! ;)
Blender уже вроде скоро стабильную 2.8 готовятся выпускать. Ну, кстати, многое в 2.79 есть, что я считал фишкой 2.8 - ну те же маткапы, метаболы. Притом 2.79 всё-равно останется неким стандартом - самая продвинутая версия со старым интерфейсом. Если не нужен eevee и новые возможности.
Я не то, чтобы вот прям за конкретный C#, скорее просто за движки с достаточно мощными встроенными языками. Кстати в Blender'e есть blender game engine, в связке с Python, но я во всём этом не разбирался, не знаю насколько сложно в той среде делать проект на практике.

Ответить
0

BGE уже всё, его не поддерживают, насколько я знаю. В 2.8 его нет. После того, как я попробовал 2.8 и Eevee, 2.79 в моих глазах выглядит уже динозавром, если честно) Заходишь в него, и словно руки связаны. Я пользуюсь 2.8 как полноценной версией, не замечаю особой нестабильности. Иногда вылетает, если творить что-то извращённое, но такие задачи передо мной стоят редко)

Ответить
0

А, вон оно что. Ну, может нечто подобное добавится позднее, в новых версиях. Плюс есть отдельный UPBGE.

Ответить
0

Смысла, думаю, маловато, когда есть Unity, UE4, да тот же Godot. Ну, и Armory же под Blender?

Ответить
0

Да, Armory3d подключается как плагин. Видимо решили сосредоточится именно на пакете для 3д, раз прочие независимые расширения можно пристегнуть. Просто хотелось бы больше именно хороших опенсурсных движков для 3d, а BGE был так и вовсе из коробки (был ли хорош - не знаю).

Ответить
1

Когда то давно ещё на UE3 делал что-то подобное
Бродилку когда они ещё не были мейнстримом про робота в мертвом мире с записками и эхо записями

Но спустя годик понял что играть в игры мне нравится намного больше чем работать над ними и забросил)

Ответить
0

Мне вобще из подобного нравились Вангеры, всегда хотелось сделать нечто близкое к ним. Кстати, собирал на Unity прототип по мотивам, но не стал развивать, потому что какой смысл повторять ремейкать/оригинальную игру если ты изначально не её разработчик.
UE тоже пробовал, как и Cryengine. Можно было бы в любом из них практиковаться дальше, но я всё-таки хочу менее прожорливую среду и чтобы приложение запускалось на слабом железе тоже.

Ответить
0

Для автоматической ретопологии есть замечательный Instant Meshes: https://github.com/wjakob/instant-meshes
Работает довольно качественно и на ютубе полно роликов, объясняющих как с ним работать.

Ответить
0

Я обычно без аддонов стараюсь обходиться. А так да, есть такое.

Ответить
0

Так это не аддон, а отдельная программка, и она бесплатная) Но есть и в виде аддона.

Ответить
0

Пока не понадобилось. Я, как правило, изначально делаю лоу поли, если это для импорта в игру.
Кстати, ещё из полезного бесплатного присмотрел Materialise - довольно просто делает на основе обычной текстуры карты высот, нормалей, окклюзий и так далее.

Ответить
0

Я пока нацелен на приобретение Substance в стиме на летней распродаже, а потом скачаю с сайта разработчиков оффлайн версии. Там и B2M есть, который делает все эти превращения. А пока я пользуюсь AwesomeBump)

Ответить
0

Ну, Blender по сути умеет то, что предлагает Substance, просто не так заточен и нагляден конкретно в области покраски. Но есть аддоны, типа BPainter и прочих.

Ответить
0

Пока меня больше интересует Designer, но и с Painter, думаю, мало какой софт может сравниться. Во всяком случае, пока Adobe не решит всё заруинить)

Ответить
0

Вобще у них там большой магазин материалов, где всё дорого-богато смотрится. Просто для Блендера я подобных сайтов с материалами не видел, зато с моделями есть разные.

Ответить
0

Просто в пэинтере можно комбинировать материалы, чтобы получить новые результаты. У них само понятие материал(или смарт) не является финальным, это просто группа/папка со слоями, которые подхватывают карты меша.
На днях вот апдейт вышел, теперь в пэинтере адекватно тесселяция поддерживается и много всяких плюшек для задания высот и их смешивания. Если научиться грамотно сочетать пэинтер и дизайнер, это будет одно из топовых решений для текстуринга и блендер(при всей моей любви к этому швейцарскому ножу) с этой парой и рядом не стоит.

Ответить
0

Substance и Blender можно использовать вместе. А так в Блендере тоже можно красить вертексы, смешивать текстуры и так далее.

Ответить
1

Ну вообще в 2.8 можно полноценный PBR текстуринг делать, только это пока все очень топорно, как по мне. И с ыабстенс работать удобнее все же. Но блендер шагает семимильными шагами, кто знает, может через пару лет сможем весь процесс создания графики выполнять в блендере.
https://youtu.be/svzKoq3vew0

Ответить
0

Так Adobe просто сделала красиво и удобнее для текстурщика. То есть есть за что заплатить, если хочется вот прям с комфортом.

Ответить
0

Adobe ничего не сделали) Они просто купили Allegorithmic вместе с сабстансом несколько месяцев назад, чем вызывали нехилый (но краткосрочный) бугурт среди пользователей.

Ответить
0

А мазагины ассетов были ещё до перехода к Adobe?

Ответить
0

Adobe купила Аллегоритмиков несколько месяцев назад(дублирую splinefx, да). А их софт уже годы существует на рынке, как и Substance Share с бесплатными материалами. Адоб вообще кроме бабок ничего не делает. Хотя до автостола по ущербности им еще далеко..

Ответить
1

Теперь понятно. Ну, печально, что сказать.

Ответить
0

Я по старинке качаю бесплатные PBR-наборы текстур и вручную задаю материалы в блендере) Да и вообще, в лисе в закладках скопилась уже куча отсортированных источников бесплатных ресурсов.

Ответить
0

Ну вот и я ручками настраиваю, и подбираю что-то на сайтах иногда.

Ответить
0

То ли у Эндрю Прайса, то ли у Глеба Александрова был какой-то аддон, позволяющий автоматом создавать готовые материалы, лишь указав путь к папке с набором текстур, но я почему-то не копал в этом направлении и не пробовал его (даже не знаю, платный он или нет).

Ответить
0

Тоже пока не смотрел как импортируются материалы, для рендера пока обходился редактором нодов и простыми шейдерами. Так что всё впереди :)

Ответить
0

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

Ответить
0

ГГ всякие нужны.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Новая игра Ubisoft на релизе выглядит
точно так же, как и на E3
Подписаться на push-уведомления