Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Квест "zDIProlog", сцена "zDIPrologErach1Scene", третья фаза. При первом запуске, у тебя скорей всего сцена нормально сработает при любом кондишене, проблемы начнутся при загрузке сейва, сделанного уже после старта квеста (но ещё до сцены). Я проверял на нескольких разных персонажах, в том числе создавал нового, чтобы исключить возможность "битого" сейва. Проблема также проявляет себя и в sle и в sse. Я также попробовал разветвить этот диалог на оригинальной английской версии без перевода - та же проблема.

  • Ответов 4,8 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
22.01.2018 08:26:10, werr сказал(-а):
На днях попробую посмотреть мод.

Кажется, я уже нашёл причину, во всяком случае, три раза подряд сцена сработала как надо. Как я и подозревал, никакого отношения ни к кондишенам, ни к скриптам проблема не имеет. Весь этот сыр-бор с зависаниями сцен был из-за... отсутствия файлов озвучки! :facepalm  Что больше всего "радует" в этой ситуации, так это то, что отсутствие этих файлов вообще никак не влияет на обычные диалоги, а вот диалогам в сценах они, оказывается, очень даже нужны. Подходят даже обычные пустышки, главное, чтобы были.

В общем, ещё одна баго-фича от беседки из разряда "я фигею, дорогая редакция..." :facepalm .

Опубликовано (изменено)

Здравствуйте. Только познаю в Creation Kit, потихоньку делаю свой домик. Ровняла стены в комнате, закрыла кит и пошла в игре посмотреть ничего ли не мерцает. После того как опять зашла в кит у меня перестала камера двигаться в окне рендера. В окне интерьера выбираешь предмет камера не него переходит, окно этого предмета тоже открывает, но мышкой или клавиатурой камеру с этого объекта не сдвинешь и другой не выберешь и не передвинешь. Возможно нажала какую то клавишу и не заметила, но уже всё перебрала и не могу найти как исправить эту ситуацию. Помогите пожалуйста :cray:

Вопрос снимается. Переустановила программу, стало нормально.

Изменено пользователем lutik-vjik
Опубликовано

Добрый день.

Помогите пожалуйста разобраться как скрыть объекты до выполнения условия.

Хочу чтобы дом не просто можно было купить со всем добром внутри. Я ставлю замок и делаю квест на покупку дома, но хочу чтобы он был пустой. А далее я обстановку комнат либо покупаю (как обстановка в обычных домах в городах), либо делаю на верстаке (ка в Hearthfire).

Смотрела уроки по созданию квеста, но нашла только варианты убей-принеси, урок по созданию рецепта создает оружие или какой то предмет который падает в инвентарь. А вариантов "создать" мебель не нашла:( Возможно в английских сайтах есть, но не дружу с английским:((

Галочку что сразу недоступен видела, а как использовать этот момент?

Опубликовано
28.01.2018 08:34:04, lutik-vjik сказал(-а):
Галочку что сразу недоступен видела, а как использовать этот момент?

Ставишь эту галочку.

И потом через скрипт в диалоге делаешь enable вещей, которые изначально отключены.

Консольная команда enable точно так же работает - выбираешь предмет по ИД и "включаешь" его.

Опубликовано (изменено)

Есть задача:

Короткий диалог между двумя НПС. Задумано несколько разных версий этого диалога. Упрощенно это выглядит так:

 

актор1: как дела?

актор2: отлично!

 

актор1: что слышно нового?

актор2: ничего нового.

 

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

 

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

 

Как такое сделать?

 

Если я поставлю Random Quest Node с галочкой Do all before repeating, залью туда несколько квестов-сцен, то, как я понимаю, они конечно будут прокручиваться рандомно, но это будут разные сцены, а мне нужна одна с разными вариантами диалогов. Или не одна, но с интервалом между ней и следующей, а не между ее следующим повтором, как у сцен-диалогов между канибаллами, к примеру.

 

Может, на первую фразу в сцене поставить временной интервал?

Изменено пользователем gangrena2
Опубликовано
30.01.2018 08:58:14, gangrena2 сказал(-а):

Есть задача:..............

Как такое сделать?

Для подобных задач в игре есть механика, и она довольно проста. Суть диалогов актеров друг с другом состоит в том, что не игрок активирует НПС (через Hello topic), или наоборот (force greet), а НПС активируют друг друга. Это называется Actor Dialogue Event. Это именно тот ивент, который должен стоять у тебя в квесте в разделе Quest Data. Никаких Run Once.

Далее нужно создать два элиаса в этом квесте (Quest Aliases). В элиасе должен стоять тип заполнения Find Matching Reference > From Event. Если Actor Dialogue Event уже прописан на первой вкладке, как это было описано ранее, то здесь система сама подхватит его (ивент) и тебе останется лишь выбрать какой из параметров ивента ты хочешь заполнить. Их два: Actor 1 и Actor 2. Соответственно, нужно два элиаса - 2 актера ведь. Стоит отметить этим элиасам боксы Allow Reserved. Конкретизировать, кем же реально будут заполнены эти элиасы можно и нужно полем Conditions. Например через GetIsID (самое простое, если это для конкретных 2х НПС задумывается). Но, в целом, тут уж по ситуации и под задачу дизайнерскую.

Создаешь саму сцену с участием этих элиасов. Обязательно отметь сцене Begin on quest start и Stop quest on end. Остальное - дизайнерский аспект.

Теперь надо этот квест надо куда-то подшить, чтобы это что-то ловило тот самый Actor Dialogue Event и запускало квест. Ну для этого есть такая штука как SM Event Node. Создаешь новый Random Quest Node, засовываешь туда своих квестов и настраиваешь. Shares Event отключаешь (ибо тогда все они смогут запуститься за раз), ставишь Do All Before Repeating и выставляешь квестам Hours until reset на 48 часов, раз пошла такая пьянка. Неплохо бы сюда дистанцию между актерами в условие вписать < 300 например, а то будут через все поле орать.


П.С. Это и есть разные версии одного и того-же диалога, все зависит от того, что ты именно в топики вписываешь. Ну, если очень хочется, можешь в сцене нажать дважды на Action XX и в Info добавить новый response. игра будет выбирать каждый раз один из, т.е. рандомно.

П.П.С. Если память мне не изменяет, они поменяли немного систему эту в одном из обновлений, так что возможно придется дописать еще элиасов. Но, трупы считают по мере их поступления - если возникнет проблема и не будет так работать, попробуем дописать.
Опубликовано (изменено)
30.01.2018 20:51:44, werr сказал(-а):

Для подобных задач в игре есть механика и она довольно проста. Суть диалогов актеров друг с другом состоит в том, что не игрок активирует НПС (через Hello topic), или наоборот (force greet), а НПС активируют друг друга. Это называется Actor Dialogue Event. Это именно тот ивент, который должен стоять у тебя в квесте в разделе Quest Data. Никаких Run Once.

 

Далее нужно создать два элиаса в этом квесте (Quest Aliases). В элиасе должен стоять тип заполнения Find Matching Reference > From Event. Если Actor Dialogue Event уже прописан на первой вкладке, как это было описано ранее, то здесь система сама подхватит его (ивент) и тебе останется лишь выбрать какой из параметров ивента ты хочешь заполнить. Их два: Actor 1 и Actor 2. Соответственно, нужно два элиаса - 2 актера ведь. Стоит отметить этим элиасам боксы Allow Reserved. Конкретизировать, кем же реально будут заполнены эти элиасы можно и нужно полем Conditions. Например через GetIsID (самое простое, если это для конкретных 2х НПС задумывается). Но, в целом, тут уж по ситуации и под задачу дизайнерскую.

 

Создаешь саму сцену с участием этих элиасов. Обязательно отметь сцене Begin on quest start и Stop quest on end. Остальное  - дизайнерский аспект.

 

Теперь надо этот квест надо куда-то подшить, чтобы это что-то ловило тот самый Actor Dialogue Event и запускало квест. Ну для этого есть такая штука как SM Event Node. Создаешь новый Random Quest Node, засовываешь туда своих квестов и настраиваешь. Shares Event отключаешь (ибо тогда все они смогут запуститься за раз), ставишь Do All Before Repeating и выставляешь квестам Hours until reset на 48 часов, раз пошла такая пьянка. Неплохо бы сюда дистанцию между актерами в условие вписать < 300 например, а то будут через все поле орать.

 

 

П.С. Это и есть разные версии одного и того-же диалога, все зависит от того, что ты именно в топики вписываешь. Ну, если очень хочется, можешь в сцене нажать дважды на Action XX и в Info добавить новый response. игра будет выбирать каждый раз один из, т.е. рандомно.

 

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

 

Так дистанция на квестах 48 часов будет работать по какому варианту?

1. Каждые 48 часов запускается один рандомный квест, а следующий рандом запустится через 48?

2. Каждые 48 часов запускается один рандомный квест, потом сразу другой и пока все не прокрутятся, а через 48 часов снова?

 

И еще, может ты знаешь: иногда сцена запускается не сразу, если я ее создаю между персонажами со своими аи-пакетами (которые висят на нпс). Я думала, что аи-пакеты на квесте приоритетнее, чем на нпс.

Вот, например, есть стражник. Он патрулирует днем. Мне надо, чтобы игрок и нпс с пакетом сопровождения игрока подбежали к этому стражнику, и между обоими нпс сразу началась сцена-диалог. А приходится ждать. Почему так?

 

На всякий случай: вот такие условия у меня на Random Quest Node (тренируюсь на Вилкасе вместо кошки, 000Alva - свой персонаж с аи-пакетом следования за игроком)

73ec7d514a7b.png.webp.png

 

На алиасах условия allow Reserved и Allow Reuse in Quest

Condition соответственно getisid этих нпс.

В сцене галочки begin... и stop... поставлены.

 

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

Изменено пользователем gangrena2
Опубликовано
31.01.2018 06:31:52, gangrena2 сказал(-а):

Так дистанция на квестах 48 часов будет работать по какому варианту?

1. Каждые 48 часов запускается один рандомный квест, а следующий рандом запустится через 48?

2. Каждые 48 часов запускается один рандомный квест, потом сразу другой и пока все не прокрутятся, а через 48 часов снова?

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

 

Создай новую GlobalVariable (глобальную переменную) IsPossibleToActivateNextQuest с исходным значением "1" (я люблю, чтобы названия были довольно естественными. Как у Беседки). Создай дополнительный технический квест, который будет запускаться по завершении каждого из твоих квестов-сцен. Например, в конце каждой этой сцены запускай его, попутно обнуляя значение глобальной переменной IsPossibleToActivateNextQuest.SetValue(0) .  Все, что делает такой квест, - ждет игровое время 48 часов и обновляет значение переменной обратно IsPossibleToActivateNextQuest.SetValue(1) . Все, теперь остается только вставить равенство этой глобальной переменной единице как условие в SM Event Node. По-млему, в кондишонах это уловие называется GetGlobalValue.

 

Это должно дать тебе то, что ты хочешь. Фантазируй)

 

 

31.01.2018 06:31:52, gangrena2 сказал(-а):
И еще, может ты знаешь: иногда сцена запускается не сразу, если я ее создаю между персонажами со своими аи-пакетами (которые висят на нпс). Я думала, что аи-пакеты на квесте приоритетнее, чем на нпс.

Вот, например, есть стражник. Он патрулирует днем. Мне надо, чтобы игрок и нпс с пакетом сопровождения игрока подбежали к этому стражнику, и между обоими нпс сразу началась сцена-диалог. А приходится ждать. Почему так?

Это движок так обрабатывает AI пакеты. Игра смотрит, конечно, на пакеты НПС, которые находятся в прогруженной области чаще, чем на пакеты НПС с другого конца карты, но! Даже в этом случае, если пустить все это на самотек, игре потребуется аж до 15-ти секунд, чтобы сообразить, что пакеты пора обновлять. Это нормально. Но можно побороться и с этим: принудительно заставить игру пересмотреть стак пакетов актера. Делается это так (если Actor01 - это проперти типа ReferenceAlias):   Actor01.GetActorReference().Evaluatepackage()     .

Опубликовано (изменено)
31.01.2018 13:20:02, werr сказал(-а):

Например, в конце каждой этой сцены запускай его, попутно обнуляя значение глобальной переменной IsPossibleToActivateNextQuest.SetValue(0) .  

 

Это движок так обрабатывает AI пакеты. ....... Но можно побороться и с этим: принудительно заставить игру пересмотреть стак пакетов актера. 

 

 А перегрузки движка не будет? В смысле, тормозов?

 

 

Принудительно заставить игру пересмотреть стак пакетов актера. Делается это так (если Actor01 - это проперти типа ReferenceAlias):   Actor01.GetActorReference().Evaluatepackage()     .

 

А этот пересчет пакетов в какое место вставлять? Квест без стадий, только сцена.

 

И правильно, наверное, будет Alias_Actor01.GetActorReference().Evaluatepackage() да?

Изменено пользователем gangrena2
Опубликовано
01.02.2018 05:59:59, gangrena2 сказал(-а):

А перегрузки движка не будет? В смысле, тормозов?


А этот пересчет пакетов в какое место вставлять? Квест без стадий, только сцена.

И правильно, наверное, будет Alias_Actor01.GetActorReference().Evaluatepackage() да?

Все будет хорошо.

Вставлять надо в папирус-фрагмент начала сцены (скриншота нет). У сцен есть папирус секция в каждой фазе, а есть и для всей сцены целиком. Кнопка Edit Scene Data (СК не перед глазами).

То, что стоит перед GetActorReference(), должно быть проперти типа ReferenceAlias, да (Alias_Actor01 в твоем примере). Сам префикс Alias_смысловой нагрузки не несет, если ты об этом. Это то, что называется "семантика", а не "синтаксис". Хоть aaaaAzino_3topora назови:).
Опубликовано

Здравствуйте, такой вопрос, вот есть мод с реплейсером брони. Как можно переделать его так чтобы эта броня была автономной и менялась на станке как в тех реплейсерах которые есть автономные. Я что-то не нашел вменяемой инструкции, а через Creation Kit попробовал залезть запутался. Т.е. Мне нужна заплатка которая ставится вместо файла esp мода или после и делает броню автономной.

Опубликовано
01.02.2018 14:40:11, ksenz83 сказал(-а):
Т.е. Мне нужна заплатка которая ставится вместо файла esp мода или после и делает броню автономной.

Если модели у тебя уже есть, надо только внедрить их в игру.

В интернете целая куча гайдов по созданию брони и оружия. Как в текстовом формате, так и в видео. Гугли.

Ничего сложного там нет, если будешь четко по пунктам действовать.

Опубликовано (изменено)
01.02.2018 11:37:38, werr сказал(-а):

 

 

Чего-то ничего не меняется: Вилкас топчется с места на место, то там присядет, то сям, и все молчат...

 

Я правильно сделала? Вот как:

 

В Сцене жмем Edit Data
В верхнем окне папируса ставим ; и компилируем. Справа появляется скрипт. Добавляем туда два проперти типа ReferenceAlias (пусть будут actor1 и actor2) и назначаем на них наших нпс.
В окне папируса заменяем ; на
actor1.GetActorReference().EvaluatePackage()
actor2.GetActorReference().EvaluatePackage()

 

Все скомпилировалось, но результата пересчета пакетов не видно :(

 

Все, вопрос снят: я сделала то же, но на первом топике диалога.

Изменено пользователем gangrena2
Опубликовано (изменено)

Здравствуйте, у меня вылетает Creation Kit при любой попытке подгрузить мод Race Compatibility. Никаких ошибок не выдает, просто закрывается. С другими модами, не имеющими Race Compatibility как мастер файл, все нормально. В чем может быть дело?

Изменено пользователем Vall-i
Опубликовано

Как предотвратить зависание диалоговых сцен между двумя НПС?

Иногда они срабатывают адекватно, а иногда оба непися при встрече стоят и задумчиво смотрят друг на друга.

Опубликовано
08.02.2018 18:07:13, mr Jygalag сказал(-а):

Вопрос - нормально ли то, что интерьер домов/усадьб из "Углей очага" отображается некорректно, т.е. без стен, фурнитуры и etc?

HearthFires.bsa добавлен в SkyrimEditor.ini?

Опубликовано

Добрый вечер. Не подскажите в чем дело: пропал маркер коллизий, т.е. нажимаешь на квадратик, а сам желтый  прямоугольник не появляется. Ни на триггерах, ни на предметах. просто все застывает  и ничего не происходит. Вроде бы никакие лишние кнопки не нажимала. До этого все было ок. Как вернуть его?

Заранее спасибо.

  • 2 недели спустя...
Опубликовано

Добрый день.

 

В процессе создания квеста по туториалу gkalian "Creation Kit Tutorial №15 - Создание квеста (часть 2)" при попытке выполнить компиляцию скрипта:

 

"GetOwningQuest().SetObjectiveDisplayed(10)

GetOwningQuest().SetStage(10)"

 

Выдает ошибку:

 

Starting 1 compile threads for 1 files...
Compiling "TIF__01000D6D"...
<unknown>(0,0): Unable to find flags file: TESV_Papyrus_Flags.flg
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__01000D6D.psc(3,0): Unknown user flag Hidden
No output generated for TIF__01000D6D, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on TIF__01000D6D

Опубликовано (изменено)

Доброго времени суток, в Creation Kit создал персонажа по уроку, выставил только все базовое имя, id, расса, сохранил, выкинул в мир(в мире появился), CK дал ему 01000D62(в консольке при нажатии на него) я ему прописал bbbTestNPC и в игре при вводе player.placeatme <id> 1 консоль пишет что такого нету и не призывает, пробовал свой id и игровой(вроде base и ref), файл подключен в менеджере, подскажите в чем может быть проблема ?

Изменено пользователем akigami

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×
×
  • Создать...