Модератор форума: Santiya  
Форум - gamer-mods » Creation Kit » Все о Creation Kit для Skyrim » Вопросы по Creation Kit
Вопросы по Creation Kit
02.07.2016 в 21:31:52, сообщение 256
Offline
Дух-хранитель
Эксперт
1346 постов
Кто знает, объясните пожалуйста.
Суть вопроса в следующем:
Что в СК, что в RaceMenu, когда мы задаём оттенок персонажу, мы работаем с цветовой моделью RGB. В ней каждый цвет (красный, зелёный, синий) в отдельности, имеет числовое представление целым числом типа uint8. Диапазон 0 - 255 для каждого цвета. Это 1 байт, 8 разрядов.
Когда мы целиком создали персонаж в СК, то сохраняем плагин esp, а комбинацией Ctrl+F4, создаём nif-модель головы и dds-маску оттенка. Замечательно.
А где-же оттенок тела? А он закодирован в плагине. Если открыть плагин с помощью TESVSnip (лучше именно этой программой), и посмотреть GRUP(NPC_)/NPC_(имя парсонажа), то найдём 12-байтную структуру QNAM. И что? А там каждый цвет (красный, зелёный, синий) в отдельности, уже имеет числовое представление числом типа float. А это 4 байта, 32 разряда.
С помощью TESVSnip можно просмотреть QNAM и встроенным HEX-редактором. Там можно увидеть цвета, выраженные и в int, и в HEX... Но, всё теми-же 32-разрядами.
И вот вопрос - Каким образом однобайтное выражение цвета в СК разрослось до четырёх байт на цвет в плагине? Должно-же быть какое-то соответствие... 
32-бита это, извините, уже TrueColor.
Почему меня это заинтересовало? В СК набор, для создания нормального лица, недостаточен. А вот RaceMenu - другое дело. Но если я хочу лицо, созданное в RaceMenu, перенести на NPC, мне нужна не только голова nif-модели, но и тинт-маска. А как поменять цвет тела NPC, чтобы он соответствовал тинт-маске лица? Какие цифры вписать в QNAM?
Цвет R = 122 в СК, например, это сколько будет в QNAM?
03.07.2016 в 05:58:52, сообщение 257
Offline
Дух-хранитель
Эксперт
1346 постов
Мдя...
Разобралась, наконец. Оказалось всё так просто, что плакать хочется.
Неужели я на столько тупая?
Что я только не изучила, где только не лазила... 
И копалась в стандарте представления чисел IEEE 754; до-посинения штудировала классы float; изучила цветовые модели RGB, HSL, SMIK, LaB с альфой и без, и порядок их конвертации между собой.
Далее, изучила стандарт представления цветов в Win32 COLORREF; по-копалась с функцией ChooseColor из библиотеки commdlg.dll (кстати, именно этой функцией в СК вызывается цветовая панель в расширенном виде "Define Custom Colors..."); возилась с макрокомандами типа DIBINDEX, GetRValue, GetGValue и т. п.
Наконец, доползла до представления данных цвета в Direct3D, и там обнаружила значения типа D3DCOLOR со знакомым диапазоном 0 - 255, и значения типа D3DCOLORVALUE, выражаемые числом с плавающей точкой (float) и диапазоном 0.0 - 1.0. И там... конвертация.
Блин, ну нет ничего проще:

COLORREF c = ...;
D3DCOLORVALUE cv;
cv.r = GetRValue© / 255.0;
cv.g = GetGValue© / 255.0;
cv.b = GetBValue© / 255.0;

То-есть, тупо берём значение цвета (например красного R), установленного в том-же CK или RaceMenu, и делим на 255. Например, R=87. Тогда float R = 87/255 = 0,3411765. Это и есть то значение цвета R, которое записывается в структуру QNAM (Skin Tone). Аналогично, и для остальных цветов.

Теперь, для чего это, и как использовать. В RaceMenu делаем из своего ГГ красавца, чтобы сделать красавцем какого-либо NPC. Выбираем оттенок кожи, какой нравится. Цифирки значений R, G, B записываем на листик. Экспортируем модель головы и тинт-маску. Как прикручивать голову к NPC, полагаю, объяснять не надо - имя nif и dds - файлов головы меняем на номер ID NPC, в nif-файле головы меняем имя файла тинт-маски на новое, что дали dds-файлу.
С помощью TESVEdit, в плагин-файле открываем NPC_ запись нашего непися, и ищем QNAM. Там три строки - сверху вниз, соответствуют R, G, B. Наши циферки, что записали на листик, конвертируем делением на 255, округляем до 7-го знака после запятой, и вписываем в строки QNAM.
Всё! Теперь оттенок тела соответствует оттенку лица.
Сторонние волосы, глаза и прочее (если они есть), тоже добавляем с помощью TESVEdit.
Так мы полностью поменяем внешность любого NPC, используя только RaceMenu и TESVEdit.
05.07.2016 в 18:06:30, сообщение 258
Offline
Проверенные
Горожанин
4 постов
как сделать сундук в котором через определенное время добавлялись деньги
05.07.2016 в 21:58:46, сообщение 259
Offline
Дух-хранитель
Эксперт
1346 постов
ksv042, для себя или для игры?  :D
А если серьёзно, то достаточно поставить галочку Respawns в свойствах сундука.
06.07.2016 в 20:36:29, сообщение 260
Offline
Проверенные
Горожанин
4 постов
anizorda, Спасибо за ответ. так  уже пробовал не работает. надо чтобы через пару дней в контейнере появлялись деньги примерно 100 через 5 дней было 500 и тд.
07.07.2016 в 06:00:44, сообщение 261
Offline
Дух-хранитель
Эксперт
1346 постов
ksv042, а,теперь поняла, что Вы хотите. Вам нужно будет с сундуку прикрутить скрипт, примерно такой конструкции

GlobalVariable Property GameDaysPassed Auto

Function GoldChest()                
RegisterForUpdate(60.0)
EndFunction

Event OnUpdate()
int dayOfGold1 = GameDaysPassed.GetValue() as int
Utility.WaitGameTime(24.0)
int dayOfGold2 = GameDaysPassed.GetValue() as int
If dayOfGold1 < dayOfGold2
Chest.AddItem(GoldBase, 100)
EndIf
EndEvent

Попробуйте, по-экспериментируйте.
09.07.2016 в 00:16:59, сообщение 262
Offline
Проверенные
Горожанин
13 постов
Приветствую, коллеги!) Хотелось бы узнать такую вот маленькую детальку: как поменять
цвет призываемому существу (в данном случае это питомец)?
09.07.2016 в 04:05:08, сообщение 263
Offline
Дух-хранитель
Эксперт
1346 постов
Bolgarec75, да вроде так-же как и остальным персонажам. Это ведь тоже Character, только типа Сreature, группы Animals.
Или грубой перекраской/подменой текстур.
09.07.2016 в 06:10:33, сообщение 264
Offline
Проверенные
Горожанин
13 постов
Не)) Я имел ввиду другое. Вот питомец сам по себе - обычный волк (хоть снежный,хоть какой ещё, но у него прописаны в привязанных мэджик-эффектах кейворды.скрипты, короче неважно... и он становится в виде призрака синего цвета, а я хотел красным его сделать. Правда во всём уже сам разобрался, прочитав тонны туторилов на инглише в инете, блина почти 6 утра у нас в Москве, а я тока спать ложусь, но сзато с явно счастливым осадком на душе. Спасибо за помощь!)..
09.07.2016 в 08:04:37, сообщение 265
Offline
Дух-хранитель
Эксперт
1346 постов
Bolgarec75, рада за Вас. Только Вы делитесь, может кто-то ещё мается с подобной задачей.
Сама испытала, каково это, когда нужен совет а помочь некому.
09.07.2016 в 14:06:16, сообщение 266
Offline
Проверенные
Горожанин
13 постов
anizorda, да не вопрос)) В общем находим (как в моём случае уже имеющегося питомца EncSummonFamiliar, дублируем его и переименовываем в EncSummonFamiliarPotent, тобиш усиленная версия его, которая будет заменять собой обычного питомца, когда у игрока взят перк в колдовстве Elemental Potency, в переводе "Усиленные атронахи" (требуемый уровень колдовства 80). Я назвал новую зверюшку "Спектральный питомец" (не знаю почему, название понравилось))) Далее находим AbFamiliarVisuals (это мэджик-эффект, который использует питомец обыкновенный)) Опять же, дублируем его и именуем AbFamiliarPotentVisuals. В образовавшемся дубле находим параметр "Hit Shader" (он то и отвечает за "духовную внешность зверька)). Там по умолчанию выбрано GhostFXShader - синий дух короче)) (такой шейдер используют почти что все духи в игре)" Заменяем его на GhostWolfSpiritFXShader (такой шейдер используется лишь для трёх "моделек" в игре: у изгоняемого духа волка Кодлака и призываемых вервольфом в Dawnguard'е членов стаи (волков и других вервольфов). Отличие его в том, что он "цвета красного духа", а не голубого. Вот поэтому мы его и выбираем. Следом сразу создаём дубль для спелла FamiliarVisuals и переименовываем его в FamiliarPotentVisuals (и в нём меняем мэджик эффект на созданный нами ранее AbFamiliarPotentVisuals. Ну а самому новому питомцу ставим в разделе спеллов FamiliarPotentVisuals). Понимаю, что ничего непонятно, у меня красноречие не прокачено)), но поэтому, извиняйте, старался как мог))) Всего Вам доброго и удачной работы в Creation Kit!)...

Ах да, чуть не забыл важную деталь: в оригинальной игре после взятие вышеприведённого перка усиленными становятся только атронахи и трэллы (огненный, грозовой и морозный). У маленького волчонка, доступного бретонцам с самого начала игры лишь уровень 2 максимум и он не растёт вместе с довакином, поэтому становится бесполезным на высоких уровнях, а также его никакие перки не усиливают. Отсюда вытекает последний пункт: нужно найти в криейшен ките мэджик эффект SummonFamiliar, дублировать его и назвать скажем PerkSummonFamiliarPotent. В нем уже в разделе Target Conditions (там окажется пустое поле создаём новую зависимость: выбираем в Condition Function HasPerk --> вместо "INVALID" выбираем ElementalPotency, Comparsion "=", Value "1" В графе Assoc Item 1 выбираем нашего EncSummonFamiliarPotent и закрываем это дело. Далее в стандартном спелле вызова ConjureFamiliar просто добавляем созданный нами перк PerkSummonFamiliarPotent. Получается создаётся прямая зависимость вызова зверька того или иного вида от наличия перка у Довакина))
09.07.2016 в 14:13:42, сообщение 267
Offline
Дух-хранитель
Эксперт
1346 постов
Bolgarec75, спасибо. Всё чётко и понятно.
Наверно, можно и сами шейдеры разнообразить.
09.07.2016 в 14:35:32, сообщение 268
Offline
Проверенные
Горожанин
13 постов
Рад был помочь и поделится опытом. Могу Вам скинуть свой плагин, в котором все атронахи, включая и нового мною созданного волчонка растут вместе с игроком и более сильные нежели в оригинале, так что не теряют свою актуальность даже на поздних этапах игры.

А вот шейдеры разнообразить легко, там просто дублируешь какой-нибудь и в нём уже меняешь цвета как тебе угодно (хоть зелёного духа вызывать можно таким образом, но думаю это будет выглядеть не совсем лорно (хотя... кто в наше время задумывается о лоре - лишь бы игровой процесс бы затягивал))
09.07.2016 в 14:43:58, сообщение 269
Offline
Дух-хранитель
Эксперт
1346 постов
Bolgarec75, могу посоветовать Вам оформить Вашу работу как мод, и выложить здесь на сайте. 
Уверена, многим понравится.
Но, надо быть готовым к возможной критике.
09.07.2016 в 15:06:43, сообщение 270
Offline
Проверенные
Горожанин
13 постов
Дело в том, что мод я скачал с нексуса, но с того времени уже много воды утекло и я там наковырял от себя прилично. Так что работа изначально, то есть плагин не мой, а модмейкера с Нексуса Atronach Scaling. Посему такой шаг был бы мягко говоря не совсем приличным с моей стороны, так что я пожалуй воздержусь.)) Это я вам просто в разговоре тет-а-тет, как коллеге и доброжелательному единственному откликнувшемуся форумчанину предложил этот мод. А так... я его чисто для себя сделал. Так и получается уже который год скачиваю всякие моды, правлю в них всё на свой вкус,, что получается и играюсь со своим пакетом плагинов в скурим. А всяческие популярные сборки - это не для меня. На вкус и цвет фломастеры всегда будут разные))...
Форум - gamer-mods » Creation Kit » Все о Creation Kit для Skyrim » Вопросы по Creation Kit
Поиск:
Сайт не предназначен лицам ниже 18 лет  Gamer-mods.ru © 2012 - 2018 Политика конфиденциальности Распространение материалов без разрешения администрации или авторов запрещены.