как неписям задать скорость передвижения? Ну в смысле красться, бежать, и тп.
Не надо называть неписями собак, браминов и прочих болотников. Путать NPC и Creature вредно; собаки, роботы, супермутанты и т.д. - существа, а не персонажи. Большинство существ, в отличие от NPC, имеет одну скорость и красться неспособно.
Для тех, кто и ходить, и бегать, и красться способен, в свойствах пакета поведения имеются флажки Always Run и Always Sneak, которые на время действия пакета принуждают Actor-а передвигаться соответствено бегом и вприсядку. Можно и то, и другое сразу.
Сегодня день феерической терминологии! Только что звучали торговые маркеры... Инжект - это когда мод содержит объект с FormID, модиндекс которого числится за одним из мастер-модулей этого мода, но при этом такого FormID в самом том мастер-модуле не было. Ну, как пример - наш ClassicPack описывает PreordVaultCanteen "Vault 13 Canteen" [MISC:001735D2], но при этом в FalloutNV.esm не было никакого 1735D2 - совершенно образцовый инжект. Риплейсер, в свою очередь, что-то там заменяет, что-то непременно уже существующее, иначе это не риплейс, а добавка (неважно с инжектом или без)... Гм. Ну, это всё можно было не читать...
По существу. Изменение модели базового объекта - вещь совершенно законная и рутинная, хотя способная привести к совершеннейшим нелепицам - ну, скажем, отредактировать утюг, оставаив сам объект в разделе мусора, но модель ему выдать от автобуса. Автобусного размера, само собой. Совершенно законно, но результат должен получиться незабываемый... Подмена типа базового объекта... Где-то я это видел... Пока тип референса остаётся тем же (скажем, прежний тип базовго объекта требовал REFR, и новому нужен он же, а не ACRE например), игра спокойно проигнорирует побочные поля референса, которые новому базовому объекту уже не-пришей-сюда-рукав. Разве что предупреждение выдаст негромкое вида "объекту ржавая труба прописан Emittance, хотя этот объект светиться не умеет". Замена статики активатором вроде бы должна происходить без странностей, типы очень похожие... То, что оно с первой попытки не заработало - может быть, нужно проверять на ранее не инициализировавшихся локациях? Может, оно каким-то местом уже в сейв ушло, и берётся оттуда, а не из модуля?...
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1293
| Тема: ВОПРОСЫ по моддингу
написано: 25 октября 2014, 17:02
| Отредактировано: Ipatow - 25 октября 2014, 17:03
Если не нужно менять тысячи статичных ремингтонов по всей Пустоши, а нужна одна-единственная "подбираемая" машинка - то почему бы просто не создать в разделе мискитемов нужный объект с моделькой от машинки?
В том и дело, что не одна! Это как по всей пустоши валяются грабли, и я хочу, чтобы они продолжали валяться, но стали из мусора оружием. Модель та же, и вроде бы незачем вообще трогать референсы - жестоко подменил базовый мувабл статик вепоном с тем же FormID - референсу ведь должно быть фиолетово, кто у него база, его дело знать свои координаты и FormID оригинала, к которому переадресовывается всё существенное... Что там в самом референсе такого, чтобы его всполошила смена типа базового объекта? А вот начинает казаться, что таки есть что-то...
либо остаемся править сами референсы, либо лезем прямо в мастер...
Второе не получится те же двуручные грабли в профиль, когда дело касается совместимости с модами? Вроде именно с пишущей машинкой не напрашивается проблем (это не NPC, от скуки набравший полный карман автобусов), но может быть что-то неочевидное. Вроде того, что скриптуемые (пусть и не скриптованные) объекты как-то по-особому регистрируются...
Вариант со сканером и заменой... Вручную можно сделать так, чтобы машинка-активатор встала вместо статической, а при отключении мода статика вернулась (я так думаю, что ведущий в никуда Enable Parent с переворотом будет оторван начисто, и по-disable-ный исчезнувшим parent-ом объект сам собой про-enable-ится), но скрипт так связать старое с новым не может. То есть - дыры в интерьере при отключении мода
ГЕКК (Fallout 3) все плагины "видит" мастер-плагинами.
В чём это выражается? При сохранении выставляет флаг ESM? При одновременной загрузке нескольких модулей прописывает все остальные активному в список мастер-файлов? Испытывает просветление и впадает в нирвану? Объясни как-нибудь менее загадочно, что у тебя происходит и что из происходящего ты считаешь неправильным.
Есть ли ребалансер, дающий немного реализма, ну хотя бы чтоб выстрелы в голову были смертельными
Ребалансеры есть, и некоторые из них дают совсем не немного реализма - хотя я не понимаю, как реализм связан с читерским убиванием слона одним выстрелом из рогатки в голову...
Живописно. А это что, не соответствует действительности? GECK ведь статус показывает не глядя на расширение файла, он заглядывает внутрь и проверяет, кто на самом деле ESM (имеет соответствующий флаг в заголовке), а кто нет. Когда все модули с этим флажком, это очень похоже на то, что кто-то шарахнул MasterUpdate по всему списку загружаемых модулей (это порой даже полезно в смысле приближения к нирване, некоторые вещи корректно работают только когда модуль - мастер)... Если дело было недавно, может быть смысл использовать MasterRestore - ну или снимать неуместные сейчас флажки вручную с помошью FOMM, того же FO3Edit или хоть двоичного редактора...
F:\Fallout 3\Data> FC /b QJ13-Waifs.esp QJ13-Waifs.esm Сравнение файлов QJ13-Waifs.esp и QJ13-WAIFS.ESM 00000008: 00 01
What's new in 2.4.0 EXPERIMENTAL?
This version adds a support for FO3MasterUpdate mode.
MasterUpdate mode is the solution to the bugs introduced in Patch 1.5 in regards to plugins.
When running in MasterUpdate mode, the following operations are performed without further user interaction:
all modules in the Data folder are assigned into 2 groups, masters and plugins, based on their file extension (.esm or .esp) the modules in each group are sorted by file modification date/time all module files are redated, first all masters, then all plugins, in 1 minute intervals all active modules are then loaded, the ESM flag set in the file header if not yet present, the ONAM subrecords build if required any temporary overriding worldspace record that have at least one previous version that is persistent are marked as persistent all modified modules are saved.
This makes it possible to take an existing setup using patch 1.4 or older which contains mods that are broken by the bugs in patch 1.5 to be updated to patch 1.5, and used with existing savegames without being messed up by the bugs in Patch 1.5.
As this function is still considered EXPERIMENTAL, please make sure you have a full backup of your Data folder and your save games before using it.
I'll not take any responsibility if your computer explodes, gains sentience and start chasing you around the room or anything else that might happen.
You can run it in MasterUpdate mode by passing the parameter "-masterupdate" when running FO3Edit.exe or you can simply rename the exe to FO3MasterUpdate.exe
There is also a MasterRestore mode which removes the ESM flag again from all .esp files. You can run in MasterRestore mode by passing "-masterrestore" as parameter or renaming the exe to FO3MasterRestore.exe
А как вообще карты делаются? Мне бы карту для своего мира сделать нужно (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, в игре нажимаем "Выход" -> "В меню", далее снова перемещаемся в мир нашего мода, смотрим результаты: в пип-бое новая, откорректированная карта.
Номинальный рост человека в игре - 128 единиц ("дюймов") = 2х64 (2 "ярда"). Ячейка = 64х64 ярда. Блок 32х32 ячейки = 2048х2048 ярдов. Для наглядности ярды можно считать метрами (на самом деле немного короче - ровно настолько, насколько человек ниже 2 метров) - т.е. представлять себе надо два километра. Масштаб в игре совсем не один к одному, 2х2 блока третьего фолаута своими 4 километрами изображают что-то около 30х30 километров реальной местности (поскольку размер игровых объектов пропорционален человеку, улица длиной в три дома изображает улицу в 20 домов).
Йэх. Чой-то никто ничего не спрашивает в разделе. Все научились... и покинули сайт. Даже администрация
Так на время посмотри! Спать пора уже!
Кстати вот у меня вопрос есть - где работает IsPlayerMovingIntoNewSpace кроме как в условиях пакета Follow? Приходится чёрт-те что громоздить, чтобы отошедшие посандбокситься соратники не прозевали телепорт...
существует ли готовая пустая карта без домов и тд, для модмейкеров?
Ну, то "с нуля" это пустая плоская нераскрашенная карта - в каком смысле она не "готовая пустая без домов и тд"?
Можно сдублировать любую стандартную карту и вычеркнуть с неё дома и что там ещё мешает... После сноса "домов и тд" её всё равно и родная мама не узнает.
расскажите мне на сколько трудоемкий процесс создания расы со своими персональными данными?
Что считать персональными данными...
Обливионская раса имеет расовые базовые атрибуты ("SPEWSIAL"), расовые бонусы к умениям и расовые спеллы - в фолаутском редакторе GECK закладка, на которой в CS прописывалось всё это, представляет собой в основном большое пустое поле. Потому как нет ничего этого у фолаутских рас (впрочем, есть новое по сравнению с обливионом - расы собраны в возрастные цепочки, хотя собственно возраст авторы решили и не делать; часть рас назначена детьми). Так что эту часть персональных данных делать не очень трудоёмко - она отсутствует.
В смысле конструкции тела фолаутские расы попроще будут, поскольку состоят всего из 4 частей - голова, две ладошки и остальная тушка одним куском, ни тебе ног, ни пяток. Хвост прицеплять нельзя. Впрочем, зато ладошки разные, каждая сама по себе, а не просто зеркальное отражение друг друга. Скелет у всех до единой рас в фолаутах один общий, анимации поэтому тоже общие. В смысле конструкции головы фундаментальных отличий от обливиона два: ушей нет совсем (они намертво встроены в голову, как пятки в торс), зато всё остальное делится на мужское и женское. Если где-то трудоёмкость имеется, то она тут. Скелет и анимации ты обязан использовать стандартные (изменять их разрешено, но это выходит за рамки разговора об одной расе), это нетрудно. Модель тела... Ну, тут можно потрудиться на славу - убиться, склеивая и конвертируя обливионские модели и натягивая их на стандартный скелет - ради того момента, когда персонаж твоей расы решит прогуляться нагишом. Любая одежда уже включает в себя модель тела, и эта модель не имеет никакого отношения к расе персонажа - хотя раскраска видимой кожи будет взята от расовой текстуры. Частный вывод: если ты создаёшь не расу нудистов, вообще не заморачивайся с моделью тела, бери то же, что у всех. Что остаётся? Голова. Тут можно потрудиться с пользой... Впрочем, на практике переносчики эльфов из обливиона ограничиваются тем, что присобачивают к стандартной фолаутской голове мощные уши... Можешь считать, что вся трудоёмкость задачи эльфизации фолаута сводится к вытягиванию ушей. Если замахиваться на подвиг - изготовлению всей головы целиком. Итого: минимум уши, для подвига вся голова, для нудистов голое тело.
Что там ещё бывает в расе? Название-описание и реакция на другие расы. Ну, в фолауте эти поля тоже есть и заполнить их можно, но никто этого не делает, поскольку в игре ничего этого не видно и оно там ничего не значит. В любом варианте никакой трудоёмкости.
Обычно лысины при работе с причёсками возникают там, где в модели отсутствует блок с правильным названием. Правильных названий два: Hat и NoHat - какой из вариантов причёски показывать, определяется наличием шляпки. Еще полезно помнить про причёски, что указание текстур в NIF игнорируется, будет использована одна текстура (текстурный набор), прописанная в объекте причёски в модуле.
Ответьте только на вопрос. Этот скрипт будет сильно влиять на производительность в общем? Если например я размещу в одной клетке 10 таких моделей с этим скриптом?
Нет, скрипт не будет влиять на производительность. На производительность будет влиять наличие самого триггера, который в каждом фрейме проверяет свою коллизию на наличие прохожих - неважно, есть кто-то поблизости или нет. Каждый триггер в каждом фрейме всю свою коллизию.
скрипты и триггеры работают только тогда, когда в CELL (клетка карты вроде как), в которой они нахотядся загружены
Триггер коллизию проверяет только когда материализован, без загрузки 3D ничего ни с чем пересечься не может. Если он - Persistent, то, как любой persistent активатор, скрипт он крутит всегда (в нематериализованном виде - с каким-то пониженным приоритетом).
Но будет ли игра стабильно работать из за отсутствия "Biped object" и модели в дальнеишем?
Надеваться будет, причём в любом количестве одновременно (и NPC будет надевать столько, сколько имеется - просто потому, что можно). Через GetEquippedObject не будет обнаруживаться, поскольку не занимает слота, но GetEquipped увидит, что оно надето. Никаких признаков нестабильности я не замечал, но уточню - дело было в Fallout 3. К слову, невидимая модель не обязательно отсутствующая, это может быть модель без отображаемых элементов (наподобие Effects\FXNullExplosionArt.NIF).
А можно скриптом как то ограничить сколько обьектов таких можно надеть?
Скрипт не может узнать, сколько их надето - только надет ли хотя бы один. Можно пытаться считать примерно как ты говорил - в OnEquip плюс, в OnUnEquip минус... Только я опасаюсь, что там шибко уж просторно для глюков - вот, скажем, надел он пачку из трёх предметов (в пачки оружие и броня отлично складываются, когда исправность совпадает), и на единичку счётчик тикнет или на тройку? Я бы сказал, что это зона рискованого земледелия...
в какой-то момент при появлении новой группы врагов допустим и даже одного, начинает трусить, прятаться за камнями и в итоге уже сама убегает от всех. Что только ни делал: и агрессивность менял и отвагу, и...
Ну, уверенность-в-себе (Confidence) разряда "упёртый" (Foolhardy) по стандарту (fConfidenceFoolhardy) означает нолик. То есть даже если сам чуть жив, а враги немеряно круты и их армия, то при делении себя на врага получится что-то пусть очень маленькое, но всяко больше нуля... Как я понимаю, дело в том, что мобы случайным образом выбирают поправку от fCombatConfidenceModifierMin до fCombatConfidenceModifierMax - по стандарту от -0.25 до 1.0 - что совсем немалые цифры, поскольку не считая крайние значения там весь диапазон уверенности от 0.0375 (храбрец) до 0.375 (осторожный). Вроде бы сказано, что к нулю поправка не применяется... Так или иначе, ResetAI должен сбрасывать все набежавшие поправки с модификаторами и возвращать твоего охранника в первоначально резвое состояние.
Вообще подробности про это можно почитать на GECK-вики, детали там могут быть неточны, но общая идея описана как есть.
А я не играю с правыми! У меня каждое сочетание раса+возраст имеет свою модель... Наверное, я мог бы помочь подобрать готовую текстуру, но нужно же знать подо что именно подбирать. От какой из печек ты танцуешь?
К слову, умоляю - если ты всё равно делаешь дамскую модель, поставь ей пятки на пол? Фолаутские дамы устали на цыпочках ходить!
Плохой из тебя иезуит! Тут же дело какое - лишь бы коготок увяз, тут и весь Каин наш! Ты главное скажи "А", а дальше товарищ Заходер правильно подсказывал (...нужны простые вещи: молоток, тиски и клещи...)
Практически действительно без минимального набора одежды о полноценной расе говорить не приходится. С другой стороны, если хоть один вариант есть... пусть это даже купальник или новый пиджак короля... можно одного персонажа изготовить, и не велика беда, что непереодеваемого.
На сегодняшний день на том же нексусе (не только - довольно много посланных с нексуса в баню оказались на LL) немало теломодельных проектов системы "не шмогла" - автор обнажёнку сделал, иногда ещё пару нарядов, а затем скис. То есть задумка привлекательная, а практический выхлоп ничтожен.
Взять хоть Growlfs Female Nude Body Replacer - вроде ведь симпатичная дама, не измождённая диетами... Но и развёртка не T3, и одёжек под эту фигуру изготовлено чуть.
Скрипт выглядит так, будто ты считаешь GameDaysPassed и GameHour целочисленными значениями, и в результате твоя арифметика считает каждый час за два. Просто выкинь из расчётов GameHour, в GameDaysPassed уже есть и часы, и минуты, и секунды... К сожалению, приведённых фрагментов скрипта недостаточно, чтобы увидеть какие-то ещё странности - ну да ты не показал даже тот кусок, в котором сама проблема проявляется.
если не прерывать время действия эффекта, то все работает идеально, но если прервать, начинается чехарда - таймер срабатывает как попало. Т.е. предположительно причина скрывается где-то в момент когда фризится остаточное время работы эффекта, т.е. когда устанавливается переменная timer
Более содержательно, чем "чехарда" и "как попало", ты не можешь описать суть проблемы? Понятно, что скрипт работает не так, как ты ожидал - но ни что именно вместо ожидавшегося происходит, ни что, собственно, ожидалось ты не говоришь. Чтобы понять, правильно ли оно "фризится", нужно увидеть и ту часть, где оно "мелтится" - в приведённых фрагментах переменная timer увеличивается на удвоенное время действия эффекта AANightVisionSpell и понемногу бесцельно стремится в бесконечность (бесцельно - поскольку значение переменной нигде не используется).
Если AANightVisionSpell непрерывно включен LimitTime пополам часов, флажок Time перещёлкивается на единицу и вернётся на ноль только после каких-то закадровых манипуляций, но если не оставлять AANightVisionSpell включенным дольше чем на два часа, а время от времени отключать (отсчёт от StartNV начинается заново при каждом включении), то Time останется ноликом навсегда. Немного странно, но не страннее бесцельного таймера... Или эти две странности друг друга компенсируют, и при проверке лимита нужно было таймер учесть, а одновременно с выставлением единицы в Time ещё и обнулить timer? Да, трудно разобраться в проблеме, когда в тайне держится и что хотели, и что получили... Приходится нутром чуять, "что это за лампочки? должны ли они так мигать?"
У меня в работе, левая текстура, с растопыренными пальцами ног и рук. Спасибо, сейчас посмотрю текстуру brurpo/Andi_669 вдруг она лучше и тогда буду делать под неё.
Если брать "мейнстрим" развёртку, взаимозаменяемы будут практически все сколько-нибудь современные текстуры "для Type 3", которыми одинаково хорошо красятся и эталонный Type 3, и T3F, и T6M, и Type V, и Type N от Nessa, и Type N от Nivea (она вроде решила переименовать свою модель в Type W), и всяческие версии BNB со всеми вариациями... Развёртка brurpo была ориентирована на более примитивные модели со склеенными пальцами ног (оно не растопырено, просто между пальцев тоже надо красить) и на модели сегодняшнего дня ложится не особенно аккуратно. Я не стал вытаскивать все варианты T3 развёрток (в основном там небольшие сдвиги на линии склейки торс-ноги)... У меня в рабочей коллекции полторы сотни моделей тел, не обязательно все встречающиеся косяки демонстрировать
Другой важный момент - на какой скелет повешена модель. На сегодняшний день неплохих выборов два (увы, два - был бы только один из них, был бы отличный): The Skeleton by Deedes и Compatability Skeleton - BnB BodyExtender FAFF NVG by Astymma w Credit To BnB-BE-FAFF-NVG teams. Первый более перспективный и более новый, но второй, уже потому, что не слишком новый, шире поддерживается. Я бы рекомендовал зацепиться за скелет от deedes, но в любом случае использовать надо один из этих двух.
В твоём скрипте нет никакого "остаточного времени работы"! Я не говорю, что его нигде нет - но в том скрипте, который ты показал, его нет. И как ты предлагаешь искать решение проблемы, если проблема оставлена за кадром?...
Вот как подобного содержания скрипт написал бы я:
SCRIPTNAME NightVisionControl SHORT NVKeyDown SHORT NVToggle FLOAT BatteryCharge FLOAT StartNV BEGIN GameMode …IF (IsKeyPressed fNVHotkey) ……IF NVKeyDown == 0 ………SET NVKeyDown TO 1 ………SET NVToggle TO 1 ……ENDIF …ELSEIF NVKeyDown ……SET NVKeyDown TO 0 …ENDIF …IF (Player.IsSpellTarget AANightVisionSpell) ……IF NVToggle ………SET NVToggle TO 0 ………Player.RemoveSpell AANightVisionSpell ………SET BatteryCharge TO BatteryCharge + StartNV - GameDaysPassed ……ELSEIF (Player.GetEquipped PowerHelmetList) == 0 ………Player.RemoveSpell AANightVisionSpell ………SET BatteryCharge TO BatteryCharge + StartNV - GameDaysPassed ……ELSEIF BatteryCharge < (GameDaysPassed - StartNV) ………Player.RemoveSpell AANightVisionSpell ………SET BatteryCharge TO 0 (1) ……ENDIF …ELSEIF NVToggle ……SET NVToggle TO 0 ……IF (Player.GetEquipped PowerHelmetList) ………IF BatteryCharge > 0 …………SET StartNV TO GameDaysPassed …………Player.AddSpellNS AANightVisionSpell ………ELSEIF (Player.GetItemCount батарейка) (2) …………Player.RemoveItem батарейка 1 …………SET BatteryCharge TO 0.125 ; три часа …………SET StartNV TO GameDaysPassed …………Player.AddSpellNS AANightVisionSpell ………ELSE …………ShowMessage кончились-батарейки ………ENDIF ……ELSE ………ShowMessage не-тот-шлем ……ENDIF …ENDIF END
(1) Оставшийся заряд устройства фиксируется только в момент выключения; если хочется, например, вывести эту цифру наглядно в HUD - тут добавить
……ELSE ………SET BatteryCharge TO BatteryCharge + StartNV - GameDaysPassed ………SET StartNV TO GameDaysPassed ………SetUIFloat как-следует
(2) Тут батарейки расходуются автоматически; если хочется делать это более торжественно и интерактивно - хозяин барин.