Как сделать следы от пуль в ue4

Обновлено: 03.07.2024

Epic Games выпустила подробную документацию по созданию реалистичных персонажей в игровом движке Unreal Engine 4. В качестве примера приведён персонаж Дуплет (ранее Твинбласт) из игры Paragon, MOBA от Epic на PC и PS4.

Создание аутентичных, правдоподобных персонажей является фундаментальной задачей для многих современных 3D художников и разработчиков игр. В течение последних нескольких лет Epic привносит в UE4 новые функции рендеринга, которые улучшают шейдинг кожи, глаз, волос и других атрибутов персонажа.

Цель данной документации - дать возможность любому человеку научиться создавать такие же материалы и модели, как это делает команда Epic. Чтобы начать работу, откройте лаунчер и загрузите проект со вкладки Learn. Когда вы его откроете, нажмите Play в Editor и покрутите бюст героя в реалтайме.

Перевод - Photorealistic Character Unreal Engine 4

Для получения дополнительной информации о технологиях, используемых для создания персонажей, обратитесь к этому лайфстриму от Epic Games: Tech & Techniques Behind Creating the Characters for Paragon - ссылка.

Skin Shading

Кожа представленного ниже персонажа сделана благодаря UE4 Subsurface Profile.

Создание персонажа в Unreal Engine 4 - Изображение 1

Это специальный метод используется для рендера реалистичной кожи или воска, он аналогичен методу "Subsurface", но имеет принципиальное отличие в том, как он визуализирует: Subsurface Profile основан на пространстве экрана. Рендеринг экранного пространства более эффективен для отображения тонких эффектов слоёв кожи, где рассеивание при отражении является вторичным эффектом, которое наблюдается только в нескольких случаях, например, на ушах.

Обратите внимание на использование Material Functions для настройки основы материала кожи. Это делается как многоразовый авторский подход к созданию материалов для персонажей из Paragon. Таким образом, художники могут стандартизировать подходы к созданию определенных типов поверхностей, зная, что изменение одной функции будет обновлять все элементы, в которых она используется.

Skin Shader Textures

Текстуры, используемые на коже персонажа, имеют разрешение 4K и первоначально были получены благодаря сканированию лица актера. Текстуры были затем очищены и изменены художниками из Epic. Эта настройка кожи использует пять текстурных карт: Diffuse, Roughness, Specularity, Scatter и Normal.

Диффузная текстура поставляет базовый цвет для материала. Если приблизить 4K, то можно заметить крошечные капилляры. Любое потемнение морщин будет подчеркивать Normal Map.

Карта Roughness сохраняется в альфа канале Diffuse карты. Это общий метод, используемый для уменьшения количества текстур. Обратите внимание, что шероховатость увеличивается в местах с порами и морщинами. Это заставляет эти области казаться менее блестящими, подчеркивая глубину Diffuse и Normal карт.

Карта отражений отвечает за то, как материал будет реагировать на свет. Текстура отображает только свет со сцены, а не объекты + свет, как это делает Reflection Map. Важно отметить, что значение по умолчанию для отражения - 0.5. Эта карта должна отражать свет в тех местах, где кожа немного растянута, а уменьшать этот параметр она должна в тех местах, где мы не хотим видеть отражение, например, в центре пор и около морщин.

Карта рассеивания отвечает за то, как много света будет рассеиваться на поверхности кожи. Темные участки, такие как щеки, практически не будут рассеивать свет, в то время как светлые зоны носа и ушей, изображенные на фото, будут рассеивать свет. Цвет рассеивания управляется в Subsurface Profile Asset.Normal Map

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

Hair Shading

Обрабатывается в Unreal Engine 4 Hair Shader Model. Этот шейдер - модель PBS, основанная на исследованиях Steve Marschner, Eugene dEon и Hanika Johannes, и в настоящее время используется Weta Digital.

Чтобы начать работу с шейдером, установите параметр Shading Model вашего материала на Hair.

Создание реалистичного персонажа в Unreal Engine 4

Волосы и блики

В реальном мире волосы обладают несколькими бликами: один представляет собой цвет света, а другой является смесью цвета волос и светлого цвета. Для упрощения мы будем называть эти блики первичными и вторичными. UE4 Hair Shader показывает очень реалистичный результат с теми же эффектами.

Создание персонажа в Unreal Engine 4 - Изображение 2

1. Более светлые волосы являются первичными бликами. 2. Более яркие и рыжие волосы представляют вторичные блики.

Алгоритм аппроксимации, используемый в UE4 Hair, создаёт эти эффекты аналогично тому, как они сделаны в реальном мире. Когда свет попадает на волосяной фолликул, он не просто отталкивается от поверхности. Волосы просвечиваются, они позволяют пропускать через них некоторый свет, после чего свет отталкивается и выходит за пределы. Шейдер для волос достигает такого результата благодаря трем возможным путям движения света, как показано на анимированном GIF ниже:

Смотрите таблицу ниже, в которой описывается каждая часть процесса.

Направление роста (от корня до кончика) волосяного фолликула.

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

Путь, по которому свет проходит сквозь волос и выходит с другой стороны. Это то, как свет рассеивается в объеме волос.

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

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

Волосы и их прозрачность

Hair Shader использует Masked Blend Mode вместо прозрачности. Masked Blend Mode даёт бинарный результат - поверхности либо полностью непрозрачны, либо полностью прозрачны. Noisy Dither Pattern постоянно перемещается по поверхности, становясь непрозрачной в более плотных местах. Dither используется как способ смешивания Masked Transparency, но работает только когда TemporalAA активен.

Создание персонажа в Unreal Engine 4 - Изображение 3

Создание персонажа в Unreal Engine 4 - Изображение 4

Использование анимированного сглаживания с помощью TemporalAA требует нескольких кадров для разрешения смешивания. Это может привести к артефактам на волосах, когда они находятся в движении. Это ожидаемый побочный эффект данной техники.

Edge Masking

Настройка Edge Mask Unreal Engine 4

Чтобы решить эту проблему, материал должен вычислять вектор камеры, а также вектор плоскости таким образом, чтобы, когда плоскость поворачивалась перпендикулярно вектору камеры, она начинала исчезать. Для заполнения исчезнувшего полигона нужно сделать голову таким образом, чтобы её скальп был текстурой волос. Вот почему многие персонажи с широкими полигонами волос имеют такую текстуру на голове, как показано на изображении ниже.

Урок Unreal Engine 4 - Создание персонажа

Создание волос для игрового персонажа

Перед тем как создать геометрию волос, следует посмотреть, как команда Epic конструирует волосы для игровых персонажей.

Геометрия волос

Данная геометрия создана с помощью нескольких плейнов, расположенных по всей поверхности головы, что является стандартным решением во многих real-time движках.

Нет никаких жестких правил для детализации геометрии волос вашего персонажа, но следует отметить, что Дуплет использует около 800 отдельных плейнов, в общей сложности около 18000 треугольников. Также обратите внимание, что материал для волос установлен двусторонний в свойствах Material Node Properties.

Урок Unreal Engine 4 -создание реалистичного персонажа

Текстуры волос

При использовании UE4 Hair шейдера конечный результат достигается следующими текстурами: Diffuse, Depth, Alpha, Root и Unique ID. В Epic эти текстуры обычно генерируются с помощью системы волос 3ds Max, которая проецирует имитируемые волосы на кусок геометрии. Однако есть много других вариантов для подобных результатов.

Диффузная текстура отвечает за базовый цвет самих волос. Желательно оставлять эту текстуру неокрашенной, а цвет задавать в самом движке, особенно это полезно в тех случаях, если волосы персонажа будут иметь разные цвета.

Альфа текстура обеспечивает прозрачность тех участков, где нет текстуры волос.

Текстура Root является маской для изменения цвета волос от корня до кончика. Полезна при осветлении или затемнении волос по их длине.

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

Текстура The Unique ID просто дает уникальное значение от 0 до 1 (от черного до белого) для каждой пряди на заданной части геометрии волос. Это используется для обеспечения различной вариации волос.

Свойства Hair Shader

Когда вы будете использовать Hair Shader, то увидите новые свойства, доступные в ноде материала: Scatter, Tangent и Backlit.

Scatter

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

Тем не менее, рассеивание света по-прежнему имеет решающее значение для того, насколько реалистичными окажутся волосы в игре. Чтобы контролировать это, Hair Shader имеет параметр Scatter, который заменяет Metallic основного нода шейдера и ограничивается значениями от 0.0 до 1.0. Scatter контролирует, сколько света проходит на всех волосах персонажа, как если бы это была одна поверхность.

Devgam, девгам, devgamcom

devgam, девгам, devgamcom

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

Tangent

Tangent Unreal Engine 4

Свойства Tangent заменяют свойства Normal на шейдере волос. Tangent вычисляется как вектор, который проходит параллельно каждой пряди волос, направленный назад к корню. Цель Tangent заключается в том, чтобы помочь настроить правильное анизотропное отражение. Если вы не знакомы с этим, то анизотропное отражение - это то, что происходит, когда свет отскакивает от поверхности с микро-порезами, например, шлифованный металл.

Волос Unreal Engine 4

На этом изображении желтая линия представляет вектор вдоль пряди волос, направленный к корню.

Tangent может отображаться одним из двух способов: автоматически или с помощью карты Flow. Автоматический метод просто требует, чтобы текстуры для каждого листа волос были ориентированы таким образом, чтобы корень был направлен вверх, а кончики - вниз. Если волосы короткие, и никакие плейны не изгибаются и слишком сильно скручиваются, то этот метод является адекватным. Он используется и на персонаже, представленном в этом уроке (мужчина).

Flow Maps

Другой метод требует создания Flow карты. Это будет полезно, если волосы вашего персонажа длинные, а также они должны казаться изгибающимися и завитыми больше, чем фактическая геометрия, или если отдельные участки текстуры для волос ориентированы по-разному (не сверху вниз, как описано выше). В проекте Photoreal Character Bust вы можете найти неиспользованную Flow карту с именем T_Hair_Flow. Ниже приведено сравнение этой карты и финального результата.

Unreal Engine 4 - создание фотореалистичного персонажа

Реалистичный персонаж в Unreal Engine 4 - Devgam

Здесь вы можете увидеть, как текстурирована Flow Map на примере волос Сойки (Sparrow). Обратите внимание, что карта используется только на некоторых участках, а не на всей голове.

Использование Pixel Depth Offset и Hair Shader

Pixel Depth Offset (PDO) не является свойством, уникальным для Hair Shader. С точки зрения непрофессионала, PDO заставляет пиксели отдаляться от камеры, создавая искусственное ощущение глубины. Так как волосы состоят из простых плейнов, как описано в разделе "Волосы и геометрия", использование PDO может обеспечить ощущение глубины формы волос в целом.

Unreal Engine 4 - урок создания персонажа

Как создать волосы в Unreal Engine 4

Редакция Devgam

Благодарим наших читателей и подписчиков за проявленный интерес. Поделитесь постом в социальных сетях.

У меня персонаж от третьего лица. Я использую желаемое вращение контроллера для вращения персонажа с помощью мыши, как в PUBG и т. Д. Как я могу изменить максимальную скорость ходьбы, когда иду вперед? Например, когда я иду .

1 ответ

Я могу предложить решение для Blueprints, хотя я не уверен, что оно подходит для вашего случая.

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

Blueprint for direction-dependent movement speed

Выходными данными AxisValue события ввода MoveForward является +1 при нажатии вперед и -1 при нажатии назад.

Если ваша скорость ходьбы равна 500, то верхний элемент AddMovementInput добавляет 500 движений, умноженных на 1, в направлении, в котором смотрит игрок.

Нижний добавляет 500 движений, умноженных на -1, умноженное на 0,5, что заставит вас двигаться назад (технически, вперед с отрицательным значением) с половинной скоростью.

Вы можете применить ту же логику к входу MoveRight .

PS Если вы используете аналоговый контроллер, я предполагаю, что AxisValue будет находиться в диапазоне от -1 до 1, но это не меняет логику выше.

Unreal Engine 4-Realistic камера от первого лица в UE4

Этот блог исходит от Фабриса Пике, перевод работы санкционирован автором, оригинальный текстпортал。

Я решил поделиться тем, как я имею дело с реальными камерами от первого лица в моем текущем проекте. Для истинной перспективы от первого лица в настоящее время не так много соответствующих документов. Поэтому после периода исследований, особенно после того, как я провел много времени в текущем проекте, чтобы решить некоторые существующие проблемы, я решил написать соответствующую статью. Окончательный эффект в проекте выглядит следующим образом:

Реальная перспектива от первого лица?

Полиция Супер века: Темная Афина

Вещи, которых я избегаю: разделение рук и тела

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

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

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

Arms

Arms_Weapon

Настройки модели всего тела

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

против PlayerController На самом деле сказать нечего, это всегда в UE Character или Pawn Выше. Персонаж имеет тело Mesh И это Mesh Есть манипулятор, который работает на костях всего тела AnimBlueprint , Наконец, у нас есть камера, прикрепленная к голове в конструкторе.

Итак, теперь, когда камера прикреплена к голове, мы закончили? Конечно нет. Поскольку камера управляется костями, нам необходимо реализовать основные операции с камерой: смотреть вверх, вниз, влево и вправо. Может использоваться Additive animation Сделать. Так называемый Additive animation Это кадр анимации, который используется для применения смещения каждой кости. В целом, я использовал 10 анимаций, конечно, вы можете использовать больше поз, но я обнаружил, что больше анимации больше не нужно.

В нашем проекте я установил, что когда игрок смотрит влево / вправо, все тело человека также поворачивается влево / вправо (точно так же, как изображение на краю зеркала выше). Кроме того, есть специальный набор на роль холостых additional animation Эта анимация выше этих уровней анимации. Эффект заключается в следующем:

Aim offset

Additive Settings

После подготовки ресурсов анимации вы можете создать Смещение цели. Смещение цели относится к тому, что позволяет разработчикам выполнять плавные операции смешивания в нескольких анимациях на основе входных параметров. Для получения дополнительной информации вы можете обратиться к официальной документации:Aim Offset, После настройки эффект выглядит следующим образом:

Мой собственный Aim Offset Используйте два параметра для движения: Pitch и Yaw. Эти два значения логически обновляются в коде, подробности следующие:

Обновление анимированного смешивания

Нам нужно перевести вход плеера на камеру в драйвер Aim Offset Значение I будет обработано через три следующих шага:

  1. в PlayerController Преобразовать входные данные игры в значение вращения
  2. в Character Преобразует значение вращения в мировом пространстве в локальное пространство
  3. Двигайтесь в соответствии со значением вращения локального пространства Anim Blueprint

1. PlayerController Input

Когда игрок перемещает мышь или джойстик, мне нужно установить эти значения в PlayerController Получено и переписано UpdateRotation() Функция преобразуется в соответствующее значение вращения.

Следует отметить, что UpdateRotation Метод в PlayerController Вызывается каждый кадр в классе. Я считал GetActorTimeDilation() Функция, поэтому при использовании slomo Метод не меняет скорость вращения камеры.

2. Управление камерой в персонаже

У меня есть один в моем классе персонажей PreUpdateCamera() Функция, функция выглядит следующим образом:

функция CameraProcessYaw() и CameraProcessPitch() воли Controller Значение вращения мировой системы координат преобразуется в значение вращения в локальной системе координат. Две функции заключаются в следующем:

(Примечание переводчика: действительно ли можно использовать угол Эйлера? Что мне делать, если Vientiane orz)

3. Логика обновления AnimBlueprint

Последний шаг также самый простой шаг, который я прошел Event Blueprint Update Animation Узел, чтобы получить вышеуказанное значение и использовать его как Aim Offset Из контрольных переменных:

AnimationBP_Update

AnimationBP_Anim

Как избежать задержки кадра

Иногда многие люди не воспринимают эту проблему всерьез, но это действительно проблема. Если вы спустились в соответствии с вышеуказанными настройками, и вы не слишком ясно, Tick() Как работает функция в UE, вы столкнетесь с этой проблемой: существует задержка кадра.

Задержка этого кадра будет очень болезненной и может привести к очень плохому игровому опыту - в основном камера этого кадра всегда будет основываться на данных предыдущего кадра. Это означает, что если вы быстро двигаете мышь, а затем резко останавливаетесь, вы фактически остановитесь на следующем кадре. Независимо от того, какая у вас частота кадров, эта проблема будет существовать.

Решение этой проблемы должно быть Tick Функция имеет некоторое понимание. По умолчанию Tick Порядок выполнения функции следующий:

_ _ _ _ _ UpdateTimeAndHandleMaxTickRate (Engine function)
_ _ _ _ _ Tick_PlayerController
_ _ _ _ _ Tick_SkeletalMeshComponent
_ _ _ _ _ Tick_AnimInstance
_ _ _ _ _ Tick_GameMode
_ _ _ _ _ Tick_Character
_ _ _ _ _ Tick_Camera

Так что здесь произошло? Можно увидеть Character класс Tick Заказ находится в AnimBlueprint После этого это означает, что в этом кадре AnimBlueprint При обновлении соответствующая Character Еще не обновлено.

Решить эту проблему я не стал Character из Tick Выполнить в функции PreUpdateCamera() Метод, я положил этот вызов метода в PlayerController из Tick Функция. Благодаря этому методу я гарантирую, что соответствующее значение будет актуальным в реальном времени.

Play Montages

В целом, эта система уже работает. Следующим шагом является воспроизведение анимации, которая может действовать на все тело. Для этого мы используем AnimMontage. В этом проекте мне нужно позволить персонажу воспроизводить анимацию с гравитационной буферизацией после приземления. Анимация выглядит следующим образом:

Код очень прост, может быть, даже проще в Blueprint:

Этот код отменяет ввод игрока и играет в Montage. Я установил таймер для повторного открытия входа, когда анимация заканчивается. Если вы сделаете это, вы получите такой результат:

Это не тот эффект, который мы хотим. Причиной этого является Anim slot до Anim Offset Узел установлен. Так что при воспроизведении анимации всего тела это aim offset Это было добавлено напрямую. Поэтому, если игрок смотрит на землю и воспроизводит анимацию, смещение станет двойным.

Так почему мы должны Aim offset Как насчет расчета потом? На самом деле, это просто для более плавного переключения между состояниями. Если монтаж воспроизводится после смещения цели, весь переключатель будет очень резким.

Чтобы решить эту проблему, я буду Camera Rotation Значение было сброшено один раз. Я здесь PreUpdateCamera Следующий код был добавлен в функцию:

Приведенный выше код только в процессе падения, перед тем как рассчитать значение поворота локальной камеры, передайте его значение Pitch RInterpConstantTo() Функция постепенно устанавливается на 0. Следующее является конечным эффектом:

По сравнению намного лучше. Кроме того, вы можете сделать еще один в конце Montage и вернуть его в исходное вращение, но это не очень важно в этом проекте.

Способы предотвращения спортивного головокружения

Наконец, при использовании анимации всего тела необходимо обратить внимание на движения головы. Быстрые анимации, такие как кивок и быстрое вращение, заставляют игрока чувствовать себя плохо. Поэтому анимация бега и ходьбы должна быть максимально стабильной. Это очень похоже на головокружение в VR - причина этого головокружения в том, что чувство игрока не соответствует тому, что он видит.

Animation Constraint

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

После этого слоя AnimationBP вы можете использовать дополнительную обработку для выполнения операций анимации тела. Преимущество этого состоит в том, что вы можете переключаться между состояниями и уменьшать головокружение.

Хочу написать слова для одного человека(по приколу)А когда много выстреливаю пуль,начинают пропадать прошлые.Помогите пожалуйста,скажите что за команда
ЗАКРЫТО


Counter Strike Global Offensive

Здравствуйте уважаемый пользователь нашего сайта, вы уже далеко не первый кто задает данный вопрос. Могу сказать с уверенностью, что такого сделать невозможно, нет никаких читов, или дополнительных конфигураций чтобы это совершить.
Желаю вам удачи, не забудьте добавить наш сайт в закладки, чтобы не потерять на него ссылку!

  • GameSubject � 2017 Вопросы и ответы для геймеров
    Игровое сообщество, помощь игрокам

Мы рады всем гостям которые любят провести свое время в онлайн или одиночных играх. У вас случилась беда, и вы не знаете как решить ту или иную ошибку? При заходе в любимую игрушку детства у вас появляется черный экран и вы уже не можете насладится теми ощущениями что испытывали раньше? Бывает такое что при попытке поиграть, любимая сага игры просто не запускается, тогда уже становится очень обидно. Не волнуйтесь, даже если вы думаете что это не поправимо, у нас вам помогут с этим справится.

Спецаильно для наших уважаемых посетителей, мы собираем лучшие советы и рекомендации которые помогут справится с той или иной проблемой. Как мы уже сказали раньше, даже если вы столкнулись с самыми редкими вылетами, даже если при запуске игры процесс находится в задачах но ничего не происходит, мы все равно найдем оптимальное решение которое подойдет каждому. Ах да, мы забыли упомянуть о самом главном, часто любители поиграть в 3D игры сталкиваются с такой ситуацией когда при попытке зайти в игровое приложение, у них просто происходит вылет или крэш на рабочий стол - с этим мы тоже знаем как боротся.

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

Alexander Dracott поделился некоторыми своими личными советами и фишками, которые сам довольно часто использует.

Импорт текстур в Unreal 4


Сохранение памяти: текстуры Channel-pack


Одна из особенностей Unreal — это большой объем контроля, который вы получаете, создавая свои собственные материалы. Когда вы создаете несколько черно-белых масок для текстур, таких как roughness или transmission, вы можете сэкономить память, спрятав каждую маску в отдельный канал R,G или B, а затем получив доступ к каждому каналу этой текстуры отдельно.

Физически корректный рендеринг


С появлением новых возможностей рендеринга в движках, таких как Unreal 4, широкую популярность получил физически корректный рендеринг.

Изучение того, как точно должны выглядеть физические свойства материалов с масками roughness и metalness, можно сравнить с тем, как игровые движки работали в прошлом поколении. Эти знания помогают сохранить материалы реалистичными в разных условиях освещения.

Повторное использование текстуры


Еще одним удивительным элементом Unreal 4’s Material Editor является то, что он позволяет повторное использование текстуры. Это поможет вам не только сохранить память, но и сэкономить время. Иногда red channel из rock albedo texture можно использовать как черно белую маску для roughness. Текстуру черепицы из Photoshop можно легко наложить на кирпич, а также смешать с другой текстурой для наложения на другие элементы.

Не накладывайте ненужных текстур


Иногда определенные текстуры не нужны. Для 100% неметаллических материалов, таких как древесина или грязь, текстура металла может быть заменена в Material Editor простой константой с плавающей точкой и значением 0. Этот же принцип можно применить для нескольких версий одного и того же материала. Вам не нужны отдельные normal maps, например, для трех разновидностей кирпича, отличающихся по цвету. Можно использовать одну normal map для всех.

Создание набора основных материалов


Повторное использование материала


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

Комментарии и организация материалов

Для сложных материалов Unreal 4 предлагает очень полезные организационные инструменты. Выбор группы нод и нажатие C помещает эти ноды в комментарий, который затем можно перемещать как группу и кодировку цвета. Комментарии (и отдельные ноды) могут содержать базовые текстовые пояснения.

Функции материалов


Функции материалов можно вызвать несколько раз для выполнения определенного набора инструкций. Они создаются вне материала в Content Browser, но затем могут быть вызваны, чтобы упростить их. Они могут содержать свой собственный inputs и могут стать отличным способом сэкономить время, когда нужно вызвать несколько повторяющихся операций.

Материалы листьев


Листва может быть одной из самых сложных вещей, т.к. совсем не просто обеспечить ее правильное отображение в любом игровом движке. В UE4 версии 4.18 существует Foliage Shading Model, которая упрощает эту задачу. Я настоятельно вам ее рекомендую, поскольку она поддерживает передачу подповерхностного слоя, что в большинстве случаев дает преимущества. Кроме того, советую добавить sky light к вашей сцене, чтобы помочь сбалансировать некоторые более темные области сетки листвы, которые могут быть в тени.

Vertex colour


Доступ к цветам Vertex в материалах — одна из моих любимых функций в Unreal 4. Они могут быть невероятно мощными при творческом подходе. От ambient occlusion до masking out wind и world offset для листвы — их универсальность колоссальна. Они особенно полезны при смешивании текстур. Vertex colors можно импортировать из внешнего программного обеспечения 3D или импортировать и нарисовать в редакторе.

Детализированные diffuse и normal


Так как вы можете настроить параметры текстурирования ультрафиолетового излучения, вы можете увеличить детали материала путем смешивания в дополнительном наборе текстур. Обычно это diffuse или normal maps, которые затем поочередно накладываются поверх базовых. Вы можете использовать любой удобный для вас метод, например, такой как Overlay Blend Function, в то время как подробные normal maps могут быть применены путем добавления красного и зеленого каналов к основанию.

Смешивание текстур в материалах


Хотите объединить текстуры в material editor, но знакомы только с режимами смешивания Photoshop? Epic превзошел все ваши ожидания. Наряду со многими полезными функциями материалов он включает в себя большинство режимов смешивания, с которыми знакомы все пользователи Photoshop. От Overlay до Linear Dodge их можно найти в окне палитры внутри Material Editor. Они могут быть особенно полезными для добавления деталей к вашим материалам.

Знание типов источников освещения


Unreal предлагает четыре различных типа света для использования в окружающей среде: Directional, Point, Spot, и Sky light. Свет Directional отлично подходит для наружных зон или любого необычного источника света. Свет Point является всенаправленным, а Spot похож на него, но имеет ограничения, определенные конусом. Sky light может использоваться для добавления света в окружающую среду, захватывая отдаленные части вашей карты. Поддерживаются также пользовательские Cubemaps.

Добавление тумана к вашей сцене


Существует стандартный способ создания всем нам известного обычного плотного тумана. Unreal 4 же предлагает два других способа добавить туман к вашей сцене. Atmospheric Fog реагирует на направленный угол освещения и интенсивность. Он может создать туман, основанный на реальном рассеянном атмосферном свете. Height Fog дает немного больше контроля цвета и позволяет добавить более простой эффект тумана, который становится менее плотным в верхних частях карты и более плотным в нижних частях.

Создание умных световых валов


Съемки с высоким разрешением


Хотя пользовательские видео разрешения могут быть выведены из Matinee, есть быстрый и простой способ сделать кадры в высоком разрешении прямо из редактора. Нажав на маленькую нисходящую стрелку в левом верхнем углу вашего Viewport, вы можете открыть небольшое раскрывающееся меню. Внизу можно открыть окно High Resolution Screenshot window. Оттуда снимки в высоком разрешении могут быть захвачены и отправлены в папку вашего проекта: project/saved/Screenshots folder.

Корректировка цвета и таблицы поиска

Финальные цвета рендеринга можно настроить на основе художественных предпочтений. Хотя существуют опции для базовых настроек, таких как контраст и оттенок, пользовательская коррекция цвета может быть выполнена с использованием таблиц цветового поиска. Эти таблицы допускают сложное преобразование цвета и могут быть сделаны при помощи базового файла, доступного на сайте Epic Unreal 4 и в Photoshop, или в других программах для настройки изображений.

Редактирование световых переходов и бликов


В играх и 3D стало популярным отображать световые переходы и блики, их можно включить и настроить в UE4, используя специальные зоны постобработки — post-process volumes. Световой поток настраивается практически по всем характеристикам. Размер, цвет, интенсивность и порог можно изменить и даже использовать их для маскировки текстур грязи и имитации грязных линз. Аналогично, вспышки также могут быть включены, а их форма и интенсивность регулируются.

Создание глубины резкости


Unreal 4 поддерживает как резкость по Гауссу, так и настраиваемую. Оба эти параметра существуют в настройках Post Process Volumes. Следует также отметить, что инструменты, которые помогают с размытием тонких объектов перед удаленными, иногда могут создавать проблемы. Нужно проявлять осторожность в применении глубины резкости, например, к листве или другим подобным элементам.

Автоэкспозиция и адаптация глаз


Автоматическое управление экспозицией включено по умолчанию и имитирует настройку глаз на яркие или темные области. Эффект является потрясающим, но может создавать постоянно изменяющиеся визуальные переменные, которые трудно поддерживать внутри. Регулировку диапазона экспозиции можно выполнить в настройках volumes после обработки. Её можно отключить, если установить минимальную яркость, равную максимальной. Смещение экспозиции можно использовать для настройки её базовых параметров.

Световые функции


Одна интересная особенность в Unreal 4 — поддержка материалов с функцией освещения. Эти материалы действуют как маски для света и могут использоваться, чтобы сделать что-либо: от пользовательских цветовых вариаций в свете до облачных теней на земле. Они создаются путем установки функции Material Domain to Light в Material Editor, их можно использовать при spot, point и directional lights.

Сэкономьте время, скопировав и вставив


Еще одна особенность, которую нужно знать об Unreal 4, заключается в том, что любой объект одного уровня может быть скопирован и вставлен непосредственно на другой уровень в рамках одного и того же проекта. Он будет отображаться с теми же свойствами и в том же месте.

А самое крутое — это то, что все, что скопировано из Unreal, можно вставить в текстовый документ. Затем этот текст можно скопировать и повторно вставить на другой уровень Unreal 4.

Режим просмотра и визуализация рендер пасов


Знание того, что составляет ваш образ, является неотъемлемой частью работы в любом 3D-движке и работает в отложенном рендерере, например, UE4 позволяет использовать некоторые полезные режимы просмотра. Нажатие Alt и 1-8 переключается между различными режимами просмотра, такими как Unlit или lighting only, но если вы нажмете кнопку View Mode в окне Viewport, вы можете просмотреть отдельные рендер пасы. Это может быть полезно для просмотра широких диапазонов материалов, таких как roughness.

Рекомендации по производительности


Читайте также: