Почётный житель |
Сообщений | 795 |
Награды | 25 |
Репутация | 70 |
Пол | Мужчина |
|
21 Января 2012 в 4:05. Сообщение # 1
|
Перенос оружия из Обливиона в Скайрим Скачать архив с руководством в вордовском формате Нам понадобится: Плагин 3D Max с установленным плагин для работы с моделями Скайрима NifSkope поддерживающий формат *.nif-файлов Скайрима.
Итак, начнем. Выбираем оружие, которое будем переносить. Я выбрал «Nicos Daes Rakan Swords» автора Nicoroshi Дальше находим в файлах Скайрима (предполагается, что BSA-архивы игры у вас уже распакованы) меш меча, который будем заменять этим клинком. Я решил заменить Соловьиный клинок находящийся в папке …Data\meshes\Weapons\nightingale\ Берем два файла: Nightingalesword.nif и 1stpersonnightingalesword.nif (один отвечает за отображение в ножнах, второй в руках) Переносим их в игру ВНИМАНИЕ! При переносе соблюдайте иерархию папок. То есть в данном случае файлы должны попасть в папку Steam\steamapps\common\skyrim\Data\meshes\Weapons\nightingale (если у вас лицензия) Запускаем 3D Max и импортируем выбранный нами Dreadweave Daes Rakan.nif с настройками
Кликаем на кнопку «Менеджер слоев» (1), и развернув список (для этого кликнем на плюсик рядом с 0(default)) посмотрим из чего собственно состоит файл (2)
Итак, видим следующее: Scb:0 – модель ножен Daes' Rakan:0 – модель самого меча
Далее немного облегчим себе работу, а именно: кликнув последовательно на 0(default) (3), стрелочку(4), и кнопку «создать новый слой»(5) создадим новый слой Layer01 с нашим мечом.
Теперь сделаем активным слой 0(default) поставив напротив него галочку(6), и импортируем файл 1stpersonnightingalesword.nif (настройки такие же как и при импорте Dreadweave Daes Rakan.nif)
Итак, теперь у нас импортированы оба меча. Сравним их Как видим тут четыре модели 1stPersonNightingaleSword:1 – модель меча Scb – модель ножен EdgeBlood EdgeBloodSpec
Эти две EdgeBlood и EdgeBloodSpec – отвечают за отображение крови на лезвии меча. Обратите внимание, что EdgeBlood и EdgeBloodSpec являются скрытыми (3) Вот их нам и надо добавить в Dreadweave Daes Rakan
Сняв с EdgeBlood и EdgeBloodSpec флажок «скрыть» (Hide) обнаруживаем, что эти модели в точности повторяют лезвие модели меча Следовательно, и в Dreadweave Daes Rakan нам надо добавить такие же.
Скрываем слой 0(default) чтобы не мешался. ВНИМАНИЕ! Тут есть один нюанс. У меня после первой пробы вышло, что меч в игре оказался загнут не в ту сторону, поэтому перед тем как продолжать советую перевернуть его по оси Y на 180 градусов. Для этого выбираем модель меча Daes' Rakan:0, переходим в режим Modify, добавляем модификатор FFD 2х2х2 и с его помощью переворачиваем модель. Следите, чтобы модель не сдвинулась с осевых линий (на рисунке выделены желтым)! Правда я не проверял, со всеми ли моделями из Обливиона так. Поэтому возможно, что перевернув модель, в игре вы обнаружите, что переворачивали зря, и все придется переделывать заново. Просьба не кидать тапками в автора туториала.
Теперь приступаем к изготовлению моделей для отображении крови на лезвии. Клонируем модель Daes' Rakan:0, (копию назовем Blood, чтобы потом не путаться), переходим в режим Modify, и обрезаем с копии рукоять, оставив лишь само лезвие.
Клонируем теперь уже модель Blood, назвав копию BloodSpec.
Ставим флажок «скрыть» (Hide) напротив Blood и BloodSpec. Модели Соловьиного меча: 1stPersonNightingaleSword:1, Scb, EdgeBlood и EdgeBloodSpec удаляем. Готово. Вот что у нас должно получиться в итоге
Теперь экспортируем наш меч в файл. Назовем его zagotovka (потому что существующий на данный момент экспортер nif для Скайрим очень далек от совершенства, и экспортированный меч придется дорабатывать NifSkope) ВНИМАНИЕ! Убедитесь ещё раз перед экспортом, что модели Blood и BloodSpec отмечены флажком "скрыть".
Настройки экспорта
Вот теперь начинаются те самые танцы с бубном Открываем в NifSkope два файла 1stpersonnightingalesword.nif и только что созданный нами zagotovka.nif Как видим в нашей zagotovka.nif все модели меча находятся в блоках NiTriStrips, а в оригинальном в блоках NiTriShape.
Конвертируем NiTriStrips в NiTriShape. Делается это так: ПКМ на NiTriStrips, в контекстном меню выбираем Mesh и команду Triangulate Конвертируем подобным образом все блоки
Теперь нам надо заменить во всех блока zagotovka.nif строки BSLightingShaderProperty на те же BSLightingShaderProperty но из оригинального файла. Это приходится делать из-за того, что экспортер 3D Max их обрабатывает некорректно, и в игре они… В общем просто замените, иначе работать не будет, поверьте на слово. Делаем это так: 1.Удаляем BSLightingShaderProperty из NiTriShape с именем Daes' Rakan:0 в файле zagotovka.nif (ПКМ на строку BSLightingShaderProperty и в контекстном меню выбираем Block команда Remove Branch) 2.Переходим к файлу 1stpersonnightingalesword.nif и копируем там строку BSLightingShaderProperty из блока NiTriShape с именем 1stPersonNightingaleSword:1 (ПКМ на строку BSLightingShaderProperty и в контекстном меню выбираем Block команда Copy Branch) 3.Теперь скопированную строку BSLightingShaderProperty вставляем в блок NiTriShape с именем Daes' Rakan:0 в файле zagotovka.nif (ПКМ на блок NiTriShape и в контекстном меню выбираем Block команда Paste Branch) Вот что у нас получилось, - строка вставилась не в блок NiTriShape с именем Daes' Rakan:0 а куда то явно не туда (сравним zagotovka.nif и оригинальный файл) Исправляем таким образом: Щелкаем левой кнопкой на блоке NiTriShape с именем Daes' Rakan:0, в окне Block Details прокручиваем список до самого конца, выбираем строку Properties, разворачиваем нажав на крестик, снова выбираем Properties, и в графе Value ставим тот же номер что и у нашей «заблудившейся» строки BSLightingShaderProperty (в данном случае это 15), жмем энтер.
Готово. Вот, у нас даже текстура появилась на модели.
Дальше по такой же схеме заменяем строки BSLightingShaderProperty в других блоках В NiTriShape с именем Scb:0 вставляем из NiTriShape с именем Scb В NiTriShape с именем BloodSpec вставляем из NiTriShape с именем EdgeBloodSpec
ВНИМАНИЕ! В блоке NiTriShape с именем Blood файла zagotovka.nif мы заменяем строку BSLightingShaderProperty на строку BSEffectShaderProperty (не перепутайте именно BSEffectShaderProperty!) из блока NiTriShape с именем EdgeBlood оригинального файла.
Перенесли, теперь сравним получившееся. Видим, что в блоках NiTriShape с именем BloodSpec и NiTriShape с именем Blood нашего файла строк явно меньше чем в подобных блоках оригинального 1stpersonnightingalesword.nif
Значит, нам надо добавить недостающие строки. Сначала скопируем в блоки нашего файла строку NiAlphaProperty. Делается это так же как и копирование BSLightingShaderProperty. То есть: 1. ПКМ на строку NiAlphaProperty в файле 1stpersonnightingalesword.nif В контекстном меню выбираем Block команда Copy Branch 2. Переходим к нашему zagotovka.nif ПКМ на блок NiTriShape и в контекстном меню выбираем Block команда Paste Branch Так как и в случае с BSLightingShaderProperty строка NiAlphaProperty у нас «потерялась» Поэтому прописываем её в блок вручную, так же как и BSLightingShaderProperty (ПКМ на NiTriShape, в окне Block Details прокручиваем список до самого конца, выбираем строку Properties, разворачиваем нажав на крестик, снова выбираем Properties, только уже вторую, так как в первой у нас записана строка BSLightingShaderProperty, и в графе Value ставим тот же номер что и у нашей «заблудившейся» строки NiAlphaProperty (в данном случае это 16), жмем энтер.)
Итак, в блоки BloodSpec и Blood мы добавили строки NiAlphaProperty, осталось добавить NiStringExtraData. Эту строку мы копируем точно так же как и в предыдущих случаях 1.ПКМ на строку NiStringExtraData в файле 1stpersonnightingalesword.nif В контекстном меню выбираем Block команда Copy Branch 2.Переходим к нашему zagotovka.nif ПКМ на блок NiTriShape и в контекстном меню выбираем Block команда Paste Branch
Ну вот, блоки NiTriShape в заготовке у нас соответствуют блокам оригинального файла. Проверим ещё раз. И ещё раз проверим. Потому что запутаться во всех этих блоках очень легко, а вот найти потом ошибку гораздо труднее.
СОВЕТ: Если где то, что то неправильно – закройте НЕ сохраняя файл zagotovka.nif, откройте его заново, и начните все сначала по этому тутору со слов "Вот теперь начинаются те самые танцы с бубном". Поверьте мне, Так. Будет. Быстрее. чем пытаться исправить/заменить/перенести и т.п.
И вот, финишная прямая! Теперь мы берем и копируем все блоки NiTriShape из файла zagotovka.nif в оригинальный 1stpersonnightingalesword.nif 1.ПКМ на NiTriShape в файле zagotovka.nif, в контекстном меню выбираем Block команда Copy Branch 2.Переходим к 1stpersonnightingalesword.nif ПКМ на самый первый в списке блок (это важно! Именно на самый первый) BSFadeNode, в контекстном меню выбираем Block команда Paste Branch.
Скопировав NiTriShape сразу переименовываем его, чтобы потом не путаться. То есть после копирования NiTriShape с именем BloodSpec у нас стал NiTriShape INV [1] А нам надо чтобы этот блок имел такое же имя, как и находящийся выше NiTriShape с именем EdgeBloodSpec. Переименовываем так: Двойной щелчок на INV [1], поле становится редактируемым, и мы пишем в него тот же номер, что имеет блок NiTriShape с именем EdgeBloodSpec в квадратных скобках. (В данном случае это [5])
ВНИМАНИЕ! Никаких букв писать НЕ надо, только цифру! Жмем энтер, и наш скопированный блок сам переименуется в EdgeBloodSpec [5]
Точно таким же способом копируем и переименовываем остальные блоки из нашей заготовки Blood (после копирования становится BSX) в EdgeBlood [8] Scb:0 (после копирования становится Prn) в Scb [9] Daes' Rakan:0 (после копирования становится WeaponSword) в 1stPersonNightingaleSword:1[10]
Вот что должно получиться в итоге Два комплекта одинаковых комплекта блоков NiTriShape.
Теперь просто удаляем оригинальные NiTriShape из файла ПКМ на блок NiTriShape, в контекстном меню выбираем Block команда Remove Branch
После чего жмем Save As И сохраняем его под тем же именем 1stpersonnightingalesword.nif
- ВСЕ? Урра! - А вот не всё!
У нас есть ещё файл nightingalesword.nif Открываем его Как мы видим, тут те же блоки NiTriShape, разве что отсутствует блок с ножнами EdgeBlood EdgeBloodSpec И блок NightingaleSword:1
Снова переносим – переименовываем NiTriShape из заготовки в этот файл Blood в EdgeBlood BloodSpec в EdgeBloodSpec Daes' Rakan:0 в NightingaleSword:1 Удаляем оригинальные EdgeBlood, EdgeBloodSpec, NightingaleSword:1 Сохраняем как nightingalesword.nif
Осталось заменить текстуры на нашем мече. Берем папку DaesRakanSword из мода откуда переносим меч, и помещаем в ...Steam\steamapps\common\skyrim\Data\Textures
В файле nightingalesword.nif раскрываем список блока NightingaleSword:1, раскрываем строку BSLightingShaderProperty и щелкаем по BSShaderTextureSet
В окне Block Details открывается список используемых в модели текстур. Заменяем установленные оригинальные на текстуры их мода. Для этого в окне Block Details ПКМ по строчке Textures, в контекстном меню Texture команду Choose и в открывшемся окне проводника выбираем текстуру *** Подробнее по текстурам, и не только, читаем тут http://www.maikcg.com/skyrim3dmaker/skayrim-nachalo.html *** Заменив пути к текстурам сохраняем файл. Ту же операцию по замене текстур проделываем с 1stpersonnightingalesword.nif Вот теперь все!
Запускаем игру, и если вы все правильно сделали видим свой меч
Удачи вам в модостроении!
ТемныйКот - Суббота, 21 Января 2012, 05:33
|
Злодей – это не очень толерантное слово. Я предпочитаю называться представителем моральной оппозиции.
|
|
Тёмная лошадка
Смотритель |
Сообщений | 1187 |
Награды | 60 |
Репутация | 364 |
Пол | Мужчина |
|
2 Февраля 2012 в 20:38. Сообщение # 2
|
ТемныйКот, такой вопрос - возможно ли размещение этой статьи на сайте в разделе "Модостроительство" над которой ведутся работы?
|
Ну-с, посмотрим на что вы способны.
|
|
Почётный житель |
Сообщений | 795 |
Награды | 25 |
Репутация | 70 |
Пол | Мужчина |
|
2 Февраля 2012 в 22:44. Сообщение # 3
|
RJ, конечно, какой вопрос. Правда статья требует некоторой правки в связи с выходом нового NifSkope, где решили проблему корректного копирования шейдеров (BSLightingShaderProperty) Если будет кому интересно, я перепишу статью.
|
Злодей – это не очень толерантное слово. Я предпочитаю называться представителем моральной оппозиции.
|
|