Unreal engine 4 архитектура

Unreal engine 4 архитектура

Explanations of the basic gameplay elements, Actors and Objects.

The goal of this document is to provide a brief tour of the engine’s core features and introduce some of the core architectural concepts to help you get started with the codebase.

UObjects and Actors

Actors are instances of classes that derive from the AActor class; the base class of all gameplay objects that can be placed into the world. Objects are instances of classes that inherit from the UObject class; the base class of all objects in Unreal Engine, including Actors. So, in reality, all instances in Unreal Engine are Objects; however, the term Actors is commonly used to refer to instances of classes that derive from AActor in their hierarchy, while the term Objects is used to refer to instances of classes that do not inherit from the AActor class. The majority of the classes you create will inherit from AActor at some point in their hierarchy.

In general, Actors can be thought of as whole items or entities, while Objects are more specialized parts. Actors often make use of Components , which are specialized Objects, to define certain aspects of their functionality or hold values for a collection of properties. Take a car as an example. The car as a whole is an Actor, whereas the parts of the car, like the wheels and doors, would all be Components of that Actor.

Gameplay Framework Classes

The basic gameplay classes include functionality for representing players, allies, and enemies, as well as for controlling these avatars with player input or AI logic. There are also classes for creating heads-up displays and cameras for players. Finally, gameplay classes such as GameMode, GameState, and PlayerState set the rules of the game, and track how the game and the players are progressing.

These classes all create types of Actors, which can either be placed into your level or spawned when needed.

Representing Players, Friends, and Foes in the World

Pawn

A Pawn is an Actor that can be an "agent" within the world. Pawns can be possessed by a Controller, they are set up to easily accept input, and they can do various and sundry other player-like things. Note that a Pawn is not assumed to be humanoid.

Character

A Character is a humanoid-style Pawn. It comes with a CapsuleComponent for collision and a CharacterMovementComponent by default. It can do basic human-like movement, it can replicate movement smoothly across the network, and it has some animation-related functionality.

Controlling Pawns With Player Input or AI Logic

Controller

Controller is an Actor that is responsible for directing a Pawn. They typically come in 2 flavors, AIController and PlayerController. A controller can "possess" a Pawn to take control of it.

PlayerController

A PlayerController is the interface between the Pawn and the human player controlling it. The PlayerController essentially represents the human player’s will.

AIController

An AIController is what it sounds like; a simulated "will" that can control a Pawn.

Displaying Information to Players

HUD

A HUD is a "heads-up display", or the 2D on-screen display that is common in many games. Think health, ammo, gun reticle, etc. Each PlayerController typically has one of these.

Camera

The PlayerCameraManager is the "eyeball" for a player and manages how it behaves. Each PlayerController typically has one of these as well. For more, see the camera workflow page.

Setting and Tracking the Rules of the Game

GameMode

The concept of a "game" is split into 2 classes. The Game Mode and Game State is the definition of the game, including things like the game rules and win conditions. It only exists on the server. It typically should not have much data that changes during play, and it definitely should not have transient data that clients need to know about.

Читайте также:  Epson xp 800 сброс памперса

GameState

The GameState contains the state of the game, which could include things like the list of connected players, the score, where the pieces are in a chess game, or the list of what missions you have completed in an open world game. The GameState exists on the server and all clients and can replicate freely to keep all machines up to date.

PlayerState

A PlayerState is the state of a participant in the game, such as a human player or a bot that is simulating a player. Non-player AI that exists as part of the game would not have a PlayerState. Example data that would be appropriate in a PlayerState include player name, score, in-match level for something like a MOBA, or whether the player is currently carrying the flag in a CTF game. PlayerStates for all players exist on all machines (unlike PlayerControllers) and can replicate freely to keep things in sync.

Framework Class Relationships

This flowchart illustrates how these core gameplay classes relate to each other. A game is made up of a GameMode and GameState. Human players joining the game are associated with PlayerControllers. These PlayerControllers allow players to possess pawns in the game so they can have physical representations in the level. PlayerControllers also give players input controls, a heads-up display, or HUD, and a PlayerCameraManager for handling camera views.

For more on gameplay framework classes, see Gameplay Framework .

To get started with programming in UE4, check out our Programming Quick Start and our other C++ Programming Tutorials .

Специально для vc.ru основатель студии архитектурной визуализации Archirost и победитель международного конкурса по визуализации архитектурного объекта на движке Unreal Engine Ростислав Николаев подготовил перевод материала издания ArchDaily о преимуществах и недостатках создания архитектурных визуализаций на игровых движках.

Клиенты понимают изображения лучше, чем архитектурные планы, поэтому создание фотореалистичных визуализаций стало неотъемлемой частью работ любого архитектурного бюро. При этом количество доступных инструментов постоянно растёт — вы легко найдете в интернете статьи с названиями вроде «Семь (двенадцать, двадцать) лучших программ для архитектурной визуализации». Но особый интерес вызывает возможность использования тех же движков, которые до этого применялись только для создания видеоигр и визуальных эффектов в кино.

Один из примеров — ставший год назад бесплатным игровой движок Unreal Engine 4 от создателя игр Gears of War и Unreal Tournament компании Epic Games. Основатель Epic Games Тим Свини в интервью The Verge говорит, что мир визуализации меняется: «Мы понимаем, что Unreal Engine 4 является общим языком между разными областями». Например, архитекторы могут научить разработчиков видеоигр проектировать 3D-здания, и в то же время позаимствовать у них приёмы навигации в виртуальной среде для более эффективной презентации своих объектов.

Далее мы поговорим о преимуществах и недостатках использования игровых движков для создания архитектурных визуализаций.

Преимущества

1. Игровые движки предлагают совершенно новые возможности для презентации архитектурных объектов

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

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

2. Вы получите преимущества над конкурентами

Архитекторы работают в мире структур и материалов, а компьютерное моделирование воспринимают как промежуточное звено и нехотя применяют новые инструменты. В частности, информационное моделирование зданий (BIM) позволяет создать цифровой каталог всех элементов здания ещё до начала строительства. Но, несмотря на преимущества этого подхода, многие фирмы по-прежнему полагаются в основном на 2D-чертежи.

Как видно из примеров работ, созданных при помощи Unreal Engine, игровые движки помогают раскрыть нюансы освещения и движения, значительно улучшающие архитектурные «проходки». Кроме того, эти трехмерные пространственные модели дают возможность продемонстрировать все детали проекта прежде, чем он будет построен.

Читайте также:  1С документооборот экзамен профессионал

3. Архитекторы теперь имеют возможность бесплатно использовать игровые движки

Как уже упоминалось, использование игрового движка Unreal Engine 4 сейчас бесплатно — чем не веская причина попробовать его в деле? Да и раньше он стоил $19,99 в месяц, что дешевле многих других программных пакетов, используемых архитекторами.

На официальном сайте и в профильных сообществах уже доступно много уроков и примеров по работе с Unreal Engine 4. И по мере того, как всё больше архитекторов будут использовать движок, в сети будут появляться всё новые сцены и объекты, доступные для изучения и использования. Кроме того, Epic Games регулярно раздает гранты разработчикам, дизайнерам и визуализаторам, создающим обучающие ресурсы по работе с Unreal Engine 4.

Недостатки

1. Крутая кривая обучения

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

2. Игровые движки усложняют рабочий процесс

Архитектурная визуализация — многоступенчатый процесс, который часто требует использования нескольких пакетов ПО и постоянного экспорта и импорта различных элементов. Это же относится и к Unreal Engine, и к другим игровым движкам, в которые нужно импортировать готовые 3D-модели из других программ, таких как 3DS Max. А так как архитекторы уже могут делать крайне реалистичные визуализации с помощью, например, плагинов для 3DS Max, не все из них захотят усложнять текущий процесс.

3. Игровые движки не были созданы для архитектуры

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

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

Заключение

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

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

Работая над проектом, архитекторы и дизайнеры прибегают к такому способу подачи, как 3D визуализация. Чаще всего это статичное изображение, полученное с помощью визуализаторов vRay, MentalRay, Corona и других.

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

Моделирование

UE4 принимает 3D модели в формате .obj и .fbx.

Моделировать и экспортировать объекты можно в любом 3D редакторе (3ds Max, Blender, Maya и пр.) Желательно, чтобы модель имела хорошую топологию и полигонаж в разумных пределах (если говорить об интерьерах, то основные объекты, такие как диван, кровать и др. не должны превышать 100 тысяч треугольников, т.к. это сильно сказывается на производительности). Лучше, конечно, делать ретопологию каждой модели вручную, но для достижения приемлемого результата можно обойтись и автоматическими средствами, программами или плагинами.

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

Материалы

Для построения логики в UE4 используют нодовую систему Blueprint. Она заменяет собой необходимость в программировании, но не исключает возможность писать на C++.

Ниже показаны основные шейдеры, используеммые в сцене, построенных на Blueprint:

Так-как для создания рельефных поверхностей движок требует только normal карту, то есть возможность процедурно создать эту карту из чёрно-белого изображения c помощью нода NormalFromHeightmap

Читайте также:  Warhammer chaosbane дата выхода

В данном примере была использована чёрно-белая карта, смешанная с числовыми значениями и применена в свойства Metallic и Roughness

На прозрачность материала влияет свойство Opacity, которое регулируется float нодом (значение от 0 до 1)

Далее приведены примеры четырёх основных свойств, которые определяют физическую природу материала. Объединение их вместе различными способами позволяет создавать практически любой возможный тип физической поверхности в реальном мире.

Base Color Metallic Specular Roughness

Освещение

В сцене используется три типа освещения:

  1. Directional Lights — Обеспечивает солнечный свет для всей сцены, является основой для просчёта Global Illumination (Глобального Освещения)
  2. Point Lights — Точечные источники света, имитирующие свет от электрических лампочек. Излучают свет во всех направлениях, есть возможность использовать IES-текстуру
  3. Spot Lights — Размещаются в непосредственной близости от оконных проёмах, моделируя окружающий свет из окон

После того, как все объекты и источники света были размещены, необходимо просчитать сцену:

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

Если после просчёта модель или источник света были передвинуты или удалены, тень останется и придётся заново пересчитать сцену.

Интерактив

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

1. Открывание и закрывание двери
Рассмотрим простой вариант, когда дверь открывается автоматически, если приближается игрок и закрывается, если игрок отдаляется:

Сама дверь состоит из двух элементов: статичная модель дверного проёма и интерактивное дверное полотно, логика которого описана в Blueprint.

В компоненты чертежа входит статичная 3D модель дверного полотна и фигура Box, которая играет роль триггера:

Нодовая структура выглядит следующим образом:


Ноды OnComponentBeginOverlap и OnComponentEndOverlap отвечают за коллизию с триггером.
Timeline_0 — это анимация с функцией Float Track (New Track 0).
Make Rot создаёт вращение по любой оси, в данном случае по оси Z (Yaw).

Функция Float Track (New Track 0):


Значение от 0 до -90 градусов изменяется в течение 1 секунды

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

2. Звуковые эффекты
Вы можете оживить ваш проект, добавив в сцену Ambient Sound. Например, пустить ненавязчивую музыку на задний план или добавить звуковой эффект при открывании/закрывании дверей.

3. Постобработка
В широком смысле, постобработка — это все то, что происходит после основных действий по построению изображения.
Выполнить постобработку вы можете либо в камере, либо блоком Post Process Volume, добавив его в проект и корректируя габариты. Войдя в этот блок, начнётся процесс постобработки.

К примеру, блок Post Process Volume с увеличенной яркостью рекомендуется ставить в плохо-освещённые помещения:

Так Post Process Volume выглядит в сцене:

Unreal Engine 4 поддерживает множество эффектов для постобработки, далеко не все они могут вам пригодиться, но некоторые из них я перечислю:

  • Vignette (Виньетка) — затемнение или осветление краёв кадра
  • Depth of Field (Глубина резкости) — всё, что находится ближе или дальше дистанции фокусировки, постепенно теряет резкость и размывается
  • Bloom (Свечение) — засвет, получаемый от ярких источников освещения
  • Lens Flare (Блик) — воспроизводит эффект преломления солнечных лучей в объектив камеры
  • Film (Шум) — даёт анимированный шум, имитируя плёночную кинокамеру

Подведём итоги

Несмотря на кажущуюся сложность работы, редактор Unreal Editor 4 выглядит приветливым. А с ростом производительности компьютерного оборудования GPU рендер может изменить традиционный подход к работе визуализаторов, дизайнеров и архитекторов.

Из минусов хочу отметить пару моментов. На данный момент добиться фотореалистичной картинки не просто, но если уйти в проект с головой и потратить больше времени, то можно.Размер готового билда может превышать 1GB, что может затруднить обмен среди коллег и заказчиков. На текущее время далеко не каждый компьютер способен выдать стабильные 25-30 FPS в заполненном 100 м² интерьере.

Ссылка на основную публикацию
Adblock detector