Настройка физической прокси

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

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

Содержание

Настройка физической прокси

Настройка физической прокси в 3D-приложениях исключительна — просто настройка необходимого типа поверхности для редактора Sandbox.

Настройка в 3D-приложениях

3ds Max

Физическая прокси супер-простая версия вашей геометрии. В 3ds Max необходимо назначить отдельный идентификатор материала для прокси, а также убедиться, что все грани вашей прокси имеют один группу сглаживания. Учитывая отдельный идентификатор материала необходимо также создать дополнительные подматериал для прокси. Физикализируется как физическая прокси в настройка шейдера Crytek в редакторе материала 3ds Max. Физика может быть изменена только в 3ds Max, но никак не в редакторе. Если вы хотите изменить настройки физики, вам необходимо будет переэкспортировать объект. У физической прокси не должно быть открытых рёбер. Открытые рёбра могут запутать физический движок и негативно повлияеть на производительность. Также полезно назначить крайний цвет у прокси, чтобы сохранить обзор.

AssetCreation PhysicsProxy max sample.jpg
Рисунок 1. Пример.


XSI

Свойства узла

Как правило, особые свойства узла не нужны.
Движок будет автоматически пытаться заменить сетку физической прокси параметрическим примитивом, сравнивая прокси с некоторыми основными форм и приближая возможные примитивы к расчетным пределам. Форма создается вокруг общей ограничительной рамки геометрии и использует оригинальную точку опоры, пытаясь повернуть примитивы для соответствия геометрии. Использование примитивов экономит много времени на расчет столкновений (1 грань = 1 примитив). Поэтому важно как можно больше использовать примитивы.

Явные метки прокси с определенным значением (см. список ниже) указанные в Node Properties, движок расширяет ограничения и заменяет геометрию прокси названием примитивов.

  • nonphysical — используйте только те, у которых нет отдельного физического скелета.
  • sphere
  • box
  • capsule
  • cylinder

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

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

Сложности

Физическая прокси объектов окружения (заборы, ящики, контейнеры, деревья, камни, лестницы и т. д.) должна быть ОЧЕНЬ ПРОСТОЙ.

Простота физической прокси важна не только для снижения избыточности памяти и физических расчетов, но и для создания более плавных движений. Чем сложней прокси, тем больше она занимает памяти, и тем больше теряется производительности по проверке столкновений в отношении его полигонов, и тем больше вероятность того, что высокочастотные детали сделают что игрок застрянет. Это влияет как на одиночную, так и на многопользовательскую игру, в том числе на производительность выделенного сервера. Идеальная прокси всегда примитивна (например, прямоугольник, сфера, капсула, или цилиндр). Движок признает примитивы из сетки, но по умолчанию tolerance очень низка, в целях усиления распознавания добавьте соответствующие ключевые слова («box», «sphere», и т. д.) в пользовательские свойства узла. Однако следует отметить, что сетка с несколькими типами поверхности не может быть преобразована в примитивы. Примитивы должны рассматриваться как вариант даже для более сложных объектов. В большинстве случаев предпочтительнее чтобы было несколько объектов (например, с отключенным «merge nodes») с примитивными частями вместо одного объекта.

Она используется для передвижения персонажа и для первого прохода отслеживания снарядов (пуль и декалей). Снаряды и декали оттачиваются сеткой рендера, если был обнаружено столкновение с физической прокси. Сетка рендера должна полностью инкапсулироваться физической прокси, так что камера игрока не пересечёт прорисованную геометрию и первый проход снаряда не пройдёт сквозь физические части объекта, хотя и попадёт на визуальную часть объекта. Также есть поддержка создания специальной прокси Raytrace, которая будет использоваться для трассировки лучей, если это предусмотрено (они должны быть физикализированы как «nocollide»). Это позволит основной прокси не инкапсулировать сетку рендера и, тем самым, более упростит её.

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

Пожалуйста, свяжитесь с Дэвидом Монделором для получения дальнейших подробностей.

Связывание объектов с простым экспортом

Физическая прокси может быть частью рендеруемого объекта (в 3dsMax как элемент), либо как отдельный объект, связанный с рендеруемым объектом.

Настройка в Sandbox

В Sandbox необходимо назначить тип поверхности (Surface Type) к вашей физической прокси в редакторе материалов, а также к вашей рендеруемый геометрии. Тип поверхности даёт информацию о звуке и эффекте частиц вашей поверхности. Вы также должны назначить шейдер NoDraw в редакторе материалов. Также убедитесь, что не назначена текстура на ваш подматериал прокси. Физическая прокси никогда не будет прорисован в движке, а только в режиме отладки. Даже если вы назначите шейдер Illum она всё-равно будет невидима. Чтобы перезагрузить физическую прокси, вам необходимо перезагрузить ваш объект, удалите его и отмените его удаление.

Отладку

  • p_draw_helpers 1 — отображает физическую геометрию. Параметрический примитивов представлены с различными стилями рендеринга.
AssetCreation PhysicsProxy editor sample.jpg
Рисунок 2. Пример без отладки.


AssetCreation PhysicsProxy editor sample debug.jpg
Рисунок 3. Пример с отладкой.