Преобразование объекта в коллизию с помощью nifskop.
Так как мне написали, что моё видео пособие не как не туториал, я решил немного исправить это. Итак:
Collision – это “столкновение” способность объектов ударятся друг о друга.
Расшифровки слов, которые я буду использовать в этом гайде:
ПКМ – правая клавиша мыши
ЛКМ – левая клавиша мыши
Корпус – это-то из чего состоит коллизия.
Преобразование в коллизию:
Что бы из вашего блока NiTriStrips сделать коллизию, нужно для начала открыть две модели, свою и на примере возьмём telephone01, теперь копируем NiTriStrips своей модели, ПКМ на NiTriStrips -> Block -> Copy Branch:
Откроем вторую модель телефона и удалим модель:
Нажимаем на блок модели телефона NiTriStrips и нажимаем ПКМ -> Block -> Remove Branch (Ctrl+Del).
Теперь вставим в модель телефона свою модель:
ПКМ на BSFadeNode -> Block -> Paste Branch.
Теперь копируем NiTriStripsData своей модели, ПКМ на NiTriStripsData -> Block -> Copy:
Далее удалим старую коллизию:
ПКМ на bhkConvexVerticesShape –> Block -> Remove. После этого вы заметите, что появились белые линии по краям модели. Обратите внимание на белый контур, вокруг вашей модели это означает, что мы успешно удалили старую коллизию.
Чтобы создать новый блок данных коллизии выполните следующие действия:
ПКМ на BSFadeNode -> Block -> Insert:
Далее появится такое окно:
Выберите Havok -> bhkNiTriStripsShape чтобы создать новый блок коллизии.
Далее появится bhkNiTriStripsShape который мы будем использовать для столкновения мешей. Далее нужно сделать выбор материала коллизии, это важно, так как коллизия модели реагирует на повреждения от оружия и другие события, которые изменяют поверхность (например, пулевые отверстия выглядят по-разному в камне металле или стекле):
Далее в Num Strips Data поставим 1, и ниже в Strips Data жмём ПКМ -> Array -> Update:
После этого нажимаем на “+”, во вкладке Strips Data жмём в выпадающем блоке ПКМ -> Block -> Paste:
Теперь нам нужно вставить в данные, которые мы скопировали в нашей модели:
ПКМ на bhkNiTriStripsShape –> Havok -> Pack Strips. Это позволит реорганизовать новый объект Havok, и переименовать его.
И последние шаги, ПКМ на bhkPackedNiTriStripsShape -> Block -> Copy Branch (Ctrl+C):
Открываем bhkCollisionObject и ЛКМ на bhkRigidBody. Теперь ПКМ на Shape (В Block Details смотрите скрин) -> Block -> Paste Branch (Ctrl+V).
Далее удаляем не нужный блок bhkPackedNiTriStripsShare:
ПКМ на bhkPackedNiTriStripsShare -> Block -> Remove Branch (Ctrl+Del).
Теперь сохраним модель File -> Save As… Пишем имя, и указываем путь сохранения файла.
Все коллизия для модели готова теперь можете смотреть модель в игре.
Дополнение:
KAIN и Wulf сказали мне:
ЦитатаДля тех у кого нет 3D редактора, как выход из положения - такой способ создания коллизии вполне подойдёт. Но чайник это чайник - на нём полигонов немного, а если модель сложная, то прирост объёма к весу модели при таком способе - от коллизии 25-30 процентов, плюс, как правильно сказал Wulf "Не надо без нужды издеваться над Gamebryo иму итак плохо! Он может и упасть"
Для этого, можно делать “облегчённую” коллизию объекту. Жмём на блоке модели NiTriStrips:
ПКМ на NiTriStrips -> Havok -> Create Convex Shape и в выпадающем окне (Перевод: введите максимальные округления, использованные по величине, значения будут даваться менее точные, но более лучшей):
Далее появится выпадающее окно, в котором написано “создал корпус с * вершин, * нормалей”:
Теперь у нашей модели есть коллизия:
Надеюсь, суть передать смог. Спасибо Miaximus с форума Bethesda, за его способ преобразования модели в коллизию. Я лишь перевёл и дополнил то, что посчитал нужным.
Автор: Graf