Исходный размер 2000x2800
Данный проект является учебной работой студента Школы дизайна или исследовательской работой преподавателя Школы дизайна. Данный проект не является коммерческим и служит образовательным целям

Создание ассета на основе геометрии в UE

По умолчанию в Houdini Inputs выбран Geometry Input. Это значит, что никакая геометрия из анрила не отправляется в гудини. Все генерируется непосредственно в гудини.

big
Исходный размер 731x143

Geometry Input

Для примера был собран сетап забора с возможностью менять его длину. Для его работы достаточно просто перетащить HDA drag&drop'ом во viewport. Геометрия перенесется из гудини

big
Исходный размер 800x397

Импорт ассета

Но если стоит задача сгенерировать что-то на основе геометрии ассетов из анрила, нужно сменить на World Input. Затем нажать кнопку Start Selection и выбрать ассет в сцене, меш которого будет отправлен в гудини.

big
Исходный размер 602x476

World input

Изменив логику сетапа в houdini и настройки инпута, теперь можно генерировать забор на любом ассете в сцене UE

Исходный размер 800x395

World input asset

При этом в гудини уже не задается никакой геометрии. Она передается в input subnet'а

Исходный размер 800x420

Как выглядит ассет в houdini

Создание ассета на основе кривых в UE

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

Исходный размер 800x450

Ассет на основе кривой

В данном случае необходимо выбрать Curve Input. Тогда во вьюпорте появится spline и эта же кривая будет отправляться в сессию Houdini на вход HDA. Чтобы редактировать сплайн в unreal нужно выбрать точку с ЛКМ. Далее появится пивот для ее перемещения. Если нужно продлить сплайн, нужно потянуть за точку с зажатым alt

Исходный размер 732x267

Curve Input

Еще один сценарий, когда нужно перенести в unreal конкретную кривую, по которой все строится и дальше ее редактировать. Для этого нужно зайти в Type Properties ассета и во вкладке Node/editable Nodes указать название ноды/нод с кривой

Исходный размер 1576x451

Перенос кривой в Unreal

В таком случае кривая сразу появится при переносе HDA во вьюпорт unreal и не нужно вручную выбирать тип инпута

Оптимизация ассетов для игрового движка

В предыдущих примерах в движок передавалась геометрия целиком. Но это очень расточительный подход, поскольку забор состоит из одних и тех же повторяющихся элементов, которые нагружают память. Решение в том, чтобы запаковать повторяющийся кусок забора, а затем копировать этот запакованный элемент. Таким образом в память будет загружаться только одна часть забора и при ее копировании движок будет ссылаться на нее же, а не загружать целый забор. Такие запакованные куски называют instance.

Исходный размер 800x450

Ассет с инстансированием

Сначала нужно экспортировать геометрию из houdini в UE. Стоит учитывать, что единицы измерения в этих программах отличаются и перед экспортом необходимо увеличить модели в 100 раз относительно 0 координат

Исходный размер 757x248

Импорт геометрии

Для назначения инстансов используется атрибут unreal_instance на точках. На него нужно назначить путь к геометрии в UE.

Путь можно найти, нажав ПКМ по ассету и выбрав Copy Reference

Исходный размер 1152x480

Копирование пути к геометрии

Назначить путь на точки можно либо вручную: s@unreal_instance = "/Script/Engine.StaticMesh'/Game/HDAs/Fence/fence_geo/vert.vert'";

Либо вручную ссылаться лишь на путь, а имя назначать атрибутом name, который назначен и на точки, и на геометрию, экспортированную в UE. Если ассетов много, процедурный нейминг значительно сэкономит время

Исходный размер 1446x223

Назначение инстансов

Таже можно вывести параметры с путями в ассет, чтобы была возможность назначать инстансы динамически в анриле:

Исходный размер 2560x1120

Выведение параметра пути в ассет

3. Импорт и работа с ассетами в Unreal Engine 5
Проект создан 22.10.2025
Глава:
1
2
3
4
5
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше