Jump to content
  • entries
    8
  • comments
    7
  • views
    330

About this blog

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

 

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

 

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

 

З.Ы.

Я не мастер, я - увлекающийся дилетант :) 

Entries in this blog

 

Моддинг. Кузница Атронахов

Статья предполагает умение работать с Криейшн Китом.   Вот вспомнился еще один любопытный момент. Есть в коллегии Винтерхолда такой любопытный закоулок - Кузница атронахов. Забавное место. Любопытно оно тем, что это весьма своеобразный способ крафта необычных предметов и артефактов.    Иногда, создавая мод на некую суперплюшку, возникает желание как-то нетривиально вписать ее в игру. Кузнечный рецепт, аддитем меню, продажа у торговцев, валяние на столе у Белетора.... Банально все это. И не достойно любимого выстраданного в Ките артефакта :)))   Идея крафта модовых вещей через Кузницу атронахов совсем не нова. Многим приходило подобное в голову, но большинство людей спотыкаются о вопрос - как это сделать? В принципе ничего удивительного. В отличие от привычных игровых систем крафта эта занятная фиговина использует скриптовую механику. В отличие от кузници, плавильни, котелка - это не станок. А механика подобных фокусов далеко не очевидна.   Короче. Кузница Атронахов.   По своей сути это скрипт, манипулирующий тремя типами формлистов. 
1. Формлист - рецепт. В нем содержится перечень ингредиентов для создания конкретной цацки. Название произвольное. 2. Формлист - перечень готовых рецептов вещей. Название - AtrFrgAtronachRecipeList 3. Формлист - перечень самих вещей, которые будут созданы кузницей по рецептам. Название - AtrFrgAtronachResultList   Я не буду приводить тут скрипт кузницы и детально разбирать его работу ибо практического смысла в этом мало. Остановимся на понимании механики процесса. Вот скрин с нужными нам формлистами:     Формлист 1 - это собственно рецепт. AtrFrgAtronachRecipeList - перечень доступных рецептов. AtrFrgAtronachResultList - перечень вещей.    Как это работает? Скрипт берет содержимое ящика, ищет соответствие ему в списке рецептов и допустим находит рецепт под индексом Х с таким же набором компонентов. После этого он берет вещь из списка тоже под индексом Х и выдает вам. ВАЖНО !!! Индекс (номер в списе) рецепта и индекс нужной вещи ДОЛЖНЫ СОВПАДАТЬ !  Рецепт №10 дает вещь № 10. Рецепт № 5 дает вещь № 5. Если количество рецептов и вещей у вас в списках не совпадают - ПЛОХО. Такого не может быть так что сразу ищите проблему ибо это либо рецепт без вещи, либо вещь без рецепта.   Как сделать свой рецепт для кузницы?   1. Создаем произвольный формлист-рецепт. Называйте его как хотите. Закидываем в созданный список все нужные ингредиенты. Сохраняем. 2. Теперь открываем сразу два формлиста:  AtrFrgAtronachRecipeList (с перечнем рецептов) и AtrFrgAtronachResultList (с перечнем вещей). Ставим окошки рядом для удобства. 3. Созданный нами ранее формлист-рецепт перетаскиваем в окно списка рецептов AtrFrgAtronachRecipeList и проверяем чтобы новый пункт оказался в конце. Предположим что в формлисте со списком рецептов наш рецепт под индексом 10. 4. В формлист вещей AtrFrgAtronachResultList перетаскиваем нашу цацку и проверяем чтобы она оказалась в конце списка. Если все сделано правильно, то ее индекс в формлисте тоже будет 10. 5. Сохраняем все формлисты. 6. ВАЖНО!!! В разделе книжечек создаем заметку с описанием рецепта крафта и помещаем куданить в игру. Должен же ГГ как-то узнать из чего крафтить новую цацку   Это вам не обычная кузня и при ее активации рецепт виден не будет   Все. На этом крафт для Кузницы атронахов готов. Теперь когда вы положите в ящичек нужных набор ингридиентов и дернете рычаг кузница выдаст вам желаемую игрушку.   Примечание.    Элементом формлиста может быть фактически что угодно. Даже другой формлис как в случае с AtrFrgAtronachRecipeList. Так что думайте головой что именно вы пихаете в свой рецепт и будет ли это доступно в игровом мире.

Filin

Filin

 

Моддинг. Создание брони в 3ds max

Предположим вам вдруг захотелось создавать броню или одежду для Скайрима самостоятельно. У вас нет опыта работы с 3д редакторами и вы вообще не знаете с чего начать. Ютуб буквально завален различными туториалами по данному вопросу, но большая часть из них либо урывочны (рассматривают только некий отдельный аспект), либо предполагают наличие опыта и знаний в моделлинге либо.... Ну вы поняли.    Возникает вопрос - где взять такой туториал, который разжевал бы буквально весь процесс создания брони именно для Скайрима от А до Я и понятным языком. Не для аса моделинга, а для простого смертного.   Один хороший человек взял на себя труд создать подобный цикл туториалов и выложить в общий доступ. Вот ссылка на плейлист (кликабельно) Естественно видео на инглише. Ну... Таковы уж реалии. Тем не менее последовательность действий и применяемый инструментарий показаны довольно понятно.   Не пугайтесь количеству роликов в плейлисте. Человек старался и очень детально разложил все аспекты создания брони / одежды. а так же ее интеграции в игру. Советую потратить время на изучение его туториалов и вы в итоге сэкономите себе кучу нервов и опят же времени  

Filin

Filin

 

Моддинг. Интересный канал.

В свое время долго рыскал по ютубу в поисках толковый и интересных туториалов. Не в стиле давайте сделаем кнопочку как мануале от беседки. Интересно было откопать что-то более значимое и не такое банальное. Среди гор хлама таки попалось немало интересного. К сожалению реалии таковы, что большая часть толковых туторов на английском языке. Для меня это не проблема, но.... Я постараюсь выложить в блоге ссылки на наиболее любопытные для меня видео и каналы по различным хитростям и приемам в моддинге для Скайрима. Просто учтите, что большинство роликов будет на инглише. Тем не менее советую смотреть даже тем, кто не особо владеет языком. Частенько бывает так, что по самому видео понятно о чем идет речь.   Начну пожалуй с канала одного толкового модмейкера да и просто хорошего человека DarkFox127    Вот собственно ссылка на его канал (кликабельно)    Автор интересен тем, что описывает все свои примеры детально и частенько указывает на различные интересные аспекты рассматриваемых примеров. Объясняет все в доступной форме. Для начинающего модмейкера это может оказаться весьма полезным. В свое время его туториалы сэкономили мне море времени

Filin

Filin

 

Заметка о телепорте

Небольшой нюанс о скрипте телепортации ГГ. Мелочь, но может пригодиться.   Маялся я одно время с заклинанием телепортации для ГГ. Есть у ГГ домик, который он получает в процессе игры за "выслугу лет и образцовый героизьм". В домике имеется книжица с заклинанием телепортации, которое при касте в любой точке Скайрима возвращает ГГ домой.   Собственно ничего эпохального. Простенький маг эффект на спелле со скриптом, юзающим функцию MoveTo. Сделал я его, поигрался. Вроде все как надо. Ага, щаз. Все было отлично пока фолловера не взял.   Короче меня спелл телепортил исправно, а вот фолловеров ну никак не хотел. Долго маялся в чем суть и таки нашел ответ. Оказывается для того, чтобы фолловеры телепортились таким заклинанием вместе с ГГ нужна не только функция MoveTo на ГГ но и еще принудительный фасттревел для фоловеров. Вот такие две строки кода:
  Game.EnableFastTravel() Game.FastTravel(loc01) В итоге результирующий скрипт магэффекта будет выглядеть примерно так: ObjectReference Property Loc1 Auto ;куда телепортим  Event OnEffectStart(Actor akTarget, Actor akCaster) Utility.Wait(1.5) ; дает временную задержку для отыгрывания анимаций каста Game.FadeOutGame(False, True, 2.0, 1.0) ;затемняем в черноту экран Game.GetPlayer().MoveTo(Loc01) ; телепортим в нужное место ГГ Game.EnableFastTravel(); активируем фасттревел Game.FastTravel(loc01); запускаем фасттревел для телепорта активных спутников к ГГ EndEvent   Мало ли. Может кому пригодится

Filin

Filin

 

Конвертация модов SE в LE

Возможна ли конвертация модов из Skyrim SE в Skyrim LE?   На фига об этом пишу? Спрашивали уже с полсотни раз. Плюс по форумам ходит какая-то откровеннейшая чушь по данному вопросу. Как и по проблеме конвертации ЛЕ модов в СЕ версию. Не знаю откуда этот бред взялся. Видимо творчество очередных "икспертов".   Скажу сразу чтоб не тянуть росомаху за анус - такая конвертация возможна в 99% случаев.    Проблему описываю на основе личного опыта работы с обеими версиями Ская, Фотошопом, 3Д Максом, скриптами и т.д. Забуриваться в лютые дебри я не намерен и опишу проблему в общих чертах. Этого будет вполне достаточно для понимания сути вопроса. На чем лично я строю свои разглагольствования по теме? Ну... примерно на 120 сконверченых лично мной туда и обратно модах разного типа сложности.   Фишка в том, что я играю и делаю моды в основном под СЕ. Тем не менее частенько приходится юзать ЛЕ для разбора интересных мне старых модификаций и собственно как тестовую лабораторию чтоб не загаживать СЕ сборку.  По этой причине приходится частенько играться с конвертациями туда и обратно.   Итак 99% случаев. Начнем с того, что входит в оставшийся 1% (ну это мои приблизительные оценки так что делайте скидку  ). В категорию проблемных для конвертации попадают моды с тремя нюансами:   1. Моды, содержащие DLL свои библиотеки.   Полагаю с библиотеками DLL все относительно понятно. Если у вас нет версии данной библиотеки для ЛЕ или способа обойтись без нее (как скажем в моде Купание в Скайриме) - то конвертация застопорится намертво. Вам придется искать автора библиотеки и просить его предоставить вам нужный ее вариант. То же касается конвертации из ЛЕ в СЕ.   2. Моды, которые в скриптах юзают те немногие функции СЕ, которых нет в версии папируса для ЛЕ   В скриптовых функциях папируса для СЕ появились некоторые новшества (смотрим в гугл), несколько облегчающие жизнь. Де факто их не так много и шанс нарваться на использование подобных функций в модах довольно мизерный. Тем не менее если такая ситуация и возникнет, то она все же решаема. Раскомпиливаем скрипт и придумываем модификацию кода, исключающую использование данной функции. На том проблема решена.   Есть еще шанс нарваться на функцию СКСЕ64, которой нет в классическом СКСЕ, но лично я такого не встречал пока. Способ обхода ситуации тот же что и со скриптовыми функциями СЕ.   3. Анимации.   Решается вопрос путем реэкспорта анимации через 3Д Макс в формат для Скайрима ЛЕ 
Что касается остального.   ЕSP   Данные файлы в обеих версиях отличаются одним единственным символом. Для конвертации достаточно открыть и тупо пересохранить нужный файл в соответствующей версии Кита. Просто открыть и пересохранить. Нюанс: для коректного отображения русского языка в версии СЕ ЕSP должен иметь кодировку UTF8. Сменить кодировку ЕSP можно в пару кликов прогой xTranslator.   Скрипты.    Кроме нюанса, который я описал выше и кодировки русского текста скрипты вообще не требуют конвертации как таковой.   Меши.   Меши брони предметов и т.д. из ЛЕ в СЕ конвертятся спец. утилитой. В обратном порядке из СЕ в ЛЕ меши конвертятся импортом в 3Д Макс и последующим экспортом в формат ЛЕ. Пара кликов мышью по туториалу.   Лирическое отступление   Необходимо ли конвертить все меши версии ЛЕ в СЕ? Желательно - да, необходимо - нет. Из порядка 1400 мешей, которые я юзаю на СЕ конвертации требовали процентов 20% от силы. Остальные так и остаются в формате ЛЕ. Все работает без проблем, тормозов и вылетов. Я из принципа конвертил в СЕ формат все 1400 мешей и совершенно никакого прироста производительности в результате не заметил. Лично я в СЕ конвертирую только меши, которые объективно этого требуют: не отображаются в игре или отображаются неправильно, игра вылетает. Все. Вы можете конвертировать в обе стороны каждый меш. Это конечно же правильнее.   Текстуры   Текстуры СЕ (ванильные) используют метод сжатия ВС7. Скайрим ЛЕ данную фишку не поддерживает. Соответственно если вам попались такие текстуры (ЛЕ их не отобразит), то для конвертации понадобится Фотошоп и плагин под него Intel® Texture Works Plugin for Photoshop Классический DDS плагин для Фотошопа от Нвидиа этот формат сжатия не понимает. Оба плагина Интел и Нвидиа могут быть установлены одновременно. Открываете проблемную текстуру плагом от Интел и экспортируете в DTX нужного типа уже плагином от Нвидиа. На том все.   Лично я очень редко встречал такое чтобы модмейкеры, работающие под СЕ или конвертящие под него моды, плющили текстуры в ВС7. Но бывает.   Работают ли ЛЕшные текстуры на СЕ? Да, работают.  Необходимо ли плющить ЛЕ текстуры в ВС7 для СЕ? Нет, но желательно. Типа улучшается быстродействие и качество   Ага. Ну не так тут все просто....   Аудио файлы в конвертации не нуждаются.   В глобальном смысле это все по данному вопросу. Естественно в разных конкретных случаях могут возникать свои нюансы, но картину в общем я вам описал.

Filin

Filin

 

Броня + 3DS Max

Маленький, но очень важный нюанс для тех, кто делает или модифицирует броню и одежду в 3DS Max.   В общем довелось мне однажды делать весьма облегающий элемент брони на одно довольно пикантное место  Сваял я модель, сделал текстуры, провел скининг и по всем правилам экспортнул в меш. Нифскоп и Кит одобрили результат моих творческих изысканий. Наступило время теста модели в игре. И вот тут началось странное. Некоторые участки модели начали себя вести совершенно диким образом. Вершины топорщились черте как и не пойми куда. Полез я в макс проверять веса, параметры скининга, правильность привязки к костям - все зашибись. Подвигал кости скелета в максе - тоже все норм. На тестовой анимации так же проблем не было. В игре - беда.    Короче долго я с этим маялся и перепробовал кучу вариантов. Бросил это дело и занялся прикручиванием к пикантному месту эффекта пушистости. Опять же все сделал по правилам и перешел к тестам в игре. Опа! Та же ерунда. Часть волосяного покрова словно пришпилена к воздуху и тянется совсем не туда и не так. Еще несколько часов страдания в  3DS Max не принесли никакой пользы.   На следующий день бороздя просторы Гугля в поисках ответа попал я на сайт проекта Beyond Skyrim. И вот там в разделе туториалов я и нашел нужный мне ответ. Как оказалось все просто. Собаку закопали в одном единственном параметре модификатора Skin.    А теперь по порядку:   1. Когда вы провели скининг модели при помощи модификатора SkinWrap и получили в стеке модификаторов Skin то не спешите идти дальше. Нужно сделать еще один важный шаг. 2. Выделите в списке модификаторов ваш Skin, в свитке параметров "Advanced Parameters" найдите поле "Bone Affect Limits". По дефолту в нем будет стоять значение 20. Для моделей Скайрима это слишком много. Поставьте в это поле значение 4. По заверениям знающих людей - это оптимальное значение. Данный параметр указывает на то, с какой силой кости скелета будут воздействовать на привязанный к ним меш. Прилагаю скриншот для понятности:
 
После изменения параметра "Bone Affect Limits" можете двигаться дальше по стандартной схеме и никаких вышеописанных пакостей у вас в игре не случиться.   Я понимаю, что многие бывалые моделеры наверняка знают об этой фишке, но лично я на это напоролся да и потом люди не раз обращались с этой проблемой. Так что....

Filin

Filin

 

А в воде ли наш ГГ ? Или непись...

Вот маялся я в своей модификации таким вопросом: как определить, что мой гг в данный момент находится в воде?    Казалось бы просто да не очень. Пришлось порыться в профильных модах (к примеру "Купание в Скайриме") и ответ таки нашелся. Для тех, кому интересно, описываю общую механику решения вопроса.   Предположим, что у вас есть некий спелл, который должен срабатывать только когда гг находится в воде. К примеру этот спел запускает анимацию купания или пердежа с пузырями... да не важно. Как это сделать?   1. Есть в Ките такая штука, как Condition Functions Это некий набор функций-условий, позволяющих делать с магэффектами, спелами, зачарами всякое интересное  Среди этих функций есть такая штука, как IsInDangerousWater. Это первая вещь, которая нас интересует. Данная функция позволяет определить находится ли наш ГГ или НПС в .... лаве Да, в Скайриме она используется применительно к лаве. Но мы ее заюзаем для воды. В чем прикол? А в том, что в Скае лава и вода это по сути одно и тоже только с разными шейдерами и одной любопытной галочкой, которая их отличает друг от друга.   2. Вода. В Скайриме вода это по сути активатор вот такого типа:
  В параметрах данного активатора нас интересует поле Water Type. Для активатора-воды в нем проставляется объект WaterType, который описывает различные технические и визуальные свойства этой самой воды. Найти эти WaterType можно в ObjectWindow Кита в разделе WaterType   Параметры этого объекта выглядят так:   Во всей этой чудесной мешанине потенциальных возможностей нас интересуют только две вещи (на скриншоте выше они выделены красным):   1. Галочка "Causes" - определяет тот факт, что активатор-вода с этим типом будет наносить дамаг ГГ или НПС, если он в ней окажется. 2. Поле "damage per second" - указывает на количество дамага в секунду, который наносится ГГ или НПС пока он в воде этого типа.   Вы спросите, а на кой икс обычной воде выставлять дамаг? О_о  Вот в том и вся хитрость.    Суть в следующем: если вы установите обычному типу воды (озера там или реки) галочку Causes, но при этом в поле "damage per second" оставите значение 0, то никакого дамага ГГ получать не будет. А теперь поясню суть приема. Предположим у вас есть озеро МояЛужа с типом воды Вода1. У вас есть Спелл1 который должен сработать только когда ГГ / НПС в озере МояЛужа. Вопрос - как вашему Спеллу1 определить что ГГ/НПС в этом озере? А очень просто. Делаем следующее:   1. Типу воды Вода1 ставим в Ките галочку Causes, но поле "damage per second" оставляем с 0 2. В условиях магэффекта Спелла1 ставим проверку  IsInDangerousWater == 1.   Все. Теперь когда ваш ГГ / НПС зайдет в воду озера МояЛужа ваш спел сработает. А вне этого озера - нет.   Почему так?  Функция IsInDangerousWater возвращает значение 1, когда актор находится в воде, типу которой выставлена галочка "Causes", а во всех остальных случаях функция возвращает значение 0. Именно для этой цели мы выставили типу воды Вода1 эту галочку а дамаг поставили в 0. Если же дамаг не 0 то у вас получится лава (только поверх воды придется еще положить шейдер-эффект лавы в Ките) или кислотная лужа, или лужа с кипятком при доп. эффекте пара поверху...    Короче дальше полет вашей фантазии   Скажем мод "Купание в Скайриме" выставляет эту галочку всем типам воды, которые используются в относительно пригодных для купания водоемах и когда вы кастите спелл-команду купания, то у вас срабатывает соответствующая анимация если гг в воде нужного типа и не срабатывает в остальных случаях.   Да, есть еще вопрос о глубине и проверке на то, что ГГ / НПС сечас плывет или просто стоит в воде. Первое решается скриптами путем определения положения ГГ относительно объектов мира, а второе еще одним условием-функцией в нашем магэффекте IsSwimming, которое в нашем случае должно == 0 (это значит что ГГ/НПС не плывет в момент каста спелла).   Примерно так:  

Filin

Filin

 

Оседлаем все, что шевелится

Подкинули мне недавно одну любопытную задачку - сделать волколошадь  В смысле волка на котором можно ездить верхом.  Первая реакция: О_о  Но оказалось не все так страшно. (Да, я знаю, что таких модов достаточно, но люди попросили сделать.)   По своей сути задачка оказалась довольно простой. Попробую описать ее доступным языком, для тех, кому это может стать интересным.   Примечание: предполагается что вы умеете работать с таким софтом, как Nifscope и CreationKit. Это не подробный гайд, а общее описание приема.
  Практически любое существо в Скайриме можно сделать ездовым. Даже нпс. К примеру можно соорудить Лидку, которую вы сможете хорошенько объездить. При чем и в прямом и в переносном смысле. Для переносного пригодится Секслаб  и бурная фантазия, а для прямого следующие нехитрые приемы:   1. Модифицированный скелет 2. Кастомная раса (не обязательно) 3. Специальный кейворд в акторе-представителе этой расы   Теперь подробнее. У каждого существа (гуманоидного и не очень) в Скайриме имеется скелет. Можно ли кататься на таком существе верхом по сути определяет одна единственная кость этого скелета. Называется она SaddleBone. Технически для превращения неездового существа в ездовое понадобится в первую очередь скопировать его ванильный скелет, обозвать по своему и потом с помощью нифскопа перенести данную волшебную кость из скелета обычной скайримской лошади в скелет интересующей нас животинки. Делается это несколько муторно но совершенно не сложно. Вот довольно понятный видео гайд по процессу:
    Едем дальше. После успешной вивисекции можно поступить двумя способами: пересадить новый скелет ванильной расе и тогда каждый ее представитель на просторах Скайрима будет ездовым или же создать копию расы нашего подопытного и прописать новый скелет только ей. В случае если это скажем волк, то вы можете сделать ездовыми либо всех волков скайрима либо одного или нескольких волков своей кастомной расы.   Чего и куда тыкать:   1. На скриншоте ниже показан красным пункт, куда нужно прописать новый скелет с SaddleBone для нашей рассы:   2. Теперь в настройках конкретного актора - передставителя нашей ездовой рассы необходимо добавить специальный кейворд ActorTypeHorse Смотрим на скриншот ниже:   Наличие данного кейворда у существа позволит активировать его как лошадь и садится верхом / слезать с него по кнопке активации.   Глобально это все. Дальше уже идут всевозможные нюансы конкретной реализации и заострять тут на них внимание не имеет смысла.   Ну и последнее. Проблемы. Этот пункт весьма важен поскольку вышеописанный фортель не пройдет на все 100% Сложность в том, что собственно полноценные анимации верховой езды в Скайриме существуют только для лошади. Соответственно у вас могут возникнуть сложности разного рода с оседланным питомцем. К примеру при попытке поплавать верхом на звере у вас возникнет баг, при котором гг и зверь будут плыть раздельно. При падении верхом на зверюге с высокой каменюки вы скорее всего вылетите из седла. Возможны сложности с прицеливанием из лука при бое верхом. Кроме того в режиме ожидания новый питомец может отыгрывать анимации ожидания лошади.

Как это решить? Сделать нужные анимации верховой езды для соответствующего существа. Других способов я не знаю хотя может они и есть.   В общем как-то так

Filin

Filin

×

Important Information

By using this site, you agree to our Terms of Use.