Gamedev Андрей Верещагин
3 070

Создание гексагональных карт в Houdini

Полезный инструмент для быстрой генерации локаций.

В закладки

Технический художник Анжен Го рассказала порталу 80.lv о создании гексагональных карт для стратегических игр с помощью инструмента Hexagon Map Generator. С разрешения главного редактора сайта Кирилла Токорева DTF публикует перевод материала.

Hex Map Generator предназначен для создания классических RTS с видом сверху. Анжен Го черпала вдохновение из таких игр, как Untiy of Command, Civilization V, Battle Worlds: Kronos и WARTILE.

Благодаря рабочему процессу в Houdini, построенном на узлах, делиться и повторно использовать цифровые ассеты Houdini (Houdini Digital Assets, HAD) очень легко. HDA, в свою очередь, можно изменять и модифицировать.

В этом проекте таковым стал узел «для каждого». Он позволяет легко проводить повторяющиеся операции столько раз, сколько вам требуется. Таким образом, не придётся постоянно нажимать «ctrl+c — ctrl+v».

Этот HDA можно загрузить в Unreal, если у вас установлен Houdini Engine. Просто нажмите на кнопку Import в Unreal.

Ассеты

В Houdini есть узел «Scatter». Он отвечает за распределение новых точек на поверхности по заданному паттерну. Анжен Го создала атрибут «pscale» и задала случайные значения в определённых пределах. Функция «Copy to points» может соединять ассеты с каждой точкой, а масштаб ассетов будет меняться в зависимости от значения «pscale».

Разработчик не может сказать, насколько хорошо Hex Map HAD показывает себя на огромных картах с десятками или сотнями разных ассетов. Всё зависит от размеров как отдельных гексов, так и всей карты.

Другие возможности инструмента

Инструмент позволяет создавать скалы или донья водоёмов, задавая высоту выбранного региона. Параметр «Add floor» может создавать водяную поверхность. Если вы выберете регион, вы можете создать холм, задавая его высоту и радиус.

Кроме того, можно легко создать ограду. Просто нажмите на «Fence» и ассет или конкретная территория будут огорожены.

Самый быстрый способ создать карту — начать с чертежа на бумаге, а затем построить грубый набросок в Houdini. Как признаётся Анжен Го, работа над самой сложной картой у неё заняла около 25 минут.

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

Создание коридоров

Анжен Го создавала ассет коридора, поставив себе два условия: во-первых, он должен располагаться на плоской поверхности, а во-вторых, он должен состоять из шести панелей разного размера (2х2, 2х1, 3х1, 1х2, 1х1) и колонны. У панелей, при этом, может быть разный дизайн.

Сетка построена на точках. Так получается базовый коридор, состоящий из квадратов.

Каждому квадрату задаётся центральная точка. Затем разработчик создаёт атрибут «selected» и устанавливает его на значении «0».

Например, для панели размером 1х2, требуется два квадрата. Анжен Го выбирает центральную точку (А) случайно, а затем ещё одну точку (В) над первой. Атрибут «selected» для этих двух точек должен быть установлен в значении «1». Таким же образом создаются остальные панели.

Анжен Го также сделала два вида углов в коридоре: внешний и внутренний.

Оптимизация

Параметр «Show Meshes» предназначен для оптимизации производительности в Unreal. По-умолчанию он отключён, поэтому показываются простые панели и блоки. Эту настройку имеет смысл использовать, когда вы создаёте изогнутые поверхности или редактируете. Затем его можно включить. Так вы сможете увидеть коридор с геометрией панелей.

Кроме того, Анжен Го рекомендует использовать низкополигональные ассеты. Например, у панелей, которые она применила в этом уроке, примерно по 1,5-2 тысяч полигонов.

Скачать Hexagon Map Generator можно по ссылке.

#опыт #unreal

{ "author_name": "Андрей Верещагин", "author_type": "editor", "tags": ["\u043e\u043f\u044b\u0442","unreal"], "comments": 9, "likes": 34, "favorites": 53, "is_advertisement": false, "subsite_label": "gamedev", "id": 22486, "is_wide": true, "is_ugc": false, "date": "Mon, 02 Jul 2018 11:48:43 +0300" }
{ "id": 22486, "author_id": 22254, "diff_limit": 1000, "urls": {"diff":"\/comments\/22486\/get","add":"\/comments\/22486\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/22486"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954 }

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

Популярные

По порядку

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

для создания классических RTS

Untiy of Command, Civilization V, Battle Worlds: Kronos и WARTILE

Может всетаки TBS?

Ответить
0

Ойойойой, косяк. Я даже чет не взял в голову.

Ответить
2

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

Лучше переведите на русский доклад про наборы-конструкторы из Skyrim, гораздо полезнее будет. А Гудини прекрасная штука, которую совсем для других вещей надо использовать.

Ответить
1

Вот ещё доклад о генерации игровой карты при помощи гудини в Far Cry 5.

Ответить
0

Не совсем понял это для MAC или PC??

Ответить
0

это для гудини)))

Ответить
0

я серьезно) неврубился) или это плагин для UT?

Ответить
0

Это Ассет для гудини, никакого ут тут нет) В ут у тебя через худини енджин пойдет.

Ответить
0

По теме гексов еще можно генерить классные карты при помощи генераторов в Substance designer. https://share.allegorithmic.com/libraries/957

Ответить
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" } } } ]
Невероятно! Skyrim портировали на...
Подписаться на push-уведомления