Статьи » Обучающие статьи » Общая


Редактирование частей модели и её коллизии в NifSkope


Автор статьи: PRIME124

Добавлено: 25 Сентября 2018 в 00:05 | Обновлено:
Просмотров: 1642 | Комментарии: 13

Понравилось: 18 пользователям




- - Вступление - -

Создавая различные локации, часто сталкиваюсь с ситуацией, когда необходима не целая модель, а какая-либо её часть. Иногда везёт и ненужную часть модели можно скрыть либо в ландшафте, погрузив её полностью, либо за другой моделью так, чтобы всё ненужное скрылось из поля зрения. Но в большинстве ситуаций обойтись малой кровью не получается и приходится искать другие способы. Как раз этими способами я хочу с вами поделится в этой статье. Будет рассмотрено несколько примеров как для более простых моделей, так и более сложных.
 
- - №1 Редактирование коллизии по координатам вершин - -

Рассмотрим более лёгкий пример используя модель "NVTOPSCasLoRmMid01" из Fallout New Vegas. Для начала нам необходимо извлечь саму модель из файла Meshes.bsa. Можно воспользоваться программой FO3 Archive Utility. Затем эту модель открыть с помощью программы NifSkope. Для начала советую зайти во вкладку "View" и в пункте "Block List" выбрать "Show Blocks In Tree". Так будет удобнее работать. Так же необходимо зайти во вкладку "Render" и поставить галочку напротив "Draw Havok" для отображения коллизии модели (появятся красные линии на модели). Вот что примерно должно получится:
 

Модель представляет собой центральную часть комнаты с полом и потолком. Нам, к примеру, необходим только потолок. На данном скриншоте в окне "Block List" красным квадратом обведены два блока текстур. Одна для потолка, другая для пола. При нажатии на блок текстур, белая сетка появится на той части модели, за которую данный блок отвечает. Выбираем тот блок текстур, который отвечает за пол и удаляем его. Для этого нажимаем правой клавишей по нем, выбираем "Block" и далее "Remove Branch". Вот что получится:
 

Как видим текстура пола пропала. Но осталась коллизия. Теперь займемся её редактированием. Для этого нам необходим блок "bhkCollisionObject". Открываем все его вкладки в плоть до самой последней "hkPackedNiTriStripsData". Теперь переходим в окно "Block Details" и ищем вкладку "Vertices", раскрываем её. Вот, что должно получится:
 

Как мы видим, после открытия вкладки "Vertices", в узлах коллизии появились белые точки (вершины), а в открывшемся подменю вкладки "Vertices" появилось 8 строк с координатами, которые описывают положение в пространстве каждой из 8 вершин. Двойное нажатие по строке координат позволяет её редактировать. Интересует нас координата Z (отвечает за высоту вершины). Убрать коллизию пола не получится, мы можем лишь переместить её так, чтобы она не мешала. В данном случае, лучший вариант это задать такие же координаты, как и у вершин потолка, чтобы две коллизии совпали. Поэтому нам необходимо скопировать координату Z вершины потолка и вставить её значение в координаты узлов пола. Вот что получится:
 

Как видно, изменив координату Z одной из вершин пола, она совпала с одной из вершин потолка. Проделываем тоже самое с оставшимися тремя вершинами. Вот что получиться:
 

Коллизия пола совпала с коллизией потолка и теперь она не будет мешать. Модель можно использовать где угодно.
Редактирование более сложных моделей отличается лишь тем, что у них используется больше вершин в коллизии. Всё остальное абсолютно аналогично. Чтобы найти необходимую строку, отвечающую за координаты вершины, необходимо по-очереди пролистать каждую строку во вкладке "Vertices", при этом соответствующая вершина будет подсвечена желтым цветом в окне просмотра, так что не пропустите.
 
- - №2 Редактирование модели по координатам вершин - -
 
Для примера возьмем модель "DLC04MHall1Way01" из Fallout 3 (DLC Point Lookout). Извлекаем её из архива и открываем в NifSkope, вот что должно получится (советую на время отключить отображение коллизии на модели, чтобы не мешала):
 

 
На скриншоте выделено два блока текстур: один отвечает за текстуры самой модели, второй - за деколи, которые накладываются на модель (царапины, сколы, следы от пуль и т.д.). Советую текстурный блок деколей также удалить, чтобы не мешал. Далее раскрываем вкладку оставшегося текстурного блока "NiTriStrips" и нажимаем на вкладку "NiTriStripsData"Теперь переходим в окно "Block Details" и ищем вкладку "Vertices", раскрываем её. Вот, что должно получится:
 

Как видно со скриншота, на модели появились белые точки. Эти точки соответствуют вершинам модели. Теперь самое главное: способ редактирования самой модели ничем не отличается от способа редактирования коллизии - те же самые вершины, те же самые координаты. Выбирая нужную вершину во вкладке "Vertices" вы изменяете её координаты, что ведет к изменению самой модели. Например, сделаем данный участок коридора наклонным. Для этого уменьшим на 40 единиц координату "Z" (высота) вершин, которые находятся ближе к нам. Вот что должно получится после редактирования:


Теперь горизонтальный участок коридора стал наклонным. Можно обратно включить отображение коллизии и подогнать её под новую модель следуя алгоритму способа №1.
Примечание: размерность единиц координат в NifSkope соответствует размерности координат в GECK. То есть, если в данном примере мы опустили одну сторону модели на 40 единиц, то модели в GECK, которые будут стыковаться с этой стороной, также будут располагаться на 40 единиц ниже.
 
- - №3 Добавление нового текстурного блока к модели - -
 
Допустим имеется модель "DLC04MRoomDarkWall01" из Fallout 3 (DLC Point Lookout)., которая выглядит вот так:


 
После некоторых манипуляций вот что получилось (не обращайте внимание на коллизию, она тут роли не играет):
 

Были удалены текстурные блоки потолка и пола, текстурный блок деколи. Также уменьшена высота стены и она поднята таким образом, чтобы верх стены совпал с верхним молдингом. Осталось только каким-то образом поднять порожек до уровня нижней части стены, чтобы модель получилась целая. Но поскольку верхний молдинг и порожек являются частями одного текстурного блока, то двигать их относительно друг-друга сложно (можно использовать способ №2, но об этом далее). Для этого поступим по-другому: откроем в новом окне NifSkope точно такую же модель стены (не закрывая старую), только с другой текстурой, например "DLC04MRoomPlainWall01". Найдем в ней блок текстур, который отвечает за верхний молдинг и порожек и скопируем его в нашу первую модель. Для этого в окне второй модели, в "Block List" нажмите правой клавишей по блоку текстур "NiTriStrips"  "Block" → "Copy Branch", затем вернитесь к первой модели и в "Block List" правой клавишей "Block" → "Paste Branch" вставьте блок текстур. Вот что должно получится после вставки и поднятия порожка до уровня нижнего края стены:
 

На скриншоте видно, что в "Block List" стало на один блок текстур больше, который мы скопировали. Оставшиеся части будут скрыты, а коллизию можно отредактировать по способу №1.
Примечания:
1) Почему нельзя было не используя вторую модель, взять и скопировать блок из первой и тут же его вставить?
Эта идея пришла в голову с самого начала. После копирования новый блок текстур появляется в "Block List" и отображается в окне просмотра. Но при добавлении модели в GECK или тестировании в самой игре новый блок не отображался, не было никаких изменений. Связано это, скорее всего с тем, что после копирования оба блока текстур имеют одну и ту же "NiTriStripsData", из-за этого игра воспринимает только тот блок, который был раньше создан. Поэтому и нужна другая модель, хоть сами по-себе они одинаковые - чтобы "NiTriStripsData" у блоков отличались.
2) Почему не лучше было бы воспользоваться способом №2 - изменить координаты порожка так, чтобы он совпал с нижним краем стены?
Способ №2 немного сложнее, более муторный, но у кого есть терпение тот может спокойно им пользоваться. Вторым способом придется пользоваться тогда, когда какая-то модель окажется единственной в своем роде и просто неоткуда будет скопировать нужный блок текстур.
 
- - Заключение - -
 
№1
Редактирование коллизии по координатам вершин довольно не сложное и заключается лишь в поиске нужных вершин и изменению их координат. В примере показан способ "сведения" двух коллизий в одну, так как ставил перед собой задачу сделать так, чтобы лишняя коллизия не мешала. Вы же можете делать с коллизией всё что пожелаете, всё на что у вас хватит фантазии.

№2
Редактирование модели аналогично редактированию её коллизии. Способ позволяет из простой модели сделать более сложную и замысловатую, например, добавить выступы, ниши, изменить наклон. Большое количество точек возможно и усложняет редактирование, но дает большую степень свободы. Единственным сложным здесь будет только то, что перед редактированием необходимо прикинуть как модель будет выглядеть, возможно даже выполнить некоторые расчеты координат. Если коллизию можно подогнать "на глаз", то с каркасом модели такое не пройдет.

№3
Данный способ необходим для того, чтобы из нескольких частей сделать одну модель, а затем, размещая модели в самом GECK, не тратит время на отдельные части - стену, порожек, верхний молдинг, еще какие-то элементы (в данном случае). Если моделей много, то разница еще более заметна - расположить одну модель или 5-6 её частей.
 
- - P.S. - -
 
Статья обновлена. Остались еще некоторые способы, которые я хочу проверить. Если всё получится - обязательно добавлю в эту статью, может кому пригодится.



Теги: Fallout New Vegas, Fallout 3, коллизия, модель, редактирование, статический объект, Координаты


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Всего комментариев: 13


0
№:13 от kusmitch
1551
| Гражданин | в 02:20 (26 Сентября 2018)
Очень полезная статья! good
Посмотреть профиль kusmitch

0
№:9 от ApeX
28652
| Модератор | в 16:39 (11 Мая 2018)
Цитата djsave;8 ()
Причем со сложными моделями это намного проще сделать в максе
Это да. С некоторой геометрией такой вариант не прокатит. Но на безрыбье и рак щука. Можно было добавить в статью и стандартный нифскоповский вариант с Convex Shape. Тоже как вариант, иногда возможный для тех, кто не использует макс.
Посмотреть профиль ApeX

0
№:10 от PRIME124
511065
| Гражданин | в 23:54 (11 Мая 2018)
Имеете в виду, создание простой коллизии Havok - Create Convex Shape? Ну я думаю это уже совсем простой способ, чтобы про него писать)
Посмотреть профиль PRIME124

0
№:8 от djsave
10363
| Гражданин | в 15:48 (11 Мая 2018)
Это не путь джедая. Конечно работать это будет, но лучше делать это все же в максе. Причем со сложными моделями это намного проще сделать в максе. Для тех кто в максе не в зуб ногой есть гуглопоиск, именно так и осваивал его.
Согласен что для кого то пригодится и этот вариант. thanks
Посмотреть профиль djsave

0
№:11 от PRIME124
511065
| Гражданин | в 00:02 (12 Мая 2018)
Весь моддинг сейчас для меня как хобби. Особо времени нет, еле нашел время для этой статьи (и то, сделал только часть), чтобы со скринами, с подробным описанием, чтобы всё как положено было. Для меня самое главное, чтобы при добавлении модели в ГЕКК не происходило вылета или не происходило ошибки в Fallout 3.
Посмотреть профиль PRIME124

0
№:7 от Bella-Anderson
12355
| Гражданин | в 15:35 (11 Мая 2018)
А для моделей Oblivion этот гайд подойдет?
Посмотреть профиль Bella-Anderson

0
№:12 от PRIME124
511065
| Гражданин | в 00:04 (12 Мая 2018)
Без понятия, я не знаком с типом моделей из Oblivion. Но если модели загружаются в NifSkope, то вам ничего не мешает попробовать данный способ.
Посмотреть профиль PRIME124

+1
№:3 от Di_Shiper
637872
| Модмейкер | в 11:26 (09 Мая 2018)
Гайд годный, но вот мне например проще в максе сделать и настроить коллизию.
Посмотреть профиль Di_Shiper

0
№:4 от PRIME124
511065
| Гражданин | в 14:52 (09 Мая 2018)
Гайд специально для тех, кто в 3D Max работать не умеет. К примеру, я там вообще ничего не понимаю)
Посмотреть профиль PRIME124

+1
№:2 от Wertys
586927
| Проверенный | в 07:27 (09 Мая 2018)
Ну, вообще об этом фокусе уже многим известно, а меня этому один моделер научил. Но за подробный мануал однозначно + :)
Посмотреть профиль Wertys

+1
№:5 от PRIME124
511065
| Гражданин | в 14:57 (09 Мая 2018)
Статья еще не завершена, я бы из-за такой мелочи её не начинал, просто мало времени) Будет еще 2-3, а может и больше способов, которыми лично пользуюсь.
Посмотреть профиль PRIME124

+2
№:1 от tundruck73
1410
| Модмейкер | в 06:04 (09 Мая 2018)
Спасибо. В связи с тем, что редактировать модели я по большому счету не умею (максимум, на что способен, это удаление какого-нибудь лишнего "бранча"), поэтому информация для меня достаточно полезная.
Посмотреть профиль tundruck73

0
№:6 от PRIME124
511065
| Гражданин | в 15:01 (09 Мая 2018)
Это всего лишь моя вторая статья, но и в ней информация довольно таки специфическая. Не многие будут так углубляться в редактирование. Поэтому приятно, что есть люди, кому такая информация будет полезна.
Посмотреть профиль PRIME124
Помочь cайту

Набор в команду сайта
Наши конкурсы
Каталог файлов
Skyrim Special Edition [288]
TES V: Skyrim [4114]
TES IV: Oblivion [507]
Fallout: New Vegas [2187]
Fallout 3 [1082]
Fallout 4 [806]
Dragon Age: Origins [605]
Dragon Age 2 [245]
Dragon Age: Inquisition [165]
The Witcher 3: Wild Hunt [110]
GTA SA [96]
GTA 4 [131]
GTA 5 [42]
S.T.A.L.K.E.R. Зов Припяти [75]
S.T.A.L.K.E.R. Чистое Небо [44]
S.T.A.L.K.E.R. Тени Чернобыля [99]
Neverwinter Nights 2 [142]
Другие разделы

Подразделы:


Общая [34]
Adobe Photoshop [16]
Для мододелов [43]


Последние рецензии
Рецензия: «God of War 4»
Brain Out для тех кто скучает по 90-м
Frostpunk: в час Белого Хлада...
Assassin's Creed Origins: в полях Иалу
Assassin's Creed Origins: пески времени
FARCRY 5
KINGDOM COME: DELIVERANCE
Elex






Статистика
Онлайн всего: 254
Гостей: 125
Пользователей: 129




Вверх Вниз