Полезное
Мы Вконтакте
Discord канал
В приведенном ниже списке рассмотрены стандарты контента для Unreal Engine.
Хотя ваши личные проекты могут использовать любой стандарт, который вам нравится, любое содержание, которое вы хотите распространять другим пользователями вручную или через специализированные магазины (нп. Marketplace) должно следовать этим стандартам.
Skeletal Mesh поддерживает импорт FBX файлов, что обеспечивает удобный рабочий процесс, для получения анимированных объктов из 3D приложений в Unreal Engine 4, для использования в играх.Помимо самого объекта, в импортируемом FBX файле может содержаться также анимации, морфы, а назначенные в 3D редакторе текстуры (диффуз и нормал) будут автоматически использованы в материале при импорте файла в UE4..
Особенности поддерживаемые скелетными объектами, используя FBX:
Skeletal Meshes могут состоять как из одного меша, так и сотавленные из нескольких объектов, и заскиненных на один скелет.
Использование нескольких мешей даёт возможность по разному ЛОДировать каждый объект, а также при использовании модульной системы создания персонажа.Такой метод не даёт потери производительности. Все индивидуальные части будут объедененны в один меш, после того, как они будут импортированы в редактор движка.
Rigging — означает привязку меша к скелетной иерархии костей/джоинтов. Это даёт костям/джоинтам влиять на вертексы меша при последующей деформации при движении.
Для Maya существуют инструменты, которые включают в себя заригенненого персонажа и анимационные решения. Maya Animation & Rigging Tools находятся в папке с UE4 \Engine\Extras\Maya_AnimationRiggingTools\MayaTools.
В Maya, вы можете использовать Joint Tool для создания скелета вашего скелетал меша. Опять же, существует огромное количество различных уроков по использованию этого инструментария для создания рига в Maya.
Плотность скелета сильно возрасла по сравнению с Unreal 3
То, как вы создадите скелетную анимацию в 3dsmax — дело ваше. Вы можете использовать стандартный инструмент Bones Tools, или любой друго удобный вам метод для ригинга вашего персонажа.
В Maya, меш(и) привязаны к скелету посредством Smooth Bind команды.Процесс этот одинаков, что для скелетал меша состоящего из цельного объекта, что состоящего из нескольких объектов.
В 3dsMax, меш(и) должны быть привязаны к скелету посредством модификатора Skin. Процес аналогичен как для целого объекта, так и для состоящего из нескольких частей.
Пивот меша в Unreal Engine обозначает точку, вокруг которой будет происходить трансформация объекта (перемещение,поворот,масштабирование).
Пивот скелетал меша всегда расположен в корневой кости/джоинте скелета.Это означает, что независимо от того, где расположен рут скелета в сцене, при экспорте из 3d приложения, он всегда будет иметь нулевые координаты (0.0.0).
Меши в Unreal Engine должны быть триангулированы, ибо графическое оборудование работает только с триугольниками.
Несколько методов триангуляции вашего меша.
Наилучшее решение — вручную триангулировать меш в 3d приложении, контролируя направления и расположения эджей. Автоматическая триангуляция может привести к нежелательным результатам.
Карты нормалей могут быть созданы для вашего меша, непосредственного в том 3d приложении, в котором вы работаетe.
Геометрия высоко детализированных мешей используется для генерации с них нормалей для карты нормалей. Epic используют в своём пайплайне XNormal, который даёт наилучшие нормали, для их последующего рендеринга в Unreal Engine 4. Больше от этом процессе — Гайд по созданию Normal Map.
Материалы применяемые к моделям экспортируются вместе с самой моделью из внешнего приложения и потом импортируются в unreal.Это позволяет не создавать вручную материалы и не добавлять текстуры отдельно.Все эти действия поддерживаются при FBX пайплайне.
Эти метериалы также необходимо настраивать, в случае, если на объект наложены несколько материалов, к примеру, если материал тела имеет id0, а головы id1.
Для получения подробных сведений о настройке материалов для экспорта,смотри FBX Material Pipeline .
Цвета вершин (один комплект только) для скелетал мешей могут быть переданы через FBX пайплайн. Не требуется дополнительная настройка.
Skeletal Meshes могут быть экспортированы индивидуально или сразу несколько в один FBX файл. Пайплайн импорта разделит несколько скелетал мешей на несколько ассетов в целевом паке.
Итоговый меш (если отмечены пукты импорта материалов и текстур) будет показан в контент браузере, в случае успешного импорта.
При просмотре импортированного меша вы можете убедится, что всё получилось как и ожидалось.
Скелетал меши могут использовать ЛОДы в игре, для того, чтобы уменьшить нагрузку от сетки меша при отдалении камеры от него.Как правильно, это узначает, что каждый уровень ЛОДа будет уменьшать количество триугольников, упрощать скелет, и возможно упрощать материал применённый к нему.
FBX пайплайн позволяет использовать импорт/экспорт этих ЛОДов.
В основном, ЛОДы создаются путём уменьшения полигонажа исходного меша. Все они (ЛОДы) должны быть выровнены и совмещены в одном и том же пивоте; а также заскиненны на один скелет. Для скелетал мешей возможно, что они будут состоять из нескольих частей в 3d редакторе. Каждая из этих частей может иметь ЛОДы независимо от остального меша. Это значит, что некоторые части могут иметь более простую сетку по сравнению с другими частями, которые будут использовать более детализированную сетку. Какждый ЛОД может иметь свой индивидуальный материал. Это значит, что вблизи к объекту материал будет более детализирован, а с отдалением будет заменятся на более простой материал.
Выберите все меши (основной + лоды) в порядке уменьшения полигонажа, т.е. сначала выбераете базовый меш, потом первый ЛОД, потом второй ЛОД, и так далее.Это важно для сохранения очерёдности и сохранения структуры ЛОДов. Затем, выберите команду Level of Detail > Group из меню Edit.
Теперь у вас есть группа мешей сгрупированных в ЛОД группу.
Настройка ЛОДов для многосоставных скелетал мешей почти идентична настройке ЛОДов обычного меша, с той лишь разницей, что каждая индивидуальная часть которая имеет ЛОДы, должна иметь ЛОД группу.Процесс создания этих индивидуальных групп идентичен тому, что описан выше.
ЛОДы скелеталМеша могут быть легко импортированны через панель Mesh Details в Persona под настройками ЛОДов.
СкелеталМеши ранее импортированные в UE4, могут быть экспортированы обратно в FBX файл из контент браузера.
Static Mesh Editor состоит из четырех областей:
Панель Viewport отображает сформированное (или необязательно сформированное) изображение текущего ассета. Это позволяет видеть меш, так как он будет показан в игре.
Viewport также позволяет просматривать ограничивающие объемы ассета, сам меш, а также его коллизии, если таковые были назначены. Кроме того, тут могут быть отображены UV развертки данного меша.
В левом верхнем углу панели отображаются базовые данные о текущем ассете.
Среди этой информации вы найдете:
Details Panel отображает специфические свойства, имеющие отношение к мешу, такие как материалы, наносимые на поверхность, варианты LOD и другие.
Viewport Panel
Горячие клавиши для камеры
Карта теней вероятно, самая трудная часть в создания визуального представления объекта. Мы используем их, чтобы получить запеченные свет и тень.
Они должны быть однозначно развернуты, так что каждая часть модели имеет свое собственное место в UV пространстве, чтобы в итоге получать корректную информацию о свете и тени.
Важно помнить, что разрешение карты теней крошечное по сравнению с размером UV пространства.
Важно также понимать, что чем больше уровень должен быть оптимизирован тем ниже дизайнер уровней должен использовать разрешение на лайтмапах, иногда доходя до 8 на 8 или 16 на 16 в случае с более мелкими объектами.
Эта тенденция требует, чтобы мы оставили много дополнительного пространства вокруг каждой секции из развертки объекта так, чтобы области, которые являются темными,
не воздействовали на светлые и не уничтожали иллюзию визуальной корректности теней в игре.
Есть 3 основных способа создания такой развертки:
Часто это самый надежный метод создания развертки объекта, поскольку большинство моделей окружающей среды близки по форме к блокам, которые объединены в некую структуру.
Непрерывный меш (меш в которой нет отстоящих от основной частей) часто бывает очень полезным решением при построении развертки,
это решение поможет обеспечить более эффективное распределение сетки геометрии в UV пространстве.
Это так же будет хорошо работать даже при низком разрешении карты теней, поскольку тогда она образует единый градиент от темного к светлому.
В отличии от фрагментированной развертки где результат покажется более неоднозначным и может потребоваться повысить разрешение карты теней для парирования эффекта резких переходов.
Мы должны стараться избегать этого там где мы можем. К сожалению иногда нет возможности использовать пониженное разрешение или единую развертку геометрии.
Этот способ особенно полезен для плоских конструкций, таких как стены с несколькими фасками или выдавливаниями. Это также очень полезно для больших частей фасадов зданий, таких как, например, многоквартирные дома.
Planar будет разворачивать значительно лучше если использовать неразрывную геометрию, потому что здесь вопрос будет стоять лишь в “расслаблении” сетки развертки.
Иногда так же хорошее правило заключается в том, чтобы убедиться, что на подобной развертке больше места по горизонтали, чем по вертикали, так как отбрасывание теней, как правило, происходит со стороны при слегка повышенном угле,
а не прямо вниз. Так, большее горизонтальное пространство даёт более широкие возможности для построения более резкой тени, из-за тенденции выбора дизайнерами освещения под углом,
чтобы создать более интересные тени, чем при освещении сверху вниз.
Большинство других форм можно представить как вариации цилиндрической формы, если конечно они не близки к параллелепипедам или плоскостям.
Цилиндрическую развертку хорошо использовать для многих конструкций которые имеют переднюю и боковые части, но не имеют задней, иначе мы бы использовали метод BOX UNWRAP.
Это был неразрывный меш так что его легко было развернуть при помощи BOX UNWRAP и просто разложить его горизонтально, чтобы использовать как можно больше пространства карты теней.
Нижние поверхности, которые могли бы быть видны на среднем изображении, удалены, так как они почти всегда будут черными,
и если бы они были связаны с остальной разверткой, тени от них просто бы просачивались темными пятнами на стены там, где этого не должно быть. Это же верно и для верхних граней.
За исключением того что они всегда были бы светлыми.
Этот метод развертки позволяет нам иметь почти идеальную карту теней в игре с разрешением 32 на 32. У геометрии нет никаких швов. Там где должна быть тень мы видим тонкие черные линии, а где не должна, там её и нет.
Здесь мы видим что необходимо использовать максимально возможное пространство, так как карта теней в любом случае покроет всю развертку.
По этому между соотношением сторон объекта 1 к 1 и 1 к 7 вы увидите сещественную разницу. Так же вы видите что здесь отделены некоторые части развертки и отодвинуты от основной сетки.
Это сделано потому как эти части всегда останутся в тени. Они не должны воздействовать на остальную карту теней.
Даже на больших фасадах как этот, Planar показывает хороший результат. Этот меш является неразрывным, что помогает нашей работе,
но в данном случае всё работало бы так же даже если бы развертка была разделена на несколько вертикальных или горизонтальных полос, хотя и потребовалось сделать небольшие отступы между ними.
Вы можете видеть, что здесь, плотно прилегающая геометрия позволила легко уложить UV. Так же вы видите что здесь сделаны отступы между частями развертки что бы темные области не воздействовали на светлые.
Чем меньше разрешение карты, тем больше необходимо брать отступ.
Вы можете увидеть некоторые довольно агрессивные искажения на пересекающихся вертикальных частях которые удерживают перила вместе.
Вы видите что центральная опрора разделена на две части вместо трех, как если бы мы разрезали её по краям центральной части. Это сделано для того что бы сократить количество швов и обеспечить плавное освещение на большей площади.
У некоторых проектов не выходит следовать этим простым правилам, как на скриншоте ниже.
Когда имеется так много отдельных элементов у нас нет иного выбора, кроме как повысить разрешение текстур иначе мы бы тратили очень много места на отступах между элементами развертки, это бы выглядело ужасно в игре.
Так что разрешение карт теней было поднято до 128 на 128, однако это всё еще не выглядит безупречно, но всё же не на столько что бы полностью разрушить визуальный образ объекта в игре.
Иногда развернуть объект легко, достаточно разбить его на несколько обоснованных частей. А затем просто “расслабить” развертку. Отличный пример объект ниже.
Такая конструкция является по существу цилиндром с плоским основанием поэтому здесь используются эти два основных метода развертки объекта.
Planar разворачивает части геометрии вниз по оси Z, а затем применяется модификатор “расслабления” и немного регулируется положение вершин чтобы убедиться, что ничего не получает слишком мало покрытия.
В середине схожий с основанием случай, здесь центральная часть разделена и использован Planar вместо Cylindrical для того что бы обеспечить большую зону покрытия.
Как всегда, мы больше озабочены охватом, чем чем соотношением сторон 1 на 1. Большим преимуществом будет располагать швы в их реальных местах, это позволит выглядеть теням более естественно.
Если на вашем объекте есть глубокие вырезы, крайне резкие стыки геометрии то это отличное место что бы здесь проложить шов, если конечно он требуется.
По умолчанию, первый набор UV (индекс 0) статик меша будет использоваться при создании карты теней для статического освещения.
Это означает, что один и тот же набор координат, который используется для нанесения материалов на меш, так же будет использован для статического освещения.
Этот метод довольно часто не является идеальным. Одной из причин этого является то, что UV, используемые для генерации карты теней должны быть уникальными,
а это означает, что каждая грань сетки не должна перекрывать любую другую поверхность в UV пространстве. Причина этого достаточно очевидна: если фейсы перекрывают друг друга на UV развертке,
часть карты теней, соответствующая этому пространству будет применяться к обеим граням. Это приведет к неправильному освещению, появлению теней там где их в принципе быть не должно.
Статик меши имеют свойство LightmapCoordinateIndex, которое позволяет использовать заданную UV развертку под карту теней. Установите это свойство, чтобы указать на набор UV, который правильно настроен для освещения.
Группы обособленных треугольников с сопредельными UVs называются UV чарты (charts).
Разделять развертку на чарты и располагать их отдельно следует если вы хотите исключить воздействие теней одного чарта на другой. Так же делая отступ следует помнить о простом правиле:
Размер отступа должен быть больше чем 4х4 текселя, так как DXT сжатие работает с блоками именно такого размера.
Это означает, что для карты теней разрешением 32, отступы между частями UV развертки должны быть 12,5% от всего UV-пространства.
Однако, имейте в виду, что использование слишком больших отступов между частями UV развертки приведет к трате памяти, отведенной на карту теней, впустую на более высоких разрешениях.
Чем ближе ближе вы сможете расположить UV чарты, тем лучше. Это позволит уменьшить количество растраченной впустую памяти.
Это далеко не идеальная развертка.
Одним из примеров проблем с разверткой служит чрезмерная фрагментация. Вы видите как тени что должны оставаться на внутренних частях объекта дают затенение и на внешние грани.
Другой потенциальный ловушкой полагается на автоматический разворачивать, так как это тоже может привести к тем же проблемам.
Лучший способ создания развертки для карты теней является моделирование всего меша как одного непрерывного элемента или создание развертки вручную.
Это даст единую развертку, на которой почти нет швов и которая гораздо более эффективна.
Конечным результатом является меш, который освещается должным образом без каких — либо артефактов.
Дополнительным преимуществом этого метода является то, что он также обычно сокращает число вершин и треугольников, необходимых для данной модели.
Не все содержимое, которое вы будете использовать в вашей игре должно быть создано в редакторе. Большинство ваших визуальных ассетов будет создано извне, используя такие инструменты, как 3ds Max, Maya, Photoshop, ZBrush и другие. Ниже приведено довольно общее разделение ассетов, которые будут созданы в редакторе и те, что будут созданы извне.
Редактор Unreal Engine | Сторонние программы |
|
|
В UE4 так же есть некоторые стандарты, которые позволят получить наилучший результат при создании или импортировании контента и организовать работу с ассетами. Подробнее можно узнать на странице с рекомендуемыми настройками.
FBX это формат файлов разработанный и принадлежащий Autodesk. Он используется для обеспечения взаимодействия между цифровыми приложения создания контента, таких как Autodesk MotionBuilder, Autodesk Maya, и Autodesk 3ds Max. Программное обеспечение Autodesk MotionBuilder поддерживает FBX изначально, в то время как Autodesk Maya и Autodesk 3ds Max включает FBX плагины.
Unreal Engine имеет поддержку FBX, который позволяет обеспечивать импорт с любого приложения для создания контента, поддерживающих данный формат.
Content Browser(Контент Браузер) — панель, где хранятся все Ассеты (контент) вашего проекта, где можно импортировать новые, организовывать, просматривать, открывать и модифицировать существующие. Так же Контент Браузер позволяет распределять контент по папкам, для того, что бы удобно работать с ним в процессе создания проекта. Так же позволяет копировать или перемещать Ассеты между папками.
Подробнее о Content Browser
Static Mesh представляет собой часть геометрии, которая состоит из множества полигонов, которые могут быть загружены в видеопамять. Это позволяет им быть эффективнее, то есть они могут быть гораздо сложнее, чем другие типы геометрии, такие как браши. Так как они кэшируются в видеопамять, статические меши можно перемещать, вращать и масштабировать, но их вершины не могут быть анимированными каким либо образом.
Static Mesh являются основной единицей, используемой для создания мировой геометрии, созданной в Unreal Engine. Это 3D-модели, созданные во внешних приложениях моделирования (например, 3dsMax, Maya, Blender, и так далее), которые импортируются в Unreal Editor через Content Browser, а затем используются различными способами для создания визуализируемых элементов. Подавляющее большинство любых карт в игре, сделанных на Unreal, будет состоять из статик мешей, как правило, в виде Staticmesh Actor. Они так же могут быть использованы для создания подвижных объектов, таких как двери и лифты, листва и ландшафтные декорации процедурно генерируемые здания и многое другое.
![]() Импорт StaticMesh |
![]() UV развертка для освещения |
![]() UV развертка для освещения |
Skeletal Meshes построены из двух частей: набора полигонов и иерархического набора взаимосвязанных костей, которые могут быть использованы для анимации полигонов.
Skeletal Meshes часто используются в Unreal Engine 4 для представления персонажей или других живых объектов. 3D модели, оснастка и анимация создаются во внешнем приложении для моделирования и анимации (3DS Max, Maya, Softimage, и т.д.), а затем импортируются в Unreal Engine 4 и сохраняются в ассеты с помощью контент браузера Unreal Editor.
![]() Импорт SkeletalMesh |
![]() Импорт анимаций |
![]() Skeletal Mesh Сокеты |
Текстуры (Textures) — изображения, которые используются в материалах (Materials). Они отображаются на поверхности, где применен Материал. Так же текстуры наносятся непосредственно — например, как текстуру основного цвета (Base Color textures) – или значениями пикселей текстуры (или texels), которые используются в качестве маски материала или для других шейдерных вычислений. В некоторых случаях, текстуры не используются в материалах, а отображаются на интерфейсе пользователя. По большей части, текстуры создаются во внешних программах для редактирования изображений, например Photoshop, а затем импортируются в Unreal Editor через Content Browser. Тем не менее, некоторые текстуры создаются в Unreal, например Render Textures. Они обычно содержат некоторую информацию сцены, запеченную в текстуру (render to Texture), которую будут использовать в другом месте.
Один материал может использовать несколько текстур для различных целей. Например, простой материал может иметь текстуры с базовым цветом (Base Color), картой отражений (Specular) и картой нормалей (Normal Map). Кроме того, может быть текстура свечения (Emissive) и шероховатости (Roughness) поверхности, обычно они хранится в альфа-каналах других текстур.
Итак, текстуры — составляющие чего-то большего, цвета текстур используются в специфических целях.
![]() Импот текстур |
![]() Медиа |
Чтобы импортировать текстуры, перейдите в Content Browser и нажмите Import. Найдите свой файл и нажмите Open.
Кроме того, Вы можете перетащить изображения непосредственно в Content Browser.
Поддерживаются следующие форматы текстур: