Создаем коллизии для статиков в Skyrim LE
Для начала следует обозначить пару моментов. Во первых, у вас в сцене должен быть 1 объект и соответственно 1 NiTriShape в NifSkope. Для объектов с большим количеством NiTriShape, данный способ не подходит. Во вторых, не советую начинать с импорта модели через Obj формат, как это показано в оригинале. В этом случае, у вас могут сбиться параметры сглаживания и выйдет не совсем то, чего вы ожидали.
Итак, начнем. Запускаем сцену с вашей моделью в 3Ds Max. У меня пусть будет стол. В начале следует его поставить в начало осей координат. для этого выбираем инструмент Move и значение осей X и Y сбрасываем на 0. Ось Z необходимо отредактировать самим, иначе начало осей координат будет находиться
посередине модели.
После этого можем экспортировать модель в Nif формат. Настойки экспорта:
Далее нам понадобится Nif, содержащий информацию о коллизии и текстурах. Можете взять его отсюда [attachment=14702:CollisionMesh.rar]
Открываем нашу модель и выделяем ветку NiTriShape. Нажимаем ПКМ по ней, далее Block -> Copy Branch.
Затем открываем файл из архива, выделяем BSFadeNode, нажимаем ПКМ, Block -> Paste Branch.
Свой nif файл можете после этого закрыть, далее пойдут работы только с CollisionMesh.nif
Прежде чем продолжить, отредактируйте твою ветку NiTriShape. удалите из неё NiMaterialProperty и BSLightingShaderProperty. Для этого выделите эти ветки и нажмите на Block -> Remove Branch. В итоге в вашем NiTriShape должно остаться только NiTriShapeData.
Далее выделите NiTriShape, промотайте Block Detalis в самый низ и найдите вкладку Property или BSProperty. Разверните её и вместо None в первой вкладке напишите номер дефолтной ветки BSLightingShaderProperty, которая была сразу в файле.
Это действие перенесет правильно настроенную ветку с текстурами к вашей модели. Далее пройдите во вкладку BSShaderTextureSet и пропишите пути к текстурам. Прописывается путь к непосредственно текстуре и нормал мапу - текстура_n. Путь к текстуре должен выглядеть так - textures\[папка вашего мода, если есть]\texture.dds. Удалите лишние строчки. У меня получилось вот так.
Далее перейдем непосредственно к Коллизии. Сохраните свою модель в папку с моделями скайрима. Data\Meshes\[ваша папка].
После этого нажмите ПКМ по модели и выберите Transform -> Scale Verticles. Установите значение на 0.1 и нажмите Scale.
Затем нажмите снова ПКМ по модели и выберите Havok -> Create Convex Shape. Так же установите значение на 0.1.
Это действие создаст ветвь 9 bhkCollisionObject во вкладке 0 BSFadeNode. скопируйте вашу Коллизию, щелкнув по 9 bhkCollisionObject ПКМ и выбрав Block -> Copy Branch. После этого загрузите сохраненный перед созданием коллизии Nif файл.
Удалите из вкладки BSFadeNode bhkCollisionObject
Теперь нажмите на BSFadeNode ПКМ -> Block -> Paste Branch. Далее выберите в окне Block Detalis BSFadeNode найдите строчку Collision Object и вместо None вбейте туда номер строчки вашего колизиона.
Далее кликните ПКМ по модели, выберите flags, в выпадающем меню выберите Continue и нажмите Accept.
Сохраните файл. Во вкладке bhkCollisionObject будет bhkConvexVerticlesShape. Это и есть ваш коллизион. Далее зайдите в конструктор, создайте там новый объект, поместите в игру и зайдите проверить, работает ли коллизия.
Как видите, мой бомжеватый норд вполне вальяжно устроился на столике, значит коллизия в порядке.
В данном уроке мы рассмотрели, как экспортировать в игру статические объекты с адекватным отображением что текстур, что коллизий. На этом урок подошел к концу. Удачи в творчестве, до встречи.
PS.
Данный процесс создания коллизии для Скайрима несколько грязный и ограниченный, но пока что другого и менее геморного варианта не нашел. впоследствии выложу статью по внедрению своего оружия в игру, уже собственного производства. И буду искать варианты по созданию коллизий для статиков с меньшими ограничениями.
Источник: Перейти
Комментарии