Создание уровня с помощью World Machine

Материал из CryWiki Russia

Перейти к: навигация, поиск

Содержание

Создание уровня с помощью World Machine

Настройка World Machine

Во-первых, нужно узнать масштаб, с которым вы работаете. В меню World Commands\Project World Parameters вы можете увидеть, как WM настроила масштаб. Так как CryEngine поддерживает размеры в степени двойки (256, 512, 1024, 2048, 4096 и т.д.) снимите флажок (+1), чтобы установить размер карты в 512х512.


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

Создание карты высот (Heightmap)

Дважды щелкните на ноде Height Output на WM - графике (красный бокс справа). Здесь мы можем выбрать тип выходного файла. CryEngine поддерживает 4 различных типа файлов, которые вы можете напрямую экспортировать из WM. 8-бит BMP, и три 16-битных изображения RAW16,PGM иTIFF. Всегда используйте вариации 16bit, поскольку они дают гораздо лучшее качество ландшафта, нежели 8bit BMP, который страдает от "террасирования".

http://docs.cryengine.com/download/attachments/15011725/wm_02_hm_export.jpg?version=1&modificationDate=1398179303000&api=v2

Мы будем использовать тип файла RAW16 (или ".R16" в Windows Explorer). Укажите место, где вы хотите сохранить его и нажмите кнопку "write output to disk!", чтобы создать файл. Теперь мы готовы создать палитру.

Создание палитры

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

Во-первых, мы добавим нод Bitmap Output для экспорта изображения, как мы хотим. Он находится в Devices -> Output -> Bitmap Output.

Тогда мы также должны добавить нод Colorizer. Это позволяет вам выбрать из связки пресетов, которые будут распространять цвет по ландшафту. Чтобы добавить его, перейдите к Devices -> Converters -> Colorizer.

Наконец, но не обязательно, можно добавить нод Overlay View. Это поможет вам визуализировать высоты и цвета карты вместе внутри WM. Это также находится в Devices -> Output -> Overlay View.

Соедините их с нодом Terrace, как показано ниже.

http://docs.cryengine.com/download/attachments/15011725/wm_03a_cm.jpg?version=1&modificationDate=1398184000000&api=v2

Нод Colorizer

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

http://docs.cryengine.com/download/attachments/15011725/wm_03_cm.jpg?version=1&modificationDate=1398180877000&api=v2

Нод Bitmap Output

Нажмите на нод Bitmap Output, чтобы открыть его свойства. Тип файла CryEngine принимает на палитру ландшафта как BMP. Поэтому установите тип экспортируемого файла BMP. Нажмите кнопку "write output to disk!", чтобы создать файл и нажмите кнопку ОК.

http://docs.cryengine.com/download/attachments/15011725/wm_03b_cm.jpg?version=1&modificationDate=1398241352000&api=v2

Нод Overlay

Этот последний нод не создает файлы, которые используются в CryENGINE, но очень полезен в WM, он визуализирует то, что вы создаете. Он накладывает палитру на карту высот (если вы установите путь до нее), чтобы предоставить вам предварительный просмотр ландшафта, который вы создаете. Просто добавьте HM (карту высот) & CM (палитру) к входам нода (они будут идти только в одну сторону). Теперь нажмите F8 (3D View), чтобы увидеть вверху отреднеренный ландшафт с палитрой. Сейчас хорошее время, чтобы сохранить ваш проект World Machine. Теперь вы создали все файлы, необходимые для CryENGINE. Таким образом, мы сохранили из World Machine:

  • image.bmp (8-битная палитра)

output.r16 (16-битная карта высот)

  • project.tmd (файл WM)

​Настройка уровня в CryEngine

Откройте SandBox и создайте уровень
===

В SandBox создайте новый уровень и выберите в настройках разрешение ландшафта 512 х 512, чтобы соответствовать размеру ландшафта, который мы только что экспортировали из WM. Также установите занчение параметраMeters Per Unit 1 (этот множитель мы используем, чтобы сделать ландшафт больше, чем импортированное исходное изображение).

http://docs.cryengine.com/download/attachments/15011725/ce_new_level.jpg?version=1&modificationDate=1398185310000&api=v2

Это означает, что при множителе x1, расстояние между каждой точки на HM 1 метр. При x2, расстояние 2 метра между точками.

Импорт карты высот

Импортируем карту высот

Откройте Terrain Editor, затем Terrain -> Edit Terrain. Далее в Terrain Editor перейдите в меню File -> Import Heightmap. Выберите карту высот (.R16 файл), который мы только что создали с WM (по умолчанию он должен находиться в: Documents \ World Machine Documents) и нажмите кнопку ОК. Теперь вы, вероятно, не можете видеть его, вам придется отлететь дальше, чтобы увидеть уровень, но в конечном итоге вы увидите что-то вроде этого:

http://docs.cryengine.com/download/attachments/15011725/ce_01_first_import.jpg?version=1&modificationDate=1398185540000&api=v2

Установка максимальной высоты террейна

Случилось так, что размеры XY верны (мы устанавливали 512x512). Но Z значение слишком велико. Чтобы получить это в более удобную карту высот, мы должны перейти к Terrain Editor,Modify -> Set Terrain Max Height.

http://docs.cryengine.com/download/attachments/15011725/ce_02_set_height.jpg?version=1&modificationDate=1398186166000&api=v2 Присвойте параметру более низкое значение, в 128. Верхняя часть ландшафта будет обрезана в 3D-просмотре, но это нормально, так как мы собираемся повторно импортировать карту высот.

Это устанавливает точку белого (255) от оттенков серого карты высот к максимуму в 128 метров в движке.

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

http://docs.cryengine.com/download/attachments/15011725/ce_03_2nd_import.jpg?version=1&modificationDate=1398186066000&api=v2

Перейдите в игровой режим и оцените ландшафт (CTRL + G). Это самый лучший способ получить представление о масштабах мира, который вы создаете.

Импорт палитры

Сейчас мы используем материал ландшафта по умолчанию (черный и белый боксы). Чтобы изменить текстуру, мы должны изменить две вещи: низкодетализированные и высокодетализированные текстуры и материалы.

Низкодетализированные - Это то, что вы видите на расстоянии, когда, глядите на ваш ландшафт. Это базируется на палитре.

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

Низкодетализированная Текстура

Во-первых, то мы заменим низкодетализированную текстуру. Откройте Terrain -> Export/Import Terrain Texture. Это открывает новое окно с обзором всего уровня сверху.

http://docs.cryengine.com/download/attachments/15011725/ce_04_cm_import.jpg?version=1&modificationDate=1398186854000&api=v2

Нажмите на изображение (с 256 в середине). Это один тайл текстуры ландшафта, в настоящее время установлен в 256, который является половиной размера текстуры ландшафта. Нажмите кнопку Change Tile Resolution и выберите 512x512 из выпадающего списка. Если ничего не происходит, убедитесь, что вы выбрали (станет серым, когда выбран) плитку, нажав на нее.

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

Пока тайл выделен, нажмите кнопку Import и выберите текстуру ландшафта, созданную в WM. После того, как файл выбран, нажмите кнопку Close на инструменте Import и цвет ландшафта будет обновлен. Отлетите высоко и проверьте выравнивание палитры на ландшафте. Он повернут? Следует ли снежная часть самому высокому хребту в карте? Если не повернуть изображение на 90 градусов по часовой стрелке вPhotoshop.

Теперь ваш ландшафт должен выглядеть примерно так:

http://docs.cryengine.com/download/attachments/15011725/wm_terrain_texture.jpg?version=1&modificationDate=1402167496000&api=v2

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

Высокодетализированная текстура

Откройте панель Terrain -> Terrain Textures Layers. Здесь вы установливаете и назначаете различные текстуры травы, камня, земли, которые можно увидеть вблизи игрока.

http://docs.cryengine.com/download/attachments/15011725/ce_05_terrain_detail_layer.jpg?version=1&modificationDate=1398241586000&api=v2

Материал "terrain material" является прикладным шейдером. Каждый материал в папке Materials/terrain использует шейдер Terrain.layer. Вы можете применить только эти материалы к слоями ландшафта.

Мы будем добавлять два слоя текстуры ландшафта. Один для покрытия плоских участков (трава). И еще, чтобы иметь дело со склонами (скалы).

Выберите и выделите первый слой в списке (по умолчанию) и нажмите на ссылку в колонке материала. Это позволит вам перейти к Material Editor. В папке Materials\terrain вы можете увидеть доступные материалы ландшафта.

Выберите или выделите в Мaterial Еditor grass_01. Теперь вернемся в окно текстурных слоев ландшафта, нажмите кнопку Assign Material. Теперь этот материал будет применяться на слой ландшафта.

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

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

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

Далее мы добавим еще один слой ландшафта. Нажмите кнопку Add Layer в панели управления слева. Назначьте имя Rock.

Нажмите еще раз на материале ландшафта, нажмите на ссылку, чтобы перейти к Мaterial Еditor и выбрать материал, например cliff_gray_3d, и назначить его на слой.

Определите правила снова, но на этот раз установите минимальный угол до 30 градусов.

http://docs.cryengine.com/download/attachments/15011725/ce_07_layers.jpg?version=1&modificationDate=1398249995000&api=v2

Таким образом, чтобы объяснить ... трава покрывает от 0, до 30 градусов, а камень от 30 до 90 градусов. Без перезаписи друг друга.

Покраска

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

http://docs.cryengine.com/download/attachments/15011725/ce_07_layer_painter.jpg?version=2&modificationDate=1398246219000&api=v2

По умолчанию, Layer Painter будет использовать высокодетализированные и низкодетализированные текстуры ландшафта сразу. Поскольку мы создали нашу низкодетализированную текстуру в WM, нам не нужно, чтобы это произошло.

Есть 3 способа применения текстур ландшафта внутри этого инструмента.

  • Красить обеими текстурами сразу (По умолчанию)
  • Красить только высокодетализированной текстурой
  • Красить только низкодетализированной текстурой

Покраска высокодетализированной текстурой

Это метод, который мы хотим использовать если не хотим, использовать низкодетализированную текстуру, которая была создана в WM (палитра). Для этого, установите ползунок параметра Hardness на 0. Теперь вы будете красить высокодетализированной текстурой (материал, которые мы создали ранее (grass_01 и cliff_gray_3d). Теперь вы можете красить ландшафт безопасно без перезаписи текстуры, импортированной из WM.

Покраска низкодетализированной текстурой

Чтобы перезаписать текстуру, которую импортировали из WM, без добавления высокодетализированной, снимите флажок PaintLayerId (DetailLayer). Также установите ползунок параметра Hardness обратно до 1.


На этом все. Статью официальной документации перевел Re-Loader