Multigone, спасибо. С картинкой всё очень наглядно и понятно. Я вообще графическую информацию воспринимаю намного легче, чем вербальную. Получается так: Комбинация задержки Utility.wait() и RegisterForSingleUpdate() нужна в том случае, если нужно получить заметную общую задержку при максимальной скорости реакции на событие (малая величина RegisterForSingleUpdate())
А вот с первой частью
Цитата Myprism
Wait() может использоваться для ожидания закрытия игроком любых меню - например, событие возникает в момент ковыряния игроком шмоток в инвентаре - часть кода события, нижеследующая за ожиданием, выполнится только после того, как игрок выйдет оттуда.
понятно не до конца. И, возможно, это как раз то, что мне нужно. У меня сейчас персонажи переодеваются при смене типа локаций или изменения статуса - бой, плавание. Так вот, если переодевание происходит через меню, то оно происходит безукоризненно, а вот если через OnUpdate(), то иногда - через пень-колоду. Поэтому у меня остались вопросы. Вот конкретный код:
срабатывает безукоризненно. Как я понимаю, в этом случае, открывается инвентарь, игрок оперирует с ним, потом закрывает инвентарь и только после этого включается задержка? В обработчиках событий манипуляций со снаряжением (ведь только они срабатывают при открытом меню) задержек нет. Непосредственно после закрытия меню обычно никаких событий не происходит, так как меню открывают в спокойной обстановке. Во втором случае процедура
Код
FixGear()
Включается непосредственно в событии OnUpdate(). И вот тут у меня возможны глюки - иногда меняются не все шмотки. И это событие может вызываться многократно и в разных обстоятельствах, например по упомянутому тобой OnHit(). Наверное, надо поставить задержку после FixGear()? Или до?
yakor77, в Открытых Городах не скрипт. В игре города являются отдельными локациями (мирами), которые находятся не в Тамриэле. Точнее так: в Тамриэле находится очень упрощённо устроенные города, куда пользователь никогда попасть не сможет, а нужны они только для того, чтобы видеть их снаружи через городскую стену. В мирах городов, наоборот, нет Тамриэля, а есть только его ЛОДы, который игрок видит из города. В тот Тамриэль игрок тоже никак попасть не может. Настоящий город соединён с настоящим Тамриэлем порталом. В Открытых Городах фальшивый город находящийся в Тамриэле заменён на его копию из мира этого города. Мир ванильного города больше недоступен. Соединяющие эти миры порталы удалены. Таким образом, разница в том, что в ванильной игре для прохода стоят порталы, а в Открытых Городах там свободный проход и для этого используется ЕДИНАЯ навигационная сетка. Вот в этом всё дело. Не многие мододелы знают досконально, как она работает. А она ещё работает по-разному в разных версиях Скайрима. И вот как раз ошибки там и приводят к вылетам из игры. Моды могут затрагивать навигационные сетки в домах и финализировать их под Хертвай или без него. Соответственно, работать будет только с Хертфаем или без него. Если модов много, то одни их требуют установки Хертфая, другие - нет и вот тут начинается вся эта фигня. Ну и насчёт установки большого числа модов. Они невероятно редко написаны так, чтобы специально не конфликтовать с другими модами. Обычно их авторов этот вопрос не беспокоит совершенно, а беспокоит только, как больше изменить Скайрим и убедить других, что только это и есть хорошо. Когда мне кто-то сообщает, что он поставил 200 модов, то я про себя только думаю: ты просто ещё многого не заметил
yakor77, совершенно не представляю, о чём идёт речь! При переходе на новый уровень всегда предлагается выбрать, что повышать - магию, здоровье или запас сил. Я всегда выбираю запас сил. Всё распределено. Не было у меня никогда никаких левых экранов. Скорее всего, его даёт какой то мод.
yakor77, не представляю себе, как манекены могут конфликтовать с дверью. В принципе, я делал мод на манекены, но достаточно давно https://modgames.net/load....0-22302 Он выложен для Skyrim SE, но скрипты от этого не должны зависеть. Кажется, я его встраивал и в другие свои моды, в том числе и под LE. Точно не помню, а разбираться сейчас нет времени, завтра я уже буду у подножия Эльбруса
myav, секс персонажа может не соответствовать базовому актёру. В игре часто (и особенно у бандитов) базовый актёр является мужиком, который служит заготовкой для ряда левельных актёров, часть их которых становятся женщинами. Твой код проверяет пол базового актёра и он, естественно, оказывается мужиком.
Hhammaath, причёски можно надевать и как капюшоны. Тогда их можно выдавать через outfit. Ну а к голове надо подгонять вручную в 3D-редакторе. Ещё есть одна не простая хитрость. Причёски могут сопровождаться файлом с расширением tri. Это файлы морфинга. В них записаны варианты причёсок для других (имеющих особенные головы) рас и другой полноты (это нужно для длинных волос.
VictorCorvin, а зачем нужна отдельная раса? Другую расу создают для того, чтобы она имела принципиальные отличия. Вампирам это сделано для того, чтобы у них менялось лицо. В игре есть специальные файлы морфов (вариантов) лица для всех рас и там есть отдельный морф для вампиров. Оборотни отличаются тем, что имеют особое тело, в которое могут превращаться. Кстати, чтобы вы знали, Серана по расе не вампирка! Она просто нордка и только рассказывает, что она вампирка. Вампирские морфы лица у неё не включаются. Что вы такое хотите создать своей расе, что требует для неё создание этой самой отдельной расы? В принципе, расы создаются элементарно. Берёте и переименовываете в редакторе расу нордов, а когда редактор говорит, что такая же уже есть, говорите ему, чтобы он создал новую. Вот и получите новую расу, которая не отличается от стандартной нордской. А вот что вы хотите в ней изменить и зачем вам это понадобилось, это уже вопрос к вам.
Добавлено (29 Сентября 2020, 08:29) --------------------------------------------- Супчик, они ходят по расставленным в игре маркерам. Маркеры связаны между собой в траекторию. Каждому гвардейцу привязан маркер входящий в траекторию. маркеры ставят в редакторе.
VictorCorvin, Чтобы игра принимала расу как расу нордов, это должна быть раса нордов. Не очень представляю себе, как менять цвет глаз. В морфах от расы зависит только форма глаз. Посмотрите, как меняет в игре цвет глаз Серана. Она ведь расу свою никогда не меняет, она нордка, а не вампирка. Скорее всего, там сделали двух Серан с разными цветами глаз. Дело в том, что никакой персонаж не меняет в игре цвет глаз "на лету". У них у всех уже экспортированы головы в виде готовой модели и там уже установлен цвет глаз. Чтобы поменять цвет глаз, надо менять его персонажу в редакторе, после чего экспортировать модель головы (Ctrl+F4) и тогда в игре персонаж будет с новыми глазами. Морфы находятся в файлах с расширением .tri
VictorCorvin, только у вас! Только голова игрока не имеет заранее сохранённой модели. Только для головы игрока игра считает все морфы "на лету". Игрок и остальные персонажи формируются игрой совершенно по-разному. И в игре есть отдельная раса - вампир-норд. Это не раса норд, а именно раса вампир-норд. Игра не может сказать на неё, что это норд. Вот как раз сейчас я делаю вампиркам специальные тела и соответствующую этим телам броню и для каждой шмотки устанавливаю, что она будет показываться на вампирах-нордах, вампирах-бретонах и т.д, потому что на нордках и бретонках будет показываться броня другой формы.
VictorCorvin, вот тут я должен признаться, что просто не знаю. Я написал несколько очень больших модов, но ни один мой мод ничего не делает с главным героем. Скорее всего, это надо делать именно скриптом, так как в редакторе ГГ не настраивается, ведь в редакторе делают моды, которые будут работать с любыми ГГ, а игрок может выбрать разные расы, пол и внешность, чего редактор предвидеть не может. В скрипте главный герой выделяется очень легко, там просто такая переменная есть Player, но я никогда ему ничего не менял. Попробуйте задать этот вопрос уже направленно в ветке по скриптам, туда заходят очень хорошие скриптовики.
DOOM2004, если вы изменили левельные списки, но персонажа уже встречали в игре, то его экипировка содержится в вашем сейве, т.е. старая. Вот поэтому вам приходится его переинициализировать, чтобы сгенерировать новую экипировку. Если вы начнёте игру заново, или встретите персонажа в первый раз, то его экипировка будет уже соответствовать новым левельным листам. Т.е. ваша проблема со старой одеждой не в моде, а в вашем сейве. Не очень представляю, как вам менять это скриптом. Ведь вам нужно переинициализировать всех персонажей, которых уже встречал пользователь вашего мода. А он этого захочет? Ведь запросто может быть, что игрок уже раздал персонажам какие-нибудь шмотки, которые он очень ценит, а ваш мод эти шмотки убьёт.
mka_n, не уверен, что дело в этом, но игрок у тебя контейнер, а с контейнерами в игре есть тонкость. Много объектов помещённых в контейнер разом, не имеют индивидуальных ID. Если же в контейнер поместить n объектов по одному n раз, то ID им выделится. У меня было так: сделал я колечко со скриптом и положил 6 штук. в сундук, а колечки в игре не работают. Кладу их рядом с сундуком - работают. Если кладу 6 раз по одному в тот же сундук - работают. Т.е. ID присваивается только когда экземпляр объекта в сундуке один, либо имеет историю одного объекта.
Кто знает, как запретить запись событий в hdtPhysicsExtensions.log? Туда пишутся все события физики. Если физика стоит у всех персонажей и всех шмоток, то событий довольно много. Если игрок долго не выходит из игры, этот файл раздувается, но должен меняться при каждом событии, что тормозит дисковую систему и компьютер.
Всегда сообщает "none"? Речь идёт об экипировке шмотки, на которой висит данный скрипт, на левельном актёре при первой встрече его в игре. Да, если важно, то актёр изначально мёртв. Шмотка экипируется, поэтому и событие срабатывает. Шмотка на актёре отображается правильно, но почему её не распознаёт скрипт?
В каждом моде ерунда с авторами. Там только одна ссылка, в которой вместе с реальным автором записаны ещё парочка левых. Но ссылка только одна и случайная. В одном случае при лишних авторах это оказалось не ссылкой, а текстом.
grumpos, существует событие: предмет попал в ваш инвентарь. Ваш инвентарь, это контейнер, и для него существует такое событие. Так же такое событие (смена контейнера) существует и для предмета. Вот в эти события мы можем вставить код манипулирования объектом. Но при этом заметьте, эти события происходят только в том случае, если игрок взял этот предмет. Иначе нам некуда вставлять свой код. В случае, если игрок выбросил этот предмет, можно отдать команду выбрасывания такого же предмета в интересующую нас локацию, причём, его можно перенести именно в назначенные координаты. А можно отреспавнить всю локацию, чтобы предмет там сам восстановился.
UnlimitedCloud, навскидку: LargeRainBarrelWater01, WaterPuddle, LargeRainBarrel_BloodWater01, Blood_RainWaterBarrel, DLC2WaterPuddle01... Сами ищите дальше и разбирайтесь, что из этого подойдёт.
Vortigan, в НИФскопе нет такой функции. Но НИФскоп может экспортировать модель в файл "obj" (с таким расширением). А это текстовый файл. Его можно открывать текстовым редактором и в его начале будут идти строки вроде v 6.2299857139587402 -4.7435054779052734 117.59224700927734. Это координаты вертексов - X,Y,Z. Если поменять знак перед первым значением на противоположный, то произойдёт зеркальное отражение модели по оси X, т.е. право поменяется на лево для одёжки. Сделать это можно текстовым редактором, а можно и табличными, чтобы работать только с одним столбцом. Но внимание! После зеркального отражения меняется направление нормали к поверхности. Однако НИФскоп легко с этим справляется. Есть ещё одна проблема: скининг. Ведь все шмотки привязаны к соответствующим костям и левый наплечник привязан к левым костям, а не правым... И вот это гораздо сложнее. В модели наплечника надо переименовать все кости и изменить на противоположный их значение Х. В общем то, это настолько муторно, что лучше это делать в 3D-редакторе проводя там полный скининг.
Добавлено (30 Января 2021, 07:37) --------------------------------------------- Dirzi, А зачем было делать сложную модель? В общем то в Скайриме есть очень сложные модели, например, модель кузницы. Так что, дело не в числе записей в файле. Хотя, ограничение в числе вертексов там существует. Если модель содержит более 32 000 (примерное число) вертексов то с ней могут быть проблемы и в редакторах и в Скайриме. Но там могут быть ограничение на число записей определённого типа. Я сейчас не могу сказать определённее, но может быть ограничение на число блоков с анимацией и т.п. И все эти проблемы снимаются очень простым правилом - не надо делать файлы больше и сложнее, чем используются в игре. Разбейте своё устройство на части и тогда вам будет легче найти что там не работает.
Попал в очень затруднительное положение. В одном из моих модов есть большой музей с манекенами, стойками для оружия и много чем ещё. В некоторый момент вдруг обнаружил, что при прохождении персонажа по одной галерее происходит взрыв совершенно такой же, как будто там стоит морозная руна. Но её там нет и я не баловался ни с чем подобным. О том же самом сообщали и пользователи мода. Я несколько раз безуспешно пытался найти что там взрывается. Сейчас решил взяться за это вплотную. Просто стал выделять мышкой и убирать все объекты в этом месте. Там не нашлось ничего предосудительного. Пола там не осталось, для испытаний пришлось пролетать там на летающей метле. Взрыв сохранился! Я убрал вообще всё. Остались плитки пола на входе в локацию, чтобы было, где встать персонажу и два ковра в пустоте, которые обозначают место (между ними) где надо пролететь, что бы произошёл взрыв. Взрыв сохранился. Вопрос: как это может быть? Что может поставить невидимую морозную руну? Как отыскать виновника? Может ли некоторый артефакт (предмет) проектировать невидимую морозную руну на пол?
Miranda_Kusland, нет, в другом моде проблема быть не может, так как эта локация сделана с нуля только в этом моде и нигде больше не встречается. Никакой сторонний мод ничего об этой локации знать не может. Multigone, да уж, вот создал сам себе проблемы на ровном месте, не знаю как и ещё исправить не могу
Miranda_Kusland, мод огромный, поэтому в нём найти трудно Вот он https://modgames.net/load/tes_v_skyrim/doma_i_lokacii/1/254-1-0-11153 В Зале Порталов Замка на столике стоит домик, который называется Музей на столе. В него можно зайти. Взрыв происходит на галерее второго этажа с левой от входа стороны зала у второй группы книжных шкафов как раз напротив барабана стоящего на шкафу. Чтобы залетать в Замок не проходя никаких квестов, я припрятал летающую метлу на пути от Ривервуда в Вайтран. Если из Ривервуда пройти мостик, то слева от дороге будет скала, справа - река. Метла лежит на одном из уступов скалы ближе к её концу. Попасть на уступ можно только сверху.
Изменение репутации для пользователя Myprism
MyprismOffline
Сообщение №1555
| Тема: Вопросы по моделированию
написано: 3 февраля 2021, 13:35
| Отредактировано: Myprism - 3 февраля 2021, 13:37
Shelton, понял. Т.е. эта восьмиконечная звезда у вас не на текстуре, а вы думаете, что это тени. Конечно, это не тени. Тени у вас в других местах и рисуются хорошо. Проверьте там нормали вертексов модели. Прям в НИФСкопе. Убедитесь, что они перпендикулярны сиденью. Ведь освещённость поверхности рассчитывается из положений нормалей. Там есть функция Face Normals, которая поставит их перпендикулярно поверхности. И после этого надо Update Tangent Space. На всякий случай посмотрите, не поставили ли вы VertexColor для вертексов. Я не знаю, используете вы его или нет, но тени могут быть установлены там. А стул симпатичный.
letawka, тут надо понимать, как работают моды. Вот, например: в некотором моде создан стол. В этом же моде лежат модель для этого стола и текстура этого стола. В самом моде находится объект стол, а то, что мы размещаем в мире, на самом деле, это не объект стол, а ссылка на него. Ну, чтобы проще понять, считайте, что в мире размещаются копии стола. Теперь смотрите, что у вас получается. Вы, наверное, правильно поставили в игру файлы модели стола и текстуры для него. Дальше загружаете в редактор свой мод и мод со столом. Вы видите в редакторе объект стол и размещаете в своём моде копию этого стола. Но эта копия объекта (на самом деле ссылка на объект) работает только до тех пор, пока есть этот объект. В редакторе он есть и вы видите этот стол в мире Скайрима. Но самого объекта стол в вашем моде при этом нет. Если вы попытаетесь загрузить свой мод в редактор заново, то он просто обнаружит копии неизвестно чего (ссылки идущие в никуда) и выкинет их. Точно так же сделает и игра. Она не может воспроизвести копию стола, когда у неё нет самого объекта стол. (В ссылке написано, что разместить и где, но самого объекта нет). Чтобы это преодолеть, вы должны в своём моде создать объект стол и тогда можно размещать ссылки на него в игре. В ваш мод автоматически переходят все ИЗМЕНЕНИЯ редактируемых модов. Просто берёте и переименовываете объект стол в редакторе и он автоматически оказывается в вашем моде. После этого ставите его где хотите в Скайриме и любуетесь им в игре. В более сложных объектах нужно проследить все их части и их взаимодействие, чтобы ничего не потерять.
Lissenok, пока у вас в сборке нет модов меняющих эти дома. Кстати, а вы в этом уверены? Автор мода ведь может и не предупредить, а может и сам не знать. Запросто может быть, что вы захотите что-то добавить в свою сборку или хотя бы посмотреть другой мод, чтобы понять что там, а игра вылетит на рабочий стол. Правильнее будет не разбираться с ванильными объектами, а вместо удаления просто сдвигать их за пределы жилища. Например, вверх или вниз клавишами PG Up и PG Dn.
Lissenok, TES5Edit не анализирует скриптов и квестов. Объекты могут быть задействованы там. Отключать никакие объекты не нужно! Как раз для того их и сдвигают, чтобы не отключать. Ванильные локации рассчитаны на то, чтобы работать на самых слабых компьютерах, поэтому о лишних объектах можно не беспокоиться. Ну, в общем так: - Если совместимость не беспокоит совсем, то тогда можно удалять что угодно, только убедившись, что это не задействовано где-то ещё, в том числе в квестах или скриптах. Если некий мод обратится к удалённому объекту, произойдёт вылет на рабочий стол. - Для совместимости объекты лучше не удалять, а смещать. В этом случае, нигде их отключать не надо. Все моды, которые их задействуют, будут работать с ними так как они должны с ними работать и вылетов не будет.
Evelyn, существует мод "летающая метла" https://www.nexusmods.com/skyrim/mods/19069 В принципе, она делает то, что вам нужно. Метла ведёт себя как конь (даже ржёт), главный герой на ней летает.
Northland, модели должны быть подогнаны под конкретное тело в 3D-редакторе. Причём, в игре каждая шмотка делается в двух вариантах - для худого и толстого тела. То, что вы называете растяжками, это деформация шмотки при движении скелета. Управляется привязкой шмотки к конкретным костям скелета (скиннинг). Это тоже делается в 3D-редакторе.