Green_Max666, Для старших версий Блендера нет Нифтулса. Зато есть набор отличных утилит от Антона. Начни копать тут https://modgames.net/forum/110-10678-1 Потом посмотри все его файлы. Он написал несколько утилит, которые позволяют импортировать меш в Блендер, импортировать туда же развесовку костей и забрать всё обратно. Я уже год успешно создаю таким образом новую броню с помощью старших Блендеров.
если в карте нормалей альфа канал тупо залить чёрным цветом, то текстура перестанет блестеть как "маслом облитая"? И не сделает ли это карту нормалей бесполезным грузом?
1. Карта нормалей отвечает не только за блеск. Это сильный блеск нам не нравится, поэтому всегда о нём и говорим. А она отвечает, главным образом, за освещённость. Скользящие лучи выявляют рельеф поверхности, содержащийся в карте нормалей. 2. Просто чёрным лучше не заливать. Существуют оптимизаторы текстур, которые в этом случае могут просто удалить альфа-канал из текстуры. 3. Сохранение текстуры в DTX5 не только добавляет альфа-канал, но ещё увеличивает глубину цвета основных каналов. Так что. груз не бесполезный :) 4. Размер распакованной текстуры зависит от её размера в пикселях, но не от содержания. Совсем другое дело - запакованная текстура. Размер архива запакованной текстуры зависит от её содержания, точнее, от количества мелких деталей там. Текстура совсем без деталей ничего не весит в архиве. Так что, лишнего там быть не должно. 5. На худой конец можно сделать альфа-канал карты нормалей из диффузной текстуры. Ведь на ней выпуклые участки обычно светлее. Тогда они у нас будут блестеть сильнее. Для ткани сгодится. Но можно с помощью Crazybump получить из карты нормалей более гибко настраиваемый рельеф поверхности в виде чёрно-белой карты высот. Вот с ним получаются приличные результаты.
Некоторые зачем-то дают альфа канал этим типам текстур, но буду знать, что не нужен.
А сравни размер файлов DTX1 и DTX5. Он различается в 2 раза, при условии, что во второй добавляется всего-навсего четвёртый канал. Должен возрасти только на 33%. Дело в том, что во втором случае выше глубина цвета. Вот ради сохранения с большей глубиной цвета и выбирают этот формат с альфа-каналом, хотя он сам (альфа-канал) в данном случае и не нужен. Некрасивый способ...
В Скайриме есть такая удобная штука, как уровневые списки (левельные списки). Через них обычно персонажи снабжаются шмотками. Всё бы хорошо, но если мод меняет такой список, то он становится несовместим с другими модами, которые меняют тот же список. Т.е. списки не суммируются (объединяются), а используется либо один, либо другой. Возникает естественное желание модифицировать нужные уровневые списки через скрипт. Благо есть соответствующая команда: ; Add 2 axes to the list at level 5 CoolItems.AddForm(Axe, 5, 2) Вот только возникает вопрос, как правильнее обновлять уровневые списки? Когда они инициализируются? По какому событию надо запускать скрипт изменения уровневого списка?
Ну а изменять наверно все равно когда, когда удобно, тогда и меняешь.
Вот тут и загвоздка. Надо дополнять уровневые списки оутфитов и самих персонажей. Скажем. есть уровневый персонаж, при инициализации его он экипируется, а мне эту экипировку надо дополнить. Вроде, как надо отслеживать инициализацию персонажа. Но нет такого события у актёра.
evTau, совершенно верно. Сейчас я добавляю туда татуировки и нижнее бельё. Есть и задача изменения уровневых списков персонажей. Т.е. левельных персонажей.
Изменение репутации для пользователя Myprism
MyprismOffline
Сообщение №1209
| Тема: Вопросы по скриптам Papyrus
написано: 21 февраля 2016, 02:57
| Отредактировано: Myprism - 21 февраля 2016, 02:58
evTau, Большое спасибо! Я просто не пользовался Башем, а надо его изучить. Насчёт татуировок. Они (их текстуры) у меня имеют тот же размер, что и текстуры тел. В видеопамять подгружаются только те текстуры. которые нужны для рисования в данный момент. Причём, движок игры даже отслеживает, что игрок видит, а что нет. Так что, нагрузка на видеопамять даже не удваивается, так как, татуировки у меня имеют не все персонажи, а на персонажах в ванильной броне, она ещё и не показывается.
Нашёл изящный способ объединения уровневых списков. Обошёлся без скриптов, но опишу его здесь, так как именно здесь этот вопрос обсуждался. Надо не изменять имеющийся список, а создавать новый - список прокладку. Именно его подставлять где надо в игру. А уже в него в качестве составляющей части включить ванильный список. Другой составной частью моего нового списка составляют мои добавленные шмотки. Любой мод мог менять родной список и все изменения войдут в мой. Таким образом происходит объединение моих изменений с изменениями внесёнными ранее установленными модами.
andrelo-1, 1. Да, проблему для Оутфитов я не решил. Решил только для уровневых списков. Проверил для уровневых списков персонажей. Я добавил фалмеров-женщин, а потом обнаружил, что Даунгард меняет те же списки добавляя туда своих продвинутых персонажей. Привязывать мод только из-за этого к Даунгарду мне не хотелось. Вот я и решил задачу таким образом. Проверил. Бегают у меня там и дамочки мои и фалмеры в даунгардовской одёжке. 2. У меня нет задачи связать несколько модов. Это головная боль пользователя, но не моя. Ко мне будут предъявлять претензии только если мой мод что-то у пользователя нарушит. Вот пользователь там у себя что-то настроил (скажем врай башем) или не настроил и выбросил, что не сумел настроить. У него всё работает. Мой мод не должен это нарушить. Значит, мне нужно обеспечить совместимость только с тем, что игрок там у себя создал. А у него там изменённые уровневые списки. Их вложенность и устройство меня не волнует. Кстати, преложенный мною способ может использоваться и для последовательной связи нескольких модов. Уровневые списки превращаются в матрёшку.
Изменение репутации для пользователя Myprism
MyprismOffline
Сообщение №1213
| Тема: Вопросы по скриптам Papyrus
написано: 23 февраля 2016, 00:48
| Отредактировано: Myprism - 23 февраля 2016, 05:46
А теперь у меня вопрос именно по скриптам. Давно и успешно использую систему высокого каблука HDT High Heels. Она работает так. В папке Plagins SKSE кладётся специальная ДЛЛька. На сапоги вешается скриптом заклинание высокого каблука:
SPELL Property hdtHighHeelSpell Auto int Property SexFlag = 1 Auto; // 0 for male only, 1 for female only, 2 for both bool Property isUnequipped = false Auto hidden;
Всё это прекрасно работает на главном герое и на его спутницах. Но отказалось работать на уровневых персонажах. Т.е. одни и те же сапоги на уникальных - всё отлично, на не уникальных - не работают. В чём может быть дело? Возможно проблема в LeveledActorBase? Как исправить?
evTau, 1. Такая обувь встречается в игре редко. Должна, по крайней мере. По тундре на каблуках не походишь. 2. В поле зрения всегда мало персонажей. Игра ведь рассчитана на возможность её запуска на консоли. Исключение - батальные сцены, а там высоких каблуков нет.
andrelo-1, спасибо большое! GetLeveledActorBase() решило мою проблему. С RaceMenu буду разбираться позже, а пока у меня есть всё, что нужно, чтобы выложить первую версию нового мода.
Изменение репутации для пользователя Myprism
MyprismOffline
Сообщение №1216
| Тема: Вопросы по скриптам Papyrus
написано: 23 февраля 2016, 18:35
| Отредактировано: Myprism - 23 февраля 2016, 18:37
evTau, а зачем переделывать? Я не вижу недостатков в существующей системе. Использование скриптов это не недостаток. На этом игра построена и они входят внутрь мода. У меня обязательное условие - мод не должен требовать ничего, кроме SKSE. У меня моды не требуют даже дополнений к Скайриму. Да и существующая система столь проста, что там и делать ничего не надо. Нужен высокий каблук - просто пристёгивается к сапогам скрипт в два клика. Не нужен каблук - скрипт удаляется в один клик.
Обновил свой мод Фалмерские Женщины https://modgames.net/load....0-21155 и у меня возникли 2 вопроса: 1. Не могу поменять картинку лого. Я изменил текстуры, положение тела и старый логотип не совсем актуален. Хотелось бы заменить на ту картинку, что сейчас у меня загружена там последней. 2. Так как это финальная версия и она больше обновляться не будет, а там очень много изменений, нельзя ли её поднять наверх страницы?
Как использовать несколько NialphaProperty в одной модели? Модель состоит из двух нитришейпов. В обоих прозрачные объекты (речь идёт о волосах), но с разными свойствами прозрачности. Один объект должен иметь флаг NialphaProperty 4846, а другой 4845 (Hair и HairLine). Дело в том, что у меня для обоих нитришейпов в игре действует тот флаг, что я поставил в первом из них, флаг второго нитришейпа игнорируется
Никак не могу решить казалось бы простенькую задачу. Мне надо выдать потенциальным компаньонам примитивную одежду, которая бы легко снималась разными выданными ему шмотками. Например, даю компаньону в Outfit домотканную одежду, которая занимает у меня слот 48. Тогда если игрок даст ему кирасу, занимающую тот же слот 48, то эта одежда снимется, а кираса оденется. Но проблема в том, что мне нужно, чтобы эта одежда снималась, если игрок даст персонажу шмотки, занимающие любой из слотов 44, 45, 46, 48, 49, 52, 53. Установка всех этих слотов домотканной одежде не помогает. В этом случае она снимается только шмоткой, занимающей слот 53 (последний). Как можно заставить домотканную одежду занять сразу 7 слотов, чтобы она автоматически снималась при выдаче персонажу другой шмотки, занимающей любой из этих семи слотов?
@perture, в модели использован только слот 48. Если там одёжка, имеющая части, занимающие разные слоты, то они управляются правильно. Тут задача симулировать занятие моделью сразу нескольких слотов, но нужно чтобы их все занимал один и тот же шейп. Я пробовал в модели в DismmemberSkinInstance проставить занитие нескольких других слотов, но это не помогает, так как в реальности нет связанных с ними партиций.
@perture, да, конечно. Но это требует отведение специального слота только на эту процедуру снимания. Да и ассортимент "снимающих" шмоток планируется большой. Тут, на самом деле, у меня ещё есть варианты. Ведь всё это нужно для того, чтобы потенциальный спутник был одет до взятия его в компаньоны, но эта одежда не мешала его переодевать. А ведь она будет находиться в Оутфите, т.е. недоступна через меню обмена. Но можно ещё вклиниться в процесс взятия в компаньоны и там скриптом заменять Оутфит персонажа на пустой. Тогда получается интересная вещь: у персонажа взятого в спутники одёжка вываливается в инвентарь, но остаётся одетой и становится доступной для обмена шмотками.
добавляют текстуры параллакса, но не добавляют изменённую модель. Получается, что ENB сам подцепляет эти текстуры или авторы неправильно делают?
Про параллакс ничего не скажу, но я постоянно натыкаюсь на моды, где ставят текстуру кубемап окружения, но не включают её в настройках шейдеров в НИФскопе. Т.е. лежит она в моде мусором. Или хуже того, не генерируют правильно нормали модели (Tangent Space) и у них не только окружение, но даже карты нормалей не работают, хотя вроде и подключены. И ничего, все довольны
Aksyonov, 1. Ни в коем случае не меняй ванильных скриптов! Если нужен изменённый, то сохрани и используй его под другим именем с легко находимой приставкой. 2. Достаточно иметь сохранение до входа в локацию, где срабатывает скрипт, чтобы протестировать все возможные его изменения. Они уже не испортят этого сейва.
Aksyonov, скрипт запишется в сейв только при его запуске. Точнее, запишется не скрипт, а результаты его работы. Игра позволяет ремонтировать себя. Это называется "проверка кэша". Тогда Стим проверяет состояние всех файлов (и скриптов) и заменяет их, если найдёт отличия от оригинала
Возникла проблема с диалогами. Мне нужно, чтобы у нескольких персонажей автоматически открывался диалог обмена вещами из инвентаря, без взятия их в спутники. Первая мысль, что пришла мне в голову - изменить условия соответствующих диалогов. Либо в существующих, либо продублировать их с новыми условиями. - Нашёл квест с этими диалогами - DialogueFollower. - Там есть топик DialogueFollowerTrade, а в нём два десятка диалогов. Два из них подходят по голосам: "Ладно, что мне понести?" и "Что ты хочешь забрать?" - В условиях обоих диалогов меняю фракцию (это для пробы процесса, потом это будет сложнее) PlayerFollover на фракцию своих персонажей. - Проверяю в игре - диалоги появились и даже звучат, но вот инвентарь при этом не открывается. Почему? Там всего одна команда akspeaker.OpenInventory() . Спикер разговаривает, значит он определяется правильно. А инвентарь не открывается!
Dsion, Точно! Спасибо, проглядел :( Засада №2. Теперь меню открывается, но переданные вещи не экипируются. Они экипируются только если сделать персонажа спутником и дать ему что-то ещё. Где копать? Ведь это уже не диалог...
Похоже, дело в том, что не спутник пользуется только вещами из Оутфита. Когда он взят компаньоном, это как то ломается. Можно взять в компаньоны, дать шмотки, уволить, тогда шмотки остаются надетыми. Видимо, мне надо изменять саму систему передачи шмоток, передавая их в Оутфит... Есть идеи, как это сделать?
Dsion, обрати внимание, что авторы игры сделали что нужно, но только для компаньона. Он исправно одевает, что ему дают. Т.е. у него есть некий параметр или ключевое слово, которое включает нужный механизм переодевания. Мне нужно только раскопать, как это делается в игре. Пакеты следования можно поставить кому угодно и ещё менять их. Интеллектуальное пользование фурнитурой тоже ставится сверху пакета следования. Меню обмена шмотками тоже ставится кому угодно без проблем. Осталось только понять, почему стандартный спутник меняет свои шмотки, а не пользуется только Оутфитом. Избавление от оутфитной одёжки - не проблема, так как для стандартного поведения спутника подмена оутфита на пустой делает как раз то, что нужно. Удаление мода тоже не должно вызывать проблем, так как вместе с модом удалятся и мои персонажи.