Полезное

Мы Вконтакте

Discord канал

Композиция мира

Добавлено Янв 25 2016
Композиция мира

World Composition был разработан для упрощения управления большими мирами.Одна из целей — избежать bottleneck с помощью постояноого уровня, когда команда левел-дизайнеров хотят рабоать над уровнем одновременно.Постоянный уровень не хранит текущую информацию, а вместо этого сканирует папку и переопределяет все найденные уровни в качестве потоковых уровней.Каждый потоковый уровень имеет информацию, хранящуюся в заголовке пакета, которую World Composition можете прочитать без загрузки уровня в память.Изначально, все уровни, кроме постоянного уровня выгружены из World Composition.Вы можете вручную загрузить или выгрузить любую часть мира в любое время.
World Composition основывается на мировой функции переключения, которая при использовании потокового уровня основанного на расстоянии, даёт возможность создавать миры, которые не ограничены WORLD_MAX константой, которая жёстко прописанна в самом движке.

Активация World Composition

World Composition можно активировать, включив галочку Enable World Composition в World Settings.

Вы также можете выключить функцию мирового переключения, выключив галочку Enable World Origin Rebasing в World Settings.

Композиция мира

Иерархия уровней

После того как вы активировали World Composition, все уровни в вашем проекте будут видны во вкладке Levels.Для открытия этой вкладки, выберите вкладку Levels в меню Windows.

Открыв окно уровней вы увидите свою иерархию мира.

Композиция мира

Уровень у которого название выделено синим цветом — текущий уровень. Названия уже загруженных уровней выделены белым. Выгруженные уровни имею серия названия.

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

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

Компоцизия уровней

Когда включите World Composition, сверху окна уровней появится кнопка открытия World Composition.

Композиция мира

Здесь вы можете увидеть макет вашего мира.
Композиция мира

Слои

Поумолчанию, все уровни подписанны как Uncategorized.Слои хранят в себе информацию о дистанции стриминга, поэтому уровни назначеные для определённого слоя будут наследовать эту дистанцию стриминга.Уровни применённые к слою у которого отсутствует дистанция стриминга, будут исключены из дистанции стриминга и могут быть изменены посредством блупринтов.

Вы можете создать новый слой нажав на кнопку + справа от существующих названий слоёв.Каждый уровень одновременно может быть привязан лишь к одному слою.

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

Вы можете фильтровать ваши уровни по слоям, путём нажатия на имена слоёв выше миникарты.Вы можете переключить несколько слоёв посредством Ctrl+Mouse Click.Фильтрация не выполняется, когда нет слоёв для переключения

Миникарта

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

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

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

Композиция мира

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

Миникарта имеет желтый квадрат с индикацией безопасной области редактирования.Размер безопасной зоны редактирования равен WORLD_MAX константе движка.Уровни вне этой области будут автоматически скрыты, так же как и их изображения.World Composition старается хранить уровни с которыми вы работаете, недалеко от редактора центра мира.Эта функция называется «фокусировка» и может сместить действующий центр мира в новое положение, если вы начнете редактирование уровня за пределами области безопасного редактирования.Сдвинутые уровни всё равно сохраняют свои экторы оригинального перемещения когда они сохранены, поэтому сохранение уровня, который в настоящее время смещается не изменит экторов абсолютной позиции.

UI ключи

Композиция мира

Номер Название Описание
1 Layers Кликните по имени слоя, что бы переключить фильтрацию по слоям, или нажмите на кнопку + для создания нового слоя.
2 WORLD_MAX Индикатор размера константы WORLD_MAX.
3 World Origin Текущие координаты позиции происхождения мира.
4 Current Level Название текущего уровня.
5 Mouse Cursor Position Текущая позиция курсора мышки в мировых координатах.
6 Marquee Selection Размер бокса выделения в мировых координатах.
7 World Size Размер мира просчитанный на основе сумм размерных боксов.

Уровни детализации

Чтобы увидеть подробную информацию про любой уровень в окне уровней, выберите его и нажмите на значок лупы на панели инструментов.Это вызовет окно Level Details, где вы можете также переключаться между доступными уровнями из выпадающего меню.

Композиция мира

Настройки тайлинга

Настройка Описание
Package Name Название пакета выбранного уровня. Эта информация доступна только для чтения.
Parent Package Name Название пакета родительского уровня. Если уровень указал родителя, то его позиция становится относительно его родительского уровня.
Position Смещение уровня от нуля происхождения мира, хранится как целочисленное значение 2D вестора.Все экторы на уровне будут сдвинуты на это значение когда уровень будет добавлен к миру (станет видимым), и сдвинется обратно, когда уровень будет убран из мира (станет невидимым).
Absolute Position Абсолютное положение уровня. Это то же, что и Position, когда уровень не имеет родителя. Эта информация доступна только для чтения.
Z Order Определяет порядок сортировки по Z, тайла уровня в миникарте. Это может быть полезно при наличии нескольких перекрывающихся тайлов и вы хотите отсортировать их в определенном порядке.

Настройки LOD

Каждый уровень в world composition может иметь до 4х ЛОДов стриминга уровней.ЛОДы стриминга уровней аналогичны ЛОДам обычных мешей.В зависимости от настроек дистанции стримиинга, уровень стриминга будет заменён на соответствующий уровень ЛОДа.ЛОДы уровней автоматически находятся World Composition используя паттерн _LOD#. Где номер должен быт от 1 до 4.ЛОДы уровней могут быть созданы в ручную или автоматически, используя Simplygon.

В Unreal Engine 4 уже встроен Simplygon, но вам нужна лицензия на его использование Simplygon .
Настройки Описание
Num LOD Количество ЛОДов уровня для выбранного уровня.
LOD[1..4]
Generate Создает упрощенный вариант исходного уровня используя Simplygon ProxyLOD, характеристика объединяющая экторы статических мешей найденных на уровне в один упрощённый прокси меш.Эктор ландшафта будет сконвертирован в статик меш используя найвысший ЛОД ландшафта. В основном, уровень с ландшафтом,эктор, и куча экторов статических мешей будут давать результат в виде ЛОДа уровня который содержит 2 упрощённых статик меш эктора.Эта операция перезапишет предыдущую версию ЛОДа уровня, если она была на диске.
Distance Расстояние относительно дистанции стриминга исходного уровня . Например, если первоначально уровень имеет дистанцию стриминга = 1000, и LOD1 уровень имеет расстояние 1500, потом LOD1 уровень будет виден в [1000..2500] диапазоне и оригинал на [0..1000] диапазоне.
Details percentage Процент детализации, сохраняющийся при уменьшении оригинального меша

Сдвиг происхождения мира

Редактор World Composition поддерживает смещение происхождения мира на некоторое произвольное значение.Смещение происхождения мира является результатом прибавления вектора сдвига ко всем зарегистрированным экторам в мире.Каждый эктор имеет функцию ApplyWorldOffset которая может быть перезаписана в дочерних классах для выполнения дополнительных задач.В случае, если вы создали новый производный эктор класс и храните значение абсолютной позиции в нём , вы должны перезаписать функцию ApplyWorldOffset для того, чтобы это корретно работало с мировым происхождением и коррентным изменением абсолютных значений в нём.Рендеринг и физические примитивы будут сдвинуты параллельно эктору во время игры.

Большие миры и мультиплеер

На данный моммент сдвиг происхождения мира не поддерживается в мультиплеерных играх.Ниже приведены 2 решения которые могут быть применены для ваших специфических нужд:

  1. Применение собственных серверных решений. Большинство ММО так и делают.
  2. Применение некоторых слоёв между клиентом и выделенным сервером анриала, который будет

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

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

Создание ландшафтов уровней

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

На пенели Levels вы можете найти опции для импорта затайленных ландшафтов.Затайленный ландшафт создан из затайленной карты высот, где каждая карта высот будет представлять собой уровень с эктором ландшафта в нём.Затайленные карты высот/весов могут быть экспортированны из приложений таких как World Machine.Смежные карты высот должны разделять границы вершин («Share edge vertices» в World Machine).И каждый тайл разрешения должен следовать рекомендациям с этой страницы Creating Landscapes.

Композиция мира

Функция Описание
Select Heightmap Tiles Выбор тайлов карт высот которые вы хотите импортировать.
Flip Tile Y Coordinate Импортированный тайл будет с перевёрнутой координатой Y.Эта опция должна быть включена при импорте тайлов из World Machine.
Tile Coordinates Offset Сдвиг тайлов относительно происхождения.Если укащан 0, то тайлы с координатами x0_y0 будут созданы в происхождении мира.
Import Configuration Генерация всех возможных ландшафтных конфигураций основанных на разрешении выбранного тайла.
Landscape Scale Значение масштаба тайла ландшафта.
Material Используемый материал. Когда материал будет выбран, вы можете назначить карту весов тайлов для каждого ландшафтного слоя найденного в материале и то, как слои будут смешиватся.

Когда вы импортируете ландшафтные тайлы, вы можете реимпортировать карты высот и карты весов для выбранных уровней, используя right-click в контекстном меню миникарты

Добавил: RedComrade Категория: Ландшафт


Комментарии

На данный момент комментарии отключены.

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница