На первый взгляд простой и незатейливый проект Berker Siino скрывает за собой много работы. Сегодня мы увидим, как создавать окружение в Unreal Engine 4, которое сияет и вдохновляет.
Berker Siino
— фрилансер, работающий для таких клиентов, как Liquid Development, Airborn Studios
и Metalpop Games
. В то же время, в последнее время он также занят тем, что помогает стартапам двигаться в нужном направлении: запускает пайплайны, собирает арт-команды и передает свои знания.
Сейчас проекты всё больше переходят на Unreal Engine 4
, поэтому и Berker Siino решил освоить новую программу при помощи личного проекта. Предыдущая работа художника в Crytek позволила получить ему глубокие технические знания о движках и создании артов. Понимание основной технической базы является одним из самых важных навыков, которые помогут лучше реализовать задачи, как художнику.
В наши дни мы наблюдаем ключевые изменения в геймдеве. Использование ресурсов в приложениях реального времени стало намного проще, а визуализация становится проще и качественнее. Многие задачи автоматизируются, предметы сканируются или перерабатываются из библиотек. Такие инструменты, как Quixel Suite или Substance Designer / Painter дают нам гибкость, чтобы быть быстро работать с высоким стандартом качества. Эта тенденция будет развиваться все больше и больше, и нам нужно будет обязательно вернуться к истокам и понять основы самого изобразительного искусства. Ведь скоро инструменты будут столь же просты в использовании, как и карандаш и бумага.
Причина заключалась в том, чтобы понять рабочий процесс создания объектов и принцип рендеринга в UE4. Подход состоял в том, чтобы создать много активов модульным способом для большего набора контента. Рабочий процесс включал Zbrush
и Quixel
для текстурирования трех деревянных досок, которые были использованы в качестве модульных элементов для создания определенных деревянных элементов или мебели, таких как лестница, терраса, бочки, стулья и т. Д. С одной текстурой, установленной в качестве основы.
Кроме того, Berker Siino хотел узнать больше о динамическом рендеринге и использовании global illumination в сочетании с объемами распространения света в Unreal Engine 4. Просто базовые рабочие процессы для моделирования и текстурирования плюс преимущества PBR.
Это highpoly sculpt базового комплекта для дерева в Zbrush.
А вот уже low poly с нормалями:
Круто было бы заполнить оставшееся пространство в UV развертками с других объектов. Оптимизация всегда хорошо работает. При увелечении кол-ва объектов так и будет.
В Quixel Suite создано множество масок. Мы рассмотрим их чуть позже. Но для текстурирования понадобилась ещё кое-какая информация о поверхности. Для этого минимально будет необходима tangent normal map. Все остальное текстурирование может быть создано по ней. Однако в случае с этим проектом, были сделаны такие карты как tangent normal, ambient occlusion, cavity (последняя создана как вспомогательная, для маски).
Поскольку Berker Siino использует для работы 3Ds max, все проверки карт он проводит в этой программе. Tangent normal map нуждается в ориентации «+ X-Y + X». Помните, что «Y» является зеленым каналом и может быть также перевернуто позже в движке или фотошопе, если что-то пошло не так во время процесса выпечки. Ниже показано, как подключить нормали в 3Ds max.
Самое замечательное в модульном рабочем процессе было то, что все объекты в последствии получается создавать очень быстро. Поэтому сцена стала стремительно расти и становится более интересной.
Как вы можете видеть, финальная сетка довольно лоу польная. Все активы, которые вы видите на этой сцене, имеют всего 47 тысяч треугольников.
Основной рабочий процесс здесь — использование сплошных цветов и масок. Вы получаете множество пресетов с Quixel и манипулируете ими. Это позволяет отделить текстурирование в виде задач или слоев для получения общей картины.
Может быть, вы хотите изменить цвет плоскости и придать ей чуть более коричневатый оттенок, чем скучный черный? Кроме того, в зависимости от вашего стиля вы можете добавить больше резкости или размытости к маски и управлять ощущением слоя цвета. Цель была сделать стилизацию. Поэтому не использовалось много градиента на карте альбедо, был использовал только цвет и применено PBR. Нужного эффекта удалось добиться благодаря отказу от GI.
Сavity map была создана для усиления темно-коричневого цвета отступов, царапин и следов дерева.
Была создана хай поли стена с трещинами и некоторыми областями, где просвечивалась деревенная рама за стеной. Всё это было сделано в Zbrush. Стены запекались на плейнах, что дало свободу передвигать стену в разных местах и текстурить каждую стену по-новому.
Подход к созданию этих стен был экспериментальным, но дал быстрые результаты. Точно также было сделано с текстурами, где был также добавлен маслянистый эффект, что состарило дом.
Крыша заняла больше времени из-за ручной укладки деформированных плиток вдоль поверхности крыши. У автора было 3 среднеполигональных варианта плиток, которыми он украсил крышу.
Цвете плиток довольно прост. Он может быть выполнен либо маской с каналами rgb, маскируя различные плитки на текстуре для 3 средних плитки, а затем можно умножить сплошной цвет на нее в редакторе материалов UE4.
Один цветной оттенок на крыше фактически помог сбалансировать детали геометрии по сравнению с остальной частью дома. Единственная проблема, которую нужно было решить на этом этапе, это недостающая карта ambient occlusion для всех частей геометрии.
Автор объединил все объекты для дома и создал новый пакет UV. Таким образом получилось больше контроля, что без проблем помогло создать карту ambient occlusion. Она и была подключена к редактору материалов UE4.
Были созданы индивидуальные травинки, которые можно было сгибать, деформировать и настраивать по мере необходимости, чтобы создать правдоподобное расположение травяных пятен и цветов. В листьях была добавлена нода градиента, которая была связана с дифузом.
Множество вариаций теперь можно создать, используя эти травинки в качестве основы. Были созданы и другие типы растительности.
Ассеты упаковываются вместе на двух плоскостях, которая будет использоваться для выпечки. Оттуда мы будем брать карты растительности и размещать их в трехмерном пространстве.
Есть некоторые важные вещи при работе с растительностью в UE4. Убедитесь, что для растительности используются собственные нормали. Нормали могут быть отредактированы с помощью модификатора прав на редактирование в Max Max. Просто выберите все нормали травы и укажите направление вверх.
Снимите галочку с Tangent Space Normal. Это можно найти в ноде материала (обозначено красным на картинке).
Сам материал очень прост, как и все другие материалы. Не было использовано все карты шероховатости или спецификации Quixel. Были использованы параметры, чтобы попасть в правильный диапазон значений отражения, но более глобально.
Для модели дерева было решено сделать режимом наложения и также был включен двухсторонний рендеринг.
Если вы не включили Distance Fields в настройках проекта при рендеринге, то это должно произойти сейчас (см. рисунок ниже). Вам необходимо перезапустить движок, чтобы получить функция заработала. Более того, когда Unreal Engine 4 выключен, вам нужно добавить переменную консоли в ваш.ini-файл. Найдите ваш INI-файл,но в каталоге движка, а не в каталоге проекта. Пример пути: UE_4.15 \ Engine \ Config \ ConsoleVariables.ini
Откройте файл в текстовом редакторе, добавьте в него следующую команду, сохраните файл, а потом загрузите движок.
Далее приведены настройки, которые использовались для предварительного рендера:
Теперь идет забавная часть в Unreal Engine 4. Berker Siino — самый большой поклонник градиентов, и по его мнению они являются самым важным инструментом в наших руках для того, чтобы сделать привлекательную картинку. С bounce lights можно легко создать эти градиенты.
Существуют различные параметры, с которыми вы сможете играть на вкладке Post Process Volume. Там вы можете получить максимум от этой функции и настроить параметры для своих нужд.
SkyLight (должен быть установлен в movable) и AtmosphericFog, чтобы лучше отобразить объекты.
Автор очень доволен результатом проекта, и он продолжит использовать Unreal Engine 4 для личной работы в будущем. Epic делает отличную работу.
Искусство должно быть выполнено без каких-либо ограничений инструментов или технических знаний. Технология с каждым днём становятся доступнее и понятнее.
При создании миров для игр иногда требуется возможность размещать и спавнить предметы в мире. Target Point
позволяет сделать именно это. Она даёт вам общую точку в мире, из которой вы можете спавнить объекты.
Если вы знакомы с другими 3D — приложениями, такими как 3Ds Max или Maya то Target Point
может вам показаться знакомой.
Target Point можно найти в Modes панели в категории All Classes . Просто выберите её на Modes панели, а затем перетащить в мир.
Target Point может использоваться для многих задач внутри Unreal Engine 4. Вот список некоторых из них:
Ниже приведен пример, показывающий, как Target Point была использована в блупринте, в качестве точки спавна.
Способность спавнить игрока в мир в любом месте — это очень полезная функция для любой игры. Unreal Engine 4 предлагает специальный объект — , который позволит вам сделать это.
определяет только начально положение игрока в мире.
Может быть найден в Modes панели в Basic категории. Для того, чтобы разместить объект в мире, перетащите его из Modes панели на уровень.
После нажатия на кнопку Play игрок будет отспавнен в том месте где находится . Вы так же можете взаимодействовать с объектом через блупринты.
При использовании , расположение и вращение будут приниматься во внимание.
Если вы хотите, чтобы ваш игрок смотрел на что-то конкретное, когда он отспавнится, убедитесь, что указывает в нужном направлении.
Есть несколько советов и трюков которые могут помочь вам в процессе разработки.
Нет Player Start:
Если вы пытаетесь играть в свою игру, не добавляя в мир, игрок начнет с 0,0,0. По этому всегда убеждайтесь, что у вас есть в вашем мире.
Иногда вы можете захотеть, чтобы начать играть с определенного места, а не от . Вы можете сделать это с помощью нажатия правой кнопки мыши и выбора .
Bad Size:
Иногда у вашего может измениться значек контроллера на значок который говорит «BADsize». Если это произойдет, все, что вам нужно сделать, это переместить так что бы его капсула ничего не задевала.
Триггеры это объекты которые используются чтобы вызвать событие при взаимодействии с другим объектом в уровне. Другими словами, они используются для запуска событий в ответ на какое либо действие.
Все триггеры по умолчанию, как правило, одинаковы, отличаются лишь формой — короба, капсула и сфера эти объемы используются триггером для обнаружения столкновений.
Триггеры могут быть размещены на уровне путем перетаскивания одного из типов триггеров из Modes панели.
Триггеры используются для активации события, помещенного внутри Level Blueprint
. Есть несколько различных типов событий которые триггер может активировать.
Главные из них происходят в ответ на какой — то тип столкновения с другим объектом, такимм полное или частичное проникновения объекта или персонажа.
Выберите триггер во Viewport
:
После чего в текущий граф будет добавлено событие связанное с триггером:
В примере выше, событие будет срабатывать каждый раз когда объект выходит из триггера.
Декали обеспечивают лучшую производительность и более легкое обслуживание. Запись в GBuffer не требует перерасчета освещения и имеет ряд преимуществ:
Декаль отображает рамку в редакторе вокруг затрагиваемой области.
Самый простой способ добавить декаль на сцену — выбрать соответствующий материал декали в Content Browser
, а затем щелкнуть правой кнопкой мыши внутри View
области и выбирать Place Actor
из контекстного меню.
Декаль затем может быть изменена и ориентирована с помощью инструментов трансформации.
После того, как декаль будет создана, она может быть расположена и ориентирована с помощью инструментов манипуляций.
Масштабирование виджета контролирует ширину, высоту и глубину объема наложения декали.
Будьте осторожны при установке значения сортировки. Установка большого количества раличных значений для различных декалей может нанести вред производительности.
DecalBlendMode
параметр определяет свойства материала (диффузное, зеркальным, нормальный, непрозрачности, …), записываемое в GBuffer
.
Opacity
используется чтобы смешать несколько декалей. Эффективные декали манипулируют только несколькими GBuffer
свойствами. В настоящее время некоторым свойствам, в целях оптимизации, представлена альтернатива: DBM_Diffuse
, DBM_Specular
, DBM_Emissive
, DBM_Normal
.
Свойство | Описание |
Translucent | Используется для полупрозрачных декалей. |
Stain | Моделирует BaseColor но не работает для запеченного освещения. |
Normal | Отображает Normal свойство и не работает для запеченного освещения. |
Emissive | Лишь добавляет к текущему цвету цвет декали. |
DBuffer_Translucent Color, Normal, Roughness | Трансформируется в DBM_TranslucentNormal если Normal не используется. |
DBuffer_Translucent Color | Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Color, Normal | Трансформируется в DBM_DBuffer_Color если Normal |
DBuffer_Translucent Color, Roughness | Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Normal | Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Normal, Roughness | Трансформируется в DBM_DBuffer_Roughness если Normal не используется. Для неметаллов, работает для запеченного освещения. |
DBuffer_Translucent Roughness | Для неметаллов, работает для запеченного освещения. |
Volumetric Distance Function (experimental) | Будет выводить знаковое расстояние в Opacity в зависимости от вектора освещения. |
DBM_ScreenSpaceMask
является особенным, влияет на специальный канал маскирования, который в настоящее время используется SSAO
(Ambient Occlusion
). Позволяет переопределить вклад декали в SSAO
в некоторых областях.
DBM_DiffuseSpecularEmissive
режим, который влияет на несколько каналов GBuffer
.
Обратите внимание, что режим смешивания материала также влияет на то как значения GBuffer
смешиваются друг с другом.
Вы можете использовать режим просмотра GBuffer
что бы просмотреть значения GBuffer
, которые хранятся для каждого из пикселей.
Сложность мешей на которые накладывается декаль не влияет на производительность. Производительность для декали зависит от сложности шейдера и её размера на экране.
Мы можем дополнительно улучшить производительность. В идеале ограничивающий прямоугольник декали должен быть мал, чтобы получить лучшую производительность. Его можно изменить вручную.
Автоматизированный метод возможен, но хороший дизайнер может также регулировать размещение самостоятельно.
Режим просмотра может быть использован чтобы увидеть влияние на производительность, он использует оценку стоимости пиксельного шейдера и накапливается, где несколько декалей перекрывают друг друга.
На данный момент прозрачность не оказывает никакого влияния на производительность. Ниже показана сцена без (слева) и с декалью (справа), в нормальном режиме рендеринга (вверху) и с (внизу):
Более темный цвет указывает на более высокую стоимость производительности этих пикселей. Эта информация может быть использована для оптимизации шейдеров, удаления едва видимых декалей или размещения их более эффективно.
Декали могут иметь артефакты, в виде блоков 2х2 пикселя, по краям, как показано на рисунке ниже.
Исправить это можно использовав Decal Derivative
(однако осторожно, ибо эта нода имеет большое влияние на производительность). Она возвращает производные по X и Y оси текстуры декали в координаты по умолчанию,
это необходимо для анизотропной фильтрации текстур, но вычисляется иначе чтобы избежать артефакта.
DecalMipmapLevel не поддерживает пользовательские UV.
Когда играете в видео игры использующие UE4, персонаж которым вы управляете, часто сделан из специального меша, называемым Skeletal Mesh Actor. Скелетал меш экторы потому специальные, потому что они могут быть использованы для показа сложной анимации сделанной в стороннем 3D приложении, и импортированной в UE4. Данные пособие расскажет и покажет, как использовать скелетал меш экторов внутри UE4.
Весь контент показанный в этой статье был взят из Matinee demo , которое вы можете скачать из вкладки Learn в лаунчере анриала.
Скелетал меш эктор — это специальный тип Эктора , который используются для показа сложной анимации сделанной в стороннем 3D приложении, и импортированной в UE4.Скелетал меши отличны от Статик мешей, потому что Скелетал меши содержат внутри себя сложный скелет, который помогает двигать вершины статик меша для соответствия той анимации которая проигрывается в данный момент.Так как Скелетал меши поддерживают скелет, то часто и густо они используются для персонажей, существ, сложных механизмов, или для любых других потребностей деформации, в том числе и для сложных движений. Внутри UE4 вы можете также найти Скелетал меш экторов которые используются не только для персонажей, но также и в Matinee , для создания кинематографических видеороликов.
Скелетал меш экторы располагаются на карте посредством стандартных методов расположения экторов; либо просто перетащите нужный эктор из контент браузера, либо выделив нужный эктор, нажмите ПКМ на карте.
Вы можете перетащить Скелетал меш эктор прямо из контент браузера прямо на уровень, следуя этим шагам:
Вы также можете разместить Скелетал меш эктор на уровне посредством нажатия ПКМ контекстного меню, следуя этим шагам:
Для того, чтобы Скелетал меш проиграл анимацию во время игры, у вас есть 2 варианта — использовать Animation Blueprint (который даст вам возможность проиграть и смешать несколько анимаций) либо использовать Animation Asset для воспроизведения одной анимации. В данной статье вы сфокусируемся на Animation Sequence для воспроизведения нашей анимации во время игры.
Настройка Скелетал меша для проигрывание анимации довольна проста:
Теперь, когда Скелетал меш эктор добавлен на уровень, пришло время добавить ему анимации посредством следующих шагов:
Теперь, удостоверьтесь, что оба пунктика Looping и Playing
выбраны (впринципе, они по дефолту такими являются), после чего нажмите Play Button
для того, чтобы воспроизвести анимации во время игры.
Если вам понадобилось применить иной, от текущего материала на ваш скелетал меш эктор, то новый материал может быть назначен путь простого перетаскивания на материала на сам эктор скелетал меша во вьюпорте редактора.Смена материала на скелетал меш экторе ничем не отличается от смены материала на любом другом экторе.
Используемый на экторе скелетал меша материал должен иметь отмеченный галочкой пунктик Used with Skeletal Mesh
для того, чтобы всё работало правильно. Найти этот пунктик вы можете во вкладке Usage на панели Details материала.
Обычное создание коллизии не работает со скелетал меш экторами. Если вы хотите, чтобы вам скелетал меш взаимодействовал с объектами на уровне, вам необходимо создать Physics Asset для вашего скелет меш эктора.
Для создания физичесского ассета для вашего меша нужно всего лишь жмакнуть ПКМ по мешу в контент браузере, после чего выбрать Create -> Create Physics Asset
. Больше информации про создание физичесского ассета вы можете прочитать в документации .
После того как вы создали физичесский ассет — необходимо его применить. Откройте скелетал меш и в разделе Physics
в слот Physics Asset
укажите требуемый физичесский ассет.
Вы также можете переназначить физичесский ассет, путём простого выбора нужного физического ассета во вкладке Physics
на панели Details
в пунктике Physics Asset Override
.
Есть много типов зон, которые выполняют различные задачи. В этом документе будет описано создание зон на Ваших уровнях и будет дано описание каждому типу зоны, доступных в Unreal Engine 4.
Самое главное, что нужно знать дизайнерам уровней о зонах:
Поскольку зоны невидимы, игроки, как правило, не знают, что они находятся в ней, поэтому дизайнер уровня должен немного помочь игроку. Зоны, как правило, следует рассматривать как компонент большего эффекта, где другой элемент уровня выступает в качестве визуального эффекта, дающий понять, что находится перед игроком.
Возьмем, например Pain Causing Volume
(применяет повреждение к чему — либо внутри зоны). Если поставить эту зону посередине уровня…
Теперь игрок будет понимать, почему стоять там больно!
Для создания зоны ее нужно выбрать из вкладки Volumes меню Modes и перетащить на уровень.
После того, как зона была помещена на уровень, Вы можете изменить размер и (или) переместить её.
Blocking Volume
служит поверхностью коллизии, за которую не могут пройти объекты. Регулируя каналы коллизий зоны (на рисунке ниже), Вы можете контролировать, каким типам объектов можно пройти, а каким будет вызвано событие перекрытия
(overlap event), когда они подойдут к зоне. Смотрите Collision Documentation для получения более подробной информации.
Blocking Volume могут быть использованы в качестве коллизии для статического меша (Static Mesh), особенно, в случае стен здания.
При таком использовании зон, обычно имеется несколько преимуществ в сравнении с коллизией самого меша. Во-первых, ее легче вычислить, чем более сложные модели столкновений. Во-вторых, по природе зоны, которая знает, какие объекты находятся в ее пределах, она может быть более полезной при столкновении с физическими высокоскоростными объектами (может избавить от бага, когда объекты пролетают сквозь стены).
Camera Blocking Volumes
аналогична по своей природе Blocking Volume тем, что она используются для определения места, куда нельзя пройти актеру камеры. Например, в перспективе от третьего лица, чтобы держать камеру у Вашего игрока в границах игрового пространства, не позволяя камере видеть обратную сторону игрового мира.
Свойства Camera Blocking Volume можно регулировать таким же образом, как у Blocking Volume — изменять каналы коллизий.
Trigger Volumes
используются для вызова события, когда игрок или другой объект входит или выходит из неё. Они могут быть использованы с Level Blueprint
, для проверки событий, геймплея или другого функционала без использования дополнительного Blueprint.
Например: Вы можете разместить TriggerVolume
на Вашем уровне, и связать его с Level Blueprint
, создав overlap event
для этой зоны, которое запустит SoundCue, кат-сцену или откроет британским ученым дверь.
Nav Mesh Bounds Volumes
используются для определения зоны расчета Nav Mesh на уровне. Nav Mesh используются для вычисления навигационных путей для Искусственного Интеллекта.
В данной зоне, Nav Mesh строится на всех поверхностях с углом, по которому можно передвигаться. Вы можете создавать области в определенных местах на уровне, чтобы создать нужную навигационную геометрию.
Для построения навигационных путей, просто создайте один (или более) Volume Nav Mesh Bounds, который будет пересекаться с землей уровня и навигационная геометрия будет построена автоматически.
Для визуализации Nav Mesh в окне просмотра, нажмите кнопку P .
Пожалуйста, посмотрите примеры в Content Examples и для получения более подробной информации.
Physics Volumes
— зоны, в которых устанавливаются физические параметры, которые влияют на персонажей и другие физические. Обычно используются для создания воды, в которой игрок будет плавать. Но Вы могли бы так же легко использовать его, чтобы создать область с низкой или нулевой гравитацией и повлиять на предельную скорость (terminal velocity) объектов, проходящих через него.
Ниже описаны свойства данной зоны, настроить которые можно на панели Details
.
Pain Causing Volumes
по сути Physics Volume с дополнительной способностью наносить ущерб игрокам. Обычно размещается в таких областях уровня, где игрок не должен пройти, например, лава, облако токсичного газа, и так далее.
Наряду со свойствами, которые могут быть назначены для Physics Volume, Pain Causing Volume имеет свой собственный набор специфических свойств, описанных ниже.
Kill Z Volume или «Kill-Brush» по существу уничтожает любой актер, который попал в эту зону (включая персонажей). Используется эта зона под уровнем, на случай, если игрок каким-то образом выпал из игровой зоны, или под высокой скалой, чтобы наверняка убить игрока или актера, который упадает с нее.
Level Streaming Volumes
используются в процессе Level Streaming (пожгрузка уровня). Они «объединяют» часть уровня и контролируют его загрузку и выгрузку из памяти, если игрок входит или выходит из зоны.
Вы можете настроить, обработку уровня Volume Level Streaming обрабатывает уровень потоковой передачи путем корректировки свойств на Details
панели, изображенной ниже.
Cull Distance Volumes
являются инструментом оптимизации, который заставляет движок не обрабатывать объекты — не отображать их на экране, которые меньше определенного размера, основываясь на расстоянии от этого объекта до камеры. Это может помочь оптимизировать сцену, не отрисовывая объекты заданного размера. Размер рассчитывается по самой большой стороне bound box.
Настройки Cull Distance Volume зависят от Cull Distances
параметра, в Details
панели.
На изображении выше, показаны свойства, определяющие следующее поведение:
Настройка начинается с добавления нового массива Cull Distances, который можно добавить нажатием кнопки . Далее, заполняем размер объекта и требуемое расстояние, на котором Вам нужно скрыть объекты меньшего размера. Эти свойства должны быть созданы в определенном порядке.
Audio Volumes позволяют контролировать и применять различные звуки на Вашем уровне, а также обеспечивает зоны слышимости, где Вы можете настраивать, что слышно внутри, а что снаружи зоны. Благодаря использованию аудио зон, Вы можете создавать переходы громкости между звуками и управлять параметрами Ambient Zone внутри самой зоны.
Некоторые свойства можно изменить на панели Details этой зоны, показанной ниже.
Ambient Zone определяют, как Sound Actors, расположенные внутри связанного с ним Audio Volume будет изменены в зависимости от местоположение игрока. Настройки Ambient Zone настраиваются в Details панели.
Параметр | Описание |
Exterior Volume | Уровень громкости внешних звуков (звуков, находящихся вне зоны, а точнее настроенных как внешние), когда игрок находится внутри зоны. |
Exterior Time | Время, затухания (перехода) к новому уровню громкости внешних звуков в секундах. |
Exterior LPF | Множитель низкочастотного фильтра, применяемого к внешним звукам зоны, когда игрок внутри (1.0 – максимальный фильтр НЧ). |
Exterior LPFTime | |
Interior Volume | Громкость внутренних звуков, когда игрок находится вне зоны. |
Interior Time | Время, перехода до нового уровня громкости внутренних звуков в секундах. |
Interior LPF | Множитель низкочастотного фильтра, применяемого к внутренним звукам зоны, когда игрок находится вне зоны (1.0 – максимальный фильтр НЧ). |
Interior LPFTime | Время, перехода к новому уровню фильтра низких частот в секундах. |
Post Process Volume
представляет собой зону, в которой переопределяются параметры пост обработки, применяемые к камере, на параметры из Details
панели.
Для получения дополнительной информации по пост обработке, прочтите Документацию по Post Processing .
Lightmass Importance Volume
используется для оптимизации объема обработки, при создании предварительного рассчитанного света на уровне. Lightmass Importance Volume должна покрывать область уровня с геометрией, где необходимо рассчитать Lightmass, игнорируя остальное за его пределами. Lightmass является предварительно рассчитанным освещением и глобальной системой освещения использующейся в Unreal Engine 4.
Для получения дополнительной информации по Lightmass и Lightmass Importance Volume, обратитесь к Документации по Lightmass .
Lightmass Character Indirect Detail Volume похож на Lightmass Importance Volume и генерирует indirect light samples (зоны отраженного света, для их просмотра в окне редактора включите Show – Visualize – Volume Lighting Samples) по всей зоне, а не только на высоту игрока над геометрией. Хорошим примером использования этой зоны будет шахта лифта, в которой персонаж будет достоверно освещаться по всей длине шахты.
Precomputed Visibility Volume используются прежде всего для оптимизации производительности. Эти зоны хранят видимость Актеров при их расположении на сцене. Эти зоны должны быть размещены только в тех областях, куда игрок может добраться.
Precomputed Visibility Override Volume позволяют вручную изменить видимость актеров для своего места в мире, если не удовлетворяет автоматический результат Precomputed Visibilty Volume. Они также используются для оптимизации производительности и должны быть размещены только в тех областях, куда игрок может добраться.
Добрый день. Хочу в одиночку создать игру. Для её наполнения необходимо большое количество контента: графика, модели, звуки, музыка и многое другое. Самостоятельно всё это, конечно же, не сделать.
Где и как независимому разработчику можно найти подобные материалы?
Отвечает Святослав "gnoblin" Панкратов, руководитель студии IDSPE DEV , независимый разработчик.
Привет, меня зовут Слава Панкратов, и я считаю, что нужно очень постараться, чтобы НЕ сделать игру сегодня.
Итак, независимый разработчик хочет игру. Тут возникает несколько вопросов:
Общий ответ на первые два вопроса: да, почти всё, что могло бы вам понадобиться, уже сделал кто-то другой и выложил на ассет стор.
Обычно для игры нужны:
Полноценный набор контента есть, и он достаточно легко и дешево доступен в сети.
Основные места, где можно поискать в первую очередь:
В рамках данной статьи я буду делать упор на игры, сделанные на Unity, но никто не мешает купить модельку в ассет-сторе и использовать ее в игре на Unreal, Torque или какой-то другой технологии, которая вам нравится больше.
Среди некоторых разработчиков, по не совсем понятной для меня причине, бытует мнение о том, что использовать готовые решения и купленные ассеты — плохо.
Что-то в такой точке зрения есть, но мы же не говорим о том, что нужно выпускать сырой и криво сделанный продукт. Понятно, что любой готовый контент по итогу может доводиться самим разработчиком или соответствующим специалистом в студии (арт-директором, специалистом по звуку и так далее).
Если можно сэкономить тысячи, десятки тысяч, а возможно, и сотни тысяч долларов — а эти же деньги потратить на работу крутых специалистов — то идея мне нравится.
Рассмотрим основные контентные площадки подробнее.
Можно с полной уверенностью утверждать, что ассет-стор — это главный ресурс для независимого разработчика. Здесь можно найти почти всё, что угодно. То, чего нет, обычно можно найти на трёх других площадках. Ассортимент поражает воображение. Цены, в целом, адекватные.
Тут представлены все виды ассетов, которые могут пригодиться:
Здесь можно найти необычные 3D-модели, которые не представлены в ассет-сторе, по адекватной цене. В плане ассортимента музыкальных треков и удобства их выбора — тут, как мне кажется, ситуация обстоит получше, чем на ассет-сторе. С другой стороны, уровень цен на музыку повыше.
Не все 3D-модели на этом ресурсе подходят для геймдева (по крайней мере, без ретопологии). И, тем не менее, тут можно подобрать огромное количество качественного лоупольного контента. Из минусов можно отметить относительно высокие цены.
На данный момент тут достаточно мало ассетов, но есть уникальный контент высокого качества. Цены адекватные. Это совсем новый магазин, и, как мне кажется, один из самых интересных в плане перспектив развития.
Существует ряд решений, которые могут значительно улучшить картинку и помочь более качественно подать игроку контент (который у разработчика уже есть) — понятно, что все это нужно использовать с оглядкой на производительность в вашем конкретном проекте.