Advertisement
  1. Game Development

Amazon Lumberyard: создание первой 3D-сцены 

Scroll to top
Read Time: 13 min

() translation by (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

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

Затем вы узнаете, как разместить игрока, так и камеру, и, как использовать несколько объектов, создавая префабы и текстуры. Наконец, вы познакомитесь с освещением в Lumberyard.

Обратите внимание, что вам рекомендуется прочитать две предыдущие части (часть 1, часть 2), чтобы полностью понять обозначения в этой части.

Для кого предназначена эта серия уроков?

Эта учебная серия предназначена в первую очередь для двух групп разработчиков игр:

  • тех, кто совершенно незнаком с игровыми механизмами вообще
  • тех, кто знаком с другими игровыми движками (такими как Unity, Unreal Engine или Cry Engine), но не с Lumberyard

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

Создайте новый 3D-уровень

Запустите Lumberyard и нажмите New Level. Используйте следующие данные в интерфейсе New Level.

  • Имя: CompleteFirstLevel
  • Папка: Уровни / (значение по умолчанию)
  • Используемый ландшафт: проверено!
  • Разрешение карты высот: 1024x1024
  • Метры Per Texel: 1

Нажмите ОК.

Обратите внимание, что все уровни сохраняются по умолчанию по адресу: YourLumbaryardInstallationpath\dev\SamplesProject\Levels.

Для текстуры ландшафта используйте:

  • Разрешение: 4096x4096
  • Множитель цветов ландшафта: 3
  • Высокое качество: проверено!

Нажмите ОК.

Размещение камеры

Чтобы играть на вашем уровне, вы должны создать и разместить игровую камеру. Затем вам необходимо изменить ее, чтобы включить управление персонажем и указать начальную точку. К счастью, Lumberyard предоставляет собой сборный объект, в котором есть игровая камера с поддержкой элементов управления вводом.

Камеру можно найти в редакторе базы данных в разделе View > Open View Pane.

Database EditorDatabase EditorDatabase Editor

Вы также можете найти Database Editor на панели инструментов EditMode.

Database Editor in the EditMode ToolbarDatabase Editor in the EditMode ToolbarDatabase Editor in the EditMode Toolbar

Вкладки базы данных (красный прямоугольник) обеспечивают доступ и конфигурацию для нескольких типов баз данных. Панель инструментов редактора (зеленый прямоугольник) дает вам доступ к таким инструментам, как Открыть, Сохранить, Добавить или Удалить элементы из базы данных. Наконец, FileTree View (синий прямоугольник) предоставляет вам доступ к доступным элементам базы данных.

The FileTree ViewThe FileTree ViewThe FileTree View

В Database View откройте Prefabs Library и нажмите Load Library.

Database View in the Prefabs LibraryDatabase View in the Prefabs LibraryDatabase View in the Prefabs Library

Из списка каталогов префабов выберите character_controllers.xml и нажмите ОК.

The Character ControllersThe Character ControllersThe Character Controllers

В Prefab Library из дерева файлов, перетащите Sphere_Controller в Perspective Viewport.

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

RobotRobotRobot

Если вы нажмете на Gizmo, вы можете увидеть полные свойства префаба. Если вы не видите Gizmo, вам нужно щелкнуть по иконке H на панели инструментов Perspective.

GizmoGizmoGizmo

Вы должны обратить внимание, что по умолчанию вы не можете изменять какое-либо свойство префаб-объекта. Однако, если вы выберете Gizmo, а затем нажмёте на Open All в разделе Rollup Bar > Prefab Parameters, тогда у вас будет доступ к каждому префаб-объекту и его свойствам.

Prefab ParametersPrefab ParametersPrefab Parameters

Нажмите на объект Camera Controller Rig, чтобы проверить его параметры камеры.

Camera ParamatersCamera ParamatersCamera Paramaters

Настало время протестировать вашу новую игровую камеру. Нажмите Game > Switch to Game или нажмите Control-G.

Добавьте камеру

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

  1. использование RollupBar
  2. использование текущей конфигурации Perspective viewport

Первый использует объект Camera, доступный в Objects> Misc> Object Type> Camera. Вам просто нужно выбрать объект Camera, а затем поместить его в Perspective viewport.

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

Camera From ViewCamera From ViewCamera From View

Теперь перейдите в сторону и обратите внимание на новый объект камеры, который ищет вашу последнюю конфигурацию Perspective Viewport.

Navigate Camera From ViewNavigate Camera From ViewNavigate Camera From View

Объекты 

Один из способов размещения объектов - использование кистей (RollUp Bar> Objects> Brush).  Кисти обычно представляют собой статические объекты, помещенные в  3D-сцену. Их дешево сделать, поскольку они не содержат дополнительных свойств объекта или физических свойств.

На панели Rollup Bar справа выберите Brush на вкладке Objects.  В разделе Browser Objects > StyleTown > Natural > Terrain и выберите объект townbloc. Перетащите его в Perspective viewport.

Perspective ViewportPerspective ViewportPerspective Viewport

В списке Brush откройте StyleTown > Architecture > Buildings. Перетащите здание b13_h02 в Perspective viewport и поместите его рядом с одним из углов townbloc.

Another Perspective ViewportAnother Perspective ViewportAnother Perspective Viewport

Теперь вы знаете, как разместить кисти на своем уровне. 

Импорт внешних объектов

Чтобы импортировать внешние объекты, Lumberyard советует вам использовать формат файла FBX. Текущий импортер все еще находится в предварительном выпуске и некоторые функции, такие как материалы, отсутствуют.

Инструмент Lumberyard FBX Importer включает граф сцену, которая представляет собой древовидный уровень данных между вашей моделью .fbx и Lumberyard. Каждый раз, когда вы обрабатываете .fbx, создается новый файл .scenesettings с тем же именем; этот новый файл хранит метаданные актива.

Если вы измените свойства сетки модели, вам не нужно повторно импортировать файл .fbx. Lumberyard Asset Processor прослушивает и обнаруживает любые изменения в файле .scenesettings и использует компилятор ресурсов для обработки файла .fbx

Давайте продолжим и загрузим один внешний файл FBX. Извлеките сжатый файл, который вы только что загрузили, и переместите файл Wooden_House.fbx в папку YourLumbaryardInstallationpath\dev\SamplesProject\.

В редакторах Lumberyard, выберите View > Open View Pane > FBX Importer

 FBX Importer FBX Importer FBX Importer

Нажмите значок папки в правом верхнем углу окна инструмента. 

OpenOpenOpen

Выберите файл Wooden_House.fbx и нажмите Открыть

ImportImportImport

Измените свойство Name на Imported_Wooden_House и нажмите Import

ImportImportImport

Через несколько секунд вы увидите окно с сообщением об успешном завершении. 

successsuccesssuccess

Прежде чем вы сможете использовать свой новый актив, необходимо выполнить последний шаг. В разделе RollupBar > Geom Entity нажмите Reload.  Затем должна появиться новая папка. Откройте ее, и у вас должна появиться доступная модель imported_wooden_house

Наконец, перетащите модель в Perspective viewport

Первая задача. 

Теперь вы должны добавить несколько кистей.  Ваша следующая задача - создать 3D-уровень, подобный следующему:

Image 1Image 1Image 1
Image 2Image 2Image 2

Когда вы закончите создание уровня, перейдите к следующему разделу.  Обратите внимание: вам не нужно создавать 3D-мир точно так же, как и предыдущий.  Основная идея состоит в том, чтобы добавить несколько кистей и взаимодействовать с ними (вращение, преобразование и масштабирование).

Префабы

Префабы позволяют вам создавать контент быстрее, используя комбинацию заранее определенных активов. Чтобы использовать ранее созданные Префабы, откройте Database View (View > Open View Pane).

На вкладке Prefabs Library нажмите Open.  Выберите styletown.xml и нажмите ОК

The DatabaseThe DatabaseThe Database

Теперь откройте RollupBar и в разделе Prefab вы должны увидеть импортированный префаб NeighborhoodBlock.

The NeighborhoodBlock PrefabThe NeighborhoodBlock PrefabThe NeighborhoodBlock Prefab

Нажмите и перетащите три объекта (StreetSet_A, Block_A, и StreetLight_A) в Perspective Viewport. У вас должно быть что-то вроде следующего изображения. 

A Rendered 3D SceneA Rendered 3D SceneA Rendered 3D Scene

Ладшафты

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

  1. Уровни текстуры ландшафта (Terrain Texture Layers) 
  2. Редактор материала (Material Editor)
  3. Редактор ландшафта (Terrain editor) (в RollupBar

Чтобы открыть Уровни текстуры ландшафта, вы можете использовать главное меню View > Open View Pane > Terrain Texture Layers или короткий путь, доступный на панели инструментов Editor

Terrain Texture LayersTerrain Texture LayersTerrain Texture Layers

Откройте Уровни текстуры ландшафта. 

Terrain Texture LayersTerrain Texture LayersTerrain Texture Layers

Интерфейс Уровней текстуры ландшафта используется для определения материалов, которые будут использоваться для рисования вашего уровня ландшафта.  В интерфейсе есть четыре основных раздела: 

  1. Layer Tasks (Задачи уровня) используется для добавления, удаления, перемещения и назначения выбранного материала выбранному слою.
  2. Layer Info (Информация уровня) содержит информацию о выбранном слое, такую, как размер и тип поверхности.
  3. Layer Texture (Текстура уровня) отображает текстуру с низким разрешением, содержащую информацию о цвете. 
  4. Layer list (Список уровня) содержит список созданных слоев для рисования ландшафта. 

В разделе Layer Tasks добавьте два слоя.   Назовите первый grass, а второй dirt

Layer TasksLayer TasksLayer Tasks

Откройте Material Editor, используя View > Open View Pane > Material Editor или короткий путь, доступный на панели инструментов Editor

Material EditorMaterial EditorMaterial Editor

Вы заметите, что у вас будет два окна (Terrain Texture Layers и Material Editor) или одно окно с разделителем вкладок в нижней левой части. 

Material EditorMaterial EditorMaterial Editor

Material Editor состоит из следующих областей: 

  1. Панель инструментов Editor для применения, удаления, создания и сохранения материалов
  2. Предварительный просмотр материала, который отображает выбранный материал
  3. Каталог папок материалов, отображающий иерархическую структуру папок, содержащую материалы, которые можно выбрать
  4. Свойства, содержащие параметры, которые определяют общий вид материала. 

Теперь пришло время назначить два материала для вышеупомянутых созданных слоев.  Для первого выберите материал gr_grass_01, расположенный по пути к каталогу: materials > gettingstartedmaterials.

Material EditorMaterial EditorMaterial Editor

Теперь измените интерфейс на Terrain Texture Layers и выберите слой grass.  Нажмите Assign Material. Это действие применит выбранный материал к выбранному слою.  Обратите внимание, что Material path изменился в соответствии с material > getstartedmaterials-> gr_grass_01.

Grass LayerGrass LayerGrass Layer

Теперь добавим материал земли (gs_ground_01) в слой dirt. Этот материал также находится в той же папке. 

  1. Выберите материал gr_ground_01.
  2. Измените интерфейс на Terrain Texture Layers.
  3. Выберите слой dirt
  4. Нажмите Assign Materials

Теперь вы готовы нарисовать текстуру травы и почвы в ландшафте. 

На панели RollUp выберите вкладку Terrain, а затем нажмите кнопку Layer Painter

Layer PainterLayer PainterLayer Painter

Существует несколько аспектов, которые следует учитывать при применении текстуры ландшафта: свойства радиуса и жесткости; цвета и яркости текстуры; сама текстура; и тип заливки (основанный на мышке или на Flood).  Первая применит текстуру, используя расположение вашей мышки, в то время как последняя применит текстуру ко всей почве 

Выберите текстуру травы и измените цвет на более зеленый оттенок. Нажмите ОК

tint Colortint Colortint Color

При выборе слоя травы нажмите кнопку Flood.  Ландшафт теперь покрыт текстурой травы и выглядит следующим образом: 

FloodFloodFlood

Теперь вы можете нарисовать почву в пейзаже по периметру улицы. Выберите текстуру почвы и измените цвет на коричневый. Нажмите ОК.  Теперь, используя Perspective viewport, увеличьте масштаб 3D-сцены и левой кнопкой мыши, щелкните, чтобы добавить текстуру почвы. 

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

DirtDirtDirt

Высота ландшафта. 

Вы также можете изменить высоту ландшафта с помощью инструментов Modify

ModifyModifyModify

Инструмент Modify имеет следующие параметры: 

  • Flatten: сглаживание ландшафта до заданной высоты 
  • Smooth: смягчите ландшафт до более гладкой поверхности 
  • Rise/Lower: поднимите или опустите ландшафт, основанный на настройках размера кисти 
  • Pick Height: найдите и установите высоты, основанные на существующей геометрии рельефа 
  • Outside Radius: установите размер кисти для рисования 
  • Inside Radius: установите насколько круглой или плоской будет кисть относительно настройки внешнего радиуса 
  • Hardness: настройте мягкость или жесткость внешней кисти 
  • Height: установите высоту кисти
  • Scale: сила шумового эффекта; более высокие значения дают больше шума. 
  • Frequency: как часто применяется эффект.

Используйте вышеупомянутые параметры, чтобы создать несколько гор на вашем 3D-уровне.  Нажмите кнопку Rise/Lower. Обратите внимание, что курсор вашей мышки в Perspective Viewport изменился. 

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

MountainsMountainsMountains

Если вы хотите, вы можете поиграть со свойствами ландшафта, а именно с параметрами Flatten, Smooth и Pick Height.  Когда вы будете удовлетворены генератором рельефа, сохраните свой уровень (Control-S). 

Освещение

Теперь, когда вы почти завершили 3D-пейзаж, пришло время добавить ему освещение.  В Lumberyard вы можете добавить три типа освещения: 

  • Environment Probes (Зонд окружающей среды)
  • Time of Day (Время дня)
  • Basic Lights (Основное освещение)

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

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

Зонд окружающей среды

Чтобы создать зонд окружающей среды, выберите EnvironmentProbe в RollUpBar в разделе Misc. Переместите курсор мышки в область просмотра и поместите зонд окружающей среды везде, где вы хотите. 

EnvironmentProbeEnvironmentProbeEnvironmentProbe

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

В разделе свойства EnvironmentProbe вы хотите изменить BoxSizeX, BoxSizeY и BoxSizeZ на 512, 512 и 250 соответственно. Если вы уменьшаете масштаб пейзажа, у вас должен быть желтый квадрат, покрывающий его. 

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

Environment Probe ZoomEnvironment Probe ZoomEnvironment Probe Zoom

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

Activate the Lighting ProbeActivate the Lighting ProbeActivate the Lighting Probe

Чтобы активировать зонд, установите флажок в разделе Active согласно EnvironmentProbe Properties, а затем нажмите кнопку Generate Cubemap согласно Probe Functions

Вы должны заметить, что тени становятся более мягкими. 

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

DifuseMultipler DifuseMultipler DifuseMultipler

Время дня

Вы можете контролировать время суток (TOD), а также вы можете анимировать свой пейзаж, принимая во внимание значения изменения реального времени дня.  Чтобы установить TOD, вы должны открыть редактор TOD. Вы снова можете открыть его, используя View> Open View Pane> Time of Day или короткий путь, доступный на панели инструментов Editors

TODTODTOD

Редактор TOD имеет семь основных областей: 

TODTODTOD
  1. Панель инструментов Editor содержит значки для импорта, сохранения и установки определенных часов дня.
  2. Настройки HDR для настройки подсветки HDR. 
  3. Задачи для настройки основных функций редактора. 
  4. Время определяет текущее время уровня. Также включает время начала и окончания, если вы хотите оживить освещение. 
  5. Задачи обновления позволяют воспроизводить или останавливать анимацию. 
  6. Редактор Time line дает вам возможность контролировать настройки освещения в течение 24-часового периода. 
  7. Параметры дают вам больше возможностей для настройки свойств освещения. 

Давайте импортируем определенный заранее файл TOD .xml.  Нажмите Import file и перейдите в SamplesProject\Levels\GettingStartedFiles, выберите файл TimeOfDay и нажмите Открыть. Настройки освещения будут изменены автоматически. 

Time Of Day Time Of Day Time Of Day

Дополнительно вы можете настроить свойства TOD по своему усмотрению. Поиграйте с цветом Солнца, множителем цвета Солнца и интенсивностью Солнца, чтобы увидеть различия. 

Time of DayTime of DayTime of Day

Измените TOD на 9:00 вечера, прежде чем продолжить. Закройте редактор TOD

 900 PM 900 PM 900 PM

Основное освещение

Ваш пейзаж теперь темнее. Настало время добавить основное освещение. В RollupBar на вкладке Objects выберите кнопку Entity. Под заголовком Browser раскройте папку Lights и выберите объект Light. Перетащите его в свой пейзаж и поместите его рядом с одним из объектов уличного фонаря. 

Placing a Street LampPlacing a Street LampPlacing a Street Lamp

Обратите внимание, что если вы столкнулись с какой-либо проблемой, которая точно выравнивает свет, вам рекомендуется включить опцию Snap to Grid.

Поскольку источником света является фонарь, он должен быть прожекторным светом (а не заполняющим светом). Чтобы изменить свет от заполняющего до прожекторного: под заголовком Entity Properties найдите название Projector.  Нажмите Texture, а затем щелкните по значку папки

TextureTextureTexture

Теперь откройте каталог \SamplesProject\textures\lights\generic и откройте файл spot_075.dds

Loading a generic texture fileLoading a generic texture fileLoading a generic texture file

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

Placing the Point LightPlacing the Point LightPlacing the Point Light

Под заголовком Entity Properties вы можете изменить различные параметры, чтобы настроить свет. 

  • AttenuationBulbSize - это размер лампы; это начальная точка, в которой свет начинает экспоненциально падать.  Значение 1 задает свет с полной интенсивностью на один метр, прежде чем он начнет падать. Отрегулируйте этот размер по отношению к диффузному мультипликатору для управления яркостью источника света без ввода неуправляемых чисел. 
  • Radius - это расстояние от источника, при котором свет воздействует на окружающую область.
  • Diffuse представляет значение цвета RGB для освещения. 
  • DiffuseMultiplier - интенсивность диффузного цвета; балансируйте это значение с помощью параметра AttenuationBulbSize, чтобы определить баланс естественных уровней освещенности. 
  • ProjectorFov представляет собой поле зрения для проекционного освещения. 
  • CastShadows делает, чтобы свет отбрасывал тень на основе минимальных выбранных спецификаций конфигурации.  Для обеспечения того, чтобы всегда падали тени, установите для этого значение 'Low Spec'. Обратите внимание, что параметр CastShadows не является параметром 'качества', а скорее параметром спецификации производительности для типа машины, на которой запущен уровень. 

Для этого урока используйте следующие настройки: 

  • AttenuationBulbSize = 6
  • Radius = 20
  • Diffuse Color = 228, 224,102
  • DiffuseMultiplier = 20
  • ProjectorFov = 80
  • CastShadows = Low Spec

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

Experimenting with Experimenting with Experimenting with

Запустите игру (Control-G) и посмотрите, как ведет себя ваш персонаж при контакте с новым источником света.  Для каждого фонаря добавьте новый свет. Вы можете сделать это, дублируя текущий свет или добавляя его.

Задача

Чтобы проверить приобретенные знания, вам теперь требуется воссоздать getting-started-completed-level

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

Заключение

Завершение нашего урок по Lumberyard. Вы узнали, как настроить размещение камеры и игрока, и вы узнали, как импортировать внешние активы и размещать несколько объектов, создавая префабы и текстуры. Наконец, вы ознакомились со свойствами освещения. 

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

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Game Development tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.