Подскажите, как переносить флаги, постеры, баннеры и тп. из Fallout 3 в FalloutNV. Например, постер Анклава, флаг США и так далее? Портировать нужный объект из Fallout3 в FalloutNV не сложно...
Во-первых, нам нужно извлечь модель объекта и его текстуры из bsa архивов игры Fallout3. Затем разместить модель и текстуры в папке нашего мода FalloutNV, в NifSkope прописать пути к текстурам (в том случае, если текстуры в папке вашего мода расположены по путям отличным от расположения в архиве bsa с текстурами игры). После чего при помощи GECK разместить подобный вашему объект в нужной локации, сменить его ID имя и изменить модель на свою.
А теперь подробно - на примере американского флага, модель которого USFlags01.nif, находится в bsa архиве Fallout - Meshes.bsa по такому пути meshes\clutter\flags
1. Извлекаем nif флага при помощи Fallout Mod Manager (FOMM) - про извлечение ресурсов при помощи FOMM читаем в Картотеке в разделе FOMMКак извлечь ресурсы из bsa архива
2. При помощи NifSkope открываем nif флага USFlags01 из того места, куда извлекли (распаковали) . Открыть NifSkope - в меню File выбрать пункт Load и в окне выбора найти USFlags01.nif
В окне Block List, кликая по иконкам раскрытия блоков основного нода (чёрные треугольники), выбираем блок (нод) BSShaderTextureSet, а затем в окне Block Details раскрываем его и видим содержимое нода. Для нас нужен пункт Textures, раскрыв который мы видим Текстурный сет, в котором прописаны пути к текстурам: - Основной dds и карты нормалей (Normal Map) _n.dds Путь такой textures\clutter\flags\ и в этой папке две текстуры usflag01.dds и usflag01_n.dds
3. Извлекаем текстуры из bsa архива с текстурами игры Fallout - Textures.bsa, точно так же, как извлекли до этого модель nif.
4. Размещаем модель и текстуры для неё в папке нашего мода: - Nif в Data\Meshes\Clutter\Flags\ Папка мода - например, NewFlags - Текстуры в Data\Textures\Clutter\Flags\ Папка мода - например, NewFlags Если у вас в Data игры нет папок Meshes и Textures - создайте, и уже в них создайте остальные папки.
5. В Nifskope открываем nif USFlags01.nif из папки нашего мода в FalloutNV, и прописываем пути к текстурам из папки с текстурами нашего мода.
Как и при поиске текстур из 2. пункта, раскрываем Текстурный сет, а затем, кликая по иконкам синих "цветочков", выбираем сначала основную текстуру dds, а затем _n.dds., но уже из папки нашего мода в FalloutNV. В NifSkope пересохраняем nif USFlags01.nif - Главное меню - Files - SaveAs... и соглашаемся на замену файла .
У нас всё готово для продолжения работы в GECK! Но давайте заодно научимся менять игровую текстуру на свою, например, на Советский флаг.
Открываем текстуру dds в графическом редакторе, умеющем работать с форматом dds (Фотошоп, Gimp, PainNet и тп).
Далее описание для графического редактора Photoshop.
Выясняем размер картинки
Размер 256х256 пикселей. Размер нам нужен для того, что бы нарисовать или найти в интернете картинку Советского флага примерно такого же размера. Большего размера можно, меньшего нежелательно, так как при увеличении маленькой картинки до нужного размера - резко упадёт её качество. Нашли (нарисовали) - копируем и вставляем следующим слоем поверх картинки американского флага. Справа в окне Layers (Слои) видим два слоя - советский флаг и американский флаг. Подгоняем размер картинки советского флага ориентируясь по картинке флага US.
Удаляем слой с американским флагом, оставшееся белое (прозрачное место) заливаем чёрным цветом. Nif модель флага по высоте меньше чем 256, поэтому альфа канал не нужен (если вы не будете делать разрывы и прорывы от пуль). Часть текстуры, залитая чёрным, не войдёт на плоскость модели.
Или объединяем слои в один слой. При необходимости новым слоем добавляем прорывы от пуль, грязь, и тп. Все необходимые декали можно найти в архиве bsa с текстурами игры. Например impactdecalconcrete01.dds - разрывы от пуль. Но можно и сделать самому - взять инструмент ластик (резинка) и стереть на картинке флага текстуру в местах разрывов. Например так.
Затем при помощи инструмента "Волшебная палочка" выделяем все "стёртые" места. Производим инверсию - то есть меняем невыделенное на выделенное.
Переходим в Каналы, создаём новый альфа канал и заливаем всё выделенное белым цветом.
Получаем альфа канал, в котором всё, что будет видно, белое, а что не видно - чёрное.
Возвращаемся в Слои и сохраняем текстуру в папке вашего мода поверх usflag01.dds. File - SaveAs -в открывшемся окне выбрать тип файла D3D, DDS и имя файла. В открывшемся окне плагина NVIDIA выбрать DXT1 с альфа каналом. Можно выбрать DXT3, DXT5.
В Nifskope сразу же видим изменение - текстура советского флага. Отверстия (дырки и разрывы) пока белого цвета. Остается добавить нод NiAlphaProperty, отвечающий за работу альфа канала. Клик Правой кнопкой мышки по строке NiTriStrips (корень блока) и в открывшемся контекстном меню выбираем Node - Attach Property -NiAlphaProperty
После добавления нода NiAlphaProperty отверстия станут прозрачными. Можно менять цифровое значения Flags, кликнув по цифре рядом с иконкой флага. Значение Flags разное для растений, декалей, одежды и тп. Поэтому смотрите это значение в игровых моделях и ставьте такое же.
Нам осталось создать новую карту нормалей _n.dds. В Photoshop это делается через меню Фильтр - NVIDEO Tools - Nopmal Map Filters, в Gimp 2 через меню Фильтры - Карта - NopmalMap, в PaintNet нет такого плагина, можно использовать программу Crazybump. Очень удобная программа и создаёт не только карты нормалей, но и карты Displacement, Occlision, Specularity.
Сохраняем карту нормалей _n.dds, точно так же, как сохраняли диффузную dds.
Переходим в GECK - Главное меню - Files - Data, в окне Data ставим галку на FalloutNV.esm и нажимаем OK. Дожидаемся загрузки редактора и сохраняем через Главное меню - Files - Save сохраняем плагин под именем NewFlags (или любым другим, но английскими буквами). А если у вас уже есть мод для работы, ставите галку на FalloutNV.esm, затем на своём моде, делаете его активным. Запускаете редактор нажав OK. И ещё желательно отключить все дополнения, другие моды, если вы не планируете использовать ресурсы из них для своей работы. Так ваш мод не будет привязан к другим модам и дополнениям, тоесть в него смогут играть не устанавливая дополнительные моды и тп.
В окне Cell View, в списке World Space выбираем мир, интерьер и тп. Например мир WastelandNV, локация Goodsprings.
Делаем двойной клик по выбранной строке и в Рабочем окне переходим на место, где будет "висеть" флаг. Находим в окне Object Window игровую модель флага Static -Clutter - Flags, располагаем в нужном месте.
Меняем ID имя на своё (новое).
Затем меняем модель nif флага на свою. Нажием кнопку Edit справа от поля Model (в этом поле прописан путь к игровой модели, нам нужно сменить на путь к своей модели). В окне Model Data нажимаем на кнопку Edit и выбираем путь к nif, расположенному в папке нашего мода. Нажимаем OK и закрываем все окна.
Сохраняем плагин.
Примечание: С анимированной моделью флага, делаем всё то же самое. Извлекаем nif, например nv_foa_flag.nif, прописываем пути к своим текстурам и пересохраняем nif. А затем работаем в GECK, как описано выше.
Идём смотреть в игру. В Fallout Mod Manager подключаем наш esp NewFlags и запускаем игру. Добираемся до места и видим.
Дело сделано! Гудспрингс наш!
Изменение репутации для пользователя nikita2435
nikita2435Offline
Сообщение №122
написано: 14 июля 2013, 10:37
| Отредактировано: КсюXa - 17 января 2018, 04:31
Как сделать переключение между 2-мя источниками света? (Hellraiser)Можно так...
1. Сначала создаём новое сообщение вот такого вида: Это сообщение будет выскакивать при активации твоего переключателя. 2. Далее располагаем в твоем интерьере переключатель по твоему выбору и две группы ламп: красные и синие. Ламп может быть сколько хочешь. 3. Для управления этими группами ламп пихаем в интерьер два xmarker'a и даём им уникальные ID: a01RedLightxmarker и a01BlueLightxmarker. Как ясно из названия, первый будет управлять красной группой ламп, а второй - синей. На вкладке маркеров ставим галочку на "Изначально отключен". 4. Затем связываем все лампочки одной группы свечения с соответствующим маркером через вкладку "Enable Parent", то бишь назначаем его родителем. Управлять освещением будем через разрешение или запрет соответствующего маркера/маркеров в скрипте. 5. Все подготовительные операции сделаны, теперь пишем новый object-скрипт вот такого вида:
Код
scn a01ToggleLightScript
short awaitingInput short buttonVar
Begin OnActivate Player
Showmessage a01ToggleLigh set awaitingInput to 1
end
begin gamemode if awaitingInput == 1 set buttonVar to getbuttonpressed
Как сделать лампочку, которая днем не горит, а загорается только после 21:00 и гаснет в 10:00 утра? Повесить такой скрипт на лампочку:
В нашем случае выключатель (активатор) не нужен. Нужен светильник, "луковица" (лампочка) и скрипт, задающий временной интервал на включение и отключение лампочки. "Луковица" в игре не видна, поэтому скрипт активирует и деактивирует её. Всё остальное делается точно так же, а скрипт может быть таким: Тип скрипта: объектный - так как "вешается" на объект "луковица" (лампочка)
Как в ГЕКК в окне рендера "спрятать" определенный объект и все к нему привязанные? Чтобы не "мешались" при работе и не заслоняли собой другие объекты. Для этого есть назначенные "горячие" клавиши...
Чтобы скрыть просто выделенный курсором объект или несколько выделенных объектов - нужно нажать клавишу 1. Объект станет полупрозрачным, повторное нажатие полностью скроет объект. И в том и другом случае объект станет недоступным для выделения. Чтобы "включить" объект - нужно найти его в списке референсов этой ячейки (правая половина окна Cell View), он там будет выделен голубым цветом, ткнуть мышкой, перейти в окно рендера и нажать 1. Ну или же просто обновить просмотр, нажав клавишу F5. Тогда восстановится показ всех, скрытых ранее, объектов.
Если какой-то объект является "родителем" для нескольких десятков других и эти другие нужно скрыть (например, кучу предметов из покупаемых у Мойры интерьеров), то нужно выделить этот объект-родитель, к которому привязаны другие (привязанные каждый у себя через вкладку Enable Parent) и нажать Shift+1. Привязанные исчезнут. Чтобы скрыть объекты, привязанные к родителю, как оппозиция (работающие в "противофазе") - нужно нажать Contrl+1.
Это если горячие клавиши стоят "по-умолчанию". Посмотреть другие комбинации клавиш или назначить свои можно в меню Edit строчка - Render Window Hotkeys
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя Anarhon
AnarhonOffline
Сообщение №125
написано: 23 августа 2013, 13:13
| Отредактировано: КсюXa - 16 января 2018, 07:29
Подскажите образец такого скрипта, когда при входе в игру - игрок через 3(4, 5 и т.д.) дней получает сообщение. (Joopeeter)Как минимум есть два варианта решения...
С помощью глобальной переменной GameDaysPassed (сколько дней прошло с начала игры). В простейшем виде скрипт выглядит так:
Код
scn zzQuestScript
float DayX
Begin GameMode
if DayX==0 set DayX to GameDaysPassed+X; где Х - нужное число дней elseif DayX>GameDaysPassed ;ничего не делать else set DayX to 10000000 ShowMessage zzMessage endif
End
где zzMessage - ID сообщения
Скрипт вешается на квест. Если скрипт больше ничего не делает, то можно даже затормозить его Script Processing Delay до 15-20 секунд (10 игровых минут). Также, если под это дело выделен специальный квест и он больше ни для чего не используется, нужно после вывода сообщения остановить его, то есть под ShowMessage вписать
StopQuest zzQuest где zzQuest - ID этого квеста
Воспользоваться эффектом с нужной длительностью.
Создаётся скрипт (тип скрипта - Effect) Код scn zzEffectScript
Begin ScriptEffectFinish
ShowMessage zzMessage
End
Этот скрипт срабатывает, когда заканчивается действие эффекта. Создаётся Base Effect - флажок Self, тип эффекта (Effect Archetype) - Script, в выпадающем списке Assoc Item назначается наш созданный скрипт. Создаётся Actor Effect с этим базовым эффектом и длительностью трое суток или сколько там надо. Это и будет таймер, скрипт сработает, когда закончится этот эффект. Пусть это будет zzActorEffect.
Теперь нужно как-то повесить эффект на игрока. Создаётся квестовый скрипт (тип скрипта - Quest) Код scn zzQuestscript
short DoOnce
Begin GameMode
if DoOnce == 0 Player.CastImmediateOnSelf zzActorEffect set DoOnce to 1 StopQuest zzQuest; если квест ещё для чего-то нужен, эта строка не нужна endif
End
Создаётся квест, отмечается Start Game Enable, на него вешается квестовый скрипт.
Как и где создать новый скрипт вы можете посмотреть здесь "Картотека" Базовые
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №126
написано: 3 сентября 2013, 06:55
| Отредактировано: KAIN48 - 8 декабря 2019, 10:16
Что такое Ref-связь и как именно такая связь делается?
В игре мы часто видим какие-то однотипные ситуации. Например, одна дверь отпирается с терминала, другая дверь отпирается с другого терминала, сейф отпирается с третьего; NPC в локации ночью спят на кроватях, каждый на своей и каждый раз на одной и той же, в другой локации то же самое; патруль ходит по маршруту, другой патруль - по своему маршруту, и так далее, список можно продолжать. Для того, чтобы упростить создание таких вещей, в ГЭКК существует возможность связать две реф-копии особой связью и нацелить повторяющиеся действия одной из них на связанную ссылку. Например, нам не требуется создавать для каждой двери свой отдельный терминал, отпирающий эту и только эту дверь. Достаточно создать один и настроить его на отпирание той двери, к которой он привязан. Таким образом каждая копия одного базового объекта-терминала будет отпирать свою дверь. Точно так же пакет поведения NPC может быть настроен не на конкретное место ("я должен спать на этой и только этой кровати"), а на ссылку, к которой привязана копия NPC (я должен спать на той кровати, к которой привязан линком").
Итак, как же привязать одну реф-копию к другой?
Сначала находим ту ссылку (реф-копию), к которой будем привязывать. Открываем окно её свойств (двойным щелчком в окне рендера или ПКМ - Edit в окне Cell View) и отмечаем чек-бокс Persistent Reference ("постоянная ссылка"). Привязывать можно только к постоянным ссылкам, к другим просто не получится. Желательно, но не обязательно, дать этой копии уникальное имя Reference Editor ID. Затем находим копию, которую будем привязывать, и открываем вкладку Linked Ref. Здесь можно выбрать из списка Cell ячейку, в которой находится ваша постоянная ссылка, а затем из списка Reference (списка всех постоянных ссылок ячейки) выбрать нужную. Если вы перед этим дали своей ссылке имя, то под ним она и будет фигурировать в списке, если не давали - то под именем базового объекта всочетании с номером. Можно и не выбирать из списка, а щёлкнуть по кнопке Select Reference In Render Window. Для этого та ссылка, к которой вы собираетесь привязывать, должна быть видна в окне рендера. Если она в другой ячейке, то надо загрузить эту ячейку в окно рендера, не закрывая окна свойств привязываемой копии. После нажатия кнопки курсор приобретёт вид красного перекрестья, которое становится белым при наведении на постоянные ссылки, то есть на те, к которым можно привязаться. Двойной щелчок белым перекрестьем устанавливает связь и в окошках Cell и Reference автоматически появляются соответствующие имена. Жмём OK. Теперь, если выбрать в окне рендера одну из связанных ссылок, то между ними будет видна стрелка от привязанной копии к постоянной.
Одна копия может быть привязана только к одной постоянной ссылке, но к одной и той же ссылке можно привязывать сколько угодно других. Так можно открывать одну дверь с нескольких терминалов, отправлять нескольких NPC в один и тот же пункт и так далее. Иногда для такой груповой привязки удобно пользаваться окном Reference Batch Action (групповые операции со ссылками). Удерживая Ctrl, выбираем ссылки, которые будем привязывать, и жмём клавишу "-". Открывается окно групповых действий и в нём список выбранных ссылок. Можно добавлять или убирать ссылки из списка и при открытом окне. Справа среди всего прочего, что можно сделать со всеми выбранными копиями разом, видим Set linked ref (привязать к ссылке), а снизу - уже знакомые окошки прокрутки и кнопку выбора. Дальше делаем всё точно так же, как на вкладке Linked Ref, только вместо OK кнопка Do. Все выбранные копии привяжутся к одной постоянной ссылке.
#blockedit
Изменение репутации для пользователя SIGIS
SIGISOffline
Сообщение №127
написано: 6 октября 2013, 16:09
| Отредактировано: КсюXa - 17 января 2018, 04:54
Не скажу, что очень хорошо разбираюсь в 3dSMax, но когда я первый раз сделал эту модель линзы и вставил её в игру, я 3dSMax знал намного хуже и очень ленился разбираться в плагине NifTools. Я начал ковыряться в программе NifSkope, изучив немного функционал программы в голову пришла мысль взять готовую модель из фолла и засунуть туда мою голую .nif модель, а точнее сам мэш модели. К тому же нужный мне результат должен был быть линзой, которая в свою очередь должна была быть прозрачной. Разбираться в дебрях настроек прозрачности мне совсем не хотелось и поэтому я взял объект уже прозрачный и стеклянный, а точнее «\data\meshes\clutter\junk\shotglass01.nif», то есть стопка. И на основе её настроек делать свою линзу.
Модель стопки Запускаем 3dsMax и делаем линзу. Промапим линзу текстурой, которая даётся «стопке». (в принципе это не обязательный этап, но текстура ляжет криво т.к. текстура которую использует стопка, используется всей кухонной утварью в игре разделочная доска, кастрюли, стаканы итп.) Карту располагаем именно на места текстуры стопки т.к. только эти участки прозрачные. Далее экспортируем в .nif Вот что у нас получилось Теперь копируем именно сам мэш нашего .nif. Его блок называется NiTriStripsData. И вставляем в .nif нашей стопки. Прямо в корень самого файла. У меня он получился под номером 12. Выделив ветку NiTriStrips нашей стопки мы видим, что она использует блок под номером 11 как геометрию объекта. Смело меняем на номер мэша нашей линзы, а он у нас 12. Теперь подгоняем по осям линзу, если она встала мимо начала координат и удаляем мэш стопки. Но коллизия осталась от стопки, следовательно в игре линза физически будет вести себя как стопка а не линза. Кликаем правой по NiTriStrips и выбираем Havok-Create Convex Shape. Сюда надо ввести расстояние допуска создания узлов модели коллизии учитывая мэш модели предмета (у нас линза), следовательно чем меньше число тем детализированней будет сетка коллизии. (если поставит 0 то получится максимально проработанная модель коллизии) Вот какая коллизия получилась. (модель линзы для наглядности скрыта) Теперь настроим физику коллизии, выделяем bhkConvexVerticesShape. Линза у нас стеклянная, значит ставим HAV_MAT_GLASS. Тут еще полно настроек (масса, трение и тд) но я их решил оставить как есть. Вот и всё сохраняем .nif вставляем в игру и тестим коллизию в игре! Прозрачная! Стеклянная! И физически приемлемая !
Туториал от Graf "Как конвертировать видело в .bik файл и добавить ваш ролик в игру".
Я много раз видел как многие люди спрашивали ”Как добавить своё видео или фильм в fallout?” Многие отвечали, что это не возможно, но они ошибались. В этом туториале я опишу как добавить своё видео в Fallout, а вернее, как переделать видео в формат *.bik. В Fallout формат *.bik присутствует для воспроизведения роликов в игре. Я возьму свой ролик для примера (формат *.avi), и переделаю его в формат *.bik для его просмотра в игре. Такие навыки можно будет использовать в своих модификациях в игре, допустим, если вы хотите что-то показать в игре, любой туннель, по которому летит камера, тогда не придется использовать сложные скрипты для реализации. Нужно будет просто записать видео с самой игры. Думаю, суть вы поняли, приступим.
Вам понадобятся такие программы как: • Rad Video Tools – конвертор видео в формат *.bik скачать можно здесь. • GECK скачать можно здесь.
Работа с программой Rad Video ToolsДля начала нужно выбрать видео. Я снял видео с игры Counter-Strike 1.6 размер моего видео 102 мб (чем больше размер видео, тем лучше качество вашего ролика в игре). Открываем radvideo и жмём один раз на свой ролик, у меня “Kill_Awp”:
Далее жмём “Bink it!”:
Открывается окно параметров конвертируемого видео, звука и т.д. жмёте ”Defaults”, настройки лучше всего выбрать стандартные:
Далее жмёте ”Bink” для того, чтобы видео начало конвертирование в формат *.bik, высветится окно:
Дождитесь конца конвертирования, высветится окно, где высветятся настройки, которые стоят на конвертированном файле. Вы сможете просмотреть свой ролик, нажав кнопку “View”:
Таким ролик будет выглядеть в игре, так что лучше его просмотреть. Теперь размер моего видео-ролика для игры Fallout 8.65 мб, неплохо мы сжали видео, не правда ли ? Теперь у нас есть видео ролик “Kill_Awp.bik”. Кидаем этот видео ролик, в директорию Fallout 3 New Vegas\Data\Video просто Fallout, берёт все ролики оттуда.
Добавление ролика в игруТеперь, когда конвертированный видео ролик готов, проверим его в игре. Для начала зайдём в GECK и нажмём File -> Data и кликаем 2 раза ЛКМ по FalloutNV все остальные мастер файлы убираем:
Жмём ОК. Я вам объясню 2 способа добавления ролика в игру. 1. Через терминал. 2. Через триггер. Для того, что бы добавить видео в терминал, нужно открыть World Object -> Terminal:
Открываем любой терминал, например CampGolfMissionTerminal и меняем всё под свой терминал. Лучше сделайте так, как сделал я:
ID – ваш уникальный айди терминала, у меня AAAGrafaVidepTerminal Name – имя терминала, у меня Новости "Открыто видео Kiil_Awp" Script – скрипт, который можно повесить на терминал (нам не требуется) Password – пароль для терминала (нам не требуется) Base Hack Difficulty – Сделаем Unlocked (открытый), можно поставить уровень сложности взлома терминала или поставить его на ключ. Server Type – это сервер канала (трогать не будем) Welcome Text – текст приветствия, у меня “Просмотр доступен!” Menu Items – меню выбора ответов Item Result Script – результативный скрипт на выборе ответа Item Text – текст выбора ответа После того, как заполнили ID, Name и Welcome Text, создаём в Menu Items новый выбор ответа для терминала. Нажмите на строки в Menu Items ПКМ ->New. В Item Text вставляем текст "Просмотр ролика "Kill Awp" или какой-нибудь на своё усмотрение. Далее в Item Result Script пишем результативный скрипт PlayBink "Kill_Awp.bik" 1 1 1 1 Там, где Kill_Awp.bik, пишем название своего ролика. Заметьте, в конце есть .bik. Итак, жмём “ОК”. Появится окошко с вопросом Create a new Form? Жмем Yes (Да). Теперь поставим наш терминал, в игре. В Cell View кликнем справа от World Space и выберем WastelandNV. Ниже высветится список всех локаций в игре, выбираем двойным кликом Goodsprings:
Теперь нужно выбрать место, где мы поставим терминал. Я поставил здесь:
Теперь сохраним наш плагин нажатием File -> Save. Или нажав на дискету:
Теперь подпишите как-нибудь свой плагин. Я подписал Mod_test_video Подписывать можно только английскими буквами. Теперь мы можем просмотреть наш ролик в игре через терминал. Теперь я объясню как посмотреть ролик через триггер. Я решил поставить триггер возле терминала. Нажимаем на кнопку триггера:
И теперь нажмите на ландшафт, зажав ЛКМ, После нажатия на ландшафт зажимайте ЛКМ и отведите курсор мыши в какую-либо сторону. После этого отпустите ЛКМ, чтобы зафиксировать длину и ширину триггера. Теперь нужно указать какая будет высота триггера. Это делается отведением курсора мыши вверх. Далее зафиксируйте высоту триггера нажатием один раз ЛКМ, он должен быть примерно таким, и у вас высветится окно:
После того, как вы зафиксируете триггер, высветится окно, где вы должны нажать New и вписать свой ID. У меня AAAGrafaVideoTrigger. Далее жмём “ОК” для сохранения триггера. Теперь создадим скрипт, при котором Player, при достижении триггера, просмотрел наш ролик. Жмём Gameplay -> Edit Scripts.… Выбьет окно Script Edit, далее жмём script -> new и вписуем такой скрипт:
Цитатаscn AAAGrafaVideoTriggerScript
begin OnTriggerEnter player
imod FadeToBlackISFX PlayBink "Kill_Awp.bik" 1 1 1 1 End
Скрипт можно копировать сочетанием клавиш ctrl+c и вставить ctrl+v
Теперь рассмотрим действие строк:
Цитатаscn AAAGrafaVideoTriggerScript ; имя скрипта
begin OnTriggerEnter player ; скрипт действует только если player попадёт в триггер
imod FadeToBlackISFX ; затемнение экрана после прохода ролика, эта строчка не обезательна PlayBink "Kill_Awp.bik" 1 1 1 1 ; сам ролик, где Kill_Awp.bik пишите свой ролик End ; закрытие блока begin
Скрипт у вас должен выглядеть так:
Теперь сохраним скрипт нажатием Script -> Save. Или нажав на дискету:
Закрываем окно Script Edit. Теперь подключим скрипт к триггеру, чтобы на триггере срабатывал наш ролик с эффектом затемнения экрана. Теперь двойной клик по триггеру, который находится в мире. Выбьет окно Reference, жмём Edit Base и в поле Script выбираете свой скрипт:
Жмём “ОК” и сохраняем плагин. Теперь при сохранении плагин не будет требовать подпись файла. Мод с роликом лежит в архиве с тутором. Только я ещё добавил вариант через диалог. Вот, где находится триггер и терминал в Гудспрингсе. У того NPC на скрине, можно через диалог просмотреть ролик.
Отними у меня апельсин - и я тебя убью Съешь мой апельсин - и я тебя убью Подари мне апельсин - и... я тебя убью Мне не нужен никто, лишь мой апельсин А тот кто не пойман - не ассасин!
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №129
написано: 6 октября 2013, 17:49
| Отредактировано: ApeX - 13 октября 2018, 18:03
Описание приёмов работы с 3D Ripper DX — утилитой захвата игровых ресурсов непосредственно в ходе игры.
Официальный сайт, где можно скачать программу, а владеющим английским прочитать урок по работе. Правда, урок там старый для версии 1.3, а на сегодняшний день актуальна версия 1.8 или 1.8.2. 3D Ripper DX С 3D Ripper DX вы можете:
- Захватить всю геометрию (объекты), текстуры и шейдеры в одном кадре игры; - Импортировать захваченную геометрию в 3D Studio Max или Maya;
3D Ripper DX поддерживает только DirectX 6, 8 и 9 приложения. Плагин импорта должен работать с 3ds Max версий с 5.0 по 9.0, 2009 и 2011 годов (в последней версии 1.8)
В поле 1 указывается путь к пусковому exe-файлу игры игры. В этом примере игра Inversion. В поле 2 можно переназначить горячие клавиши и выставить необходимые флаги.
Клавиши Capture key отвечает за клавишу захвата сцены, в пределах которой находится игрок. По умолчанию F12. Wireframe mode key, позволяет переключиться в режим отображения полигонов. По умолчанию F11. Disable texture key, позволяет отключать все игровые текстуры. По умолчанию F10. Increment folder key, позволяет добавить подпапку для сохранения после нажатия Capture key. Может пригодиться, если вы делаете несколько "захватов" в разных местах.
Флаги Capture all shaders - риппер при "захвате" сцены вытянет из игры все шейдеры. Capture all textures - риппер "захватит" все текстуры в процессе выполнения приложения, если отключить только текстуры, используемые в "захваченных" кадрах Force windowed mode - игра будет запущена в оконном режиме.
В поле 3 указываем пути к папкам для сохранения:
- объектов в формате 3dr, - текстур в формате dds - шейдеров в форматах VCH и PSH (для моддинга не нужны).
Запускаем игру, нажав кнопку Launch (запуск)
После запуска игры в левом верхнем углу мы видим маленькую надпись ready to capture (готова к захвату). Я выбрал матч, команду, карту и запустил матч. Нашёл такое место с нужной мне винтовкой.
Нажимаем клавишу F12 - надпись в верхнем левом углу изменится - будет написано, что захват идёт и может потребоваться до пяти или более минут, а ниже будет написан путь к папке сохранения извлечённого из игры. Игра будет "заморожена".
После того, как игра продолжится, можно выходить из неё и переходить в Max.
В Max.
Импортируем в сцену захваченные объекты. В папке сохранения объектов Frames выделяем нужный файл. Если вы сделали несколько захватов - выбирайте по дате и времени в имени файла.
Откроется окно импорта
В нём много настроек, но для нас важны настройки из секции Reverce projection parameters, где необходимо указать параметры обратной проекции (FOV, Aspect Ratio). FOV значение может быть задано для высоты экрана или на ширину экрана.
Начиная с версии 1.5, 3D Ripper DX способен сам оценить необходимые параметры. Просто в Recommended values (Рекомендуемые значения) выберите предложенное программой значение.
Если этого не сделать - объекты после импорта будут искажены - растянуты по ширине и высоте.
В секции Loading Method (Метод загрузки) можно всё оставить по умолчанию, так как если объект будет импортирован с неправильными текстурными координатами, это можно исправить в Max.
Ниже в секции Options (опции)
Ставя или снимая флаги с пунктов, можно выбрать нужное для импорта или отключить ненужное. Например если поставить флаг - Ignore ZWRITEENABLE = false meshes (usually skybox) - в сцену Max не будут импортированы полусферы неба, плоскости с дальними фонами и тп. У меня скорости позволяют, поэтому я импортирую с такими настройками - всё импортируется, кроме неба, худов, плоскостей фонов.
Как пишут разработчики: - Как правило, открытые локации в играх имеют больше 1000 объектов, а это требует много памяти, поэтому если у вас в системе меньше 1гб оперативной памяти, не стоит даже пробовать импортировать такую локацию.
Итак, импортировали. Сцену сохранили. Мало ли что понадобится - может быть скалы, двери, лестницы и тп.
Начинаем удалять ненужное. Получаем.
Смотрим что можно использовать без больших "правок" в Max.
Три винтовки, шлем, возможно, какие-то части брони, обувь - запросто. Над бронежилетом придётся поработать - он немного "развёрнут". Скорее всего при помощи модификатора FFD 4x4x4 или FFD box можно быстро подогнать под игровое тело.
Над всей бронёй (видимые части куртки, штанов, перчатки) придётся поработать, а именно "развернуть" и поставить в позу Fallout - руки вниз и в стороны, ноги на ширине плеч, используя вместо болванки игровое тело.
Далее ищём текстуры - можно просто открыть папку и искать по картинкам, но проще использовать пипетку из Material Editor (Редактор Материалов). Кликнули по шлему - прочитали имя текстуры в свитке Bitmap Parameters, нашли и применили.
Почти всё! Но не всегда "захват" текстур происходит "гладко", порядка 1-3 процентов бывают не читаемыми. Наверное, можно попробовать чуть сдвинуться в игре, повернуться и повторить захват (не проверял).
Подобная статья есть на Tiarum В ней, ко всему, ещё немного описывается простая подгонка брони в Max и экспорт в Обливион.
Автор статьи Garin мудро советует:
Теперь несколько советов относительно момента "захвата". В принципе, скринить можно в любой момент, но следует учесть, что все позы героев сохраняются, и если, скажем, вам нужна броня, а герой в этот момент чешет пятку – править потом придется очень и очень много. В идеале он должен стоять в позе гимнаста – ноги на ширине плеч, руки в сторону. Такой позы, увы, практически нигде нет, поэтому лучше всего выбрать стойку, наиболее близкую к команде «смирно» – руки по швам, ноги выпрямлены – так проще всего потом будет пришивать бронь к скелету.
Теперь следующее: не проблема, если нужная вам бронь одета на вашего персонажа или на дружественного вам NPC – вы можете следить за ним, выбирая наиболее подходящую позу. Проблемы начинаются тогда, когда доспех одет на враге и снять его нельзя. Враги как правило, не стоят, спокойно в ожидании момента, когда вы их соскрините, а тут же идут в атаку, принимая при этом боевые стойки, совершенно непригодные для риппа. Самое простое, что можно посоветовать – скрытность. Подкрасться сзади, использовать невидимость, отслеживать его через снайперский прицел – в общем, враг должен стоять в необходимой вам позе и, желательно, не подозревать о вашем присутствии.
У редактора GECK есть панель управления (или быстрого доступа). В ней, ближе к правому краю, есть секция "Примитивов". Нажатие на кнопку с изображением буквы T на передней стороны квадрата () - включает режим строительства триггера. Если задержать указатель на этой кнопке - увидим подсказку "Создать кубический активатор" Да! да! Триггер это невидимый в игре активатор.
Нажали на кнопку на панели элементов, расположили мышку в нужном месте мира или интерьера, сделали ЛКМ (клик левой кнопкой) и удерживая (не отпуская кнопку), растягиваем триггер в горизонтальной плоскости. Вытянув на нужную величину, отпускаем ЛКМ и двигая мышкой, вытягиваем триггер по вертикали. Вытянув на нужную высоту, нажатием ЛКМ - завершаем строительство триггера. Остаётся в появившемся окне Activator:- либо выбрать для этого триггера уже имеющийся активатор, либо, поставив галку в чек-бокс New, вписать новое ID имя, создав таким образом новый активатор. В итоге получаем такой прямоугольник красного цвета. Чтобы изменить его размер, нужно "зацепиться" указателем мышки за стрелки на концах оси координат. "Зацепиться"- это значит навести мышку, нажать ЛКМ и, удерживая кнопку, передвинуть мышку! Таким способом подгоняя форму триггера под нужные вам размеры.
Передвинуть триггер целиком можно так же, как любой другой объект: Навели указатель мышки в любом месте триггера (не на оси): клик и удерживание ЛКМ, плюс движение мышкой - двигать в горизонтальной плоскости клик и удерживание ПКМ, плюс движение мышкой - вращать. Z + клик и удерживание ЛКМ, плюс движение мышкой - двигать вверх вниз.
В окне настроек этого триггера добавлена вкладка Primitive
В Primitive type - можно сменить форму на шар. В Collision layer - задать тип столкновений (у всех игровых стоит ACTORZONE) В области Color - можно задать цвет В Origin и Bounds - положение и размер.
Спорные статьи - вроде бы люди писали, старались - выбрасывать неудобно. Будет время попробую вникнуть, подправить, добавить картинки.
Тутор от IGROman про конвертирование моделей в Fallout 3
В первое время при конвертировании я стыкался с многими вопросами, ответы на которые трудно найти в Интернете. Посему в этой теме предлагаю совещаться о нюансах этого дела.
Итак, конвертирование моделей в Fallout 3
1. Созданная модель должна быть переведена в Editable mesh. В принципе, экспортер, наверное, должен и сам преобразовать меши, но надежнее будет ручками.
2. Спрячьте ВСЮ свою модель (ПКМ\Hide Selection или ПКМ\Hide Unselected). Импортируйте любую модель того же типа и посмотрите на ее иерархию. Например, стандартный Fallout'овский лазерный пистолет (Meshes\Weapons\1hanspistol\Laserpistol.nif). Для распаковки-запаковки архивов игры использую Fallout 3 Archive Utility. Ее интерфейс прост, как двери. В окне Select Destination directory нужно просто выбрать папку Data игры - нужное дерево папок распаковщик создаст сам. На момент написания поста использую Nif-плагин для 3ds max 3.5.5.4728, 3ds max версии 8. В настройках импорта обязательно поставьте галочку "Import skeleton". В меню макса беру Graph Editors\New Schematic View (При последующих вызовах этого окна можно Graph Editors\Saved Schematic Views). Корневой обьект Laser pistol можно переименовать. В конце процедуры он должен находиться в координатах 0,0,0 - потому, что будет прикрепляться к кости Weapon правой руки Right hand, а вся модель будет привязана к нему. Кратко о назначении остальных елементов: ProjectileNode - сюда крепится снаряд, которым оружие стреляет (в данном случае лазерный луч Meshes\projectiles\laserbeamprojectile.nif); ##LPTrigger - имеет дочерний объект-меш ##LPTrigger:0, который является курком оружия. Курок вращается вокруг ##LPTrigger, как вокруг оси благодаря блоку nif-файла NiTransformController, который описывает движение неким загадочным способом. ##LPSideLatch - ответственен за извлечение магазина. К нему крепится ##LPSideLatch:0, который есть рычагом извлечения, и ##LPSmallEnergyCell, имеющий дочерний блок-меш - энергетическую ячейку ##LPSmallEnergyCell:0. Название этих хелперов может быть другим, если загружено оружие другого типа. bhkRigidBody - точка отсчета, от которой отсчитывается коллизия. Тоже должна иметь координаты 0,0,0. bhkConvexVerticesShape - коллизия модели. Это некий меш с инвертированными внутрь нормалями, который служит границами взаимодействия с окружающим миром. Например, при столкновении предметов физическим движком Havok используются коллизионные меши. В зависимости от типа построения, колизионный меш может иметь и другие имена, например, bhkBoxShape. Если все кажется слишком запутанным - не отчаивайтесь. Все гениальное просто. Или поищите другие туториалы - учитель из меня не очень. Запишите или запомните иерархию модели.
3. Выделяйте поочередно все элементы и смело нажимайте на Unlink Selected. Отсоедините все элементы.
4. Нажмите Ctrl+A, далее ПКМ\Freeze Selection. Отобразите свою модель (Unhide All). Теперь тщательно подгоните свою модель по размеру и положению ручки к замороженной. Это должно помочь избежать глюков с неправильным прикреплением к руке. Можно также подгонять под правую руку, импортировав Data\Meshes\characters\_male\Right hand и расположив ее так, чтоб кость Weapon была в координатах 0,0,0. Снова спрячьте свою модель, нажмите ПКМ\Unfreeze All.
5. Теперь удалите все меши (только меши!). Они обычно оканчиваются цифрами, например, LaserPistol:0. Коллизию тоже удаляйте, если она не подходит под вашу модель.
6. Выделяйте хелперы в окне Schematic View и двигайте их так, чтобы их расположение соответствовало вашей модели. ProjectileNode должен быть у стволового отверстия (или что там у вас), ##LPTrigger - быть как бы осью курка, ##LPSmallEnergyCell - на энергетической ячейке и т.д.
7. Соедините получившееся в иерархию, подобную той, что была (все в том же окне Schematic View нужно выбрать инструмент Connect и провести от присоединяемого элемента к материнскому с зажатой ЛКМ).
8. Коллизию имеют не все модели. Ее нет у модели одежки на теле, например. Но мы разсматриваем экспорт оружия, значит - делаем коллизию. На панели инструментом справа нажимаем кнопку Helpers, из выпадающего списка ниже - NifTools, и еще ниже - нажимаем кнопку bhkCollProxy. Теперь кликаем где-нибудь возле модели. Хелпер поставился. В его настройках устанавливаем галочку ConvexShape - это тип коллизии. В поле несколько ниже добавляем меш модели, по форме которого должна быть построена коллизия. Если новый меш слишком высокополигональный - поставьте птичку Enable optimize еще ниже (он высокополигонален процентах в 90 случаев). Чем проще коллизионный меш, тем проще считать физические взаимодействия. Не думайте, что имея мощный комп, вы плевать хотели на упрощение коллизии. Порой сложные меши приводят к дивным глюкам в игре, когда предметы дрожат, лежа на земле или качаются из угла в угол. Нажимаем кнопку Clone Mesh еще ниже и удаляем хелпер bhkCollProxy. Теперь добавляем новосозданному мешу модификатор bhkRigidBodyModifier. Назовите меш bhkConvexVerticesShape (не проверял, может быть, и не надо). Если нужно, то создайте хелпер bhkRigidBody и разместите его в нулевых координатах.
9. Начинаем экспорт (Версия Nif-плагина для 3ds max у меня 3.5.5.4728, а NifScope - 1.0.20.4748). В поле Root Node Type (если не можете найти - прочитайте предыдущее предложение) должна быть следующая ситуация. Модели без коллизии имеют NiNode, с колизией - BSFadeNode.
10. Теперь смотрим продукт в NifScopе. В каждом ноде в блоке BSShaderPPLightingProperty в поле Shader Flags снимаем флажок с SF_SHADOW_MAP (если этого не сделать, модель будет невидимой в игре).
11. Дополнительная настройка модели. а) если имеются прозрачные участки - текстурированные текстурой с альфа-каналом - добавляем в нод блок NiAlphaProperty (Из нода ПКМ\Node\Attach Property\NiAlphaProperty). Это заставит экономный движок обрабатывать альфа-канал меша. б) если модель имеет текстуру свечения (ИМЯтекстуры_g.dds) - в блоке NiMaterialProperty нужного меша меняем цвет в поле Emissive Color ставим цвет, которым, по вашему мнению, должны светится участки согласно оной карты свечения. в) если модель с коллизией не имеет в качестве рутовой кости BSFadeNode - с ней нельзя будет взаимодействовать в игре. Сделайте ПКМ на рутовой кости\Block\Convert\BSFadeNode. г) вставьте другие понравившиеся блоки. Экспериментируйте на здоровье.
12. Не забудьте сохранить модель. NifScope считает, что вы - профессионал своего дела и не спросит об этом при выходе.
Удачи в конвертировании!
Туториал от Бун. Как изменить название местности.
Почти всем пользователям модов известна такая проблема: Пустоши Мохаве переименовались в английскую Mojave Wasteland и другие ячейки, используемые модом, тоже. Например, школа Гудспрингса. Вот решение: 1. Заходим в ГЭКК. 2. Находим конфликтный плагин (вы можете вычислить его в описании мода, например: если сказано, что предмет находится в Гудспрингсе (не в школе) и у вас пострадали Пустоши Мохаве - это он) и загружаем его, сделав активным файлом и подгрузив перед этим FalloutNV_lang. 3.5 Теперь ищем верхнюю панель. Там заходим в World/World Spaces... и ищем нужную (испорченную английским) ячейку в списке слева. Когда нажмете на нее, поищите справа поле Name. И переименуйте ячейку. Если после сохранения плагина в игре ничего не изменилось (что маловероятно), то повторяем пункт 2. P. S. Данный пункт двойной, так как ячейка мира и ячейка интерьера - это разные вещи. 3.5 Если у вас пострадала ячейка интерьера (типа школы Гудспрингса), то придется заглянуть в Cell View и искать нужную ячейку. Но это просто! Видите поле Name? Там почти все локации (кроме тестовых и сюжетных) на русском языке. Найдите после символа " английские локации. Там вам попадется нужная. Далее: ПКМ\Edit\Interior Data\ и найдите Name. Вставьте новое название. Нажмите ОК. 4. Сохраните мод и выйдите.
Изменение репутации для пользователя Linkas
LinkasOffline
Сообщение №133
написано: 11 октября 2013, 21:02
| Отредактировано: КсюXa - 17 января 2018, 05:15
Пытаюсь обновить G.E.C.K., выскакивают ошибки и обновление прерывается... Как обновить редактор? (Linkas)В самом начале хочу заметить, что есть два способа установки редактора:
1. В директорию игры (как и любой редактор от Беседки и не только), 2. На другом диске (вдали от игры). Я использую второй способ по ряду причин. Все редакторы и SDK стоят у меня отдельно: игры на диске D, а редакторы на диске G (HDD на повседневном PC у меня 1 tb). Способ первый:
Советую не использовать редактор в архиве, лучше всего воспользоваться инсталляционной версией, потому инсталлятор (практически) все сделает за вас. И так: 1. Запустите Fallout3 - Garden of Eden Creation Kit.exe. Если установщик не находит игру - ничего страшного, но, это и первый сигнал того, что будут проблемы с обновлением: просто в ручную укажите директорию с игрой, а именно: (мой пример) D:\FallOut 3 - именно здесь находится файл Fallout3.exe. Далее все просто: по завершении установки откажитесь от запуска редактора и закройте установщик. 2. Для того, чтобы обновление прошло успешно, нужно, чтобы в директории с игрой находились следующие файлы, именно они важны для обновления редактора:
3. Запустите Fallout3_GECK_1.5_Update.exe. Обновление пройдет быстро. 4. Если же обновление не состоялось, а выпали какие-либо ошибки, проверьте еще раз, все ли файлы (что отмечены на скриншоте) присутствуют. Если все файлы на месте, то проверьте, нет ли сложных названий папок, и особенно с названиями на кириллице, или с множеством знаков. Например: С:\Рип Фол\Fenics\FallOut 3 - или - C:\Mexanici_2010\Games\Фолаут+4 DLC+моды\FallOut 3 - встречается и такое... 4а) Переименовываем все это добро на: (укажите букву вашего диска) С:\ FallOut 3 4б) Есть ли проблемы в названиях папок или нет, раз обновление прерывается, значит проблемы с пропиской игры в реестре. Главное, ничего не трогайте там, кроме того, на что я укажу:
Идем в Пуск (1), в командной строке (2) пишем: regedit - программа появится в верхнем окне (3) жмакните по ярлыку ЛКМ - редактор реестра запустится. Далее:
(у меня win 7 64) идем в раздел HKEY_LOCAL_MACHINE >> SOFTWARE >> Wow6432Node >> Bethesda Softworks >> Fallout3 ( HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bethesda Softworks\Fallout3 - если у вас 32 битная ОС, путь будет выглядеть так: HKEY_LOCAL_MACHINE\SOFTWARE\Bethesda Softworks\Fallout3 ) ЛКМ жмакните по Fallout3, и в правом окне в Installed Path проверьте, правильно ли прописан у вас путь. Пример: на диске - С:\ FallOut 3 - в реестре - С:\ FallOut 3\ - именно такой же путь. Если у вас не верно прописан путь, исправьте его:
Клик ПКМ по Installed Path - далее в поле Значение пропишите верный путь (не забудьте про знак \ в конце строки). Жмете ОК, закрываете реестр и снова запускаете Fallout3_GECK_1.5_Update.exe - если все сделано верно, обновление пройдет как по маслу.
Способ второй:
Установка редактора на другом диске. 1. Запустите Fallout3 - Garden of Eden Creation Kit.exe. Откажитесь от установки в директорию игры, и в ручную укажите другой диск. Желательно заранее создать на нем папку (например: GECK_FL3) и в нее установить редактор. 2. После того, как редактор установиться, из папки с игрой, копируем файлы и папки указанные на скриншоте:
3. Файлы и папки отмеченные красным особо обязательны. 4. После этого, идем в реестр, и уже прописываем путь к данной папке. В моем случае: G:\GECK_FL3\ (скопируйте перед изменением оригинальный путь к игре), 5. Прописали? Не закрывая реестра, запустите Fallout3_GECK_1.5_Update.exe - он согласно указанному пути, и при наличии по этому пути файла Fallout3.exe, посчитает, что это директория игры и обновит редактор. 6. После того, как пройдет обновление, перепишите в реестре путь до оригинальной игры, закройте реестр и наслаждайтесь игрой, и редактором, установленным на другом диске.
Как в редакторе GECK убрать показ определенных категорий объектов? Часть объектов можно скрыть через Главное меню - View - Show/Hide Windows (Скрыть/Показать в окне)...
Здесь же можно отключить показ поверхности, воды, статики, мультибоундов, ограничительных плоскостей и тд.
Показ некоторых объектов можно отключить "горячими клавишами"
M Markers (Маркеры) I Light Markers (Маркеры света) S Sound Markers (Маркеры звука) L Light Radius (Радиус света) W Wireframe ( включение, выключения режима отображать только рёбра, каркас объектов) A Bright Light (Яркость света) Y Sky (Небо) F4 Collision Geometry (Коллизии объектов) V Leaves (Листва) U Occlusion Planes U (Ограничительные плоскости) #blockedit
Изменение репутации для пользователя Linkas
LinkasOffline
Сообщение №135
написано: 26 октября 2013, 21:12
| Отредактировано: КсюXa - 17 января 2018, 05:26
Как и где при помощи GECK сделать медленное добавление опыта и увеличить максимальный уровень Главного героя? (Galko): Нужно открыть окно игровых настроек Главное меню - GamePlay =>Setting...
Редактируем параметры значений:
iXPBase Базовое значение опыта для перехода на следующий уровень.
iXPBumpBase На это число увеличивается число базового опыта при переходе на каждый следующий уровень.
iMaxCharacterLevel Максимальный уровень.
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №136
написано: 28 октября 2013, 14:53
| Отредактировано: КсюXa - 26 марта 2018, 03:32
Как прописать путь к звуковым файлам для озвучивания диалога в окне Edit Response квеста? (Galko)Путь к звуковому файлу прописывается автоматически....
То есть - когда мы набираем текст реплики и сохраняем его, то при последующем открытии\редактировании этой реплики в Edit Response мы увидим, что внизу появилось имя звукового файла, который редактор НАЗНАЧИЛ для этой реплики и еще ниже прописан путь, по которому этот файл должен будет находится.
Должен - это потому что на самом деле пока никакого файла, как и папок по этому пути нет. Их нужно либо создать вручную по типу: Data\Sound\Voice\Имя_Мода. esp\Тип_Голоса_Персонажа\ Имя_звукового_файла.wav С папкой "Имя_Мода.esp", думаю, всё понятно. Имя папке дается такое же, как имя и расширение файла-плагина мода. "Тип голоса персонажа" - название этой папке дается в зависимости от типа голоса, который был назначен неписю, произносящему данную реплику (на скриншоте прописана целая куча папок, соответствующих разным типам голоса. Это потому, что при создании реплики не был указан какой-то конкретный персонаж со своим типом голоса или же просто - отдельный тип голоса, поэтому редактор прописал данную реплику сразу для всех типов голосов по-умолчанию). "Имя_звукового_ файла" дается то, которое редактор диалогов назначил данной реплике. Его можно скопировать прямо из окна Edit Response, выделив название в строке Voice Filename. Файл может быть не обязательно wav, можно и формата mp3. Главное, чтоб его игра смогла прочитать. ....А можно и не "лепить" вручную нужные папки и файлы, а просто в этом же окне Edit Response нажать внизу кнопочку Record. Начнется, типа, запись, которую сразу можно отменить (а можно подключить микрофон к компу и чего-нибудь наговорить в него. Результат, правда, будет далеко не совершенен). Так вот - после отмены или завершения записи автоматически создадутся по нужному пути все необходимые папки и даже будет создан в конечной папке звуковой файл с нужным именем. Пустой, если не был подключен микрофон, либо с записью того, что было в микрофон наговорено. В общем, я думаю, суть понятна: -создается топик, затем реплика, создается путь, по которому будет размещен файл озвучки. Сам файл озвучки можно записать любым доступным способом, довести его до кондиции в саунд-редакторе и разместить в конечной папке под тем именем, как он прописался в диалоге. Микро-совет. Чтоб не загромождать свою папку с озвучкой лишними каталогами, лучше всего для персонажей своего мода, которым назначены диалоги, создать свой собственный тип голоса. А не использовать дефолтный.
Можно, конечно, использовать и "ванильные" типы голосов, но вылезет один интересный момент: непись сможет тогда произносить и некоторые стандартные фразы (топики HELLO, Goodbay и т.п.) "приписанные" этому типу голоса. В игре это будет выглядеть так: основной текст диалога будет произносится одним голосом (наша озвучка), а некоторые фразы - "ванильными" голосами.
И еще... В процессе работы над модом и конкретно озвучкой мод был, естественно, в статусе плагина, т.е. - файла еsp. А если по завершении всех работ и перед публикацией он был переделан в мастер-файл еsm - то надо не забыть переименовать соответствующую папку в путях размещения звуков. В моем примере это папка WinterWorld.esp в пути Data\sound\Voice\WinterWorld.esp\wwMaleAdult Её нужно переименовать в WinterWorld.esm
И потом останется только еще сгенерировать *.lip файлы - это файлы которые отвечают за движение губ во время разговора. А это самое вкусное. Если этих файлов не будет то НПС даже с голосом, будет как чревовещатель - то есть говорить не открывая рта.
Как вернуть название оружия или местности на русский язык? Увеличил у оружия только урон, и теперь название оружия на английском... Дело в том, что при загрузке в ГЕКК ты не загрузил русифицированный FalloutNV_lang.esp...
...Поэтому в твоем плагине объекты имеют английское название, взятое от основного (английского) мастер-файла. А поскольку твой плагин (как положено) загружается последним в игру - то он "затирает" русские названия из русификатора. Решение проблемы: воспользоваться FNVEdit-ом. Загрузить в него и свой плагин и указанный выше русификатор. Потом открываешь свой плагин и мышкой из русификатора перетягиваешь соответствующую строчку с русским названием оружия. Если и Пустошь Мохаве переименовалась - то и её тоже нужно вернуть русское название.
GECK плохо умеет "вернуть", поскольку (в отличие от, например, FNVEdit) не отслеживает параллельно все промежуточные состояния между последовательно загружаемыми патчами.. Так или иначе, исправляя вроде бы один параметр, ты на самом деле заменяешь объект целиком, со всеми его цифровыми и текстовыми параметрами - если какой-то другой мод, загружаемый раньше твоего, пытался изменить другой параметр, ты принудительно отменишь его изменение, поскольку значение того параметра у тебя взято из оригинала, если руссификатор пытался сделать название русским, ты отменишь его изменение, поскольку название ты брал из оригинала... Самый простой способ, когда ты "накосячил" с одним объектом - вписать рукам в поле названия то, что там должно быть. Громоздить заново полноценное наследование ради пары слов как-то нелепо.
#blockedit
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №138
написано: 1 июля 2014, 04:18
| Отредактировано: ApeX - 17 января 2018, 11:01
Speech (Речь) - Ogg Vorbis "OGG" files (Mono, 44.1 kHz) In-world 3D Effects (Внутриигровые 3D эффекты) - Waveform Audio Format "WAV" files (Mono, 22 kHz, 16 bit, PCM format) Ambient Effects (Эффекты окружения) - Waveform Audio Format "WAV" files (Stereo, 22 kHz, 16 bit, PCM format) Music and PipBoy radio (Музыка и радио в PipBoy) - MPEG-1 Audio Layer 3 "MP3" files (Stereo/Mono, 44.1 kHz, 192 kbps) In-world 3D radio(Внутриигровое 3D радио) - Waveform Audio Format "WAV" files (Mono, 22 kHz, 16 bit, PCM format)
Для работы Мини Радио необходимы wav файлы в формате Mono, 22 kHz, 16 bit. Как выяснилось битрейд 22 kHz и разрядность 16 bit не особо важны. Работают и 44 kHz - 32 bit. Главное, это Моно - если сделать стерео, то не будет работать функция затухания (ослабления) сигнала при удалении от радиоприёмника.
Для конвертации будем использовать Free конвертер mp3-wav Audacity последнюю версию программы можно скачать офф.сайта Версия 2.0.5
Принцип работы примерно такой - открыли mp3, свели дорожки стерео в моно. В меню под маленькой стрелкой можно изменить битрейд и разрядность на нужные. В меню Эффекты можно увеличить силу сигнала. Затем экспорт через меню Файл - Экспортировать.
Сохраняем рядом с mp3 файлом добавив к имени файла _ mono, получилось так
Заменяем в Активаторе радиостанцию на нашу
Нам нужно создать два сообщения с кнопками выбора. Первое
Begin OnDrop PlaceAtMe AAAMRadioActivatorDinamic01 Disable MarkForDelete End
Второй для Мини Радио AAAMRadioActivatorDinamic01 с выбранной в Radio Station нашей радиостанцией AAAMRTalkingActivator Но в скрипте есть такое место
set NextRadio to PlaceAtMe ;[приёмник, настроенный на радиостанцию "Поговорим брат..."] elseif Btn==1 set NextRadio to PlaceAtMe ;[приёмник, настроенный на радиостанцию "Музыка Пустоши"]
Активатор AAAMRadioActivatorDinamic01 у нас создан и радиостанция выбрана (лежит в кузове), а Активатора AAAMRadioActivatorDinamic02 нет. Скрипт не сохраниться.
Создаём меняя ID имя Активатора AAAMRadioActivatorDinamic01 Вписываем новое ID имя AAAMRadioActivatorDinamic02 Выбираем Radio Statio из списка - я выбрал vCountryRadio Соглашаемся на создание нового объекта. Вписываем это ID имя в скрипт - получается так
Код
scn AAAMR01ActivatorDinamicScript
short Btn short Mode short On ref NextRadio
Begin OnActivate if IsActionRef player ShowMessage AAAMROnOfMessage ; [сообщение с кнопками] 0 - нажать на кнопку вкл./выкл., 1 - покрутить колёсико, 2 - подобрать в карман. else set On to On==0 Activate endif End
Begin GameMode set Btn to GetButtonPressed if Mode==0 if Btn==0 set On to On==0 Activate elseif Btn==1 set Mode to 1 ShowMessage AAAMRChoiceWaveMessage ; [другое сообщение с кнопками] 0 - Новости галактики, 1 - радио Анклава elseif Btn==2 player.AddItem AAAMRMiscItem 1 ; (добавили радио misc item] disable MarkForDelete endif elseif Mode==1 if Btn==0 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic01 ;[приёмник, настроенный на Музыка Пустоши] elseif Btn==1 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic02 ;[приёмник, настроенный на Послушай брат...] endif if On==1 set Mode to 2 else Disable 1 MarkForDelete endif elseif Mode>1 set Mode to Mode+1 if Mode==5 NextRadio.Activate NextRadio 1 Disable 1 MarkForDelete endif endif End
Данные в скрипты предложенные Joopeeter, вписали , скрипты на объекты "повесили".
Удаляем Активатор AAAMRadioActivatorDinamic01 из кузова автомобиля, нам нужно только одно Мини Радио - Misc Item Сохраняем esp.
Проверяем в игре.
В NifSkope делаем скрин радиоприёмника.
Затем открываем эту картинку в графическом редакторе PhotoShop. Можно любом другом, который даёт возможность работать со слоями, цветами и контурами. Те кто имеет планшет и хорошо рисует могут создав новый слой поверх картинки просто обвести основные контуры радиоприёмника. Таким "художникам" как я придётся использовать перо и функцию Photoshop "Обводка контура"
Удаляем фон Инструмент "Волшебная палочка" - допуск побольше, что бы контур был точнее.
Удаляем выделенное и "Ластиком" стираем указатель мышки (случайно попал!)
Подгоняем размер картинки под 512х512 пиксел. Иконки в Fallout в основном имеют размер 256х256, но это слишком маленький размер для рисования. Поэтому пока рисуем в размере 512х512, а в конце работы уменьшим картинку. Размер меняем в Главном меню - Изображение - Изменить размер
Если после изменения размера рисунок "вытягивается" - выделяем радиостанцию, нажимает CTRL плюс T поправляем.
Создаём "Дубликат слоя" К дубликату применяем Стиль слоя - "Наложение цвета". Цвет белый, и немного убавляем Непрозрачность - до 90
Создаём слой на котором будем обводить контуры. Активируем инструмент "Перо" и ставя точки - обводим контур, одного из элементов рисунка. затем правым кликом открываем меню и выбираем "Выполнить обводку контура"Что бы было видно что обводить можно отображение слоя дубликата - прибавить прозрачность
Внимание Инструмент "Кисть" должен быть настроен Цвет чёрный, Размер кисти 3-4 После выбора "Выполнить обводку контура" откроется окно в котором нужно выбрать "Кисть"
Таким образом рисуем все основные детали. То есть пером создаём контур, а затем правым кликом делаем "Обводку контура"
После того как основные линии нарисованы, можно открыть какую нибудь игровую иконку и сравнивая поработать над цветом своей иконки. (я это не делал)
Объединяем все видимые слои в один, и меняем размер изображения на 256х256
При помощи инструмента "Волшебная палочка" выделяем фон (он у нас прозрачный), затем в Главном меню - Выделение - выбираем строку "Инверсия" тем самым выделяя приёмник. Переходим в "Каналы" и создаём новый альфа канал. Заливаем приёмник белым цветом, а фон чёрным. Возвращаемся с "Слои" и сохраняем иконку в папке Data\Textures\interface\icons\pipboyimages DDS DXT5 или DXT3 - главное с альфаканалом.
Затем в GECK у AAAMRMiscItem прописываем путь к этой иконке.
Проверяем в игре
Немного крупновато! Если хотите уменьшить - вернитесь к этапу, где мы меняли размер на 256х256 и уменьшите рисунок. Затем заново сделайте альфаканал.
Добавляем в скрипт радиоволны и настройку "запоминания" выбранной волны
Добавляем кнопки в сообщение AAAMRChoiceWaveMessage
Добавляем активаторы
Можно ещё записывать текущую настройку приёмника в какую-нибудь квестовую или глобальную переменную, чтобы когда достаёшь его из кармана, был настроен на ту же волну, что и до этого, когда убирал в карман. Пусть переменная (Tune) хранится в квестовом скрипте (хоть в тот же радиоквест можно добавть строчку short Tune)
Обратите внимание Тип скрипта Квестовый.
Отредактируйте скрипт на AAAMRMiscItem , если нужна "запоминалка" текущей настройки так:
Код
scn AAAMRMiscItemActivatorScript
Begin OnDrop
if AAAMRQuest.Tune==0 PlaceAtMe AAAMRadioActivatorDinamic01
А скрипт scn AAAMR01ActivatorDinamicScript (который у нас на всех Динамических активаторах) отредактируйте так:
Если не нужна запоминалка каналов
Код
scn AAAMR01ActivatorDinamicScript
short Btn short Mode short On ref NextRadio
Begin OnActivate if IsActionRef player ShowMessage AAAMROnOfMessage ; [сообщение с кнопками] 0 - нажать на кнопку вкл./выкл., 1 - покрутить колёсико, 2 - подобрать в карман. else set On to On==0 Activate endif End
Begin GameMode set Btn to GetButtonPressed if Mode==0 if Btn==0 set On to On==0 Activate elseif Btn==1 set Mode to 1 ShowMessage AAAMRChoiceWaveMessage ; [другое сообщение с кнопками] 0 - Новости галактики, 1 - радио Анклава elseif Btn==2 player.AddItem AAAMRMiscItem 1 ; (добавили радио misc item] disable MarkForDelete endif elseif Mode==1 if Btn==0 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic01 ;[приёмник, настроенный на Музыка Пустоши] elseif Btn==1 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic02 ;[приёмник, настроенный на Послушай брат...] elseif Btn==2 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic03 ;[приёмник, настроенный на ...] elseif Btn==3 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic04 ;[приёмник, настроенный на ...] elseif Btn==4 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic05 ;[приёмник, настроенный на ...] elseif Btn==5 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic06 ;[приёмник, настроенный на ...] endif if On==1 set Mode to 2 else Disable 1 MarkForDelete endif elseif Mode>1 set Mode to Mode+1 if Mode==5 NextRadio.Activate NextRadio 1 Disable 1 MarkForDelete endif endif End
С "запоминалкой" так:
Код
scn AAAMR01ActivatorDinamicScript
short Btn short Mode short On ref NextRadio
Begin OnActivate if IsActionRef player ShowMessage AAAMROnOfMessage ; [сообщение с кнопками] 0 - нажать на кнопку вкл./выкл., 1 - покрутить колёсико, 2 - подобрать в карман. else set On to On==0 Activate endif End
Begin GameMode set Btn to GetButtonPressed if Mode==0 if Btn==0 set On to On==0 Activate elseif Btn==1 set Mode to 1 ShowMessage AAAMRChoiceWaveMessage ; [другое сообщение с кнопками] 0 - Новости галактики, 1 - радио Анклава elseif Btn==2 player.AddItem AAAMRMiscItem 1 ; (добавили радио misc item] disable MarkForDelete endif elseif Mode==1 if Btn==0 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic01 ;[приёмник, настроенный на Музыка Пустоши] set AAAMRQuest.Tune to 0
elseif Btn==1 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic02 ;[приёмник, настроенный на Послушай брат...] set AAAMRQuest.Tune to 1 ; в квесте (в скрипте квеста), установить значение переменной в 1
elseif Btn==2 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic03 ;[приёмник, настроенный на...]
set AAAMRQuest.Tune to 2
elseif Btn==3 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic04 ;[приёмник, настроенный на...] set AAAMRQuest.Tune to 3
elseif Btn==4 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic05 ;[приёмник, настроенный на...] set AAAMRQuest.Tune to 4
elseif Btn==5 set NextRadio to PlaceAtMe AAAMRadioActivatorDinamic06 ;[приёмник, настроенный на...] set AAAMRQuest.Tune to 5 endif if On==1 set Mode to 2 else Disable 1 MarkForDelete endif elseif Mode>1 set Mode to Mode+1 if Mode==5 NextRadio.Activate NextRadio 1 Disable 1 MarkForDelete endif endif End
В принципе всё работает! Конечно это не красиво, сначала сбрасывать приёмник на землю, а затем подбирать и располагать в нужном месте локации. Громкость игровых радиостанций - при проигрывании, через радиоприёмник очень тихая - и с этим скорее всего ничего не сделать. Своя радиостанция проигрывается громко (зависит от сохранения в WAV) Радиостанции не открытые (не разведанные) в приёмнике не играют. Ну вот в общем и всё! Вывод: Лучше сделать несколько своих радиостанций по музыкальным жанрам: Поп, Рок, Джаз, Классика, и использовать радиоприёмник как плеер! Это ссылка на архив Мини Радио Размер 295 КБ. Внутри четыре nif, две текстуры, иконка, пустышки звуковых файлов. Если будете использовать - замените их на свои.
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №140
написано: 4 июля 2014, 11:08
| Отредактировано: ApeX - 13 октября 2018, 18:38
Как перенести из Фол3 в НВ объекты статики, например - детали интерьеров метро, которых нет в Вегасе? Ответ. Берем и переносим... А если серьезно - то хотела в двух-трех предложениях кратко описать сей давным-давно изученный процесс, начала печатать ответ и тут понеслооось!
Перенос объектов из Fallout3 в New-Vegas первая часть
"Буду краток" - говорил известный политический лидер... Так и я кратко обрисую поставленную задачу: - в Фол3 были некоторые объекты, которые за ненадобностью в Вегасе были выкинуты разработчиками. Нам нужно вернуть выброшенное на место, перетащив из всё это из Фола. Нюансы - освободившиеся форм-айди (Form ID) выброшенных объектов разрабы могли использовать для создания новых, вегасовских объектов. И возвращение фоловских может вызвать конфликт. Также в Вегасе есть уже перенесенные разработчиками из Фол3 объекты, имеющие точно такой редакторский айди (Editor ID) и повторный перенос нами таких же объектов вызовет создание повторов-дубликатов. То есть - появление новых, но одинаковых с Вегасом объектов, у которых к названию эдитор-айди будет автоматически добавлено слово "Дубликат". Иногда такое дополнение имеет критический характер. Наша цель - сделать всё корректно.
Нам понадобятся: Geck для Фол3, FO3Edit, FOMM (фоловский мод-менеджер), GeckNV (вегасовский, соответствующей для установленной игры версии), FNVEdit, NVMM (вегасовский мод-менеджер) и Nifskope . Редакторы ГЕКК и Эдит - для работы с объектами игры, мод-менеджеры - для извлечения нужных моделей и текстур из бса-архивов и запаковки их в новый архив, Нифскоп - для просмотра моделей. Общий принцип таков: ищем нужный объект в Фол3, чего-нибудь с ним делаем несерьезное, чтобы редактор увидел наши действия над этим объектом и "пометил" его, сохраняем сделанные изменения в отдельный плагин, в который запишутся все параметры нужного нам объекта. Изменяем этот плагин так, чтобы он стал плагином для Вегаса и "дорабатываем напильником" этот плагин уже в Вегасовских редакторах. В итоге получаем Вегасовский мод.
Для примера возьмем перенос объектов из раздела "Интерьеры метро". Любые другие объекты, будь то статика, фурнитура (мебель), активаторы, броня\одежда, оружие и т.п. - все переносится по одному принципу. Есть, конечно, свои тонкости для каждого типа объектов, вроде нестыковок анимаций перезарядки у оружия, разные параметры СУ\ПУ брони и т.п., но это все решаемо. А пока...
А пока запускаем фоловский ГЕКК. После загрузки жмем кнопочку с изображением раскрытой папки, чтобы открылось окно выбора файлов.
Отмечаем двойным кликом основной мастер-файл игры - Fallout3.esm
У меня стоит русифицированная игра "Золотое издания от 1С" и поэтому мастер-файл тоже русифицирован. Если используется другая версия игры, с отдельным русификатором Russian.esm\esp - то тогда отмечаем для загрузки только этот русификатор. Жмем кнопку ОК.
После того, как файл загрузился в редактор, переходим в окне объектов (Object Window) в нужную категорию объектов. Поскольку в нашем примере мы будем переносить объекты интерьеров метро - то заходим в раздел "Мировых объектов" (World Objects), раздел неподвижных (статичных) объектов (Static), подраздел помещений (Dungeons), категория - Метро (без перевода). Кликаем ЛКМ на названии категории (в нашем случае - на Metro) и в правой половине окна покажутся все объекты категории Метро, т.е. - детали стен, потолков, всякие блоки-железяки, сигнальные таблички и прочая метрополитеновская мелочь.
Напоминаю, что слово "Dungeons" (помещения, интерьеры) подразумевает, что в этом разделе находятся только те объекты, из которых строятся интерьеры, внутренняя обстановка станций метро. Если нужны те объекты, из которых строятся наземные части метрополитена, расположенные на Пустоши ( здания станций, всякие там подъезды-ворота и прочее - это нужно заходить в раздел Статика- Архитектура - Город - Метро (Static - Architecture - Urban - Metro). Кроме того, можно "пробежаться" по всем разделам мировых объектов для поиска дополнительных объектов, вроде бы и не связанных с метро, но нужных для своего будущего мода, типа: разных бочек, покрышек, заградительных знаков (двигаемая статика - Moviable Static), скамеек (фурнитура - Furniture), дверей (Doors) и целых наборов из нескольких объектов, составляющих единый комплекс (Коллекция статики - Static Collection). Но это уже, как говорится - ad libitum. Мы же пока остановимся на объектах интерьеров (все другие объекты, из других категорий переносятся, повторюсь, точно также.
Для начала нам надо как-то отметить объекты, которые хотим перенести в Вегас, чтобы редактор их "запомнил". Можно, конечно, долго и нудно просматривать через превью все объекты, выбирать по одному нужные, над каждым совершать какие-либо действия, типа добавления цифирки к названию, а затем убирание оной, но проще и быстрее "оптом" пометить все, без исключения, а уж потом в вегасовском редакторе выкинуть лишние. Для этого выделяем в правом окне все метровские объекты (клик ЛКМ на первом объекте в списке, затем прокручиваем ползунок вниз, до конца списка и клик ЛКМ с зажатым шифтом на последнем объекте). Всё должно выделится и "покраситься" синим цветом.
Не снимая выделения (!) с объектов, делаем в окне клик ПКМ и в выпавшем контекстном меню выбираем строчку - Назначить квестовым объектом (Toggle Quest Object). Повторяем эту же процедуру еще раз - клик ПКМ и снова назначить квестовым объектом. Т.е - сначала мы все выделенные объекты временно сделали квестовыми, а затем отменили, вернули всё как было. Это делается для того, чтоб, как говорилось выше, редактор запомнил, над какими объектами мы что-то делали и записал эти объекты в плагин при сохранении.
Признаком того, что редактор увидел и запомнил изменённые объекты является появление "звездочки" в колонке Количество (Count) у объекта.
Можно сохранять всё в плагин. Жмем на панели инструментов кнопку с изображением дискеты.
В открывшемся окне сохранения даем имя будущему плагину. Назвать можно как угодно, всё равно этот плагин у нас временный и впоследствии нам не понадобится. Назовем, к примеру, просто TempFile и сохраняем.
Вооот он... Появился в папке Data. В нем должны быть "прописаны" все объекты, над которыми мы "поработали" в ГЕКК. Проверим. Для этого запускаем другой редактор - FO3Edit
Полезность ФОЭдита в том, что он позволяет увидеть объекты модов не в "куче", вперемешку с остальными объектами из ванили или других плагинов (как в ГЕККе), а показывает содержимое каждого мода отдельно. Заодно и пересечения объектов разных модов (конфликты) и внесенные изменения в основной мастер-файл. Ну и много еще чего, глубинного.
Запускаем ФОЭдит, в окне загрузки кликаем ПКМ на пустом месте и выбираем строчку - Не выбирать ничего (Select None) , для того, чтобы снять галочки у ненужных плагинов и не грузить их бестолку. Полезная фишка, особенно если в папке Data находится сотня с лишним плагов, отмеченых мод-менеджером в загрузку и вручную снимать галочки с каждого... Б-р-р-р.. Снимаем таким образом все галочки и ставим одну-единственную на том плагине, который хотим загрузить, на плагине TempFile.esp
После загрузки раскрываем "дерево" плагина и видим, что в нашем плагине, есть раздел Статики, в котором находятся все те объекты, что мы затрагивали в ГЕКК, а именно - все объекты категории интерьеров метро. Зеленый цвет означает, что записи об объектах в плагине полностью идентичны записям в основном мастере игры, т.е. - объекты не изменялись. Это гуд. А вот то, что эти объекты имеют форм-айди, начинающиеся на 00 (поскольку скопированы из основного мастер-файла, у которого все формы имеют форм-айди, начинающиеся на 00) - это не есть гуд.
Почему два нуля в форм-айди плагина - это нехорошо? Вспоминаем основной принцип работы модов. Есть основной мастер-файл Fallout3.esm (FalloutNV.esm в Вегасе), созданный разработчиками. Это - база, основа всей игры, там находятся все записи о формах, из которых собственно и состоит игра. Все моды основываются на том, что либо изменяют параметры объектов основного мастера, либо вносят в игру свои собственные новые формы (объекты). В первом случае запись о форме (объекте) находится в мастер-файле и имеет свой родной, неизменяемый форм-айди, начинающийся на 00, а в плагине записаны лишь изменения над ним. Т.е - плагин как бы дублирует в себе уже имеющийся в игре ванильный объект, будь то броня, квест, скрипт или строчка диалога, но немного изменяет этот объект. Во втором случае новая форма (объект) находится\записана только в файле мода и имеет динамический форм-айди, меняющий первые цифры в зависимости от порядкового номера загрузки данного плагина в игру, т.е каким по порядку его назначат в мод-менеджере. Если первым после основного мастер-файла - то форм-айди будет начинаться на 01, если пятым - на 05 и т.д. Делается это для того, чтобы в игре не было двух форм (объектов) с одинаковым форм-айди, и поэтому движок игры автоматом меняет начальные цифры форм-айди у загружаемых плагинов. И если мод по каким либо причинам содержит в себе формы, начинающиеся на 00 (например, как в нашем случае, в результате копирования из мастер-файла) то каким бы по порядку в списке загрузки мы не ставили свой плагин - эти формы не будут менять свой форм-айди, оставаясь с двумя нулями вначале. Потому что движок игры считает их принадлежащими основному мастер-файлу, у которого форм-айди объектов неизменяемы. В принципе, в этом большой беды нет, так бывает всегда, когда плагин меняет формы "родного" мастер-файла и грузится в "родную" игру Но мы будем переносить свой плагин в ДРУГУЮ игру, и тут возникает (снова повторюсь) один нюанс: разрабы перенесли в Вегас из Фола довольно много объектов и причем под теми же самыми форм-айди, какие были в Фоле (правда в игре они практически не задействованы и висят мертвым грузом), но еще больше объектов не стали переносить. А вот освободившиеся форм-айди могли использовать для других объектов. Ну скажем, в Фоле объект 00АААААА - это был, (допустим) кусок стены Мегатонны (статика), а в Вегасе объект с таким же айди 00АААААА - это уже фишка казино (предмет инвентаря). И если наш мод содержит в себе такой вот кусок стены 00АААААА, который в Вегасе фишка казино - вот вам и глюк, вылет и прочая лажа.
Поэтому нам надо сделать так, чтобы объекты в нашем плагине имели "добропорядочные" форм-айди, меняющиеся в зависимости от порядка загрузки. Для этого нам нужно отвязать от нашего плагина основной мастер-файл игры с его двумянулёвыми объектами и назначить вместо него совершенно другой мастер-файл. Тогда наш временный плагин будет "перепривязан" к этому новому родителю и форм-айди его объектов будут начинаться на те же цифры, что у нового "папаши". А "папаша", естественно, при своем создании заполучит "нормальные" форм-айди.
Для этого сначала создадим новый пустой плагин. Запускаем фоловский ГЕКК, загружаем в него Fallout3.esm
После загрузки ничего не делаем, а сразу жмем дискетку (кнопку сохранения) В открывшемся окне даем имя будущему плагину. На этот раз называем так, как планируем называть будущий мод, т.е. - название уже окончательное. Назовем, к примеру, MetroObjectF3.esp . Сохраняем
У нас есть новый, совершенно пустой (без всяких объектов) плагин. Теперь этот новый плагин нужно поднять выше в списке загрузки, чем созданный ранее плагин TempFile.esp Это нужно, чтобы в дальнейшем при открытии обоих плагинов в ФОЭдит не выскакивало ошибок загрузки, поскольку мы наш второй созданный плагин сделаем мастером-"родителем" для первого, а родитель всегда должен грузиться раньше "дитяти".
Запускаем мод-менеджер ФОММ и мышкой перетаскиваем файл MetroObjectF3.esp наверх, выше нашего временного плагина TempFile.esp (см.рис).
Теперь запускаем ФОЭдит и грузим в него первый созданный плагин TempFile.esp
Переходим в нем на строку заголовка (File Header) и в правой половине окна делаем клик ПКМ на строчке с названием родительского мастер-файла (у нашего плагина всего один родитель - основной мастер-файл игры Fallout3.esm - на нем и кликаем) Выбираем в контексте строчку правки Edit и в открывшемся окне меняем родителя. Вписываем вместо Fallout3.esm файл MetroObjectF3.esp
вот так.
Маленькое замечание: если при создании файла TempFile.esp использовалась нерусифицированная версия мастер-файла Fallout3.esm и вместе с ним в ГЕКК загружался мастер-русификатор Russian.esm - то у нашего временного плагина будет ДВА родителя: Fallout3.esm и Russian.esm
С Fallout3.esm поступаем, как было описано выше, а Russian.esm просто удаляем из списка родителей. Выделяем строку Master File надRussian.esm, клик ПКМ и Remove ( у меня нет такого файла, поэтому на скриншоте чисто для примера показан другой файл. Но принцип - тот же)
В итоге у нашего плагина должно быть вот так, как на рисунке ниже.
Сохраняем изменения. Для этого жмем крестик в правом верхнем углу окна редактора (закрываем окно). Выскакивает новое окно с предложением в какой файл сохранить изменения. Отмечаем (вернее - там уже отмечено) файл TempFile и жмем ОК.
Запускаем заново ФОЭдит и снова отмечаем в загрузку все тот же TempFile.esp
Этот плагин загрузится вместе со своим новым мастером-родителем - файлом MetroObjectF3.esp. А вот этот новый родитель загрузит уже для себя своего собственного родителя - Fallout3.esm
Результат: поскольку MetroObjectF3 имеет в родителях основной мастер-файл Fаllout3.esm и создан по всем правилам , то все новые формы\объекты, которые будут создаваться в этом плагине - они будут иметь динамический форм-айди и начинаться в зависимости от порядка в списке загрузки. Т.е - сейчас этот файл стоит первым в списке из загруженных в редактор - то его объекты будут иметь форм-айди, начинающиеся на 01. Правда в данный момент в этом плагине нет ни одного объекта, но это неважно. А вот файл TempFile.esp теперь имеет нового родителя и все объекты "перепривязались" к нему. Теперь они начинаются на те же цифры, что и объекты нового родителя, т.е. - на 01. Что мы и видим на рисунке.
Чтобы не тащить в Вегас два файла (TempFile.esp и MetroObjectF3.esp) мы просто скопируем все объекты из TempFile.esp в MetroObjectF3.esp и удалим первый за ненадобностью. А в плагине MetroObjectF3.esp останутся все объекты статики метро, но уже с форм-айди на 01.
Для этого переходим в TempFile.esp на строчку раздела статики, делаем на ней клик ПКМ и выбираем "Глубокое копирование в...)
В открывшемся окне отмечаем файл, куда будем копировать - MetroObjectF3.esp и жмем ОК. Если копируется большое количество объектов - то это может занять довольно-таки продолжительное время. А если копируется ну о-о-очень много - редактор может зависнуть, поскольку для него просто не хватит оперативной памяти. И, естественно, ничего не сохранится. Поэтому в таких случаях лучше копировать небольшими порциями, дожидаясь, пока копируемые строчки позеленеют. После чего делать сохранение, закрывать редактор для сброса из памяти , запускать заново и продолжать с прерванного места.
Так или иначе - всё скопировалось.
Сохраняем MetroObjectF3.esp
Файл TempFile.esp нам больше не нужен и его можно удалить из папки Data, чтобы не засорял её. Заодно удаляем и первый созданный эдитовский бэкап файла MetroObjectF3.esp по той же причине.
Снова запускаем ФОЭдит и грузим MetroObjectF3.esp
Как видим - всё нормально. Объекты имеют форм-айди, начинающиеся на 01. Следующий шаг: поскольку этот файл мы будем использовать в Вегасе, то нам надо поменять родителя и этому файлу - вместо фоловского мастер-файла прописать вегасовский. Для этого переходим на строчку заголовка и в правом окне известным способом меняем нужные данные. Во-первых, изменяем версию файла с 0.94 на 1.34 и, во-вторых, меняем имя мастера Fallout3.esm на FalloutNV.esm
как-то так....
и так...
И что получилось в итоге.
Сохраняем плагин. В фоловской папке Data у нас теперь переделанный под Вегас файл MetroObjectF3.esp и новый бэкап этого файла, в котором он остался прописан под Фол. Бэкап можно пока оставить на всякий случай, а файл MetroObjectF3.esp вырезаем из фоловской Data и переносим в вегасовскую папку Data
Вставляем в Вегас..
Продолжение в 142 сообщении (ниже)
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №142
написано: 28 августа 2014, 08:31
| Отредактировано: ApeX - 17 января 2018, 08:13
Перенос объектов из Fallout3 в New-Vegas вторая часть - работа с вегасовскими редакторами и программами.
Сразу хочу сказать - любую работу со своим модом желательно проводить на "чистой" игре. То есть - не грузить в ГЕКК какие-либо сторонние плагины, особенно если они имеют статус мастер-файлов ( расширение *.ESM). Также желательно очистить папки meshes и textures в главной папке Data от содержимого. Поясню, зачем это делать. Возможно, а скорее даже - наверняка, у вас установлено некоторое (иногда немалое) количество модов на игру. И практически каждый мод добавляет какие-то файлы в указанные папки. И нет гарантии, что авторы этих модов придерживались негласных правил моддинга: скидывали новые модели в отдельные папки с названием своего мода, переписывали в моделях пути к текстурам, запаковывали все свои файлы в отдельный бса-архив и т.п... К сожалению, большинство мододелов относятся к категории, как я их называю, "гекменов" и лепят свои поделки как придется, вставляя, к примеру, новые модели, но под ванильными именами (т.н. простейший реплейсер). И в папке Data у вас самый настоящий винегрет из различных файлов\папок от всяческих модов, причем вы даже не помните - какой файл родной, а какой добавлен чьим-то модом и меняет собой ванильную модель\текстуру. А при просмотре в ГЕКК любого объекта, даже просто из основного мастер-файла FalloutNV.esm мы увидим в таком случае не ванильную модель\текстуру, а модель\текстуру этого горе-модмейкера, поскольку она заменила напрямую собой оригинал. И если мы забыли, что у нас ванильный объект изменен и стали делать свой мод, основываясь на таком объекте - то можно с уверенностью сказать, что после публикации будет куча возмущенных пользователей. С претензиями типа: скачал вашу броню, а там никаких изменений. А потому что у данных пользователей не установлен такой же мод от очередного гекмена и у них показывается "ваниль". Поэтому при создании своего мода содержимое указанных выше папок лучше вырезать и переместить в какую-нибудь временную папку, чтобы после окончания работ над модом вернуть все на место.
Точно также, если мы вместе со своим модом будем грузить в ГЕКК еще какой-нибудь мастер-файл от другого мода, ну скажем - какой-нибудь AWOP или "проект Невада" - то при сохранении своего плагина редактор автоматически "привяжет" к нему в родители все загруженные в тот момент в ГЕКК есм-файлы, то есть - тот же АВОП или Неваду. И получится, что плагин будет требовать для своей работы ненужный ему AWOP\Неваду, а пользователи, у которых не установлены эти свистелки-перделки (например: я :-) ) останутся у разбитого корыта. Поскольку плагин у них просто не будет работать. В общем - суть ясна: чем меньше нам при создании нашего мода будут мешать всякие модельки\текстурки, скриптики\квестики от разных производителей - тем легче будет делать собственно мод и тем меньше потом будет багов и конфликтов.
Продолжаем работу по переносу объектов метро. Запускаем вегасовский ГЕКК и отмечаем в загрузку перемещенный из Фола файл MetroObjectF3.esp
Обязательно (!) жмем кнопку "Настроить, как активный файл"(Set as Active File) Потому что всё, что мы делаем в редакторе - все записывается ТОЛЬКО в активный файл, в данном случае - в наш MetroObjectF3.esp. Если забыть отметить активным при работе со своим файлом - все изменения будет предложено записать в новый плагин (а зачем нам кузнец еще один плагин?) и появится дополнительный геморрой по сведению данных из двух файлов в один, если жалко будет терять проделанную работу.А то и поболее, чем из двух - зависит от того, сколько раз забыли отметить свой плагин активным.
Итак - загрузили активным свой новый плагин MetroObjectF3.esp Идем в окне объектов по известному пути: Объекты мира-Статика-Помещения-Метро. Хотя можно остановиться уже на строке статики. Чтоб увидеть свои новые внесенные объекты - нужно отсортировать в правом окне показ объектов по форм-айди. Для этого нажимаем на заголовок соответствующей колонки. Это вторая по счету колонка, обычно она сжата до неприличия и почти не видна. Растягиваем за границы, чтоб "увиделась" и жмем название заголовка. Объекты отсортируются по форм-айди и сверху по списку выстроятся как раз наши новые объекты, начинающиеся на 01 (при условии, что в редактор не грузилось больше никаких других файлов, кроме нашего). Все остальные объекты будут иметь форм-айди на 00 и принадлежать основному мастер-файлу FalloutNV.esm Также напоминаю про знак "звездочка" в третьей колонке ;-) Отмеченные звездочкой - значит "внесенные" неванильные объекты АКТИВНОГО мода (либо изменные этим модом ванильные).
Если загрузили в редактор кроме своего активного файла еще что-то, например русификатор FalloutNV_lang.esp - то в таком случае объекты нашего мода будут иметь форм-айди, первые цифры которого будут соответствовать порядковому номеру загрузки, например 02, 03, 04 и т.д. Узнать порядковый номер своего плагина на данный момент можно в мод-менеджере. Для этого убираем в нём отметки со всех плагинов и выставляем только на тех, которые в данный момент загружены в ГЕКК. Справа от названия плагина мод-менеджер покажет его ТЕКУЩИЙ порядковый номер.
Закрываем ненужный пока мод-менеджер и возвращаемся к ГЕККу. Если внимательно посмотреть на новые внесенные объекты метро, то можно заметить что некоторые из них поменяли название. А точнее - к старому, родному названию добавилось в конце слово "Дубликат000" (DUPLICATE000).
Это значит, что в вегасовском основном мастер-файле FalloutNV.esm уже есть объект с точно таким же названием. А поскольку редактор не допускает появления двух одинаково названных объектов, то в последнем из списка загружаемых плагинов он изменит название объекта, добавив к нему в конце слово "Дубликат". И получится как бы совсем новый объект со своим уникальным редакторским айди (Editor ID). Иногда это проходит безболезненно для плагина, но вот если имя такого переименованного объекта используется в каком-нибудь скрипте - то скрипт перестанет работать. Поскольку в тексте скрипта такой объект записан под старым именем, без слова "Дубликат". Поэтому нам желательно первым делом проверить все наши нововнесенные объекты, у которых в названии появилось слово "Дубликат". Если такой объект полностью совпадает по всем параметрам с ванильным объектом - то такой дубликат можно с чистой совестью удалить из своего плагина. За ненадобностью, поскольку есть "ванильный".
Для этого находим первый дубликат и открываем его (двойной клик ЛКМ на строчке с названием) Откроется окно свойств объекта. Для примера рассмотрим объект "Символика Братства Стали01" (BoSsymbolSign01DUPLICATE000).
Нам нужно найти теперь ванильный объект, который этот наш дубликат дублирует (сори за тафтологию). Для этого можно воспользоваться функцией фильтрования базара объектов в окне объектов. Выделяем в поле ID название объекта до слова DUPLICATE (т.е. - только BoSsymbolSign01) и копируем.
В окне объектов в поле Фильтр (Filter) вставляем скопированное название.
В правом окне редактор отфильтрует и покажет все объекты, в названии которых есть искомый текст. В нашем случае нашлось два таких: внесенный нашим плагином BoSsymbolSign01DUPLICATE000 и ванильный объект BoSsymbolSign01. Оба из раздела Статика и, судя по колонке Model, - оба объекта используют одинаковую модель BoSsymbolSign01.nif прописанную по одинаковому пути Dungeons\Metro\Signs.
Но это еще не значит, что модели одинаковые. Разрабы могли изменить в Вегасе саму модель, но оставить ей фоловское название. Поэтому теперь надо посмотреть на эти объекты визуально и сравнить их между собой. Выделяем BoSsymbolSign01DUPLICATE000 и делаем клик ПКМ. В выпавшем контекстном меню выбираем строчку "Просмотр" (Preview)
Откроется встроенный в редактор просмотровщик. Для удобства просмотра можно отключить показ поверхности земли (убрать галочку с чек-бокса Ground plane). В окне прсмотра крутим изображение модели символа Братства в разные стороны для более подробного осмотра.
Затем точно также просматриваем ванильный объект BoSsymbolSign01. Убеждаемся, что они (BoSsymbolSign01DUPLICATE000 и BoSsymbolSign01) совершенно одинаковы. А раз они одинаковы - то зачем нам в нашем плагине повтор? Выбираем наш дубликат, делаем на нем клик ПКМ и удаляем. Остается только "родной" вегасовский BoSsymbolSign01
Все удаленные в редакторе объекты не исчезают из списка, а только помечаются, как удаленные (в колонке Count после количества появляется буква D). Пока редактор не закроется - такой удаленный объект будет считаться задействованным, к примеру - его имя нельзя будет дать какому-нибудь новому объекту. Только после сохранения плагина и закрытия редактора при новой загрузке плагина удаленный объект окончательно исчезнет из мода.
Просматриваем все внесенные объекты (форм-айди начинающееся на 01) имеющие в названии слово "Дубликат000". Находим вышеуказанным способом для каждого ванильный аналог и при полном совпадении дубликата с ванилью - удаляем (дубликат)
А теперь рассмотрим случай, когда объект-дубликат отличается от ванильного. Например: наш мод внес объект MetHallRubPileA01 (кусок стены метро) Но в Вегасе уже есть объект с точно таким же названием и поэтому редактор переименовал наш объект в MetHallRubPileA01DUPLICATE000. При просмотре в правой половине окна Object Window мы увидели, что у этих объектов прописаны разные модели. Т.е. - в Фол3 (откуда мы скопировали объект) модель была одна, а в Вегасе у объекта с точно таким же названием - разработчики назначили совсем другую. Смотрим в Превью через просмотровщик и видим, что ванильная модель показывается нормально, а вот в нашем дубликате вместо модели виден красный ромб.
Это значит, что редактор не нашел прописанную в настройках объекта модель. Ни в папке Data, ни в ванильном бса-архиве. Все правильно - модель осталась в Фол3 и мы перенесем её сюда, в Вегас, но чуть позже. Ну а пока нам нужно оставить этот объект-дубликат, поскольку он является дубликатом только по названию, а не по содержанию (внешнему виду). Оставить можно под тем же именем, что дал ему редактор, т.е. - MetHallRubPileA01DUPLICATE000. Но для красоты можно этот объект переименовать, дабы не резал глаз другим мододелам, решившим "поковырять" этот мод. Потому что слово "Дубликат" как-то... эээ... настораживает. Чтобы корректно переименовать данный объект (как в прочем любой другой) нужно дважды кликнуть на нем в списке, чтобы открылось окно свойств. В поле ID меняем объекту название, к примеру: убираем слово DUPLICATE000 и вместо него пишем что-нибудь другое, ну, скажем - пишем F3. В итоге получаем - MetHallRubPileA01F3
Жмем кнопку ОК и сразу же выскакивает предупреждение: Вы изменили Эдитор айди объекта. Старый ID был ... бла-бла-бла.., новый ID стал- ля-ля-ля. Создать всё это как НОВЫЙ объект? Отвечаем: - Хренушки, новый объект нам не нужен, мы хотим переименовать старый. То есть - мы жмем кнопку "НЕТ"
Редактор сомневается в наших умственных способностях и поэтому еще раз предупреждает: этот объект используется в игре таким-то количеством других объектов и имеет, кроме всего прочего, некоторое количество референсов (копий) в мире игры. Точно будем менять ему айди?
Отвечаем утвердительно: - Да, меняем! (жмем кнопку "Да")
И только теперь редактор переименует данный объект так, как мы хотели.
Ну что же, на данном этапе мы просмотрели все внесенные нашим плагином объекты, имеющие редакторскую пометку "дубликат". Одинаковые с вегасовской ванилью объекты мы удалили, различающиеся - переименовали. Сохраняем плагин и закрываем редактор. К слову - сохранять плагин в принципе надо практически каждые пять минут. Поскольку редактор ГЕКК - это довольно-таки глючная программа, склонная к непредсказуемым вылетам. И довольно часто, увлекшись творческим процессом, мододел забывает делать сохранения и после пары часов радостного творения вдруг - бац!.. зависание или вылет. И все труды насмарку.
Продолжим. Сохраняем плагин, закрываем редактор. Снова запускаем и грузим активным наш плагин. Всё, что мы ранее удалили - всё исчезло из плагина и не мешает работе. А работа предстоит долгая и нудная: через Превью просматривать ВСЕ оставшиеся в плагине внесенные объекты. Зачем? А затем, что таким образом будем вылавливать - для каких объектов в Вегасе уже есть модели ( разработчики перенесли), а для каких нужно будет "выдергивать" из Фола и переносить сюда, в Вегас.
Снова переходим в окне объектов на раздел Статики и отсортировываем показ объектов по форм-айди. И начинаем по порядку, с первого внесенного до последнего, просматривать через превью. Т.е. - клик ПКМ на строчке с названием и выбор Превью
Если объект в окне просмотра отображается нормально - значит для него в вегасовских архивах уже есть 3D-модель и нам из Фола ничего не надо переносить. Если объект не отображается и в окне просмотра вместо него показывается красный ромб с восклицательным знаком - то значит нам придется "выдергивать" из Фол3 модель (и текстуры) и тащить их в Вегас..
Так же, если объект все-таки отображается, но есть сомнения, что в Фоле у него была другая "раскраска" (текстура) - то для контроля можно запустить параллельно фоловский ГЕКК, найти в нем этот объект и сравнить визуально с показываемым в вегасовском ГЕККе. Как запускать два редактора одновременно - описано в этом ответе в КАРТОТЕКЕ ответов на форуме modgames.net
Просматриваем ВСЕ объекты. Для которых в вегасе нет моделей или текстур - выдергиваем из Фол3 нужные модели. Какие модели нужны? Если посмотреть на список оставщихся объектов то увидим, что все они используют модели, находящиеся в папке dungeon\Metro + ХХХ (еще более глубинные каталоги). Не забываем, что редактор не показывает начальный путь Data для всех объектов и путь meshes\ для моделей в частности, считая это само собой разумеющимся. Т.е. - модели находятся в Data\meshes\dungeon\Metro + ХХХ.
Нам достаточно выдернуть из фола содержимое Data\meshes\dungeon\Metro со всеми подкаталогами и файлами. Конечно, некоторое количество файлов будет ненужным, поскольку аналоги имеются в Вегасе, но на этот момент можно не обращать внимания. Nif-файлы моделей "весят" немного и не слишком утяжелят архив мода. Модмейкеры, особо щепетильные к весу мода, могут "поштучно" копировать путь к каждой модели, выдергивать ее из фола и "складировать" их в какой-нибудь временной папке. Сохраняя, естественно, путь прописки, т.е. - создавать все нужные каталоги и подкаталоги.
Ну а мы... Как говорил своему брату еще один популярный политический лидер: - мы пойдем другим путем. Для упрощения операций с моделями и текстурами извлечем ВСЁ содержимое фоловских бса-архивов в какую-нибудь временную папку. Идем в папку Фола и открываем бса-архив с моделями.
Двойной клик на архиве - и откроется встроенный в мод-менеджер БСА-браузер (при условии, что бса-архивы ассоциированы с этой программой, что, впрочем, происходит автоматически при установке мод-менеджера в систему). Нажимаем кнопку - Извлечь всё.
В открывшемся окне указываем папку, куда будем извлекать. Чтоб не загромождать игровые папки - лучше создать отдельную папку и извлечь туда. К примеру, как на скриншоте - создать папку 111 в папке Games и всё туда, туда...
Точно также извлекаем всё содержимое фоловского бса-архива с текстурами. Всё в ту же папку 111.
Операция извлечения текстур довольно-таки длительная, но в конце концов у нас в папке 111 окажутся все фоловские модели и текстуры к ним. Заберем (скопируем) оттуда папку с моделями интерьеров метро. Как помним - они находятся по пути meshes\dungeon\Metro Заходим в эту папку и копируем ВСЁ её содержимое, все "подпапки" (ну или "не доходим" до этой папки, а только до папки Dungeons и копируем там целиком папку Metro, что в принципе сути не меняет)
Создаем еще одну новую папку, ну хоть там же в Games и называем её 222. Вставляем туда скопированное. Зачем в отдельную папку? А так удобней будет впоследствие создавать свой бса-архив для мода. Ничего лишнего не "зацепится" из игровой папки Data.
Теперь переходим в вегасовскую папку Data\meshes. Если вначале, следуя моему совету, вы освободили от всего игровую папку meshes и она сейчас пуста, то "ручками" создаем там папку Dungeons, затем в ней - папку Metro и вставляем второй раз скопированное из 111. Если копировалииз 111 целиком папку Metro - то создаем в вегасовской meshes только папку Dungeons и вставляем туда из буфера папку Metro. Зачем, скажете, еще и сюда копировать? А чтобы в ГЕККе посмотреть - покажутся эти модели в нашем моде или нет, правильно ли перемещены файлы.
В общем - полностью дважды дублируем (в 222 и в игру) все папки\файлы с объектами метро по такой же иерархии, как были распакованы из игрового архива в папку 111.
Теперь, поскольку у нас в игровой папке Data появились перенесенные из фола модели, - то можно полюбоваться на них в редакторе. Запускаем вегасовский ГЕКК, грузим активным свой плагин MetroObjectF3.esp и переходим во все тот же раздел с нововнесенными объектами интерьеров метро. Сортируем по форм-айди (ну вы помните...) и смотрим через Превью. Опаньки! Всё появилось!
Для контроля снова паралельно запускаем фоловский ГЕКК и сравниваем визуально - есть ли расхождения по внешнему виду, т.е - как они выглядели в Фол3 и как выглядят сейчас, в Вегасе. Просматриваем все внесенные объекты и рано или поздно натыкаемся на нечто подобное:
Здесь мы видим отсутствие текстуры на части модели. А можно встретить и различие текстур (т.е - в фоле использовалась одна, а в вегасе этой модели назначена совсем другая).
Если текстура отсутствует в Вегасе (это когда при просмотре модели вместо положенной текстуры показывается что попало, идет мельтешение из разных текстур и т.п.) - значит нужно выяснить, что это за текстура, её название. Закрываем Превью и делаем двойной клик ЛКМ на найденном "бестекстурном" объекте. В открывшемся окне свойств объекта в поле Model запоминаем ИМЯ файла модели (например, на скриншоте видим имя MetrоSignsKiosk03.nif) и путь, по которому она находится в папке Data
Ищем в вегасовской папке Data этот файл. Находим и открываем его в программе Nifskope (двойной клик ЛКМ на файле)
Возможно, Нифскоп покажет отсутствующую текстуру на модели, поскольку в программе прописан путь поиска текстур в фоловской папке Data (по крайней мере - у меня так). А в фоловской папке эта текстура, естественно есть. Если не покажет - тоже ничего страшного. Мы-то знаем, в каком месте на модели мы не увидели текстуру в ГЕККе. Тыкаем в это место курсором (1) (должно выделиться и покажутся белые треугольники) и в левом окне программа автоматически подсветит строчку этого блока (2). Раскрываем плюсик этого блока и переходим на строчку BSShaderTextureSet (3).
Выделив строку BSShaderTextureSet курсором, смотрим на нижнюю половину окна программы.Видим там плюсик в строчке Textures и раскрываем его. Вуаля - нам будут показаны имя файла текстуры (MetroMapLightBox01.dds) и путь, по которому он находится в фоловской папке - Data\textures\architecture\urban\ Второй, нижний файл Flat_n.dds - это файл нормалей (рельефности) Если скопировать его название, а затем открыть вегасовский бса-архив с текстурами и вставить скопированное название в строку поиска - то можно увидеть, что такой файл есть в Вегасе. Значит нам он не нужен, а нужна только первая текстура - MetroMapLightBox01.dds
Идем в папку 111, куда мы распаковывали все фоловские файлы и ищем по узнанному в нифскопе пути необходимую текстуру MetroMapLightBox01.dds Копируем её
Вставляем в папку 222, соблюдая путь прописки.
И еще раз вставляем её же в вегасовскую Data (ПУТЬ!!!)
Смотрим в вегасовском ГЕККе на изменения. Отсутствующая ранее текстура должна появиться на объекте. Если не появилась - обновляем просмотр (F5) или же перезапускаем редактор (можно сделать позже, когда будут найдены и скопированы все отсутствующие текстуры). К слову... именно эта текстура из приведенного примера показывает карту метрополитена Вашингтона. Если мы собираемся в своем моде размещать данный киоск в каком-либо другом (по замыслу) городе - то карта Вашингтона будет там неуместна. В таком случае эту текстуру можно сразу же перерисовать в Фотошопе, изобразив на ней то, что хотелось бы.
Пару слов о ситуации, когда текстура на внесенном объекте в вегасе отображается нормально, но в фоле она была совсем другая. Чаще всего это касается раскраски стен и пола (бетон\металл) или цвета скал (зеленые\желтые). Если оставить такой объект как есть - то в игре в Вегасе он будет "раскрашен" по другому, не так, как вФоле. Как вернуть фоловскую раскраску?
Поступаем следующим образом. (с этого момента у меня закончились сделанные заранее скриншоты, а сделать новые я не могу в силу немного печальных обстоятельств. Так что по-быренькому на словах... )
Открываем в ГЕКК такой вот "проблемный" объект ХХХ и смотрим у него имя файла модели, находим эту модель в вегасовской папке Data, открываем её в Нифскопе и смотрим имя используемой текстуры. Выдергиваем эту текстуру из фола, размещаем в нашей папке 222 и переименовываем (даём другое имя). Переименованную текстуру копируем в вегасовскую папку Data. Открываем модель в Нифскопе (если успели закрыть) и изменяем старое имя используемой текстуры на то, которое мы только что дали (переименовали). Сохраняем модель.Затем переименовываем и её тоже. Копируем уже переименованную в папку 222 (как помните - из этой папки мы будет делать бса-архив для мода) Заходим в ГЕКК, открываем (если закрыли) объект ХХХ, и жмем кнопку Правка (Edit) В открывшемся окне указываем нашу переименованную модель и жмем ОК. Сохраняем. Теперь этот "проблемный объект использует не ванильную модель с назначенной разрабами вегасовской текстурой, а переделанную нами модель с назначенной фоловской (пусть и переименованной) текстурой.
Скажу по огромному секрету: всё, что описывалось в последних абзацах - все это давным давно расписал добрый пользователь aka КAIN48 вот тут, во всё той же КАРТОТЕКЕ ответов на modgames.net (надо бы брать плату за рекламу) И, в принципе, - данный туториал никуда никому не уперся, поскольку основываясь на вышеуказанном ответе Каина можно понять суть переноса объектов из Ф в НВ и способ их ретекстурирования. ;-)
Но тем не менее - закончу мануал. Тем более, что осталось несколько скриншотов, которые сделала раньше, когда накидывала план по составлению данного комикса.
Итак, напомню, что мы сделали. Выбрали в фоловском ГЕККе нужные нам объекты из категории "Интерьеры метро", записали их в плагин MetroObjectF3.esp через промежуточный плагин TempFile.esp. Скорректировали всё нужное в ФО3Эдите и переделали MetroObjectF3.esp под Вегас. Перекинули плагин в вегасовскую папку. Просмотрели плагин в вегасовском ГЕККе и удалили полные дубликаты объектов(одинаковые с вегасовскими и по названию и по моделям\текстурам). Изменили одинаковые по названию, но несовпадающие по внешнему виду. Просмотрели все объекты и для которых отсутствовали модели\текстуры - скопировали нужное в две папки (в вегасовскую Data и во временную папку 222) из фоловской папки. Переименовали и переназначили, там где потребовалось модели для объектов. Плагин, в принципе, готов. Остался завершающий штрих - сделать всё красиво. А именно: чтоб не загромождать папку Data кучей новых файлов - запаковать все перенесенное в один единственный файл, в бса-архив. Приступаем...
Запускаем вегасовский мод-менеджер NVMM.exe.
Когда откроется - жмем кнопку "Инструменты" (Tools) и выбираем строчку создания архивов - BSA creator
В открывшемся окне указываем путь к папке 222, куда мы дублировали выдернутые из фола файлы, а также выдернутые, но переделанные в процессе работы над плагином файлы из вегасовской Data.
Напоминаю, что в 222 иерархия (расположение папок) должна соответствовать положению папок в Фол3 и также соответствовать путям прописки в параметрах объектов. Проверяем всё внимательно перед запаковкой! Если будет ошибка или опечатка в названии хотя бы в одной букве - движок не найдет указанные файлы.
После выбора папки жмем ОК. Это окно закроется и останется на экране предыдущее. В нем жмем кнопку создания архива (Create)
Откроется еще одно окно, в котором будет предложено дать имя будущему архиву. Архив должен называться точно также, как и файл-плагин мода, т.е. - MetroObjectF3 Пишем имя (без ошибок, иначе архив не будет работать) и жмем кнопку "Сохранить"
Запаковщик заработает и через некоторое время (зависит от количество запаковываемых файлов) архив создастся. Признаком того, что запаковщик закончил работу станет повторная активация кнопки Create (в процессе запаковки она становится серой, не активной). Закрываем запаковщик и мод-менеджер и идем в папку Data. Окей - есть и файл плагин и новый бса-архив.
Удаляем из папки Data все, что мы скопировали из Фол3 и возвращаем туда ранее убранные файлы, ну те самые, что были там до работы над плагином и которые мы временно спрятали "в чуланчик". Запускаем вегасовский ГЕКК, чтобы проверить - видит ли редактор запакованные в архиве файлы. Если все сделано так, как описано и без ошибок\опечаток - проблем быть не должно. Редактор увидит все модели и текстуры. Теперь можно приступать строить из этих объектов новую станцию метро "Галанинская" :-) и наполнять свой мод персонажами, квестами и прочей фигней красотой. Но это уже совсем другая история...
Ну и последний нюанс. Возможно, после окончания всех работ над плагином, вам захочется сделать свой файл не файлом-плагином, а мастер-файлом. Это будет даже правильней, если планируется, что ваш мод будет использоваться как ресурс для создания на его основе других модов. Для этого нашему плагину MetroObjectF3.esp нужно придать внутренний статус мастер-файла esm. Проще всего это сделать через FNVEdit. Открываем плагин в Эдите, переходим на строку заголовка. В правом окне делаем клик ПКМ на строчке Record Flags и выбираем "Правка"
В открывшемся окне выставляем флаг ESM (отмечаем первый чек-бокс) и жмем ОК.
Закрываем Эдит, сохраняя плагин. Теперь ОБЯЗАТЕЛЬНО меняем расширение у нашего плагина MetroObjectF3.esp Меняем esp на esm
Если у вас отключен показ расширений для файлов - заходим в меню Сервис - Свойства папки (это в Проводнике Виндовс) и во вкладке "Вид" убираем галочку с чек-бокса "Скрывать расширения для зарегистрированных типов файлов. Пользователей Виндовс7 и прочей новизны отсылаю к справочникам их систем.
Если сменить у плагина внутренний статус с есп на есм, но оставить внешнее расширение есп - это не есть правильно. И редактор и движок игры реагируют на такое несоответствие непредсказуемо. Т.е - могут и не заметить, а могут и выкинуть что-нибудь этакое... Зачем нам лишние глюки? Лучше всё сразу делать правильно, как положено.
Осталось переименовать бса-ахив. Поскольку если для файла-плагина достаточно, чтобы бса-архив имел точно такое же имя, как у самого плагина, то файл-мастер "не увидит" такой архив. Ему, видите ли, требуется, чтобы в названии архива, кроме имени как у мода, присутствовало еще какое-нибудь дополнительное слово, причем неважно какое, лишь бы было. По традиции именам бса-архивов для мастеров дают дополнения, подсказывающие содержания архива. Например: Fallout - meshes.bsa (архив с мешами, то бишь - моделями) , DeadMoney - sound.bsa (архив со звуками) ит.д Если архив содержит всё, и модели. и текстуры и звуки - то по традиции к названию добавляют слово main (главный) Мы тоже переименуем архив, как положено.
И дописываем слово main. Причем делаем так: оставляем в имени название мода, затем ставим пробел, потом дефис, снова пробел и слово main. Правда, на форуме (ну вы помните на каком) знающие люди утверждали, что и мастер-файл тоже увидит плагин даже без дополнительного слова, но проверять неохота, да и не зачем. Вписать одно слово - не великий труд, зато... тр-р-радиция, мать её, соблюдена.
Ну и всё. Осталось провести валидацию (если до сих пор не в курсе, что сие слово означает- сочувствую) Хотите узнать о ней больше- звоните КАРТОТЕКА Да, вы угадали, всё там же...
А кто подзабыл - напоминаю без слов, одними картинками, 4 шага.
1)
2)
3)
4)
ФИНИТА! Работа окончена. Можно на основе этого файла делать свой мод, строя из его объектов Московский метрополитен, воплощая давнюю мечту - сделать СТАЛКЕР на движке Вегаса
С приветом, Гала Галанина aka Galko
Архив с этим мануалом, в формате htm, можно скачать по этой ссылке ----------------------> ССЫЛКА #blockedit
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №143
написано: 28 августа 2014, 10:48
| Отредактировано: КсюXa - 17 января 2018, 05:53
Раз уж начался разговор о "переносах", желающие могут научиться переносить перки из Fallout 3 в FalloutNV. Помнится, как-то просили меня рассказать, как перенести из Фол3 в Вегас перк "Само совершенство". Я, как обычно. "накатала" целый туториал ССЫЛКА Скачать и читать по ссылке там, или под спойлером здесь!
Без предисловий…
Запускаешь GECK (для Вегаса)
После загрузки редактора нужно выбрать файл для редактирования. Для этого нажимаешь кнопку выбора файлов
Откроется окно, в котором будут перечислены все плагины, находящиеся в папке Data игры.
Поскольку ты создаешь свой собственный плагин – то нужно отметить базовый мастер-файл FalloutNV.esm Двойной клик на нём, чтоб появился крестик отметки и затем ОК
Иногда можно загружать в редактор русификатор FalloutNV_lang.esp В таком случае будет немного проще ориентироваться в объектах редактора, потому что их имена (а также топики диалогов, тексты записок , терминалов и т.п.) будут на русском. В случае подключения русификатора отмечать нужно только его, базовый мастер-файл FalloutNV.esm можно не отмечать – он сам загрузится. Поскольку является «родителем» для русификатора.
Как видно на скриншоте – отмечаем крестиком русификатор и жмем ОК. Никаких других кнопок жать не нужно!!!. Иначе, если нажать зачеркнутую кнопку – русификатор загрузится в редактор, как активный файл и всё, что ты будешь делать в редакторе - всё запишется именно в него.
После нажатия кнопки ОК (при НЕотмеченном как активный, файлом русификатора) выскочит окно с предупреждением, что ни один файл не назначен активным (все правки запишутся в новый, пустой плагин). Нам это и нужно, поскольку будем создавать именно свой, новый плагин. Поэтому жмешь кнопку ОК
Русификатор и основной мастер-файл загрузятся в редактор. После этого жмешь кнопку сохранения файла на панели инструментов. Для того, чтобы создался новый плагин, с которым ты и будешь работать.
В открывшемся окне даешь имя своему будущему плагину (только английскими буквами и без пробелов) Имя нужно давать такое, чтоб было понятно, хотя бы тебе, что это за плагин. В мем примере я назвала плагин MyPerkMod
После назначения имени и закрытия окна сохранения плагина можно увидеть, что в заголовке редактора появилось название твоего мода. Это значит, что он в данный момент активен и все изменения и правки в редакторе будут записываться в него.
КСТАТИ, сразу о важном! Редактор склонен к непредсказуемым вылетам поэтому желательно почаще сохраняться (нажатием на значок дискеты). Если произошел вылет или ты прервал работу и закрыл редактор – то при последующей загрузке своего плагина надо отмечать ТОЛЬКО его и ОБЯЗАТЕЛЬНО назначать активным!!! Иначе вся последующая работа будет записана в совершенно новый файл и не факт, что потом удастся корректно слить все эти файлы-«кусочки» в один плагин.
Продолжим. Твой плагин загружен активным в редактор. Создаем нужный тебе перк «Само совершенство» . Я предварительно посмотрела, как он реализован в Фол3 и поэтому знаю, что делать
Перк там реализован посредством работы квеста, в стадии которого в результат-скрипте прописаны необходимые команды для поднятия всех параметров СПЕШИАЛ до 9. То есть: при запуске игры включается "технический" квест, который ждет своего часа, чтобы отработать прописанную в его стадии команду - повысить все параметры СПЕШИАЛ. Команду квест получает автоматически от нужного перка.
Итак, для начала нужно создать сам квест. В окне объектов (левая колонка редактора) раскрываешь ветвь Actor Data и переходишь на строчку Quest (выделяешь строчку левой кнопкой мыши). Справа раскроется список всех квестов игры. Клик ПКМ на любой строчке и в контекстном меню выбрать строчку создания нового квеста - New
Откроется окно нового, пустого квеста на первой вкладке данных квеста. Там вводим айди (ID) квеста. Только английским буквами и без пробелов. Обычная практика – давать айди объектам, ставя вначале буквы а. Поскольку в списках объектов они располагаются по алфавиту и так легче их найти. Нежелательно назначать айди, ничинающееся с цифры. Большой беды в этом нет, но тем не менее многие отмечают появление непредвиденных глюков при компиляции скриптов, если айди объекта начинается с цифры.
В примере на скриншоте я дала айди объекту aaMyPerkQuest Объектам в своем плагине также желательно давать «однообразные» имена, указывающие на их принадлежность к одному плагину и, желательно, к какой категории относится новый объект. Названия айди не могут быть одинаковыми (редактор не даст).
Итак, даешь айди своему квесту, отмечаешь чек-бокс Start Game Enabled (включаться при старте игры) и НЕ ПЕРЕХОДЯ на другие вкладки (такова прихоть редактора) жмешь кнопку ОК, чтоб сохранить новый квест. Окно закроется и в списке существующих квестов ты увидишь, что появился твой новый квест. Открываешь его.
Переходишь на вкладку стадий квеста Quest Stages. Создаешь новую стадию квеста (на скриншоте понятно, как это сделать) Стадия нужна для того, чтобы в получить доступ к полю результирующего скрипта.
Создастся новая нулевая стадия. Можно ( и желательно) дать ей другой номер, к примеру – 5. Зачем? Для резерва, так сказать (читаем туториалы по созданию квестов)
Затем выделяешь строчку со стадией квеста и в правом окне (см. скриншот) создаешь новые данные стадии
Выделяешь строчку и жмешь кнопку правки результирующего скрипта
В открывшемся окне пишешь скрипт. Скрипт взят из соответствующего квеста в БрокенСтил и использует стандартные команды по изменению параметров СПЕШИАЛ
Set HoldValue to Player.GetPermanentActorValue Strength
If HoldValue < 9
Set HoldValue to 9 - HoldValue
Player.ModAV Strength HoldValue
EndIf
Set HoldValue to Player.GetPermanentActorValue Perception
If HoldValue < 9
Set HoldValue to 9 - HoldValue
Player.ModAV Perception HoldValue
EndIf
Set HoldValue to Player.GetPermanentActorValue Endurance
If HoldValue < 9
Set HoldValue to 9 - HoldValue
Player.ModAV Endurance HoldValue
EndIf
Set HoldValue to Player.GetPermanentActorValue Charisma
If HoldValue < 9
Set HoldValue to 9 - HoldValue
Player.ModAV Charisma HoldValue
EndIf
Set HoldValue to Player.GetPermanentActorValue Intelligence
If HoldValue < 9
Set HoldValue to 9 - HoldValue
Player.ModAV Intelligence HoldValue
EndIf
Set HoldValue to Player.GetPermanentActorValue Agility
If HoldValue < 9
Set HoldValue to 9 - HoldValue
Player.ModAV Agility HoldValue
EndIf
Set HoldValue to Player.GetPermanentActorValue Luck
If HoldValue < 9
Set HoldValue to 9 - HoldValue
Player.ModAV Luck HoldValue
EndIf
Копируешь целиком весь текст, от пунктира до пунктира (сам пунктир не нужен ) и вставляешь в окно результ-скрипта.
Эти манипуляции были нужны затем, что именно результ-скрипт стадии квеста поднимает все параметры до нужного уровня.
Жмешь ОК. Сохраняешь квест нажатием кнопки ОК справа внизу. Окно квеста закроется. Теперь нужно создать сам перк, который будет «навешен» игроку и который "включает" стадию нашего квеста для выполнения его скрипта, а также сообщает в игре, что игрок получил некую способность.
В окне объектов переходишь на строчку перков и по аналогии с квестом создаешь новый, пустой перк.
В открывшемся окне назначаешь айди (ID) этому объекту (перк ведь тоже объект игры) и вписываешь ИМЯ, под которым он будет виден в самой игре. Айди дается английскими буквами без пробелов (в моем примере это aaMyPerkAlmostPerfect) , имя пишется по-русски. В поле Perk Description (описание перка) пишешь то, что в Пип-Бое игрока показывается в описании к перку. Редактор пльёхо знайт русски, поэтому при написании русского текста включается проверка правописания с предложением запомнить незнакомые слова. Жмешь кнопку Игнорировать.
НЕ ЗАБУДЬ отметить чек-бокс Playable, чтоб перк стал игровым и доступным игроку.
Также отмечаешь в поле Level требуемый уровень игрока для получения данного перка. В нашем случае – это 30. То есть, как только в игре игрок достигнет 30-го уровня - то ему станет доступным для выбора этот перк через Пип-Бой при уровневом распределении заработанных очков. Затем в нижнем поле Perk Entries создаешь новое значение для перка для того, чтобы указать, что именно будет использовать этот перк для своей работы (т.н. точки входа)
В открывшемся окне настроек этого значения отмечаешь радио-кнопку Quest (поскольку наш перк будет работать в "паре" с нашим квестоми) и справа в выпадающем списке выбираешь свой созданный квест aaMyPerkQuest.
Еще правее выставляешь номер стадии в своем квесте, скрипт которой должен «скушать» этот перк. Поскольку в твоем квесте всего одна стадия, под номером 5 – то выставляешь именно цифру 5. И жмешь ОК
В итоге имеем вот такой вот законченный вид перка.
ВСЁ!!! Можно проверять в игре.
И вот так это выглядит в действии. При переходе на новый уровень, когда предлагается выбрать новый перк, доступный для этого уровня (правда, поскольку у меня нет сохранения с персонажем 30-го уровня я , чисто для проверки, сделала уровень получения перка 2, чтоб не бегать полдня)
А вот оно как в Пип-Бое. Парамеры СПЕШИАЛ установлены в 9 (харизма на скриншоте в плюсе, а Интелект в минусе – это из-за действия эффекта из другого мода, если чё ;-) )
А вот раздел Способностей
Всё работает. Удачи повторить!
Ваше счастье, что я не ваше счастье
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №144
написано: 5 октября 2014, 20:39
| Отредактировано: КсюXa - 17 января 2018, 05:56
AddItem, SetCombatStyle и непредвиденные последствия
Каждый раз, когда вы вызываете функции AddItem или SetCombatStyle в адрес NPC, вы, возможно, меняете характеристики этого NPC.
Это не зависит от способа вызова функций - результат вызова из консоли тот же, что при вызове из скрипта, будь то скрипт объектный, эффектный, квестовый или один из множества видов безымянных скриптов (скриптовые вставки диалогов, пакетов и.т.д.). Каждый вызов функции AddItem вызывает переоценку экипировки NPC, в результате которой будут экипированы наиболее подходящие этому NPC предметы из имеющихся у него в инвентаре (покойники тоже переоденутся не моргнув глазом), Object Effect каждого из этих предметов будет добавлен этому NPC, и каждый Base Effect каждого из этих Object Effect будет на этого NPC наложен - при этом если смены экипировки не произошло (наиболее подходящее и так уже было надето), то Object Effect будет добавлен повторно, без отмены ранее добавленного этого же Object Effect, и все Base Effect будут наложены "ещё в один слой". SetCombatStyle отличается тем, что надето самое подходящее будет только оружие, но эффекты всей уже надетой брони всё равно снова отработают. Сколько раз вызвана любая из этих функций, в столько "слоёв" и будет наложен каждый энчант. Насколько это существенно? Давайте продемонстрируем. Берём стандартного персонажа игры, вместо всего имущества выдаём стандартный предмет игры с развесистым эффектом (сила +1, ловкость -1, сопротивление радиации +10, тяжёлое оружие +5) и начинаем AddItem этому NPC в карман бутылочные крышки по одной.
SCRIPTNAME AddItemGoGoEffectScript FLOAT Timer BEGIN ScriptEffectStart …RemoveAllItems …AddItem MS10LindensOutcastPowerArmor 1 END BEGIN ScriptEffectUpdate …SET Timer TO Timer - ScriptEffectElapsedSeconds …IF Timer > 0 ……RETURN …ENDIF …SET Timer TO 5 …AddItem Caps001 1 END
Характеристики, которые броня должна была немного увеличить, устремляются в бесконечность (да, работающие значения ограничиваются допустимым максимумом - как мы видим, значение силы выше 10 уже не даёт прироста переносимому весу - но мало того, что скачок оружейного навыка с 12 до 100 не ерунда, так ведь любые скрипты, запрашивающие значение Actor Value, увидят именно эти безумные цифры!), а характеристики, которые броня должна была чуть-чуть уменьшить, обрушиваются в ноль (упаси вас беседка попросту спросить в скрипте значение какой-нибудь ловкости и что-нибудь на него разделить в полной уверенности, что оно бывает только от единицы до десятки).
Если базовые эффекты были скриптованные - они тоже накладываются повторно, но с дополнительными ужасами. Во-первых, все эти тысячеслойные скрипты жрут процессорную мощность в тыщу глоток, как бы экономны они ни были, и откусывают память под свои переменные (у каждой копии они свои) в тыщу укусов. Это безошибочная дорога к CTD. Во-вторых, если скрипты сколько-нибудь хитрые... Вот, скажем, скрипт рабского ошейника. При надевании меняет агрессию на смирность и т.п., при снятии возвращает то, что было перед надеванием. Но coup de grace тут в том, что снимаются эффекты - и копии скрипта отрабатывают финишную секцию - в произвольном порядке. И если этот носитель ошейника успел словить хотя бы один AddItem, то при снятии ошейника шанс на то, что последней финишиует первая копия, которая одна только и помнит правильную агрессию и т.п., не выше 50/50. Такого рода энчант плюс AddItem - и параметры NPC безвозвратно запороты навсегда.
И каково будет резюме? Ну, что тут можно нарезюмировать... Не применяйте без необходимости к NPC функции AddItem и SetCombatStyle, осмотрительно планируйте объектные эффекты - и проверяйте на выход за пределы значения, даже если они получены из вроде бы достоверных источников.
Для добавления предметов в инвентарь NPC без многослойного наложения эффектов можно использовать RemoveAllItems. То есть вместо NPCref.AddItem Item Count пишем MyContainerRef.AddItem Item Count, а затем MyContainerRef.RemoveAllItems NPCref - и предметы у NPC в инвентаре, и энчанты ничего не заметили.
Это не поможет NPC, который выпьет ядер-колы (родной скриптовый эффект игры исполнит additem caps001 1 со всеми последствиями), но по крайней мере ваша совесть останется незапятнанной
Если вы сами не используете "криминальные" функции, но ваши моды назначают одежде эффекты - можно избавиться от многократной правки параметров NPC, изменив механизм работы эффектов.
Как? 1. Добавляете каждому Base Effect вашего Object Effect условие GetIsID Player == 1 (на ГГ эффекты будут работать как до поправок, и в описании предмета эффекты будут показываться как положено, но на NPC они вешаться и потому размножаться не будут). 2. Создаёте Actor Effect с теми же Base Effect (которые не должны иметь флага No Duration и длительность действия необходимо в Actor Effect указать; поскольку броня надевается условно навечно, длительность 3650 дней подойдёт). 3. Создаёте новый скриптовый Base Effect с такого вида скриптом:
Код
SCRIPTNAME MyBaseEffectScript SHORT Control BEGIN ScriptEffectStart …IF (IsSpellTarget MyActorEffect) == 0 ……CastImmediateOnSelf MyActorEffect ……SET Control TO 1 …ENDIF END BEGIN ScriptEffectFinish …IF Control ……IF (IsSpellTarget MyActorEffect) ………Dispel MyActorEffect ……ENDIF …ENDIF END
и добавляете его в оригинальный Object Effect с условием GetIsID Player != 1. В результате существенные эффекты будут на NPC накладываться ровно один раз, и вы не получите терминатора, который одним пинком убивает любого противника только потому, что имеет на фуражке IncreaseUnarmedDamage, а какой-то соседний мод то и дело разбрасывает по карманам присутствующих какие-нибудь токены...
Однако не забывайте, что в такой конструкции один эффект - тот новый скриптовый - будет наложен в миллион слоёв. Поэтому очень желательно, чтобы скрипт был как можно меньше и проще - а ScriptEffectUpdate лучше не использовать вовсе.
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №145
написано: 31 октября 2014, 16:57
| Отредактировано: ApeX - 13 октября 2018, 18:43
Можно ли мешам в Нифскопе задать рефракцию, чтобы она была для них постоянной, а не зависела от магического/объектного эффекта в игре? (valambar)Вопрос решил - оказывается, для Обливиона и Фоллаутов...
...надо поставить в названии материала refract - тогда игра начнет воспринимать текстуры как прозрачные и назначать преломление.
Для Скайрима этот вопрос пока не решил, так как вкладка материала там в мешах отсутствует. #blockedit
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №146
написано: 31 октября 2014, 21:17
| Отредактировано: ApeX - 13 февраля 2018, 11:19
А как вообще карты делаются? Мне бы карту для своего мира сделать нужно (andr321)Карту мира можно разработать в любом графическом редакторе, после чего...
...изображение карты нужно преобразовать в файл с расширением .dds, который прописан в ГЕКК и используется в пип-бое.
По поводу редакторов - не понял, что нужно объяснять в деталях - редакторы есть разные (задавайте вопросы в ЛС - что знаю - отвечу), но вот в процессе производства карт для Fallout есть общие особенности, которые надо учитывать.
1 Разработка. Карта мира - квадрат. Перед началом работ желательно сохранить карту как растр и проверить, что число пикселей по ширине высоте рисунка совпадает (например, 20000*20000 пикселей). В качестве заготовки можно использовать участки географических карт, также можно от руки на листе бумаги нарисовать план-схему своего мира, сканировать и загрузить в графический редактор как подложку. По необходимости и для придания карте мира "товарного вида" добавляем элементы: координатную сетку, дороги, габариты сооружений, мосты, реки, горы и пр.
2 Сохранение работы. На выходе мы должны получить файл с расширением .dds (1024*1024; 2048*2048; 4096*4096 пикселей), а если у графического редактора такой возможности нет, то сначала сохраняем карту мира как растр (в формате .jpg, .png, .bmp), а далее выполняем преобразование с помощью сторонней утилиты, например xnconvert (в разделе "Входной файл" - указываем имя файла растра карты, в разделе "Выходной файл" - указываем расширение ".dds", в разделе "Дополнительные действия" - добавляем "изменение размера" - ширина: 2048 пикселей, высота: 2048 пикселей). После преобразования не забываем переименовать файл карты мира так, как он прописан в файле мода (смотрим раздел ГЕКК: World Space: имя_нашего_мода.esm; Map Image: тут прописан путь к файлу карты мира worldmap_.dds) .
3 Корректировка. Переносим файл .dds в директорию игры. Запускаем Fallout /Fallout: New Vegas (желательно в окне), перемещаемся на территорию нашего мода, включаем пип-бой, смотрим: что не так. Корректировку удобнее производить, переключаясь между окнами игры и графического редактора (Alt-Tab). По окончании корректировки снова записываем нашу карту, снова переносим ее в нужную директорию игры с заменой старого файла. Не выходя в Windows, в игре нажимаем "Выход" -> "В меню", далее снова перемещаемся в мир нашего мода, смотрим результаты: в пип-бое новая, откорректированная карта.
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №147
написано: 28 ноября 2014, 03:54
| Отредактировано: KAIN48 - 30 ноября 2019, 17:32
User 2 - дополнительный номер версии, для обозначения версии Havok.
Информация о версии nif находится в заголовке файла (NIHeader)
Default Texture_Prefix - если экспортер не смог определить путь автоматически, то он будет писать путь, введенный в этой области перед именем текстуры. То есть в этой строке вы можете прописать путь к текстуре, после экспорта в NifSkope этот путь будет прописан в BSShaderTextureSet.
В секции Export - ставим флаги того, что нужно экспортировать.
Hidden Nodes - скрыть ноды. Экспортёр проверит то, есть ли скрытые кости. Если есть скрытые - они будут экспортированы, если скрытых нет, то видимые экспортированы не будут.
Skeleton Only - только скелет. В Nifskope будут только NiNode скелета, если не стоит флаг Remove Extra Bones (удалить лишнии кости). Лишние это те, которые не воздействуют на модель. Любые опции, связанные с моделью или модификатором Skin, будут игнорироваться.
Collision - экспортировать коллизию. Если коллизия была в сцене - в NifSkope будет создан нод bhkCollisionObject и коллизия будет экспортирована.
Cameras - экспортировать камеры. Target камеры не экспортируются, только Free. И, похоже, работает только для Обливион.
Lights - экспортировать свет! В NifSkope создаётся нод NiDirectionalLight или NiPointLight в зависимости от типа света. Практического применения не имеет.
Секция Mesh
Generate Strips - если этот флаг стоит в NifSkope будет создан нод NiTriStrips, если не стоит нод NiTriShape. Разница в геометрии объекта и весе nif. NiTriShape "тяжелее" процентов на 5 (чуть меньше, чуть больше). В первом случае объект не триангулированный
Во втором триангулированный.
Практическое применение: если при экспорте с флагом Generate Strips на моделе появляются дыры (развёрнуты полигоны, слиты соседние вершины и тп.) - снимаем этот флаг и экспортируем в NiTriShape. Также советуют выбирать NiTriShape, если на модели есть прозрачность.
Extra Nodes on Mesh - экспортёр создаст дополнительные узлы для каждого mesh. При экспорте брони или существ это нежелательно вариант, так как скелет, как правило, имеет все узлы, необходимые в игре. (Не ставим - возможен сбой экспорта).
Flatten Hierarchy - свести (создать) иерархию. Экспортёр расположит части или элементы целого в порядке от высшего к низшему. То есть организует правильную структуру нода. (Ставим обязательно).
Vertex Colors - цвета вершин. Будут экспортированы в том случае, если создавались в Max, и на модели есть модификатор Vertex Paint.
Update Tangent Space - ставиться для правильного normal mapping. Ну вообще-то тут всё сложней!
Collapse Transforms - если установлен, то экспортёр будет обновлять данные вершин mesh.
Секция Skin Modifer
Export Skin Modifier - экспортируются параметры и вес вершин в нод NiSkinInstance, если mesh имеет модификатор Skin.
Enable Multiple Partitions - включить несколько разделов. Это тоже относиться к Skin. Так, скажем, целая модель один скин, составная модель несколько скинов. Поэтому всегда включать.
Bones Per Partition - этого не знаю (сколько костей на секцию, раздел?)
Bones Per Vertex - Сколько костей воздействует на каждую вершину - всегда 4. Помните инструмент Weight Tool!
Remove Extra Bones - экспортёр удалить кости, которые не нужны. То есть не воздействуют на модель.
Секция Animation - пропускаем! Так как, кто умеет экспортировать анимацию, тот сам всё знает. Для информации - там в окне выбора 6 вариантов экспорта, с анимацией или без, одиночный kf или мульти kf и тп.
Секция Miscellaneous
Sort Nodes - сортировать ноды. Ставит на правильные места NiTriShape или NiTriStrip, а именно выше списка NiNode костей. Ставить обязательно.
Add Accim Nodes - не знаю, информации пока не нашёл, сам ставлю. Из-за этого. Note: will export strings that control things like the LOD Node settings on bones but will export with a warning. Unchecking this will lose that data but prevent that warning on export.
будет экспортировать данные, которые управляют такими вещами, как настройки узла LOD на костях, но будет экспортировать с предупреждением. Снятие флажка приведет к потере этих данных, но предотвратит появление предупреждений при экспорте.
Start NifSkope -после экспорта модель откроется в NifSkope.
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №148
написано: 10 декабря 2016, 04:38
| Отредактировано: КсюXa - 17 января 2018, 10:27
Как поменять цвет HUD и пип-боя на какой угодно (Tovio)Хоть в розовый... Стандартный выбор цветов для интерфейса пип-боя не самый большой - голубой, зелёный, янтарный, белый. Хочется больше. Итак, как изменить цвет HUD'а:
1. http://drpeterjones.com/colorcalc/ Переходим по ссылке, нажимаем кнопку "table" и выбираем понравившийся цвет. Если хотите, можно поиграться с более тонким выбором цвета - это там, где кнопки с буквами R+, G+, B+, и т. д. 2. Выбрали цвет. Далее, копируем шестизначный код из "enter 6-digit HEX code" (у меня, например, ED67ED). 3. http://www.easycalculation.com/hex-converter.php Переходим по ссылке, вставляем код в окно ввода "Insert HEX Value", добавляя при этом в конец кода 2 буквы или цифры, которые были у вас на конце. Пример: ED67ED - ED67EDDD. 4. Получившиеся цифры из строки "Decimal" копируем. 5. Далее, открываем FalloutPrefs в документах и находим 2 строчки: uPipboyColor - цвет экрана нашего пип-боя. uHUDColor - цвет интерфейса. Меняем цифры, вставляя наш "Decimal" код. 6. Готово. Вы восхитительны!
Работает абсолютно со всеми модами на интерфейс и пип-бой.
Скриншоты:
Ой, всё...
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №149
написано: 11 февраля 2018, 16:41
| Отредактировано: КсюXa - 12 февраля 2018, 06:44
Как с помощью Nifskope "перекинуть" часть из одной составной брони в другую броню? (КсюХа)Вообще-то работе в Nifskope посвящены две специальные темы в Мастерских по Фол3 и Вегасу... в которых есть довольно подробные ответы на этот и другие вопросы по переносу блоков, включая частные случаи. Поэтому здесь сделаю короткое резюме, опишу, так сказать, общий принцип более-менее правильного переноса блоков.
Итак, возьмем для примера стандартную броню наемника-борца и будем "вешать" на неё бронежилет и нагрудную патронную сумку от тактической брони мода "Dragonskin Tactical Outfit".
Открываем в Nfskope броню наемника-борца и смотрим её "строение"
Как видим - здесь правильная иерархия блоков (ветвей) модели: основной узел NiNode - Scene Root и все остальные ветви являются дочерними по отношению к нему (на скриншоте отвечено красной линией). Также внизу синим прямоугольником выделены позиции, в которых прописано, к каким костям скелета привязывается эта броня. Открываем в новом окне модовую тактическую броню и тоже видим правильную иерархию блоков. Также видим, что этих блоков гораздо больше, чем в первой броне, поскольку эта броня состоит из горазд большего числа "запчастей". В окне просмотра выделяем мышкой ту деталь, которую хотим перенести. В нашем случае - тыкаем на бронежилете и видим, что в левом окне выделилась синим цветом строка этого блока.
Переходим на эту выделенную строку и делаем на ней клик правой кнопкой мыши. В выпадающем меню выбираем меню Block-Copy Branch (Блок-Копировать ветвь). Как понятно из названия - этим самым мы копируем целиком всю ветвь данной детали одежды, со всеми её дочерними "подветками" и настройками.
Переходим в окно Nifskope, где открыта модель наемника-борца и выделяем верхнюю строчку NiNode. Почему её? А потому что мы будем вставлять новую ветку именно в существующее дерево иерархии, а не создавать вне её новый "ствол". Выделили строку - жмем на ней правой кнопкой мыши и в выпадающем списке выбираем строчку Block-Paste Branch (Блок-Вставить ветку). Тоже понятно, что таким образом мы "воткнули" целую ветвь с готовыми её параметрами.
Через пару секунд увидим, как на модели борца появилась новая деталь одежды, а в левом окне окажется выделенной строчка этого блока. В этой строке мы видим, что она вставилась под некорректным названием Scene Root. Требуется переименовать данную ветку, чтобы она имела свое собственное имя. Для этого, при выделенной этой строке, переходим в нижнее окно Block Details, делаем клик ПКМ на строчке Name и выбираем строку Edit String Index.
В открывшемся новом окне выделяем в нижнем поле некорректное старое имя, удаляем и вместо него пишем своё, к примеру - пишем имя "UpperVest". Жмем ОК.
Теперь наш блок имеет собственное имя. По желанию можно раскрыть ветку прописки текстур (см.скриншот ниже) и переписать путь к текстурам, если мы решили эти самые текстуры скопировать и разместить в другой папке, чтобы "отвязаться" от мода-донора.
Далее по тому же принципу копируем нагрудную сумку из модели тактической брони...
... и вставляем её в модель наемника-борца, не забыв также дать этому блоку свое собственное имя, ну скажем - обзовем её "Patrontash".
Сохраняем модель. После сохранения все блоки модели выстроились, согласно иерархии. Если этого не произошло, то сохраняем модель, закрываем Nifslope и открываем модель снова. Теперь точно всё, как надо...
... но кое-что не совсем так. А именно - старые родные блоки имели топологию NiTriStrips, а новые вставленные имеют топологию NiTriShape. В принципе, большой разницы нет, модель будет работать без проблем, но мой внутренний перфекционист негодует. Поэтому меняем топологию, чтобы всё было одинаково. Для этого кликаем ПКМ на строчке с "неправильной" топологией NiTriShape и выбираем меню Mesh-Stripify
Примечание: если наоборот, нужно поменять топологию NiTriStrips на NiTriShape (многие модели имеют и такую топологию) то вызываем кликом ПКМ это же меню Mesh, только там вместо Stripify будет показано Triangulate. Выбираем триангуляцию.
Вот теперь всё красиво до безобразия. И в модели...
И в редакторе...
И в игре...
PS. Всё перенеслось так легко и просто, потому что модельки , во-первых были сделаны по-стандарту, с нормально скомпонованными блоками, а во-вторых - они "подходят" друг к другу" по габаритам и по привязке к костям скелета. В более тяжелых случаях вылезают различные нюансы и приходится возиться гораздо больше, "собирая" раскиданные по всему дереву блоки, меняя различные флаги, настройки и т.п. Но это уже частные случаи, которые надо рассматривать отдельно.
Как создать в FNV\FO3Edit merged patch (простой вариант) ? (ApeX)Легко...
После подключения нужных модов в FOMMe запускаем FNVEdit. Жмем "OK". Через некоторое время, после загрузки плагинов, в правом окне программы появится надпись "finished". После этого в левом окне на любом плагине жмем ПКМ (правая клавиша мыши), и в появившемся меню выбираем "Create merged patch". Появится окошко, и в нем задаем любое название нашему merged patch-у. Жмем "OK". После обработки плагинов (в правом окне будет видно) закрываем программу, и на вопрос о сохранении созданного mp выбираем "OK". После этих манипуляций открываем FOMM, находим наш mp (должен быть в самом низу списка загрузки), подключаем его и запускаем игру.
P.S. После добавления/удаления плагинов merged patch необходимо обновлять. В противном случае игра может не запуститься.
Форум » Fallout: New Vegas » Мастерская » Картотека ОТВЕТОВ по GECK и моддингу (ЗДЕСЬ НЕ ЗАДАЮТ ВОПРОСЫ !!! Здесь собраны готовые ответы)