Перейти к содержимому

Фотография

Способ исправления падающих NPC в OpenMW

OpenMW NPC GFM

  • Пожалуйста, авторизуйтесь, чтобы ответить
20 ответов в этой теме

#1
Set440

Set440
  • Мимопроходимец

Уровень: 1280
  • Группа:Граждане
  • сообщений:13
  • Регистрация:25-Ноябрь 19

Все пользователи МОРРОШИНД знают наверно такую проблему, что неписи проваливаются сквозь статики даже на ОпенМВ.

 

Мне удалось выяснить подробности о причинах таких провалов.

 

ПОДРОБНОСТИ:

 

Во-первых: давайте определимся, что неписи не падают на землю или в воду, а СТАВЯТСЯ туда инициализацией. Например погонщик из Гнисиса при каждом "падении" с высоты имеет полное здоровье, а лодочница из Тель Аруна стоит под водой на земле... — всё это невозможно при ФИЗИЧЕСКОМ падении. Тоесть, баг никак не относится к физическому движку ВООБЩЕ.

 

ПРИЧИНЫ ПАДЕНИЙ:

 

Непись стоит (или инициализирован в редакторе) на неровности сложного меша, или на стыках мешей.

 

РЕШЕНИЕ ПРОБЛЕМЫ:

 

Неписей нужно передвинуть с неровности на горизонтальную плоскость, дальше от стыков (это будет работать с неписями из Вивека, и дядей из Гнисиса)

 

Тех, что передвинуть невозможно — подпереть невидимой куб-коллизией (тётю из Тель Аруна двигать некуда)

Куб-коллизия всегда находится в секции АКТИВАТОРЫ (имеет высший приоритет), а поскольку она низкополигональная, плоская и не включена в списки отрисовки — срабатывает моментально быстрее всех, и очень надёжно.

 

БЛАГОДАРНОСТИ:

 

В расследовании помогал Scarab-Phoenix

 

PS:

 

Баг связан со сложной математикой вычисления границ мешей и акторов — создатели движка его могут пофиксить ОЧЕНЬ НЕ СКОРО. К счастью, он довольно просто чинится вот-таким костылём. Потому я хочу попросить команду GFM обратить внимание на мой пост.

 

Нам очень повезло, что баг очень предсказуем и логичен, и ведёт себя скорее как фича, нежели что-то паранормальное.

 

https://drive.google...PezlWp8ber0kOFw — Фиксит погонщика в Гнисисе и лодочницу из Тель Аруна — они падают при каждом переходе локаций.



целую, обнимаю

Сообщение изменено: Set440, 25 Ноябрь 2019 - 06:21 .


#2
Siberian Crab

Siberian Crab
  • (\/)Oo(\/)

Уровень: 1280
  • Группа:Свободные плагиностроители
  • сообщений:1 308
  • Регистрация:03-Май 09
  • Город:Боклер

Где фикс-то?



целую, обнимаю
«Мы брат, всего боимся, как положено смертным и всего хотим, как будто награждены бессмертием.» - Петр Стаматин

#3
ShadowMimicry

ShadowMimicry
  • Рыцарь

Уровень: 1280
  • Группа:Свободные плагиностроители
  • сообщений:925
  • Регистрация:13-Декабрь 11
  • Город:Москва
Фикс называется: сделай сам видать:)

целую, обнимаю

Hsj4S0TK.pngvLJMYK9s_112x112.png


#4
-=ChieF=-

-=ChieF=-
  • Паладин

Уровень: 1280
  • Группа:Адаптаторы
  • сообщений:1 361
  • Регистрация:19-Май 08
  • Город:Минск

Тут дело такое, что ручное исправление костылями - это в сто раз сложнее, чем простой ввод команды "ra" в игре :)

 

Видишь, что нет NPC - вводишь "ra" и всё. А лепить повсюду эти невидимые блоки... Да еще пихать это в GFM - не очень хорошее решение. Наверное.

 

 

А там, глядишь, и в OpenMW что-нибудь придумают :)



целую, обнимаю

#5
Муурн Шепард

Муурн Шепард
  • Котосумрак

Уровень: 1280
  • Группа:Граждане
  • сообщений:3 838
  • Регистрация:31-Октябрь 10
  • Город:Лунная Тень

Лучше поблагодарите за то, что этот баг я отловил.

Баг давно известен, если что. Ничего нового вы не открыли.



целую, обнимаю
Создатели аэдра -- мы даэдра.
Размещенное изображение

#6
Set440

Set440
  • Мимопроходимец

Уровень: 1280
  • Группа:Граждане
  • сообщений:13
  • Регистрация:25-Ноябрь 19

Баг давно известен, если что. Ничего нового вы не открыли.

 

Баг известен, а нормального чертежа костыля небыло.

Был бы чертёж — был бы и прогресс, увы.



целую, обнимаю

#7
Муурн Шепард

Муурн Шепард
  • Котосумрак

Уровень: 1280
  • Группа:Граждане
  • сообщений:3 838
  • Регистрация:31-Октябрь 10
  • Город:Лунная Тень

Баг известен, а нормального чертежа костыля небыло.

Решение слишком костыльное просто. Потому никто им и не занялся.



целую, обнимаю
Создатели аэдра -- мы даэдра.
Размещенное изображение

#8
Scarab-Phoenix

Scarab-Phoenix
  • Scarab AE Aurbex

Уровень: 1280
  • Группа:Герцоги
  • сообщений:20 187
  • Регистрация:12-Январь 09
  • Город:Таганрог, Марс

Решение слишком костыльное просто. Потому никто им и не занялся.

В качестве временной меры вполне норм. Возможно, кто-нибудь займётся.



целую, обнимаю
У нас было 2 Путеводителя по Империи, 5 частей ТЕС, 75 фансайтов, термос кофе с бурбоном и целое множество артбуков всех сортов и расцветок, а также Баттлспайр, Редгард, недавно вышедший ТЕСОнлайн, интерактивная карта Тамриэля и фанфики Киркбрайда. Не то, чтобы это был необходимый запас для фаната ТЕС. Но если начал изучать лор, становится трудно остановиться. Единственное, что вызывало у меня опасение - это фанфики Киркбрайда. Нет ничего более беспомощного, безответственного и испорченного, чем киркбрайдисты. Я знал, что рано или поздно мы перейдем и на эту дрянь. (с.)

Размещенное изображение


#9
Set440

Set440
  • Мимопроходимец

Уровень: 1280
  • Группа:Граждане
  • сообщений:13
  • Регистрация:25-Ноябрь 19

На ОпенМВ есть точно 2 таких непися, которые падают АБСОЛЮТНО ВСЕГДА (даже когда их восстанавливает ra).

Их может быть максимум 10...

 

Не всех надо подпирать, большинство достаточно подвинуть на пол-метра, на ровную плоскость.

 

====

Все остальные не падают вообще, либо очень рандомно в самых крайних случаях — таких лечит ra по ситуации (и вероятность того, что они упадут снова крайне мала)



целую, обнимаю

#10
aL☢

aL☢
  • Peace Duke

Уровень: 1280
  • Группа:M[FR] Team
  • сообщений:8 602
  • Регистрация:18-Март 11
  • Город:Непуганных Идиотов

Достаточно, пока авторы опенМВ не придумают таблетку, дать каждому "падлецу" НПЦ скрипт, который возвращает коррдинату Z при ее расхождении с первоначальным значением.

 

И такой костыль просто не обязателен :)



целую, обнимаю

Там, где я был - смерти никогда не было... Там, где я есть - ее никогда не будет... ©

Просто нужно добрее быть к людям и быть справедливым. И похрену, что это интернеты. ©

MW_userbar.jpgVyXU4.png


Мои проекты:
Morrowind [Fullrest Repack]
Carmageddon 2 [aL Repack]
X-Tension New Life


Хотите помочь?

Карта сбербанка: 4817-7600-1514-8392


#11
Set440

Set440
  • Мимопроходимец

Уровень: 1280
  • Группа:Граждане
  • сообщений:13
  • Регистрация:25-Ноябрь 19

Достаточно, пока авторы опенМВ не придумают таблетку, дать каждому "падлецу" НПЦ скрипт, который возвращает коррдинату Z при ее расхождении с первоначальным значением.

 

И такой костыль просто не обязателен :)

 

Это очень крутая идея!

Смотри:

Если ((НПЦ в воде или стоит на земле) и (оригинальныйZ - текущийZ) > N): ra;

 

Но с таким подходом нужно оригинальныйZ брать из сейва (если нет — из мастера), и выполнять этот код единожды, при инициализации



целую, обнимаю

#12
morrow

morrow
  • (ಠ ⌒ ಠ)¤=[]:::::> ヽ(゚ ロ゚ )ノ

Уровень: 1280
  • Группа:Народные представители
  • сообщений:4 630
  • Регистрация:23-Март 08
  • Город:Dagon Fel, The End of the World

Совать скрипты, совать коллизии — костыль. Но второе хотя бы менее конфликтно

 

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



целую, обнимаю

d22f522e.jpg
Список ватников Фуллреста (upd.15.04.16):

Спойлер


#13
Set440

Set440
  • Мимопроходимец

Уровень: 1280
  • Группа:Граждане
  • сообщений:13
  • Регистрация:25-Ноябрь 19

Такой код лучше писать в виде кастомного патча. (Я у Akortunov"а хочу спросить)

 

Только я как всегда в пролёте с патчами: мне нужен OpenMW под macOS, боюсь что не смогу собрать после патчей...

 

=====

Суть треда: Хлаалу и Телвани сражаются за Одирниран.



целую, обнимаю

Сообщение изменено: Set440, 26 Ноябрь 2019 - 12:30 .


#14
aL☢

aL☢
  • Peace Duke

Уровень: 1280
  • Группа:M[FR] Team
  • сообщений:8 602
  • Регистрация:18-Март 11
  • Город:Непуганных Идиотов

Совать скрипты, совать коллизии — костыль. Но второе хотя бы менее конфликтно

 

 

Сунь не костыль. Там же написано - в качестве временной меры вполне пойдет.


Это очень крутая идея!

Смотри:

Если ((НПЦ в воде или стоит на земле) и (оригинальныйZ - текущийZ) > N): ra;

 

Но с таким подходом нужно оригинальныйZ брать из сейва (если нет — из мастера), и выполнять этот код единожды, при инициализации

 

Достаточно сравнивать с заданной в КСе координатой Z



целую, обнимаю

Там, где я был - смерти никогда не было... Там, где я есть - ее никогда не будет... ©

Просто нужно добрее быть к людям и быть справедливым. И похрену, что это интернеты. ©

MW_userbar.jpgVyXU4.png


Мои проекты:
Morrowind [Fullrest Repack]
Carmageddon 2 [aL Repack]
X-Tension New Life


Хотите помочь?

Карта сбербанка: 4817-7600-1514-8392


#15
Set440

Set440
  • Мимопроходимец

Уровень: 1280
  • Группа:Граждане
  • сообщений:13
  • Регистрация:25-Ноябрь 19
Достаточно сравнивать с заданной в КСе координатой Z

 

Это если непись не ходит. Кроме-того, можно разозлить и стоячих NPC, чтоб они бегали за тобой — в этом случае непись сместится по Z в зависимости от поверхности. Нужно читать из сейва (если доступно).

 

И ещё: суть падения в том, что либо непись стоит на статике, либо не стоит — третьего варианта нет.

 

В редакторе он ПОДВЕШЕН НАД своим местом, тоесть при постановке он УЖЕ СМЕЩАЕТСЯ.

Потому нужно сравнивать РАЗНИЦА > N



целую, обнимаю

#16
aL☢

aL☢
  • Peace Duke

Уровень: 1280
  • Группа:M[FR] Team
  • сообщений:8 602
  • Регистрация:18-Март 11
  • Город:Непуганных Идиотов

Это если непись не ходит. Кроме-того, можно разозлить и стоячих NPC, чтоб они бегали за тобой — в этом случае непись сместится по Z в зависимости от поверхности. Нужно читать из сейва (если доступно).

 

И ещё: суть падения в том, что либо непись стоит на статике, либо не стоит — третьего варианта нет.

 

В редакторе он ПОДВЕШЕН НАД своим местом, тоесть при постановке он УЖЕ СМЕЩАЕТСЯ.

Потому нужно сравнивать РАЗНИЦА > N

 

Но проваливаются только погонщики, потому в качестве временной меры я и предлагал использовать скрипт только на них.

Разницы между подвешенным и "упавшим" на "пол" вы не увидите в игре, с этим проблем нет, проверено.



целую, обнимаю

Там, где я был - смерти никогда не было... Там, где я есть - ее никогда не будет... ©

Просто нужно добрее быть к людям и быть справедливым. И похрену, что это интернеты. ©

MW_userbar.jpgVyXU4.png


Мои проекты:
Morrowind [Fullrest Repack]
Carmageddon 2 [aL Repack]
X-Tension New Life


Хотите помочь?

Карта сбербанка: 4817-7600-1514-8392


#17
Set440

Set440
  • Мимопроходимец

Уровень: 1280
  • Группа:Граждане
  • сообщений:13
  • Регистрация:25-Ноябрь 19

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

 

Не важно, русские, немцы, американцы — все имеют право использовать фикс, с обратной совместимостью, без адаптаций.

 

====

Вот если-бы такой код в виде патча для движка... но разработчики говорят: Приплыли! Не будем мы непонятный баг латать костылём, это мешает отладке!



целую, обнимаю

#18
Муурн Шепард

Муурн Шепард
  • Котосумрак

Уровень: 1280
  • Группа:Граждане
  • сообщений:3 838
  • Регистрация:31-Октябрь 10
  • Город:Лунная Тень

Но проваливаются только погонщики, потому в качестве временной меры я и предлагал использовать скрипт только на них.

Не только. Эрраниль в ГМ Альд-Руна, например, любит падать.



целую, обнимаю
Создатели аэдра -- мы даэдра.
Размещенное изображение

#19
aL☢

aL☢
  • Peace Duke

Уровень: 1280
  • Группа:M[FR] Team
  • сообщений:8 602
  • Регистрация:18-Март 11
  • Город:Непуганных Идиотов

Вот если-бы такой код в виде патча для движка... но разработчики говорят: Приплыли! Не будем мы непонятный баг латать костылём, это мешает отладке!

 

Это где такое сказано? Все будет.

 

Не только. Эрраниль в ГМ Альд-Руна, например, любит падать.

 

Хгмм.. сколько играю у меня она ни разу не падала.



целую, обнимаю

Там, где я был - смерти никогда не было... Там, где я есть - ее никогда не будет... ©

Просто нужно добрее быть к людям и быть справедливым. И похрену, что это интернеты. ©

MW_userbar.jpgVyXU4.png


Мои проекты:
Morrowind [Fullrest Repack]
Carmageddon 2 [aL Repack]
X-Tension New Life


Хотите помочь?

Карта сбербанка: 4817-7600-1514-8392


#20
morrow

morrow
  • (ಠ ⌒ ಠ)¤=[]:::::> ヽ(゚ ロ゚ )ノ

Уровень: 1280
  • Группа:Народные представители
  • сообщений:4 630
  • Регистрация:23-Март 08
  • Город:Dagon Fel, The End of the World

Способ исправления падающих NPC в OpenMW:
1. Нажать ~
2. Вбить "ra"
3. Нажать "Enter"
4. Нажать ~
 
Если понадобится ещё раз в том же сеансе игры, то:
1. Нажать ~
2. Нажать "клавиша вверх"
3. Нажать "Enter"
4. Нажать ~
 
Если вы ленивая задница, которой лень нажать пять клавиш, а вместо ОпенМВ у вас МГЕ:
Назначаете на любую кнопку где-нибудь на цифровом блоке клавы (например, "7\Home") команду "ra" через мгешный "Macro Editor" и макрос "Console2" — https://tes.ag.ru/cs...abs_macro.shtml

 

Не благодарите! ;-)



целую, обнимаю

Сообщение изменено: morrow, 26 Ноябрь 2019 - 09:10 .

d22f522e.jpg
Список ватников Фуллреста (upd.15.04.16):

Спойлер




Темы с аналогичными тегами (одним или более): OpenMW, NPC, GFM

Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Top.Mail.Ru