×
Меню
Индекс

Добавление Bounding Box

 
Добавление в Нифскопе.
- свободно.
Не забудьте, Bounding Box это имя объекта!
Название объекта находится в колонке value, а не в Name!
В колонке Name указывается системное имя объекта, т.е. его тип.
 
Методы детектирования коллизий (меняются флагом ноды, или шейпа).
Triangles = Use only triangle data even if mesh has a bounding box.
BoundingBox = Use only bounding box data even if mesh has triangles.
Continue = Use both triangle data and bounding box data.
Особой разницы - нет.
Для существ коллизии создаст движок игры, а для всех прочих типов объектов они не работают.
Но для "спокойствия совести" можно выставлять BoundingBox метод.
Ака флаг 12. Или см. здесь по флагам и их влиянию на метод работы с коллизиями.
 
Подробности в ролике, см. тут:
@_Notes_for_Modmaking\Additional_Files\Tours\\Bounding Box

1. Вариант первый.
Это удобно для статичных объектов.
Метод самый быстрый в плане работы.
Но в файлах существ использовать его - не рекомендуется!
 
Создать копию любого шейпа.
И переименовать в  "Bounding Box".
Все!
Остальное сделает движок игры.
Размер коробки выделения будет зависеть от размеров избранного шейпа.
Сам шейп станет скрытым!
Т.е. в редакторе будут видны только линии вокруг него, но не сам шейп. В игре и вовсе ничего не будет отображаться.
 
2. Вариант второй. Этот метод более правильный.
Хорошо подходит для создания ББ существам.
...Да и всяким мелким объектам тоже! Позволяет более гибко настроить зону выделения в редакторе.
 
Создать, в корне файла, пустую ноду, назвать "Bounding Box" далее перейти в ее настройки, где поставить значение:
Has Bounding Box = yes.
Затем отредактировать размеры.
ПКМ по этой ноде Bounds->Edit.
Либо в разделе «Bounding Box» ниже строки «Has Bounding», но тогда размеры не будут обновляться интерактивно!
Но не в разделе Translation\Rotation\Translation ноды! Это не окажет никакого эффекта.
Type of Box - для МВ всегда 1. Это и есть Box, ака режим куба (квадрата, коробки)
Т.е. не следует менять это значение, в нифскопе 1.1.3 оно не правильно декодировано!
Но в принципе, изменять его и нет особого смысла. Режим "бокс" достаточен для всего спектра задач.
Как для Существ, так и для прочих объектов.
Translation: XY = 0, Z - равен высоте радиуса по Z. Смещение не показывает визуального результата.
Rotation: XYZ = 0. Поворот не показывает никакого результата.
Radius: X ->10, Y->10, Z->20 (для существ всегда больше 20! ).(для прочих типов объектов, значения могут быть любыми, даже 0.0.0)
Радиус всегда показывает результат.
 
3. Вариант третий!
Просто скопировать готовый Bounding Box из файла какого нибудь существа.
Затем подправить его размеры согласно размерам видимой сетки объекта, либо исходя из иных целей.
Например, если требуется создать определенную зону выделения вокруг некоторого предмета в редакторе.
 

Памятка!
 
Для существ и НПС:
- непосредственно работает только радиус. И косвенно, смещение.
Однако, вращение ББ может приводить к забавным эффектам, когда заряд магии летит не от существа, но к нему, со спины цели.
См. примечания в основном разделе по ББ.
Для статических объектов всех типов:
- можно смещать ББ по сцене. Это будет видно в редакторе. Что позволяет удобно размещать зону выделения объекта.
В т.ч. и вне видимой сетки оного!
- Поворот никак себе не проявляет, т.е. вращать ББ, по видимости, нет смысла.
 
В целом:
–     Если размеры ВВ существ в разделе Bounding\Radius = 0, игра улетит в краш! 
Минимум 20 по оси Z! Для активаторов и магических снарядов допустимы любые значения от единицы.
–     значение оси Z в разделах Radius и Translation рекомендуется выставлять одинаковыми. Это поставит ББ нижним краем на 0 0 0 точку сцены. Актуально для существ.
–     Radius ZXY это «объем» бокса.
–     Translation ZXY позиция бокса. Которая может показать странное поведение. Т.е. магия полетит к стрелку со спины цели.
–     На ББ не влияют контроллеры. Т.е. назначать на ББ анимации любого типа - нет смысла.
–     ББ может быть только в корне файла! Для предметов в любой ноде, но лучше класть в корень.
–     Для существа, в настройках флага установить — collision detection -> Bounding Box. Либо сразу прописать флаг 12.
–     Если ВВ создается для предмета, активатора и пр. то метод детектирований коллизий можно поставить в NONE.
А можно и вовсе не трогать, т.к. для объектов типа МискАйтим, или светильник - коллизии по любому не просчитываются.