3. Импорт и работа с ассетами в Unreal Engine 5
Original size 766x1080

3. Импорт и работа с ассетами в Unreal Engine 5

PROTECT STATUS: not protected
8

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

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

big
Original size 731x143

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

big
Original size 599x345

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

В данном случае необходимо выбрать Curve Input. Тогда во вьюпорте появится spline и эта же кривая будет отправляться в сессию Houdini на вход HDA

big
Original size 732x267

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

Автоматическое подключение материалов

1. Назначение материалов по атрибуту unreal_material

В Houdini существует возможность указать путь к материалу, созданному в Unreal Engine, что позволяет Houdini Engine автоматически применять указанный материал в процессе импорта ассета.

На ноде, где есть геометрия (обычно Attribute Create, Wrangle, Labs Name), нужно создать строковый атрибут:

Имя: unreal_material Тип: String (Detail / Primitive / Point)

В значение нужно указать путь к материалу в Unreal. Чтобы скопировать путь, можно нажать ПКМ по ассету в content browser и выбрать Copy Reference

s@unreal_material = "/Game/Materials/M_MyMaterial.M_MyMaterial";

2. Назначение материалов по группам с атрибутом unreal_face_material

Если у модели несколько материалов (например, стены/пол/окна), лучше использовать примитив-группы.

Пример названия групп: grp_wall | grp_floor | grp_window

Атрибут для установки материалов на фейсы:

Имя: unreal_face_material Тип: String (Primitive)

Пример на vex: if (inprimgroup(0, "grp_wall", @primnum)) s@unreal_face_material = "/Game/Materials/M_Wall.M_Wall";

if (inprimgroup(0, "grp_floor", @primnum)) s@unreal_face_material = "/Game/Materials/M_Floor.M_Floor";

3. Автоматическое создание Material Instances в Unreal

Houdini Engine также может создавать Material Instance, менять параметры в MI и применять их к геометрии.

В анриле необходимо создать материал M_Master с нужными параметрами. К примеру roughness, basecolor, metalic.

В HDA надо назначить строковый атрибут unreal_instance для того, чтоб указать путь к мастер-материалу. и unreal_material_parameter_* для редактирования параметров MI_Master

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

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

Масштабирование f@pscale — для пропорционального скейла; v@scale — для непропорционального скейла;

Ориентирование Векторные атрибуты: v@N — повернет объект той стороной, какой он направлен в положительную ось Z; v@up — для положительной оси Y;

Четырехкомпонентный вектор (кватернион): p@orient — обычно кватернионы используют во избежание так называемого gimbal lock, когда требуется дополнительная ось вращения. Но с инстансингом они тоже часто выручают, поскольку задают ориентацию одним атрибутом, а не (up и N), что удобнее. А зная vex, инстансы можно процедурно вращать на конкретные или случайные градусы вокруг локальных осей каждой точки. Векторы тоже можно вращать, но это займет больше строк кода.

Для назначения инстансов используется атрибут unreal_instance. На него нужно назначить путь к материалу в UE. Это можно сделать либо вручную в HDA: s@unreal_instance = "/Game/Blueprints/BP_Lamp.BP_Lamp_C";

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

string meshes[] = array(
    chs("mesh1"),
    chs("mesh2"),
    chs("mesh3")
);

int id = int(rand(@ptnum) * len(meshes));

s@unreal_instance = meshes[id];

UE может разбить инстансы по разным компонентам, если с помощью атрибута s@unreal_split_instances

s@unreal_split_instances = "type_grass"; s@unreal_split_instances = "type_rocks";

Все атрибуты, читаемые анрилом можно посмотреть в официальной документации: https://www.sidefx.com/docs/houdini/unreal/attributes.html

3. Импорт и работа с ассетами в Unreal Engine 5
8
Chapter:
1
2
3
4
5
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more