×
Меню
Индекс

Collision detection methods for PROXY object

 
Это были методы в целом и в общем...
Но у нас еще есть несколько "престов" специально для ББ! :D
Т.е. ББ может быть не только коробкой с внутренним объемом, но и "виртуальной" плоскостью, или сферой.
 
К счастью (для этой заметки) только 2 из них работают в МВ, а остальные либо не активны, либо не работают правильно.
Отчего можно не сильно вникать в эти настройки.
Однако, для общего ознакомления с вопросом, это может быть интересным.
Впрочем, с ОпМВ, ситуация может быть иной, т.к. в нем это все может работать в полной мере.
А также МВСЕ на ЛУА, может задействовать эти типы прокси геометрии для некоторых просчетов.
Т.е. если модмейкер поставит себе такую цель, эти объекты можно как-то использовать.
 
По движку игры видны следующие методы работы ББ:
Объект
флаг
в ниф
В МВ
Аглицкое описание
Что получается
SPHERE_BV
0
Работает
A Sphere ABV is generated using the center of the box as its center, and the length of the longest box side as the diameter.
Создает сферическую зону, радиус + точка опоры.
 
Можно создать в ниф файлах посредством правки nif.xml, т.е. для 1.1.3 значение декодировано не верно.
Для МВ - особой пользы не замечено, зона выделения все одну квадратная.
А для детектирования коллизий у "живых" объектов, выглядит мало актуальным.
 
Добавление в файлы существ - сбрасывает на режим коробки.
Т.е. если выбрать режим прокси геометрии в виде сферы, все одно будет включен Бокс.
По крайней мере так показывает редактор и игра.
Но в моделях статичных объектов, сфера будет отображена корректно.
 
BOX_BV
1
Работает
Boxes are defined to be exactly the size of the box.
Обычный режим, в нифскопе 1.1.3 включает по умолчанию.
Т.е. если поставить "has bounding box" = 1.
Значение 1 и есть режим коробки.
 
Корректно отображается во всех моделях.
Что предметов, что существ.
 
Capsule_BV
2
НЕ РАБОТАЕТ
A Capsule ABV is generated using the center of the box as its center, the longest box axis as the length of the cylinder, and the length of the second longest axis as the diameter.  If you model the ABV using a box that has two equal sides, then the ABV will exactly fit inside of this box.  If all three sides are equal, then you’ll have a Capsule that looks like a Sphere, but is not as efficient as a Sphere
 
Нет упоминаний в коде движка.
Добавление в файлы приводит к КТД.
 
Есть мнение, что объект был намерено удален.
Т.е. номера флагов не изменены.
Если бы поддержку капсулы завезли в поздних версиях движка, то ее номер был бы другим.
т.е. не 2. Либо на 2 находился бы другой объект.
 
LOZENGE_BV
3
Работает
Lozenge alternate bounding volumes are named after their resemblance to cough lozenges.  All points equidistant from a parallelogram define a lozenge.  They are specified with an origin point, two edge vectors, and a radius.
 
Создает некую сложно искривленную зону?
Предполагается использование в статичных объектах?
 
После некоторых исследований удалось получить правильные значения для ниф файлов.
Объект можно свободно добавлять в ниф файлы 4.0 используя нифскоп.
См. правки для Ниф.хмл файла.
 
Но практической пользы определить сложно.
Может быть только с МВСЕ, или в ОпМВ.
 
UNION_BV
4
Работает
The UnionBV alternate bounding volume (ABV) may contain more than one of the other ABV types.  The effective ABV that is used in intersection testing is the union of all the volumes the union contains.  This technique makes it possible to create uniquely shaped bounding volumes not otherwise possible.  For example "L" shaped volumes are possible by creating a union with two appropriately positioned NiBoxBV instances.
Это "загрузчик" для нескольких ББ.
Т.е. выбрав этот режим, можно сделать коллизию из нескольких разных типов ББ.
Сфера, куб и пр. при этом в нескольких штуках сразу.
 
Используется в МВ!
Можно увидеть по консольной команде TCB, так и по SSG.
Используется у Игрока и существ.
Зачем создается 2 ББ? вопрос открытый.
Возможно в дополнение к ББ из xbase_anim.nif игра создает еще один ББ автоматически?
Либо один ББ используется для просчета столкновений в нижней части объекта, а второй в верхней.
 
Если использовать в локальных ниф файлах, то по SSG можно увидеть смену типа записи ББ.
Но вложенные объекты, не указываются.
Хотя для существ и игрока, можно видеть тип вложенной прокси геометрии.
И да, это тоже БОКСы.
 
При этом, от смены типа, зона выделения, вокруг объекта, никак не меняется.
Т.е. если один вложенный объект будет сфера, а второй бокс.
Т.е. фактического смысла в этом не наблюдается.
HALFSPACE_BV
5
Работает
The HalfSpaceBV is useful for handling a (nearly) planar object without having to process the individual triangles that make up that object.  For example, the four walls, floor, and ceiling of a room can be added as six separate planar objects
 
Менее сложная псевдо геометрия?
Выглядит как упрощенный бокс, по настройкам.
 
Можно использовать в МВ.
Т.е. после редактирования ниф.хмл этот тип Прокси Геометрии можно включать в настройках объектов.
SSG корректно показывает смену типа.
Но не более того.
Практической пользы определить сложно.
Может быть только с МВСЕ, или в ОпМВ.
 
 
Примечание.
Для 4.2 версий, можно получить все типы ББ посредством экспортера из МАХа.
Мало ли, может для ОпМв, или еще для каких целей это будет таки интересно.
Иначе, только через нифскоп.
Возможно, со временем, завезут и в Блендер.
 
Примечание.
Правки ниф.хмл для правильного включения ББ.
Однако, этого делать не сильно рекомендуется.
Т.к. для нифскопа 1.1.3 меню редактирования ББ станет неактивным и сама коробка окружения перестанет рисовать в окне рендеринга (нифскопа).
 
Примечание.
В нифскопе 2.0 некоторые правки настроек прокси геометрии уже имеются, но в некоторых моментах, они ошибочны!
Т.е. корректны только для старших версий ниф файлов, где, они, имеют дополнительные поля, или иные отличия.
По крайней мере указанные там настройки для ХалфСпейса не срабатывают для ниф файлов 4.2 - СкенеВиювер вылетает в ошибку.
Т.е. потребуется основательно обновить ниф.хмл файл!
 
Примечание.
Заметка о взаимодействии разных форм ББ между собой, см. здесь.
Хотя, особого смысла для МВ, это, тоже, вряд ли имеет.
 
Итого!
Использование чего-то отличного от БОКСа (коробки) метода работы ББ, для МВ, не имеет значительного смысла.
Возможно, некоторые особо замороченные модели, могут использовать что-то другое, но для 99% случаев, достаточно стандартного значения.
Либо, в каких-то целях, различные формы прокси геометрии, можно использовать через МВСЕ (либо в ОпМВ).