Форум » TES V: Skyrim » Библиотека модмейкера » Вопросы по Creation Kit. Старая тема (Тут вы можете задать вопросы по редактору Скайрима)

Вопросы по Creation Kit. Старая тема
Морфин  Сообщение №1 написано: 7 февраля 2012, 21:38

Тема по работе с редактором Skyrim Creation Kit.

----------
Полезная информация:

Видео уроки:


Предупреждаю! За оффтоп и флуд буду наказывать беспощадно!

Multigone  Offline  Сообщение №8791 написано: 6 сентября 2014, 19:41 | Отредактировано: Multigone - 6 сентября 2014, 19:42



832
baglebld, скриптом. Его пример для книги:



Далее, в Constructible, в своем рецепте создания  брони, в поле Conditions указываем:

(S) (GetGlobalValue) (MyGLOB) (==) (1) (AND)

После этого условия ставятся остальные, определяющие требования к навыкам / перкам.

Я привел только один вариант решения вопроса, не исключено, что существуют другие.

VALKNUT  Offline  Сообщение №8792 написано: 7 сентября 2014, 04:08 | Отредактировано: VALKNUT - 7 сентября 2014, 04:13



Всем привет!
Ребята и девчата, прошу подсказку...

Мне нужно заставить НПС выполнить некую анимация(в моем случае каст с двух рук).
У меня есть диалог, во время которого НПС совершает колдунство(над собой) и совершение каста у меня проходит без проблем...

myCast.Cast(akSpeaker)

Но как заставить НПС эпично махать руками??? lol

Ииии второй вопрос, с вашего позволения..
Как принудить ГГ прочитать некую книгу/записку/рецепт?
Ну, в смысле, что при наступлении некоего момента, книга раскрывается так, как если бы игрок раскрыл ее подбирая или из инвентаря...

======
Заранее признателен!

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Arin  Offline  Сообщение №8793 написано: 7 сентября 2014, 04:34



570
Цитата VALKNUT

Как принудить ГГ прочитать некую книгу/записку/рецепт? Ну, в смысле, что при наступлении некоего момента, книга раскрывается так, как если бы игрок раскрыл ее подбирая или из инвентаря...

Вспомни первый квест коллегии бардов. Глава коллегии достает книгу (читаем - черновик барда), листает её и говорит, что стихи - отстой. Тебе не подойдет эта анимация? Если что - её можно найти в интерьере коллегии или в квестовом пакете.

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
VALKNUT  Offline  Сообщение №8794 написано: 7 сентября 2014, 04:59 | Отредактировано: VALKNUT - 7 сентября 2014, 05:00



Цитата Arin

Вспомни первый квест коллегии бардов. Глава коллегии достает книгу (читаем - черновик барда), листает её и говорит, что стихи - отстой. Тебе не подойдет эта анимация? Если что - её можно найти в интерьере коллегии или в квестовом пакете.


Неее.. мне нужно не это... мне нужно чтоб книга открылась принудительно.
То есть: наступил какой-то момент... и книга открылась для чтения, как если бы ее открыл игрок тыцкнув по ней.

Но все равно благодарю!

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Dsion  Offline  Сообщение №8795 написано: 7 сентября 2014, 09:38 | Отредактировано: Dsion - 7 сентября 2014, 09:20



VALKNUT, для каста заклинания я бы сначала попробовал не функцию скрипта, а пакет с процедурой UseMagic. Анимация должна работать.
Потом можно попробовать пакет с прописанной Idle в "Use Specific Idles".
Если не сработает, тогда остается уже функция PlayIdle(Idle akIdle).

Добавлено (07 Сентября 2014, 13:38)
---------------------------------------------
Еще по поводу книги. Если она лежит где-то в мире, то достаточно просто вызвать на ней Activate(Game.GetPlayer()). Прочитается даже если игрок в другой локации.
А если она должна лежать в инвентаре... Ну тоже можно вызвать на ней Activate, но для этого она, скорее всего, должна быть в алиасе квеста. Чтоб имела уникальный ID.


mxac  Offline  Сообщение №8796 написано: 7 сентября 2014, 12:44 | Отредактировано: mxac - 7 сентября 2014, 13:13



178
Цитата Multigone

baglebld, скриптом. Его пример для книги: Scriptname MyScript extends ObjectReference     ; Для книги. GlobalVariable Property MyGLOB Auto     ; Создай свою глобальную типа Int - Short, значение 0. Для каждого рецепта нужна отдельная глобальная. Auto STATE Ready     EVENT OnRead()         MyGLOB.SetValueInt(1)         GoToState("Done")     ENDEVENT ENDSTATE STATE Done ENDSTATE Далее, в Constructible, в своем рецепте создания  брони, в поле Conditions указываем: (S) (GetGlobalValue) (MyGLOB) (==) (1) (AND) После этого условия ставятся остальные, определяющие требования к навыкам / перкам. Я привел только один вариант решения вопроса, не исключено, что существуют другие.

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


VALKNUT  Offline  Сообщение №8797 написано: 7 сентября 2014, 19:07



Цитата Dsion

Если она лежит где-то в мире, то достаточно просто вызвать на ней Activate(Game.GetPlayer()). Прочитается даже если игрок в другой локации.


Как понять "на ней"?
Я хочу сунуть под нос ГГ раскрытую записку, при наступлении стадии квеста...
myBook.Activate(Game.GetPlayer()) папирус ругается... /Activate is not a function or does not exist/

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Dsion  Offline  Сообщение №8798 написано: 7 сентября 2014, 19:40



На ObjectReference есть функция Activate

Добавлено (07 Сентября 2014, 23:40)
---------------------------------------------
Я проверил всё перед тем как писать.


VALKNUT  Offline  Сообщение №8799 написано: 7 сентября 2014, 20:29 | Отредактировано: VALKNUT - 7 сентября 2014, 20:52



Цитата Dsion

На ObjectReference есть функция Activate


Но у меня негде ObjectReference подхватить...
В одном месте, где я могу инициировать чтение книги - "extends activemagiceffect", в другом "Extends Quest Hidden"(код в стадиях квеста)

==АП
Во туплю! Понял! Благодарю!!!

==АП АП
С книгой все получилось...
С анимацией, ну хоть убей... не выходит... :)
И пакеты назначал(разные) и idle прикручивал... буду рыть дальше..

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Kepper  Offline  Сообщение №8800 написано: 8 сентября 2014, 07:49



860
Цитата VALKNUT

С анимацией, ну хоть убей... не выходит... :)


Найдёшь способ, пожалуйста поделись.
А то я всё пытался сделать так чтобы ГГ садился в позу лотоса, но максимум чего добился это появление ГГ в этой позе после телепортации.

VALKNUT  Offline  Сообщение №8801 написано: 8 сентября 2014, 08:12



Цитата Kepper

Получилось открыть на чтение из инвентаря без выкидывания в мир?


Закинул в мир...
после этого скриптом добавляю в инвентарь..

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Multigone  Offline  Сообщение №8802 написано: 8 сентября 2014, 08:13



832
Kepper, в моде Frostfall можно включить опцию, что когда ГГ оказывается рядом с костром, на нем проигрывается анимация "погреть руки". Скрипты там открытые (можно глянуть исходники), во всяком случае, в той версии, которая у меня была. Правда, их количество там большое, придется искать долго, наверное.

Dsion  Offline  Сообщение №8803 написано: 8 сентября 2014, 12:36



Цитата VALKNUT

С анимацией, ну хоть убей... не выходит... :)


Тебе точно не подходит пакет с процедурой UseMagic?
Я только что перепроверил: NPC послушно колдует заклинание, размахивает руками и всё как надо.

Допустим, я знаю, как запустить анимацию через скрипт... Но толку-то? Руки у NPC не светятся, характерных для серьезного колдунства звуков нету. Зачем оно тебе?

VALKNUT  Offline  Сообщение №8804 написано: 8 сентября 2014, 13:03



Цитата Dsion

Допустим, я знаю, как запустить анимацию через скрипт... Но толку-то? Руки у NPC не светятся, характерных для серьезного колдунства звуков нету. Зачем оно тебе?


В том-то и дело, что НПС светится, закл кастуется... но НПС при этом остается в той-же позе...
То есть происходит все, что нужно, кроме махания руками...

Я пробовал и UseMagic, указывал в пакете и спелл и касующего и таргет(кастующий).. но никаких движений..
Я делал пустой пакет, используя только вкладку Idle, добавив там анимацию.. и тоже голяк...

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

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Arin  Offline  Сообщение №8805 написано: 8 сентября 2014, 13:53



570
Всем доброго вечера!

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Aksyonov  Offline  Сообщение №8806 написано: 8 сентября 2014, 14:11



937
Цитата Arin

Всем доброго вечера!


Здравствуй Arin как дела с вашим глобальным модом?

baglebld  Offline  Сообщение №8807 написано: 9 сентября 2014, 18:05 | Отредактировано: baglebld - 9 сентября 2014, 18:06



38
Цитата Multigone

скриптом. Его пример для книги: 

Scriptname MyScript extends ObjectReference
; Для книги.

GlobalVariable Property MyGLOB Auto
; Создай свою глобальную типа Int - Short, значение 0. Для каждого рецепта нужна отдельная глобальная.

Auto STATE Ready
EVENT OnRead()
MyGLOB.SetValueInt(1)
GoToState("Done")
ENDEVENT
ENDSTATE

STATE Done
ENDSTATE

Далее, в Constructible, в своем рецепте создания  брони, в поле Conditions указываем:

(S) (GetGlobalValue) (MyGLOB) (==) (1) (AND)

После этого условия ставятся остальные, определяющие требования к навыкам / перкам.

 Можно еще поподробней, а то не догоняю.


Multigone  Offline  Сообщение №8808 написано: 9 сентября 2014, 19:53 | Отредактировано: Multigone - 9 сентября 2014, 20:07



832
baglebld,

Создаешь текстовый файл, меняешь его расширение на .psc.
Открываешь его Notepad++. Вставляешь текст скрипта. Важно: файл .psc должен называться так же, как в тексте скрипта.
Пример: если в тексте написано Scriptname MyScript extends ObjectReference, значит, файл .psc должен называться строго MyScript.psc
Закидываешь свой MyScript.psc в папку Data -> Scripts -> Source. Там хранятся исходники скриптов.
В СК открываешь окно Gameplay -> Compile Papyrus Scripts... (оно сверху). Выбираешь MyScript.psc (ставишь флаг). Нажимаешь кнопку Compile. Ждешь 1 секунду, пока скомпилируется. Готовый скрипт находится в папке Data -> Scripts, имеет расширение .pex.

Создаешь книгу Items -> Book. Проще всего скатать ее с уже имеющейся.
Как скатать: открываешь подходящую книгу, меняешь ее название в поле ID на свое собственное (MyBook). Нажимешь ОК -> ОК.
Создаешь глобальную Miscellanious -> Global с типом Short, значение 0. Как создать: в окне объектов нажимаешь ПКМ - New. Называешь ее MyGLOB, или как угодно.
Открываешь MyBook, в поле Scripts нажимаешь Add. Выбираешь MyScript -> OK. Открываешь свойства скрипта (2 раза ЛКМ по скрипту, или ПКМ - Edit Properties). Нажимаешь кнопку Auto-Fill All. Переменная MyGLOB заполнится автоматически, поскольку название (и тип) переменной скрипта совпадает с созданной тобой глобальной MyGLOB. В случаях, когда названия не совпадают, переменные заполняются вручную с помощью кнопки Edit Value.
Нажимаешь ОК -> ОК. Присоединение скрипта к книге завершено.

Создаешь свой рецепт Items -> Constructible Object. Называешь его MyCOBJ, или как угодно. Подробнее о рецептах. В поле Match Conditions создаешь новое условие (ПКМ - New):
Run On: Subject
Condition Function: GetGlobalValue
Нажимаешь большую кнопку INVALID и выбираешь свою глобальную MyGLOB.
Comparison: ==
Value: 1.0000
ОК -> ОК.

Условие читается как: "Если значение указанной глобальной равно единице, то...".

Важно: для каждого рецепта (которые с требованием прочтения книги) нужны будут отдельные:
- глобальная.
- условие в рецепте с проверкой значения этой глобальной.
- книга (скрипт можно использовать один на все книги, но Properties скрипта нужно будет заполнять вручную этой глобальной).

-----------------------------------------------------------------

Сохраняешь свой плагин.

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

Все.

Kepper  Offline  Сообщение №8809 написано: 10 сентября 2014, 06:15



860
Я себе для компиляции скриптов bat файл соорудил.
Благодаря нему можно хранить исходники скриптов в произвольной папке.

Делаем текстовый файл.
Копируем в него код приведёный ниже.
Меняем расширение с txt на bat.
И закидываем в папку с вашими .psc файлами.

При запуске в появившемся окне можно увидеть лог компиляции и отчеты об ошибках.
Если компиляция прошла успешно, то жмем любой кнопку на клавиатуре и скомпилированные файлы отправятся в папку с игрой.
Если провалилась то где были замечены ошибки и просто закрываем окно.
Код
"C:/Steam/SteamApps/common/Skyrim/Papyrus Compiler/PapyrusCompiler.exe" . -f="TESV_Papyrus_Flags.flg" -i="C:/Steam/SteamApps/common/Skyrim/Data/scripts/source/" -o="../" -all

pause

copy ..\*.pex C:\Steam\SteamApps\common\Skyrim\Data\scripts\


"C:/Steam/SteamApps/common/Skyrim/Papyrus Compiler/PapyrusCompiler.exe" - путь к вашему компилятору
-i="C:/Steam/SteamApps/common/Skyrim/Data/scripts/source/" - путь к каталогам содержащим прочие исходники.
Если таких каталогов несколько то перечисляем их чере ;
-i="C:/Steam/SteamApps/common/Skyrim/Data/scripts/source/";"C:/Steam/ХранилищеВашихМодов/"
-o="../" - указывается куда будут попадать скомпилированные файлы(в данном случае в родительскую папку)

Multigone  Offline  Сообщение №8810 написано: 10 сентября 2014, 06:51



832
Kepper, хорошее дело! Только я храню временные скрипты на раб. столе, там же ярлык к игровой папке с исходниками. Что может быть проще?

Kepper  Offline  Сообщение №8811 написано: 10 сентября 2014, 08:56 | Отредактировано: Kepper - 10 сентября 2014, 08:58



860
Пользоваться Compile Papyrus Scripts... несколько неудобно из-за того что первый раз она очень долго вызывается(считывает общий список), да и для поиска своего скрипта надо делать дополнительные телодвижения.

Компиляция средствами СК в окнах редактирования конкретных обектов(Book, quest и тд) не выводит отчёты об ошибках(может у меня что-то криво настроено, так как само поле под отчёт об ошибках присутсвует, но я не нашел где, что надо подкрутить)

Мой способ позволяет скомпилировать все скрипты мода за один-два клика.
При совместном использовании с Skyrim Mod Organizer все компоненты твоего мода находятся в одной папке(то есть при публикации ничего не потеряется).
Из минусов
- надо следить за скриптами генерирующимися автоматически при составлении квестов

Цитата Multigone

Только я храню временные скрипты на раб. столе, там же ярлык к игровой папке с исходниками.


То есть ты в ручную кидаешь скрипты с рабочего стола в игровую папку исходников, а затем в СК находишь и компилируешь свои скрипты?

Multigone  Offline  Сообщение №8812 написано: 10 сентября 2014, 09:41



832
Kepper, угу. Я уже привык к стандартным средствам СК. Да и скриптов не столько, чтобы завалить весь рабочий стол... Так, хобби.

baglebld  Offline  Сообщение №8813 написано: 10 сентября 2014, 12:21



38
Multigone спасибо

@perture  Offline  Сообщение №8814 написано: 10 сентября 2014, 19:13


$cience innov@tor


Цитата Kepper

Я себе для компиляции скриптов bat файл соорудил.Благодаря нему можно хранить исходники скриптов в произвольной папке.


ИМХО самый удобный вариант. По сути, запускается тот же батник, только из фиксированной директории, к чему плодить папки со скриптами. Пишем/правим скрипт, жмем клавишу, читаем лог, наслаждаемся результатом.


"Не спорьте с идиотами! Вы опуститесь до их уровня, а там они вас задавят своим опытом!" ©
Kepper  Offline  Сообщение №8815 написано: 11 сентября 2014, 06:19



860
@perture, ух ты оказывается что есть. Надо попробовать.

@perture  Offline  Сообщение №8816 написано: 11 сентября 2014, 08:30 | Отредактировано: @perture - 11 сентября 2014, 12:25


$cience innov@tor


Цитата Kepper

Надо попробовать.

Для этого находим файл shortcuts.xml в директории Notepad и в массиве <UserDefinedCommands> вносим новую команду для компилятора. Горячую клавишу в последствии можно поменять непосредственно в Notepad.



Путь и название bat-файла меняем на свои. Вносить изменения надо в блокноте, не в Notepad, иначе они не сохранятся.

Далее создаём батник, на который будет ссылаться Notepad. Опять же, ссылаться можно на любые директории, у меня всё по классике.



Кстати, скрипты компилируются так же из любой директории, только моим батником они не копируются, а сразу компилируются по пути data/scripts в директорию игры.

"Не спорьте с идиотами! Вы опуститесь до их уровня, а там они вас задавят своим опытом!" ©
F_Constantine  Offline  Сообщение №8817 написано: 11 сентября 2014, 12:36



48
Привет всем.

Народ, подскажите: как переодеть персонажа из мода в одежку из другого мода?

Запускаю в Creation Kit мод с одежкой и мод со спутницей, последний делаю активным. Открываю все нужные мне одежки, что-то там меняю для видимости, жму везде ОК - чтоб они "отметились" в новом моде (спутницы). Создаю оутфит из нужных вещичек, одеваю девочку в этот оутфит в ее настройках, вижу в Creation Kit девочку в новой одежке, сохраняю. Мод со шмотками в лаунчере стоит выше (раньше) мода со спутницей. Захожу в игру - девочка голышом. "Подождать 30 дней до обновления" не помогает, resurrect в консоли, который всегда помогает при замене оутфита - не помогает.
 
С помощью "Кольца переодевания" (есть такая штучка, тоже из мода, которая позволяет снять оутфит с любого персонажа) вижу названия прописанных мной шмоток в инвентаре спутницы. Т.е. они все же есть, но не отображаются - не "подхватились" модели/текстуры.

Почему? Что не так сделал или что еще надо сделать?

Dsion  Offline  Сообщение №8818 написано: 11 сентября 2014, 12:58



Можно вообще убрать ей аутфит. А потом наряжать во что угодно под настроение прямо в игре. Только с флагом PreventUnequip.
Захотел - надел броньку. Захотел - надел нижнее белье.

Можно, конечно, сделать и так, как ты хочешь, объединив моды. Но зачем? Разве не лучше, когда можешь переодеть спутницу во что-то другое, не открывая CK?

Добавлено (11 Сентября 2014, 16:58)
---------------------------------------------
Я сделал мод, который сам меняет одежду NPC, в зависимости от локации или от того, спят ли они. Но твоя задача намного проще.


F_Constantine  Offline  Сообщение №8819 написано: 11 сентября 2014, 14:36 | Отредактировано: F_Constantine - 11 сентября 2014, 14:37



48
Dsion,

Ну, так я и так могу переодевать их во что хочу - пока они со мной. Тем же "Кольцом Переодевания" - спасибо MYPRISM-у за "Небесный Замок" и это колечко в нем :) . Но по возвращении в свою локацию все компаньоны возвращаются либо к дефолтному оутфиту, либо (если вещи из оутфита забрать) остаются голышом, что меня как-то не устраивает lol .

Или есть какой-то способ оставлять их "пожизни" в том, во что я их одел последний раз? Сорри, ты, видимо считаешь меня несколько умнее, чем я есть :D - я, например, без понятия, что такое "флаг PreventUnequip". Поясни, пожалуйста, подробнее. Ну, или подскажи, если можешь, что я не так сделал с объединением модов.

Спасибо!

Dsion  Offline  Сообщение №8820 написано: 11 сентября 2014, 16:00



Если у NPC аутфита вообще нету и надеть на него вещи с этим флагом (скриптом или через консоль), то он их не снимет и не будет голым...
Можно сделать очень маленький и очень простой мод, чтоб NPC сразу надевал все вещи, что ему даешь, с этим флагом.

Форум » TES V: Skyrim » Библиотека модмейкера » Вопросы по Creation Kit. Старая тема (Тут вы можете задать вопросы по редактору Скайрима)
Поиск:





Ответ на жалобу смотрите в разделе жалоб