Перейти к содержимому


Фотография

Вопросы по модостроению и Creation Kit

help modding creation kit скайрим редактор помощь вопросы

  • Авторизуйтесь для ответа в теме

#2041 Ссылка на это сообщение gkalian

gkalian
  • smoke on helmet
  • 14 126 сообщений
  •    

Отправлено

В файле SkyrimEditor.ini ниже [General] впишите строчку sLanguage=RUSSIAN, чтобы этот СК по-русски понимал.
Для того чтобы ошибки не выдавались, и не мешали в работе
Можно сделать следующее:

Открыть любым текстовым редактором файл SkyrimEditor.ini (находится в папке \Steam\steamapps\common\skyrim)
Находим секцию [MESSAGES]
В каждой строке в данной секции меняем значение с 0 на 1. После всех изменений данная секция должна выглядеть так:

[MESSAGES]
bSkipInitializationFlows=1
bSkipProgramFlows=1
bAllowYesToAll=1
bBlockMessageBoxes=1
iFileLogging=1

 

В связи с реструктуризацией раздела все полезные сообщения вынесены в отдельную тему.
/сентябрь 2015



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4694

#2042 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

 

 

С разбора чужих спутников с кастомными голосами. Или с мода RDO (улучшение диалогов).

Можете посоветовать какой-нибудь мод с кастомной озвучкой? Что-нибудь попроще. Боюсь, что нечто объёмное мой моск ниасилит.

 


Сообщение отредактировал Brannweig: 17 июня 2019 - 18:43


#2043 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Можете посоветовать какой-нибудь мод с кастомной озвучкой? Что-нибудь попроще. Боюсь, что нечто объёмное мой моск ниасилит.

На нексусе их множество.

На русском тоже переводы есть.

Я кастомными спутниками пользуюсь, только если в нагрузку к самому спутнику идет большой интересный квест. Но тебе как раз такого не надо.


Сообщение отредактировал Azazellz: 17 июня 2019 - 19:31


#2044 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

Но тебе как раз такого не надо.

Именно.
Спасибо за совет, кажется уже нашла подходящего каджита.



#2045 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

 И снова здравствуйте, и это опять я с нубским вопросом.

Поможите, люди добрые, не могу понять, в чём проблема.

Нужен скрипт-счётчик на конце топика диалога, состоялся ли собственно диалог, при этом результат пишется в глобальную переменную (будет использоваться в другом месте)

вот что я пишу:

спойлер

 

И вот что я получаю в ответ:

спойлер 2

WTF?


Сообщение отредактировал Brannweig: 20 июня 2019 - 17:49


#2046 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

WTF?

Если это полноценный скрипт - просто Function недостаточно. Ей нужно название, как минимум. И еще Event, который будет срабатывать.

Если ты это пишешь как скрипт-фрагмент (в топиках они вроде есть - окошко такое с полем ввода текста для скрипта) - то тебе не нужны не Scriptname, ни Function. Туда надо просто код фигарить.



#2047 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

Если это полноценный скрипт - просто Function недостаточно. Ей нужно название, как минимум. И еще Event, который будет срабатывать.

Если ты это пишешь как скрипт-фрагмент (в топиках они вроде есть - окошко такое с полем ввода текста для скрипта) - то тебе не нужны не Scriptname, ни Function. Туда надо просто код фигарить.

Функцию что, тоже объявлять в свойствах?
Эвентом, собственно, должно стать тыканье игроком на строку диалога. Собственно, потому я и хочу это всунуть в окно топика.

Задумка, вкратце, была следующая: Есть бесконечный квест. В начале квеста проверяется глобальная переменная, и если 0, то запускается сцена, в конце которой диалог. Если диалог состоялся, то больше в этой локации сцена не повторяется. Для того и счётчик в конце, увеличивающий глобальную переменную на 1.

При смене локации сцена должна повторяться, поэтому на сам квест собираюсь повесить скрипт 

А в условиях доступности диалога стоит проверка значения переменной (если ==0).

И поскольку в самой сцене прописана процедура Travel так, что алиас будет бегать за игроком, то квест должен по идее запускаться столько раз, пока игрок не изменит глобальную на 1.

И вот застопорилось что-то.


Сообщение отредактировал Brannweig: 20 июня 2019 - 19:24


#2048 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

И ещё вопрос заодно. Диалоги спутнику прописала, всё функционирует, кроме собственно озвучки. А это критично. Звуковые файлы есть, обычный кастомный квест работает с озвучкой, а DialogFollower почему-то не видит звуковых файлов. Спутник молчит, как рыба.

Что делать? У меня файлы wow и lip отдельно, надо ли их в fuz перепаковывать? и если да, то чем? 



#2049 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Функцию что, тоже объявлять в свойствах?

Вообще ничего объявлять не надо.

Если ты используешь фрагменты (а только их тут и надо использовать имхо) - тупо фигарь туда код. СК сам его в итоговый скрипт занесет.

Без всяких функций, без всяких названий скриптов. Только код.

Фрагменты - это вот. Два окошка снизу.

Про озвучку - хз.



#2050 Ссылка на это сообщение Пакость

Пакость
  • ⊛⇖⇧⇧⇓⇖⇗⇛⊜← = ☕

  • 4 011 сообщений
  •    

Отправлено

"wow" ??? :)
ладно, к теме:
http://jpegshare.net...109863e85df.png
Вот там соответственно в низу окна EditResponse в столбце Path указаны пути и имена файлов, куда ты должен положить свои звуковые файлы озвучки произносимых НПЦ фраз.
далее: wav видел и оно работало. Вот только то что я видел было без lip-ов. Но таки если упрёшься - таки можно попробовать и в "родной" xwm засунуть, но по идее изначально не обязательно, а только полезно на финише дабы уменьшить размер мода (за счёт применения сжатия звуковых файлов)
 
Вот-жеж ё-маё. "обкатаный" 3DSmax 7 на Win7 не арбайтен (а я был о нём лучшего мнения), из ещё имеющегося, 3DS max 2010 работает, но с ним не нработает nif плагин, с теснексуса качал (в итоге Макс валится с матюком что чтото там shader не так в плагине). А в конечном счёте вопрос, дабы не перебирать ВСЕ Максы в посках подходящего, какой нужен, или я плагин взял не тот, их там нынче тоже похоже развелось.

#2051 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

 

Если ты используешь фрагменты (а только их тут и надо использовать имхо) - тупо фигарь туда код. СК сам его в итоговый скрипт занесет.

Без всяких функций, без всяких названий скриптов. Только код.

 

Про озвучку - хз.

Озвучку уже догадалась как сделать.

С кодом остаются траблы. Немного поменяла задачу. По диалогу актёр удаляется из фракции. Куда уж проще. Тупо фигарю код в окно

Doll1.GetActorRef().RemoveFromFaction(DollFactionPr)

, тупо получаю в ответ 

Compiling "TIF__0408B4A4"...
TIF__0408B4A4.psc(2,0): mismatched input 'Int' expecting SCRIPTNAME
TIF__0408B4A4.psc(0,0): error while attempting to read script TIF__0408B4A4: ‚ нЄ§Ґ¬Ї«пॠ®ЎкҐЄв  ­Ґ § ¤ ­  ббл«Є  ­  ®ЎкҐЄв.
No output generated for TIF__0408B4A4, compilation failed.

 

Что не так? не понимаю. Хелп.

Это при том, что если пишу код не во фрагменте, а целый, то всё ок, не матерится. С фрагментом работать не желает. Я в растерянности.


Сообщение отредактировал Brannweig: 23 июня 2019 - 20:28


#2052 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

"wow" ??? :)
ладно, к теме:

далее: wav видел и оно работало. Вот только то что я видел было без lip-ов. Но таки если упрёшься - таки можно попробовать и в "родной" xwm засунуть, но по идее изначально не обязательно, а только полезно на финише дабы уменьшить размер мода (за счёт применения сжатия звуковых файлов)
 

ага  :)

Это я уже выкопала, голос во все нужные списки внесла и wav файлы вместе с lip в fuz упаковала. После упаковки заработало. Почему так - не знаю. Очевидно, родной DialogueFollowerQuest не видит wav формата, только тот fuz, что в игре.



#2053 Ссылка на это сообщение Пакость

Пакость
  • ⊛⇖⇧⇧⇓⇖⇗⇛⊜← = ☕

  • 4 011 сообщений
  •    

Отправлено

меня вот это "нЄ§Ґ¬Ї«пॠ®ЎкҐЄв Ґ § ¤ ббл«Є ®ЎкҐЄв" напрягает.
У тебя там нигде в пути к папке игры, в имени профиля винды русские буквы не затесались?

#2054 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

меня вот это "нЄ§Ґ¬Ї«пॠ®ЎкҐЄв Ґ § ¤ ббл«Є ®ЎкҐЄв" напрягает.
У тебя там нигде в пути к папке игры, в имени профиля винды русские буквы не затесались?

Вот полный путь
D:\Skyrim - Legendary Edition\Data\Scripts\Source\temp\TIF__0408B4A4.psc(2,0): mismatched input 'Int' expecting SCRIPTNAME

D:\Skyrim - Legendary Edition\Data\Scripts\Source\temp\TIF__0408B4A4.psc(0,0): error while attempting to read script TIF__0408B4A4: ‚ нЄ§Ґ¬Ї«пॠ®ЎкҐЄв  ­Ґ § ¤ ­  ббл«Є  ­  ®ЎкҐЄв.
Немного не поняла, что имеется в виду под профилем винды. Профиль пользователя ОС Windows? Там русских букв вроде тоже нет (конечно, если это имеет значение).

И проблема такая именно во фрагментах. Кит их не желает компилировать. Если же я копирую готовый код, уже существующий, из аналогичного топика (как например я делала в ветках DialogueFollower), то там всё окей.
 

И предвидя вопрос, поставлена ли у меня единичка в SkyrimEditor.ini, - таки да. Проверила. Стоит.
[MESSAGES]

bSkipInitializationFlows=1
bSkipProgramFlows=1
bAllowYesToAll=1
bBlockMessageBoxes=1
iFileLogging=1

 

Буду очень признательна за помощь. Только начала разбираться в папирусе, только хотела что-то немножко для себя написать - и тут такая опа.


Сообщение отредактировал Brannweig: 23 июня 2019 - 22:05


#2055 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

Вот полный путь
D:\Skyrim - Legendary Edition\Data\Scripts\Source\temp\TIF__0408B4A4.psc(2,0): mismatched input 'Int' expecting SCRIPTNAME
D:\Skyrim - Legendary Edition\Data\Scripts\Source\temp\TIF__0408B4A4.psc(0,0): error while attempting to read script TIF__0408B4A4: ‚ нЄ§Ґ¬Ї«пॠ®ЎкҐЄв  ­Ґ § ¤ ­  ббл«Є  ­  ®ЎкҐЄв.

Убери пробелы из названия папок.

****
Про озвучку. Для большей производительности игра использует *fuz формат. *Fuz = *xwm + *lip. Формат *xwm же в свою очередь является сжатым *wav.

****
Про скрипт. Тут, если честно, я не очень понял как идея, что ты описала, соотносится с тем, как ты пытаешься ее реализовать. Во-первых, не используй ивент OnCellLoad(). Ячейка может быть уже прогружена, поскольку игра сохраняет стак последних ячеек, где побывал игрок. Если уж на то пошло, то тебе нужен ивент OnCellAttach(), ибо он срабатывает каждый раз как игрок посещает новую ячейку. Во-вторых, оба эти ивенты должны висеть на каком-нибудь ObjectReference из присоединяемой ячейки. Лезть и в КАЖДУЮ ячейку в игре добавлять какой-нибудь маркер с этим скриптом – не правильно. Поэтому первоначальная идея плохая. Более того, никакая глобальная переменная тут не поможет.

Такие вещи следует делать через Story Manager. У квеста должен быть выставлен запускающий его ивент Change Location Event. Сцена должна быть помечена "Begin On Quest Start", а диалог должен в любом случае этот квест завершать. Попутно добавляя локацию, где находятся герои в момент диалога, в некий формлист (для удобства обзову его ProcessedLocsList). Например так:
ProcessedLocsList.AddForm(PlayerREF.GetCurrentLocation())
В самом же Story Manager, квест просто должен проходить проверку на то, что новая локация (в которую переместился игрок) не находится в листе уже "отработанных" локаций. Это уже выставляется путем кондишенов, как в диалоговом окне:
New Location — IsInList — ProcessedLocsList — ==0
Я бы поступил так.

 

А в конечном счёте вопрос, дабы не перебирать ВСЕ Максы в посках подходящего, какой нужен, или я плагин взял не тот, их там нынче тоже похоже развелось.

Штатные разработчики моделили в 3ds Max 2008. За что купил — за то и продаю.

#2056 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

в КАЖДУЮ ячейку в игре добавлять какой-нибудь маркер с этим скриптом

Зачем? Я вписала скрипт на НПС.
В общем, со скриптами разобралась, что там было не так. Пробелы ни при чём. На одном англоязычном форуме нашла инфо, что иероглифы возникают из-за внутренней ошибка в Ките, когда он пытается обработать ошибки в коде. Ошибку в коде исправила - иероглифы пропали.
Задумку реализовала, буду обкатывать.
 

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

 
Если добавлять в форм-лист, то как потом убирать из форм-листа? Иначе сцена не будет запускаться, если игрок с персонажем уже побывали в этой локации когда-то.
 
Огромное спасибо всем, кто откликнулся.  :angel:
А можно попутно вопрос: чтобы следующий квест начинался строго по завершении предыдущего, надо на конец первого вешать скрипт с указателем на второй? Или достаточно в условиях диалогов прописать?

Сообщение отредактировал Brannweig: 25 июня 2019 - 05:54


#2057 Ссылка на это сообщение StrangeT

StrangeT
  • Новенький
  • 19 сообщений
  •  

Отправлено

достаточно в условиях диалогов прописать


#2058 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

Если добавлять в форм-лист, то как потом убирать из форм-листа? Иначе сцена не будет запускаться, если игрок с персонажем уже побывали в этой локации когда-то.

По большому счету, так же, как и добавлять запись в него:
ProcessedLocsList.RemoveAddedForm(PlayerREF.GetCurrentLocation())
Касательно того, что сцена больше не будет запускаться — я так понял, что в этом и была исходная идея.

Если диалог состоялся, то больше в этой локации сцена не повторяется.



#2059 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

Касательно того, что сцена больше не будет запускаться — я так понял, что в этом и была исходная идея.

Идея в том, что если игрок и НПС попадают в одну ячейку (НПС при этом находится в состоянии сэндбокса), у НПС включается аи-пакет Travel с указанием референса игрока как цели (то есть, нпс держится около игрока на заданной
пакетом дистанции), а у игрока появляется диалог, позволяющий выключить это следование. Например, выведя НПС из специальной фракции, в которую НПС вписывается обратно (на НПС висит скрипт с событием OnCellLoad), как только игрок меняет ячейку. НПС возвращается к остальным пакетам в стаке, перемещаясь между ячейками, пока снова не встретит игрока, и ситуация повторяется.
Я это попыталась сделать путём введения НПС в отдельную фракцию, которая является условием для действия пакета с процедурой Travel.
Вот вроде пока работает, но надо ещё проверять

#2060 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

Идея в том, что если игрок и НПС попадают в одну ячейку (НПС при этом находится в состоянии сэндбокса), у НПС включается аи-пакет Travel с указанием референса игрока как цели (то есть, нпс держится около игрока на заданной
пакетом дистанции), а у игрока появляется диалог, позволяющий выключить это следование. Например, выведя НПС из специальной фракции, в которую НПС вписывается обратно (на НПС висит скрипт с событием OnCellLoad), как только игрок меняет ячейку. НПС возвращается к остальным пакетам в стаке, перемещаясь между ячейками, пока снова не встретит игрока, и ситуация повторяется.
Я это попыталась сделать путём введения НПС в отдельную фракцию, которая является условием для действия пакета с процедурой Travel.
Вот вроде пока работает, но надо ещё проверять

Понятно. В таком случае, как я и хотел посоветовать ранее, возможно хорошей идеей будет использование ивента OnCellAttach() взамен OnCellLoad(). Это должно помочь с ситуациями, когда игрок набрел на ячейку, но НПС там не оказалось. После чего игрок прошелся по другим ячейкам, и вернулся в исходную, где к тому моменту уже появился НПС. OnCellLoad() может в такой ситуации не сработать, потому что эта ячейка вероятно будет уже подгружена в память системы. Ивент OnCellAttach(), в свою очередь, выстреливает стабильно каждый раз, как игрок куда-то перемещается по миру. Важно, что он должен висеть в скрипте на элиасе НПС (судя по всему, у тебя оно так и есть).

#2061 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

Понятно. В таком случае, как я и хотел посоветовать ранее, возможно хорошей идеей будет использование ивента OnCellAttach() взамен OnCellLoad(). ...
Ивент OnCellAttach(), в свою очередь, выстреливает стабильно каждый раз, как игрок куда-то перемещается по миру. Важно, что он должен висеть в скрипте на элиасе НПС (судя по всему, у тебя оно так и есть).

Спасибо, попробую.
Скрипт висит не на алиасе, а прямо на базе НПС. Там его вроде как проще реализовать.
Мне как нубу пока что сложно постичь сакральный смысл фраз типа "actor ak speaker = akspeakerref as actor" XD

Сообщение отредактировал Brannweig: 25 июня 2019 - 15:58






Темы с аналогичным тегами help, modding, creation kit, скайрим, редактор, помощь, вопросы

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых