Нетривиальный вопрос: Имеется мод, где у некоторых NPC раскрашенные лица. Имеется в виду мод на детей TKAA. Как и чем был создан этот мод - не ясно, в описание четко указано что нельзя использовать CreationKit - все порушится к чертям. Хочу сделать команду "Иди умойся!" чтобы ребенок пошел к ближайшему умывальнику (это как раз не сложно) и умылся, соответственно нужен результат - лицо без краски. Посмотреть на непися в CreationKit не могу - они все восклицательные знаки. Так же в CK видимо не все отображается, вижу текстуры татуировок и раскраски в Tint, но у них у всех полная прозрачность стоит, не должны отображаться, но в игре еще как видны... собственно сабж: как отключить определенную текстуру скриптом? Ну или как реализовать затею? Есть идеи?
Человек человеку - волк, а зомби зомби - зомби.
Изменение репутации для пользователя Stea1ch
Stea1chOffline
Сообщение №182
| Тема: Вопросы по скриптам Papyrus
написано: 25 июня 2024, 14:32
| Отредактировано: Stea1ch - 25 июня 2024, 14:35
Проще всего раскурочить какой-нибудь мод, где в заявленных возможностях есть изменение татуировок на актерах
Да вот не проще. Такой мод всего один - EFF, зависит от мода RaceMenu и UIExtensions, и он не работает на SE, точнее именно функция изменения внешность непися, она заточена под самую свежую SKSE для AE. Был когда-то мод NPC Appearance Changer - но автор его грохнул с нексуса окончательно и бесповоротно. Да и мне кажется что он тоже костыльный, с проекцией внешности гг на непися и только. Да и вообще этот мод глючный до безумия. Автор однозначно хотел как лучше, но порушил скрипты, отвечающие за поведение напарника, напарник не переходит на другие локации за ГГ, без консоли вообще никак не поиграешь. Пока реализовал только костыль: Ctr+F4 на форме актера, затем удаление экспортированного меша (иначе конская голова) - в этом случае игнорируются татуировки и боевая раскраска, экспортируется только SkitTone от расы, вся боевая раскраска благополучно исчезает. Но надо это реализовать скриптом. Учитывая что мод все же есть - значит можно. Надо как-то достучаться до прозрачности текстур, их имена можно поглядеть, но как скриптом сдвинуть ползунок прозрачности на ноль - хз.
Человек человеку - волк, а зомби зомби - зомби.
Изменение репутации для пользователя Stea1ch
Stea1chOffline
Сообщение №183
| Тема: Вопросы по скриптам Papyrus
написано: 26 июня 2024, 12:40
| Отредактировано: Stea1ch - 26 июня 2024, 12:40
Если я правильно понял, моделью головы из папки FaceGenData используется одна текстура
При экспорте из этого мода экспортируется только одна текстура, а в самой форме текстуры раскраски и татуировок присутствуют отдельными файлами. Именно с этим модом такая беда, ванильные модельки с раскрашенными лицами нормально редактируются, у них ползунки прозрачности имеют положительное значение. В этом моде модели не видны в СК и прозрачность везде стоит на 0, однако по факту это не так. В xEdit оно тоже не видно, видна только основная текстура. Но они же есть! А вот управление TextureSet - это интересно! Если удастся просто скриптом подменить TextureSet на аналогичный с расы - то это решение! Благо что в этом моде раскрашенные лица только у детей из враждебных фракций, но каждая раса представлена как минимум двумя неписями - враждебными и обычными. Так что замена TextureSet на аналогичный из той же расы однозначно проканает. Можно хоть пример какой, куда копать? Не видел я таких скриптов.
Человек человеку - волк, а зомби зомби - зомби.
Изменение репутации для пользователя Stea1ch
Stea1chOffline
Сообщение №184
| Тема: Вопросы по скриптам Papyrus
написано: 29 июня 2024, 21:58
| Отредактировано: Stea1ch - 29 июня 2024, 21:59
Другой вопрос по другому моему моду: хочу использовать ритуальное заклинание иллюзии (зрение десятого глаза) для включения/отключения объектов. Но ванильные скрипты жестко привязаны к квесту. Можно ли переколбасить ванильный скрипт для отображения скрытых предметов без прослойки в виде квеста? Пока уткнулся в обязательную переменную, коей в ванильном скрипте является скрипт квеста. Вот ванильный скрипт:
Scriptname MGRitual02EffectScript extends ActiveMagicEffect {Scripted effect for the Spell Associated with MGRitual02}
Quest Property RitualQuest Auto ReferenceAlias Property Book01 Auto ReferenceAlias Property Book02 Auto ReferenceAlias Property Book03 Auto ReferenceAlias Property Book04 Auto
float property fDelay auto {time to wait before switching to constant Imod} ImageSpaceModifier property IntroFX auto {IsMod applied at the start of the spell effect} ImageSpaceModifier property MainFX auto {main isMod for spell} ImageSpaceModifier property OutroFX auto {IsMod applied at the end of the spell effect} sound property IntroSoundFX auto ; create a sound property we'll point to in the editor sound property OutroSoundFX auto ; create a sound property we'll point to in the editor ; Obtain the target of the active fire effect
Event OnEffectStart(Actor Target, Actor Caster) fDelay = 0.83 int instanceID = IntroSoundFX.play((target as objectReference)) ; play IntroSoundFX sound from my self introFX.apply() ; apply isMod at full strength utility.wait(fDelay) ; NOTE - neccessary? introFX.remove() ; remove initial FX mainFX.apply() fDelay=0 MGRitual02QuestScript QuestScript = RitualQuest as MGRitual02QuestScript QuestScript.SpellActive =1 Book01.GetReference().Enable(True) Book02.GetReference().Enable(True) Book03.GetReference().Enable(True) Book04.GetReference().Enable(True) EndEvent
Event OnEffectFinish(Actor Target, Actor Caster) MGRitual02QuestScript QuestScript = RitualQuest as MGRitual02QuestScript QuestScript.SpellActive =0 Book01.GetReference().Disable() Book02.GetReference().Disable() Book03.GetReference().Disable() Book04.GetReference().Disable() int instanceID = OutroSoundFX.play((target as objectReference)) ; play OutroSoundFX sound from my self introFX.remove() mainFX.remove() OutroFX.apply() endEvent
Человек человеку - волк, а зомби зомби - зомби.
Изменение репутации для пользователя Stea1ch
Stea1chOffline
Сообщение №186
| Тема: Вопросы по скриптам Papyrus
написано: 2 июля 2024, 23:11
| Отредактировано: Stea1ch - 2 июля 2024, 23:16
Приветствую! Обнаружил баг: Время публикации материала, а так же время написания ответов или сообщений отображается по времени сайта, игнорируя настройку часового пояса в профиле. Поправьте пожалуйста.
Кто знает за что именно отвечает property type ImageSpaceModifier? А точнее хоть один мануал по созданию оных, там в них параметров туева хуча и никакой инфы что к чему... Пытаюсь сделать заклинание замедления времени (в идеале - остановки), но вот уперся в это, тот вариант MagShoutSprint03 из крика просто не сохраняется на заклинании, сбрасываются все остальные свойства со скрипта. Это в свойстве OutroFX скрипта MagicImodScript. Так же нашел именно остановку времени, однако... этот эффект вообще непонятен. При архитектуре скрипт ничего кроме визуалки не меняется, при установке архитектуры Slow Time имеет обратный эффект - течение времени ускоряется в разы, неписи бегают как перепуганные ракеты, луны по небу движутся очень заметно... Такой вот неуклюжий доктор Стрендж получается =))
Все! Победил. Ванильные скрипты и Imod работают отлично, дело в магнитуде. Значения должны быть ниже 1 для замедления, все, что выше ускорит время. Но вопрос про создание Imagespace Modifer остается открытым, уж очень интересная фича.
Ладно, это мне пока не по зубам. Задумался в сторону полета. Да не просто фокусы с неписем-лошадью и игры с гравитацией, а решил попробовать замутить полноценный летающий дом. И не висящий в воздухе, а именно летающий. Идея такова: использовать ванильный скрипт ловушки для подъема и спуска, слегка изменить его, для движения по остальным осям. Соответственно весь экстерьер должен быть одним мешем и являться Movable Static. Вроде как реализуемо, но некоторые нюансы все же есть. Например с маркерами входа в интерьер. Так же в теории я могу использовать меш дома как бодипарт непися, такое я уже делал в Fallout NV - замутил нло с пушкой, где само нло - бодипарт пушки, крепление к потолку =)) Собственно сабж: как можно контролировать высоту полета не от уровня моря (Z=0), а от реальной поверхности? Или я пытаюсь укусить себя за хвост?
Человек человеку - волк, а зомби зомби - зомби.
Изменение репутации для пользователя Stea1ch
Stea1chOffline
Сообщение №191
| Тема: Вопросы по скриптам Papyrus
написано: 6 августа 2024, 07:33
| Отредактировано: Stea1ch - 6 августа 2024, 07:50
Высота полета от реальной поверхности реализована, например, у летающих робоглазов просто костью в модели.
Это я прекрасно знаю, именно по этому тот самый робоглаз по сути не летает, а бегает на этой кости. Попадись на пути гора - он будет оббегать ее по кругу, а не перелетит. Костыль. Такой же как с поездом метро, где для визуализации движения по туннелю на гг одевается шлем в виде кабины поезда и блокируется управление. Но в скайриме есть нативные подъемники и летающие существа. Вот по этому я и ищу другое решение. Что-то по типу непрерывного сброса и возврата какого-нибудь прожектиля, к примеру магического света, с замером величины Z при прикреплении оного и коррекцией высоты на основе этих данных. Ну или все-же упростить и сделать высоту полета по умолчанию выше, чем Глотка мира, которая является самой высокой точкой Тамриэля.
Именно это я и задумывал, несколько лет назад при разработке радиоуправляемой мины (к стати хорошо что вспомнил, я же этот мод так и не опубликовал) в фолле 3 я вдоль и поперек изучил эти механики.
Цитата Multigone
Спавнить / передвинуть актера и узнать его коорд.
А вот этот метод я как раз хотел использовать для движения по координатам. Непись бежит к заданному маркеру, летающий дом отслеживает направление и движется за неписем, на мой взгдяд наиболее простое решение - заюзать ии пакет непися и навмеши для путешествий. Значит что-то уже начинаю понимать, раз мысли схожи =)))