• Страница 1 из 1
  • 1
Форум - gamer-mods » 3D моделирование и Photoshop » Компьютерное 3D моделирование » Nifskope: модели и кости (Объединение и замена моделей и костей в программе Нифскоп)
Nifskope: модели и кости
26.05.2021 в 11:02:29, сообщение 1
Offline
Модмейкер
На все руки мастер
1148 постов


Авторское вступление (читать не обязательно)

Всем привет и добро пожаловать в новую дисциплину в деле Модостроения - изменение 3D-моделей в редакторе.

В этом уроке я расскажу Вам об основах объединения моделей c помощью программы NifSkope.

Хочу сразу обозначить, что на момент написания этого урока (24.05.2021) - у меня не было ни опыта работы в 3D-моделировании, ни знаний специальной терминологии по работе в 3D-редакторе. Весь мой опыт - это просмотренный видео-урок на Ютубе и то, что я смог понять самостоятельно. Видео с Ютуб прилагается - 


Предупреждаю заранее: урок будет очень длинным и подробным, а сам процесс объединения мешей в NifSkope не то, чтобы сложный, но он на столько трудоемкий, что не у всех может хватить терпения и сил, чтобы соединить два отдельных нифа в один. (Я сам 4 ночи потратил, чтобы понять общий принцип объединения нифов) Однако! Если Вы, как я - не бросите это дело и прочитаете весь урок до конца, то у Вас получится такая же красота как у меня тут -


Что??? Еще не передумали?!! Ну тогда поехали!!!!

Сегодня вы рассмотрим 2 очень важных аспекта Объединения нифов в NifSkope:

1.) - непосредственно сам процесс объединения мешей и 2.)  - "кости" в структуре 3D-модели нифа.

И так - начнем.

Прежде всего - запомните: объединять меши, выполнив связку команд "Copy Brach + Paste Brach" - НЕЛЬЗЯ!!!

(нет, в технической части - эти команды все прекрасно копируют и вставляют. Но в такой случаи СК такой ниф отказывается воспринимать и вылетает!)

По мимо этого - иногда может появится такое сообщение:


Что, уже видели такое? Поздравляю! Вы столкнулись с проблемой привязки модели к "костям"!
А ну не вешать нос, модмейкеры!! И уши - торчком! Сейчас разберемся во всем! И начнем с теории "костей"!

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

При этом - кости препятствую любым физическим манипуляциям с моделькой. То есть - если модель имеет привязку к кости, то исключается возможность какой-либо её деформации: ни передвинуть, ни удлинить, ни как-то сместить в сторону просто так не получится! Только внеся изменения в координаты кости - можно добиться смещения модели.

Кроме того - будучи привязанной к кости, модель так же не может быть просто так извлечена из одного нифа и перенесена в другой. Так как надо учитывать, что модель привязана к костям КОНКРЕТНОГО нифа. Из этого следует вывод - из нифа так же надо забирать еще и кости!

С теорией все. Теперь посмотрим на наглядном примере!

В качестве примера для демонстрации своих слов, я возьму два самостоятельных меша: Наручи и Наплечники из мода -
"Темный Посланник - Dark Envoy"

Итак - сначала открываем наши меши в 2-х отдельных окнах NifSkop'а (см. рис. 1)

рис. 1


Меш номер 1 - это исходник. Из него мы будем забирать записи.

Меш номер 2 - это получатель. В него мы будем переносить данные из меша №1

Как Вы видите на рис. 1, мы раскрыли так сказать "скелет" обеих моделей, их структуру, щелкнув по стрелочке NiNode. (обведено красным)

Теперь внимательно рассмотрим отдельные ячейки этих структур.

Любая модель представляет собой набор последовательных, строго структурированных ячеек (будем называть их - нодами) разных видов.

NiTriShape - это непосредственно деталь, из которой состоит модель. Количество таких деталей (NiTriShape'ов) в моделе может ранжироваться: от одной (тогда модель будет являться одним, цельным куском) - до пары десятков (я видел меш, который состоял из 12 таких отдельных деталей-NiTriShape'ов)

Все остальные ноды ниже - NiNode - это кости, к которым привязана деталь.

Итак! Любой процесс объединения мешй состоит из нескольких этапов, в определенном порядке.

Шаг первый - КОНВЕРТАЦИЯ!

(я не знаю, на сколько обоснована необходимость конвертирвать главный NiNode всей структуры в BSFadeNode, но в видео-уроке Ютуба было указание - провести конвертацию!
Есть предположение, что это позволяет корректно провести процедуру добавления новых NiNode'ов в структуру. Поэтому - мы тоже предварительно проведем конвертацию!)

ПКМ по главному NiNode, выбираем строку Block - Convert; чуть ниже появится другое меню. В нем мы выбираем первую строку - Bethesda - BSFadeNode. Точно так же нужно провести Конвертацию и во втором меше! (см. рис. 2)

рис.2


После превращения главного NiNode обоих мешей - в BSFadeNode, мы раскрываем структуру меша-исходника и находим в нем нод под названием - BSDsimemberSkinInstance как на рис. 3

рис.3


Обратите внимание на нижнее окно программы - Block Detalis (выделено синим)

Здесь начинается наш Второй шаг - Перенос костей и отвязка!

В окне Block Detalis выделена ячейка Bones. Раскрывываем её и видим очень длинный список нодов (см. рис. 4)

рис.4


Это список костей, к которым привязана модель Наручей.

Тут необходимо сказать, что костей может быть много, но не все они могут быть задействованы! В моем примере - модель привязана к 22 костям из 40 наличествующих в меше всего! И они-то нам и интересны.

Как я сказал ранее - нельзя перенести модель (или фрагмент модели) из одного нифа в другой, если в нем нету нужных костей. Поэтому - первым делом мы копируем по порядку (ПКМ - > Block - > Copy Brach) все 22 нужные кости из одного нифа в другой как на рис. 5

рис. 5


Обратите внимание: вставлять скопированные кости (ПКМ - > Block - > Paste Brach) надо именно в BSFadeNode изменяемого нифа! (выделено синим)
И еще: копированию подлежат только ЗАДЕЙСТВОВАННЫЕ в привязки кости. ВСЕ задействованные.

(Примечание - возможна ситуация, когда в изменяемом меше УЖЕ наличествует одна или несколько нужных костей. В таких случаях в копировании нет необходимости и добавлять нужно только недостающие кости!)

Обратите внимание - скопированная в другой меш кость теряет оригинальное название и приобретает одно из уже существующих в меше. Это конечно не критично, но в дальнейшем это может внести путаницу, так как после добавления в меш Наплечника - модель Наручей, мы снова должны будем привязь модель к костям, в точности как в оригинальном меше. Позже я объясню почему.

Поэтому Вы должны еще скопировать оригинальное название кости и переименовать добавленную кость в изменяемом меше как на рис. 6

рис. 6


Да-да, вы правильно подумали - переименовывать на оригинальное название нужно ВСЕ скопированные и добавленные в изменяемый меш кости. Просто потом будет легче находить эти кости.

После того, как Вы сделаете изменяемый меш идентичным оригинальному (в части наличия всех нужных костей), можно приступать к второй части шага - отвязке.

Отвязка от костей - это очень важная часть объединения мешей, как так эта привязка блокирует принципиальную возможность забрать кусок нифа и перенести его в другой.  (смотрите скриншот с ошибкой в начале)

Для этого мы снова возвращаемся в нод BSDsimemberSkinInstance и вновь раскрываем графу Bones. Смотрим на рис. 7

рис. 7


Чтобы снять привязку к костям, надо в КАЖДОЙ строке Bones стереть указанную в ней кость (ЛКМ (2х) - > Backspace)
Должно получиться как на рис. 7

Обратите внимание на строку Skeletone Root в окне Block Detalis (выделено красным): в нем так же указана привязка. Но не к кости, а к главному NiNode'ду.

В некоторых случаях это так же препятствует переносу модели в другой ниф. Поэтому - мы так же стираем указанный в нем нод.

Все! Половина дела сделана!! Переходим к следующему шагу.

(продолжение урока в следующем посте)
26.05.2021 в 11:25:59, сообщение 2
Offline
Модмейкер
На все руки мастер
1148 постов
(продолжение темы)

Шаг четвертый - Замена.
Здесь мы будем осуществлять непосредственно сам перенос модели. И тут есть важная особенность!! Как я сказал в самом начале - просто скопировать и добавить новый NiTriShape в изменяемый меш - не получится. Возможно виной тому - некорректное добавление детали, или отсутствие каких-либо необходимых манипуляций внутри нового NiTriShape'па. Лично для меня это осталось неизвестным. Поэтому я использую прием Замены существующего NiTriShape'па на новый. Как это выглядит: Первым делом - нужно создать копию существующего NiTriShape'па как на рис. 8

рис. 8


В итоге у Вас должна получится полная копия, которую мы подвергнем дальнейшим изменениям. Но это будет дальше, а сейчас... Сейчас - мы закончили с подготовительной частью! Приступаем к Объединению!

Так как мы избавили модель в нифе-исходнике от привязки к костям, более ничто не может помешать процедуре копирования и добавления модели из нифа-исходника в изменяемый ниф.

Для этого копируем весь NiTriShape в нифе-исходнике и добавляем его в изменяемый ниф. (см. рис. 9)

рис. 9


Напоминаю - вставлять скопированный NiTriShape нужно в BSFadeNode!

Результат:


По итогу - у Вас должны образоваться: оригинальная деталь (она остается в самом начале, ее дубликат и новая деталь, перенесенная из другого нифа) (они выделены и подчеркнуты)

Далее - теперь необходимо заменить записи в последних скопированных NiTriShape'ах

В окне Block Detalis самого последнего NiTriShape'а нужно найти графы Data и Skin Instance (см. рис. 11)

рис. 11



Нам нужны значения нодов NiTriShapeData и BSDsimemberSkinInstance. А именно - 44 и 45.

Эти значения нужно ввести в соответствующие графы окна Block Detalis в NiTriShape'е-дубликате как на рис. 12

рис. 12



Точно так же нужно заменить значения в ноде BSLightingShaderProperty как на рис. 13

рис. 13

 

После замены значений в графах, образуются лишние записи-ноды. (см. рис. 15)

рис. 15



Это нужно аккуратно, по порядку удалить. (Следите за тем, чтобы не удалить лишнего!!)

В итоге у Вас в самом конце структуры должен остаться единственный NiTriShape (см. рис. 16)

рис. 16



Переходим к следующему шагу!

Шаг пятый - Восстановление привязки.

Вы можете задаться вопросом - зачем нужно восстанавливать привязку к костям? Отвечаю - без указания костей в графах Bones ниф просто перестает отображаться в игре. А как перманентно убрать привязку - мне не известно. Поэтому - при объединении мешей остается только восстанавливать уничтоженные связи.

Итак - для этого нужно снова открыть ниф-исходник (так как нам нужны указанные в Bones значения костей. Которые мы стерли!) и найти список костей, к которым привязана деталь. (см. рис. 17)

рис. 17



В окне Block Detalis, в ячейке Bones необходимого вновь указать порядковый номер добавленных костей, строго в том порядке, в котором указаны кости в нифе-исходнике!
Например: самая первая указанная кость в нифе-исходнике называется - NPC R UpperArm [RUar] и имеет порядковый номер - 8.

Одноименная кость в изменяемом меше имеет порядковый номер уже 27! Его-то мы и должны указать.

И так необходимо сделать в отношении всех остальных задействованных костях! (в моем случаи - со всеми 22 костями).

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

Так же не забудьте указать номер главного NiNode в графе Skeletone Root. Он всегда имеет 0 номер.

После указания номеров всех нужных костей, остается последний шаг - Обратная конвертация.

Здесь ничего трудного: жмем ПКМ - > Block - > Convert - > NiN... - > NiNode

Таким образом мы возвращаем исходное состояние Структуры нифа.
Сохраняем новый ниф со своим Названием.

Вот и все!!!
Наш новый, объединенный меш полностью готов!!!

Обратите внимание - пути текстур в замененном NiTriShape так же изменяются, и становятся ПОЛНОСТЬЮ ИДЕНТИЧНЫМИ путям в NiTriShape меша-исходника.

И последнее!
Должен особенно подчеркнуть, что описанный мною метод объединения мешей справедлив для мешей из категории - ОДЕЖДА!!
То есть - я не знаю можно ли таким же методом изменять меши оружия, NPC или маг. эффектов, так как на данный момент этот метод был испытан только на Одеждах!

На этом наш урок закончен. Спасибо, что прочитали его до конца. Желаю успехов на поприще модостроения!!   hello
26.05.2021 в 14:02:02, сообщение 3
Offline
Администратор
Искусник
658 постов
крутяк, постарался Ридарт, спсяб!  smile
02.02.2022 в 14:36:07, сообщение 4
Offline
Модмейкер
Горожанин
6 постов
Добрый день уважаемый знаток, подскажите мне нужно как раз перенести в статик из статика, а именно - нарисовал лампочку, а огонька в ней нет. В статической модели уже изначально BSFadeNode стоит , переношу в него, огня нет, привязка к огню в нифе видна, но не горит  гад. Копирую и из impcandle01 - он самый простой и вставляю в свой. Самое интересное раньше делал и получалось, а сейчас дырявая бошка всё стёрла из памяти.
Форум - gamer-mods » 3D моделирование и Photoshop » Компьютерное 3D моделирование » Nifskope: модели и кости (Объединение и замена моделей и костей в программе Нифскоп)
  • Страница 1 из 1
  • 1
Поиск:
Gamer-mods.ru © 2012 - 2024. Все права защищены. Копирование материалов без указанной активной ссылки на данный сайт запрещено.