Перейти к содержимому


Информация о статье

  • Добавлено:
  • Обновлено:
  • Просмотры: 961
  • Источник: перейти

 


* * * * *
0 Рейтинг

Коллизии (Collision) статического объекта для Skyrim

Написано в Окт 23 2015 19:15

Всем привет. Данная статья пояснит, как создавать коллизии для статических объектов в игре Skyrim. Для начала следует обозначить пару моментов. Во первых, у вас в сцене должен быть 1 объект и соответственно 1 NiTriShape в NifSkope. Для объектов с большим количеством NiTriShape, данный способ не подходит. Во вторых, не советую начинать с импорта модели через Obj формат, как это показано в оригинале. В этом случае, у вас могут сбиться параметры сглаживания и выйдет не совсем то, чего вы ожидали.

Итак, начнем. Запускаем сцену с вашей моделью в 3Ds Max. У меня пусть будет стол. В начале следует его поставить в начало осей координат. для этого выбираем инструмент Move и значение осей X и Y сбрасываем на 0. Ось Z необходимо отредактировать самим, иначе начало осей координат будет находиться
посередине модели.

thumb_pre_1445622864__1.png

После этого можем экспортировать модель в Nif формат. Настойки экспорта:

thumb_pre_1445623039__2.png

Далее нам понадобится Nif, содержащий информацию о коллизии и текстурах. Можете взять его отсюда Прикрепленный файл  CollisionMesh.rar   840байт   75 Количество загрузок:
Открываем нашу модель и выделяем ветку NiTriShape. Нажимаем ПКМ по ней, далее Block -> Copy Branch.

thumb_pre_1445623075__3.png

Затем открываем файл из архива, выделяем BSFadeNode, нажимаем ПКМ, Block -> Paste Branch.

thumb_pre_1445623100__4.png

Свой nif файл можете после этого закрыть, далее пойдут работы только с CollisionMesh.nif
Прежде чем продолжить, отредактируйте твою ветку NiTriShape. удалите из неё NiMaterialProperty и BSLightingShaderProperty. Для этого выделите эти ветки и нажмите на Block -> Remove Branch. В итоге в вашем NiTriShape должно остаться только NiTriShapeData.

thumb_pre_1445623210__5.png

Далее выделите NiTriShape, промотайте Block Detalis в самый низ и найдите вкладку Property или BSProperty. Разверните её и вместо None в первой вкладке напишите номер дефолтной ветки BSLightingShaderProperty, которая была сразу в файле.

thumb_pre_1445623231__6.png

Это действие перенесет правильно настроенную ветку с текстурами к вашей модели. Далее пройдите во вкладку BSShaderTextureSet и пропишите пути к текстурам. Прописывается путь к непосредственно текстуре и нормал мапу - текстура_n. Путь к текстуре должен выглядеть так - textures\[папка вашего мода, если есть]\texture.dds. Удалите лишние строчки. У меня получилось вот так.

thumb_pre_1445623268__7.png

Далее перейдем непосредственно к Коллизии. Сохраните свою модель в папку с моделями скайрима. Data\Meshes\[ваша папка].
После этого нажмите ПКМ по модели и выберите Transform -> Scale Verticles. Установите значение на 0.1 и нажмите Scale.

thumb_pre_1445623294__8.png

Затем нажмите снова ПКМ по модели и выберите Havok -> Create Convex Shape. Так же установите значение на 0.1.

thumb_pre_1445623315__9.png

Это действие создаст ветвь 9 bhkCollisionObject во вкладке 0 BSFadeNode. скопируйте вашу Коллизию, щелкнув по 9 bhkCollisionObject ПКМ и выбрав Block -> Copy Branch. После этого загрузите сохраненный перед созданием коллизии Nif файл.

thumb_pre_1445623337__10.png
Удалите из вкладки BSFadeNode bhkCollisionObject

thumb_pre_1445623360__11.png
Теперь нажмите на BSFadeNode ПКМ -> Block -> Paste Branch. Далее выберите в окне Block Detalis BSFadeNode найдите строчку Collision Object и вместо None вбейте туда номер строчки вашего колизиона.

thumb_pre_1445623387__12.png

Далее кликните ПКМ по модели, выберите flags, в выпадающем меню выберите Continue и нажмите Accept.

thumb_pre_1445623411__13.png

Сохраните файл. Во вкладке bhkCollisionObject будет bhkConvexVerticlesShape. Это и есть ваш коллизион. Далее зайдите в конструктор, создайте там новый объект, поместите в игру и зайдите проверить, работает ли коллизия.

thumb_pre_1445623436__14.png

Как видите, мой бомжеватый норд вполне вальяжно устроился на столике, значит коллизия в порядке.
В данном уроке мы рассмотрели, как экспортировать в игру статические объекты с адекватным отображением что текстур, что коллизий. На этом урок подошел к концу. Удачи в творчестве, до встречи.

PS.
Данный процесс создания коллизии для Скайрима несколько грязный и ограниченный, но пока что другого и менее геморного варианта не нашел. впоследствии выложу статью по внедрению своего оружия в игру, уже собственного производства. И буду искать варианты по созданию коллизий для статиков с меньшими ограничениями.