Последняя часть серии уроков по созданию лука для игры Skyrim. В ней разбирается процесс экспорта модели в Nif, редактирование Nif файла, а так же создание в Skyrim Creation Kit полностью законченного плагина с луком.
Cоздание модели лука для игры Skyrim
Часть 1| Часть 2 | Часть 3 | Часть 4 | Часть 5 | Часть 6 | Часть 7
Доброго всем дня. Я рад приветствовать вас в заключительной части моего туториала по созданию лука для игры Skyrim. Это было…долго. За что приношу свои извинения. Но, тем не менее, мы подошли к последней части. Как можно догадаться, она связана с экспортом нашей модели в игру Skyrim. Напомню, у нас уже есть три готовых файла текстурных карт и пока еще не готовая модель лука.
Откроем сцену с луком и в главном меню выберем команду Export. Save and type –KF/NIF. Выберите директорию. Можете сохранять сразу в директории скайрима (папка Data/Meshes), а можете создать отдельную папку. Главное, чтобы в пути не было кириллицы.
Введите имя файла и нажмите Save. Настройки экспорта приведены ниже.
После этого можете закрыть 3Ds MAX. Запустите NifScope и откройте в нем следующие файлы – наш экспортированный лук и оригинальную модель. Я раньше уже использовал файл SteelBow. Его и открою.
В NifScope развернем BSFadeNode нашей модели. Далее – NiTriShape. Там у нас будет NiTriShapeData и NiSkinInstance. Первое – наша модель. Второе – настройки скининга нашей модели. Копируем NiTriShapeData. Для этого выделите её и нажмите Ctrl + C.
Вставьте его в BSFadeNode оригинального лука (Ctrl + V).
Затем в NiTriShape оригинального лука найдите в Block Details строку Data. Смените чисто там на номер нашего вставленного NiTriShapeData.
Во вьюпорте отобразится нечто запредельно невразумительное – не обращайте внимания. После этого удалите оригинальную ветку, которая окажется на месте ранее скопированной.
Вернемся к нашему луку и выберем NiSkinInstance. Прежде чем его перенести, сбросьте значение Skeleton Root. Для этого дважды щелкните на 0 и убедитесь, чтобы в графе ничего не было. Щелкните на любом другом месте, чтоб убрать редактирование графы. Вместо 0 появится надпись None.
Далее скопируйте эту ветку так же, как шагом выше копировали NiTriShapeData. Для этого смените число на номер скопированной ветки в поле Skit Instance.
После того, как скопируете и вставите, верните в Skeleton Root цифру 0.
После всех махинаций вы можете заметить, что ваша модель несколько сдвинута или развернута. Чтобы исправить это, выберите модель во вьюпорте (или ветку NiTriShape), нажмите ПКМ по ней, далее – Transform ->Edit.
Во всех полях, кроме Scale должно стоять 0. В Scale – 1. Если стоят другие значения – измените их.
После изменений нажмите на Accept.
Затем пропишем пути к нашим текстурам. Поместите 3 файла текстур (Mirror, Normal и Diffuse) в Data/Textures. Если нужно, создайте там дополнительную директорию. Например, Data/Textures/YouName/ TestBow или Data/Textures/Weapons/TestBow. Затем в NifScope в ветке NiTriShape выберите BSLightingShaderProperty-> BSShaderTextureSet Разверните сточку Textures.
Вместо SteelBow, SteelBow_n и SteelBow_m укажите путь к нашим текстурам. Прописывайте путь в тех же строчках, где находятся оригинальные текстуры. Затем удалите часть пути к файлам ДО папки Textures – папка игры, что резонно, у других пользователей будет располагаться в другом месте. Если оставить всё, как есть, они попросту не увидят тексту. Cubemap оставьте нетронутой.
Указывать путь к текстурам вы можете либо редактированием текста (двойной щелчок на тексте и написать/вставить нужное) либо нажатием на иконку цветка (и выбором пути файла).
c:\program files (x86)\steam\steamapps\common\skyrim\data\ textures\lordbeowulf\shieldshatter\shieldshatter.dds – это полный путь текстур. А это - textures\lordbeowulf\shieldshatter\shieldshatter.dds – то, что должно быть. Внимательно проверьте, верно ли вы указали путь к текстурам.
Так же обратите внимание. В BSLightingShaderProperty есть строчка Shader Flags 2.
Если там указано SLSF2_Vertex_Color, то в NiTriShapeData найдите строчку Has Vertex Colors и смените No на Yes, иначе ваша модель будет залита черным цветом. Если, как в нашем случае, SLSF2_Vertex_Color не подключен, то можете ничего не менять.
После всех изменений сохраните модель по пути, аналогичному пути текстур. Например, textures\lordbeowulf\shieldshatter – путь текстур, а путь модели - meshes\lordbeowulf\shieldshatter.
На этом вся информация по экспорту лука заканчивается. Далее можно вставлять его в игру. Если вы разбираетесь в конструкторе Скайрима, то дальнейшая информация для вас будет бесполезна, а поэтому спасибо за урок и до новых встреч.
Если же вы не разбираетесь с конструктором, то следующая информация может быть для вас полезна. Откроем Skyrim Creation Kit. Скачать его вы можете из Steam.
В меню File выберем Data и активируем Skyrim (двойной щелчок по квадрату возле строчки Skyrim). Далее нажмем OK.
Сначала создадим статик с нашим луком для модели от первого лица. Путь – WorldObjects – Static – WEAPONS.
Выделите WEAPONS и нажмите ПКМ в Editor ID. В контекстном меню выберите New.
Введите ID, например, 1stPersonShieldShatter. ShieldShatter, если что, означает щитобой. Название лука в WoW – длинный лук-щитобой. Часть его (названия) я собираюсь перенести в Скайрим. Поэтому и ShieldShatter. Выберите модель, нажав на Edit. В случае с теми же мечами для них нужно делать отдельный файл с 1stPerson моделью. Лук же этого не требует и можно использовать одну модель для всего.
Если мы сделали всё верно, следующее окно будет таким. Если что-то неверно, то модель будет либо залита каким-то цветом (фиолетовым, если неверные пути к текстурам или черным, если выключен вертекс колор) либо вместо неё вообще будет восклицательный знак – значит, что модель испорчена и мы где-то напортачили при экспорте.
Нажимаем OK. В предыдущем меню остальные параметры оставляем без изменений и нажимаем OK.
Далее создадим само оружие. Оно создается в Items-Weapons.
Так же ПКМ по Editor ID.
В принципе, все настройки можно скатать с дефолтной модели. Взять то, что подходит по характеристикам. Потом несколько добавить/убавить урон/крит шанс/стоимость/вес и прочие игровые характеристики. Так же с дефолтной модели возьмите Keywords. Иначе оружие не получится улучшать и зачаровывать. Откроем даэдрический лук DaedricBow без всяких зачарований (в скриптах я профан, а зачаровать лук на урон электричеством сможет и сам игрок).
Итак. Skill – Archery. Equip Type – BothHand. Flags – Playable. ID выберите сами, название тоже. Зачарований нет. Value – стоимость. Укажите, какую бы вам хотелось. Поскольку я предполагаю, что данный лук доживет до файловой базы Тесала, то я не хочу ставить нереальную стоимость. По-моему, 1200 вполне хватит. ID и Name укажете сами. Напомню (или скажу впервые, если вы не читали других частей урока) что ID лучше делать действительно уникальным. Не Bow и не ShieldShatter (кто-то может тоже захочет сделать такой лук и выложить его), а, например LBShieldShatter, LordBeoBow и т.д. Таких же маразматиков, которые ставят части своего ника в ID возможно и хватает, но сколько их них обладают настолько утонченным вкусом, чтобы выбрать такой ник? Я о том же. Для верности можете поставить какое-нибудь число (только все же для каждой своей работы используйте одно и тоже ID для единообразия - если 1418LB, то оно будет везде).
Идем дальше. Game Data - это игровые параметры. Вес, урон и т. д. - всё это настраивается тут. Для верности скопируйте их с небольшими правками из того же даэрического лука, дабы не переусердствовать. Все же, тут указываются чистые показатели без влияния навыка или перка.
Art and Sound – всё, кроме первого окошка будет аналогично оригиналу, так как тут устанавливается анимация и звуки.
Третья вкладка заполняется аналогично дефолтной модели.
Keywords скопируйте из дефолтной модели. Нажмите ПКМ по Keywords, далее – Copy Stack.
Теперь вставляем его в Keywords нашего лука.
У нас есть три KeyWords – тип оружия, тип материала и тип вещи. Если вы хотите, чтобы ваш предмет НЕ зачаровывался, то пропишите MagicDisallowEnchanting (ПКМ-add). Это заблокирует возможность зачарования и запретит изучение имеющегося на предмете зачарования (если оно уникальное, например).
Если вы не хотите этого(я – нет), то оставьте три Keywords.
Теперь наш лук полностью готов к работе. Но рано расслабляться. Если сейчас всё оставить так как есть, нашего лука так же не будет в игре. Можно, конечно, забросать мусором какую-нибудь ячейку, но это делать как-то не красиво. Поэтому создадим рецепт нашего лука, чтоб его можно было крафтить. Делается это в Items- Constructible Object.
Все аналогично. В Editor ID создали новый предмет, щелкнув ПКМ и выбрав New.
ID –понятно. Created Object – выберите из списка ID нашего лука. Created Object Count – 1 (сколько копий будет создаваться при изготовлении одного рецепта). WorkBench Keyword – CraftingSmithingForge (инструмент – кузница) . Required Item List – список предметов, необходимых для крафта. Для добавления нажмите ПКМ – New. Я предлагаю поставить для начала три LeatherStrips (полоски кожи). Count – количество. Ставим 3. Затем – четыре IngotSteel(стальной слиток) и два Firewood (полено). Match Conditions скопируйте из настроек другого объекта (выбрать объект с подписью recipe, а не temper – это сам рецепт). В Function Info смените перк на SteelSmeething (перк, необходимый для крафта – в данном случае ковка стали). Для этого щелкните на строчку с перком. Далее на панель с названием перка. Выберите из списка нужный. Не меняйте других настроек.
В итоге данное окно должно быть следующего вида:
Теперь можете закрыть это окно. И тут же создайте новое. На этот раз создадим рецепт для улучшения нашего лука. Настройки те же за исключением названия (вместо Recipe поставьте Temper), WorkBench Keyword – CraftingSmithingsharpeningwheel (точильное колесо), списка реагентов (поставьте два стальных слитка и всё) и окна Match Conditions. Скопируйте Match Conditions из другого объекта Temper.
Нажмите OK, работа с конструктором закончена. Нажмите File, Save. Введите название *esp файла и сохраните. Затем вы можете изменить описание файла. Для этого в меню File Выберите Data, затем ваш только что сохраненный плагин и укажите Created By и Summary.
Только не надо нажимать Ok, если не хотите ждать прогрузки всех файлов. Нажмите Cancel. Конструктор запомнит ваши изменения. После работы можете закрыть конструктор и открыть игру.
Заходим в игру. Смотрим. Видим, что модель ужасно засвечена.
Это связано…понятия не имею с чем. Умельцы говорят, что с шейдерами. Как это исправить игровыми средствами (настройки ниф файла и т.д.) я не знаю. Если кто-то знает, оставьте, пожалуйста, информацию в комментариях или скиньте её мне в личку.
Несмотря на мое незнание обхода этого косяка, есть способ побороть его. Для этого откроем в фотошопе Diffuse (перед изменениями обязательно сделайте копию оригинала, чтобы в случае чего открыть его, а не пытаться восстановить из уже измененного). Далее – Image->Adjustments->Brightness/Contrast.
Измените параметр яркости. Я решил остановиться на -25%
Сохраните изменения и проверьте модель в игре снова.
Модель стала такой, какой задумывалась.
И всё отлично улучшается.
И даже зачаровывается!
Да и просто…существует.
Анимация проигрывается, лук висит там, где надо, всё крафтится, зачаровывается, а значит, что работа сделана. Теперь осталось залить модель на Тесал, Нексус, Стим или еще куда-нибудь. Но я думаю, вы сами разберетесь, как это сделать. А моя задача по написанию туториала закончена. Надеюсь, смог быть вам полезен, удачи и до новых встреч!
PS. Вы можете скачать итог работы в виде плагина отсюда.
Lord Beowulf, для TesAll.ru
Комментарии