Модульные наборы - пожалуй самый популярный цикл работ в рамках Environment Art, основанного на игровых технологиях и игровых движках.
Сразу отметим, что принципы модульных сборок - не догам, и не всегда нужно собирать все свои здания и строения из отдельных хитро сделанных кусочков.
Главное (если говорить о визуале) - выдерживать тексель и контролировать работу тайлов (тайловых материалов)
Одна из основных причин, почему принцип модульной сборки так востребован - это взаимозаменяемость отдельно взятых модулей в процессе сборки того или иного здания.
Из этого принципа вытекает вывод:
Если ваши здания имеют слишком уникальный дизайн в формах, то степень взаимозаменяемости падает.
Идеальный конструктор - это такой, в котором все имеющиеся детали конструктора могут заменить любой другой. Но это идеал, в реальной жизни таких наборов считай, что и нет.
Однако - это тот принцип, к которому должен стремиться “строитель”.
Каковы же основные принципы модулей?
1. Кратность модульной сетки.
Когда вы делаете свои модули в 3d редакторе, стоит для начала продумать метрику вашей модульной сетки. Ниже пример в 3ds max:
Я часто использую достаточно мелкую сетку с шагом в 10 см. Да она мелкая и можно использовать кратность и 20 см и 50 см.
Но как по мне - это наиболее универсальный шаг. Опять же никого не призываю к этому, просто в своих проектах я чаще остальных значений задаю такое - 10 см.
2. Привязки.
Конечно если нет привязок на ту же сетку, что описал выше, то теряется всякий смысл. Крайние точки вашего модуля должны попадать в модульную сетку, иначе (даже если вы соберете целое здание в 3d редакторе), здание в движке - не соберется.
Дело в том, что UE использует фиксированные значения привязок и при несоблюдении их у вас будут либо нахлысты в стыках, либо зазоры, при этом в шаг даже в 1 см вы просто не попадете.
3. Положение якоря (Pivot).
Располагайте его там, где модуль будет стыковаться с другим модулем
4. Положение самого модуля со своим якорем в центре мировых координат редактора при экспорте.
Если не соблюсти это правило, то смысл в предыдущем пункте просто теряется. Якорь (за которой вы хватаете модуль чтобы его куда то сдвинуть или повернуть) улетит.
На примере ниже, якорь выставлен как полагается, но при эскпорте нарушено правило центра мировых координат:
5. Нейминг.
Важность того, как вы называете каждый свой модуль растет в геометрической прогрессии с ростом библиотеки. Что будете делать, когда библиотека достигнет нескольких тысяч кусков
Это только некоторые правила при моделирование конструктора.
Для разработки тайловых материалов также есть свои правила, определить разрешение выходных текстур, держать тексель, учитывать размеры при создании трим листов или декалей.
Лично для меня особый интерес представляет разработка логики материалов непосредственно в Unreal Engine.
Казалось бы, тайловый материал стен с какой то базовой (буквально для фона, еле заметно - грязью), но какова логика, чтобы учесть все это параметрами в экземпляре материала:
или для декалей:
продолжение:
окончание:
логика:
Вообщем. я здесь просто не в состоянии покрыть все важные моменты.
Модульные сборки - одна из самых объемных тем для изучения. Неспроста, даже для моего последнего курса была сделана отдельная глава по этой теме, а спустя какое -то время сделана еще раз, но с другим подходом и отдается студентам в итоге как одно целое.
А планируется еще одна на тему модулей но с принципиально другим подходом - от обратного. Когда сначала планируется визуал, тайлы, тримы, декали, а уже потом из них вырабатываются “стройматериалы”.
Но об этом в другой раз.