Вверх Вниз


  • Страница 1 из 1
  • 1
Модератор форума: Ipatow  
Форум » Fallout: New Vegas » Мастерская » Коллизия и движение объекта (Обсуждаем, думаем, пробуем)
Коллизия и движение объекта
KAIN48  Offline Сообщение №1 написано: 15 Апреля 2012 в 16:03 | Отредактировано: KAIN48 - Четверг, 20 Декабря 2012, 17:11


Шаманистый шаман


1416
Привет всем!

E pur si muove «И всё-таки она вертится!»
1633 год - Галилео Галилей

КОМПАНИЯ GRAF and KAIN48 ПРЕДСТАВЛЯЕТ ДВИЖЕНИЕ ОБЪЕКТА С КОЛЛИЗИЕЙ!

Мне понадобился скрипт движения объекта с одного места до другого, и я обратился к GRAF за помощью.
Он помимо самого скрипта сделал для меня готовую сцену, взяв для объекта движения мотоцикл, который я потом мог заменить - на свой объект. И в описании добавил:
- Тебя ждёт большой сюрприз!
Я скачал esp, подключил и запустил игру. Включил выключатель, мотоцикл двинулся в заданном скриптом направлении, к точке остановки – отмеченной маркером. Я хоть и мало понимаю в скриптах, но видел, что в нём нет отключения "поддёргивания" и включения коллизии (enable, disable).
И уже было хотел возвращаться на сайт к Graf , что бы написать, что это не то что нужно.
Но решил походить в игре.
Поэтому направился на то место, где стоял мотоцикл до начала движения и удивился, не обнаружив там не видимого препятствия в виде оставшейся на месте коллизии.
Загрузил сохранение, запустил движение и отправился к мотоциклу, решив пройти через него насквозь. Но не тут то было! Мотоцикл двигался с коллизией.
Я «кинулся» к нему на сайт в тему, где мы обсуждали этот скрипт и написал: Ты заметил! Коллизия движется вместе с объектом!
- Ага!
Ответил GRAF .
- Выше почитай! Ты пропустил мои замечания, я его из-за этого и взял, что он имеет синию коллизию.
Я почитал.
Оказалось, что Graf заметил разницу в цвете коллизий: красный, синий , зелёный, белый и тп. Почти все цвета радуги.
Возник вопрос: - «А зачем ?»
В ходе небольшого обсуждения, которого мы определили разницу во взаимодействии персонажа со объектами из категорий статика, оружие, посуда и тп. То есть с такими, на которые персонаж мог воздействовать сдвигая их с места.
Это вы все прекрасно знаете и это ни для кого не новость.

Получалось так, что объект не имея «мировой модели» GO, как в случае с бронёй двигался с коллизией, не имея на себе скриптов «поддёргивания», или включения отключения коллизии.

- Пороем!
Спросил я.
- Пороем!
Ответил Graf

ПОЛТОРА ЗЕМЛЕКОПА ИЛИ «КАЗНИТЬ НЕЛЬЗЯ – ПОМИЛОВАТЬ»

Делая параллельно - занесли в игру два своих новых объекта, он через Blender, а я через MAX с нужными настройками niftools
Дальше я пошёл по простому пути – просто заменил (Copy –Paste) нужное в модели мотоцикла (motorcycle01.nif.)

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

1. Но только нужно было постоянно двигаться со скорость движения плиты.
В случае остановки, персонаж падал, когда плита уезжала из под ног.
2. Плита двигалась, реагируя на встречные препятствия – ящики, столбы и тп. То есть двигаясь по прямой, опускала или поднимала нос, начинала вращение вокруг своей оси и тп.
Получалось, что коллизия, сталкиваясь с коллизией не останавливалась, а проходила через другую коллизию, но всё таки не совсем без сопротивления и взаимодействия.
Тут то же интересно - при изменении настроек плита могла двигаться строго по прямой, не меняя направления после столкновений.
3. И обнаружилось, что если стрелять по плите, после взрыва она становилась горевшим мотоциклом.

Понятно, что превращение плиты в мотоцикл после выстрела и взрыва и движение коллизии, было задано, какими то настройками модели.
Нужно было понять какими!
Решили разделиться – Graf продолжает «Рыть» в nifskope, сравнивая и меняя значения, а я пытаюсь найти нужное в интернете, переводить .
Вот тут и выяснилось, что землекоп из меня плохой! Так скажем половина землекопа.
Найти ничего не удалось, кроме того, что у всех на виду в виде интерактивной помощи
NIF File Format Documentation
Расшифровку или описание всех имеющихся флагов найти не удалось.
Перевод , на наш взгляд, нужного из:
Collision Response
Motion System
Deactivator Type
SolverDeactivation
Quality Type
Почти ничего не дал! Всё таки тексты в описании в основном состоят из спец названий и терминов.
Как в прочем, почти ничего не дало изменение типов в этих пунктах. Разница в поведении объекта при движении почти не заметна. Да и нудное это дело, менять значение и смотреть за поведением объекта в игре!
*Так что тут, скорее всего придётся разбираться длительное время.
Но удалось проверить основные типы коллизии, а именно то как персонаж взаимодействует с ними.
Выяснилось следующее:

При типе коллизии OL_STATIC (красная)коллизия остаётся на месте, персонаж не взаимодействует с объектом, проходя или проваливаясь в него.
При типе коллизии OL_PROPS (синяя) коллизия движется с объектом, но персонаж медленно проваливается сквозь неё, если не будет двигаться, или подпрыгивать.
При типе коллизии OL_CLUTTER (синяя) коллизия движется вместе с объектом, персонаж движется вместе с коллизией, стоя на месте, или двигаясь в пределах объекта (при движении по Z)
Или передвигаясь по объекту (при движении по Y,X)- стоять нельзя, объект уезжает из под ног.
При типе коллизии OL_TRANSPARENT (белая) коллизия движется вместе с объектом, персонаж движется вместе с коллизией вверх, но должен двигаться при движении по горизонтали. При этом если прыгать на плите, она начинает поворачиваться меняя своё положение, в зависимости от того в каком месте персонаж воздействует на плиту. (так скажем небольшой отклик)
OL_TREES (красная) – тут интересно! Персонаж толкает объект вместе с коллизией– сдвигая с места, не проваливаясь в него. (так скажем большой отклик)

Это основные типы взаимодействия. А это картинки!




Хотели сделать ролик, да потом решили – зачем, кто захочет проверить поставит esp и сам всё увидит.

Теперь про стрельбу и замена объекта после взрыва.

Как я написал выше в случае с плитой, которая была «сделана» заменой nif мотоцикла, она взрывалась и становилась горевшим мотоциклом (меняла модель)
А вторая плита (лифт) сделанная из телефона на выстрелы, никак не реагировала.
Получается что одна модель плиты Platform.nif из папки Data нашего мода, заменяя nif мотоцикла и телефона – в игре ведёт себя по разному.
Почему!?
Первоначальная версия, что на это влияют флаги из нодов модели отпала.
Наверное, мы что то важное пропустили, или не заметили. Поэтому тоже надо думать и экспериментировать.

Я МОГУ ЛИШЬ УКАЗАТЬ ДВЕРЬ. ТЫ САМ ДОЛЖЕН ВЫЙТИ НА...(Матрица)

Как использовать!
Хоть как.
Строите новые уровни с движущими объектами, по которым игрок должен передвигать к цели.
Стройте лифты и подъёмники, «летающие» станции и дирижабли, спускаемые капсулы и тп.
(Пример – поднимающаяся вверх кабина с иллюминаторами, в которые игрок видит удаляющуюся землю, свободно перемещаясь внутри.)
Даже если учитывать минус, что при горизонтальном движении объекта игрок вынужден «подрабатывать» ногами, что бы не упасть с объекта. Всё равно можно делать интересные моменты.
Не говоря уж про движение вверх или вниз, когда всё работает полностью. Игрок может стоять, двигаться, стрелять и тп.


Неписи то же могут стоять и стрелять, могут передвигаться в пределах объекта и падать вниз.
Понятно, что пакеты AI скорее всего будут работать не все. Sand Box скорее всего точно не будет – сетки navmesh нет. Хотя кто его знает как игра отслеживает расстояние до сетки и есть ли ограничения по высоте – возможно, что непись двигаясь на высоте 10 метров от земли, будет точно так же двигаться по объекту, как если бы был на поверхности. (Надо пробовать).
В общем пробуйте - вот esp Народ
В нём две плиты и скрипт движения (движение бесконечное) по X в одном случае и по Z в другом

Пишите если натолкнётесь, на что-нибудь интересное.

Мы пока пробуем сделать блок коллизий, что бы объект воздействовал на препятствия сильней (цель - сдвигать игрока с места движущимся объектом) Там есть какая то закономерность, зависящая от угла наклона плиты и коллизии - объект сдвигает персонажа, то больше, то меньше. А потом персонаж всё равно проваливается насквозь объекта. Но тут ещё нужно проверить типы коллизии в niftools,

Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
Spalny_Vagon  Offline Сообщение №2 написано: 15 Апреля 2012 в 16:58 | Отредактировано: Spalny_Vagon - Воскресенье, 15 Апреля 2012, 17:00





858
Спасибо, KAIN48, расшифровка значений AL_STATIC и остальных будет весьма полезна.
Quote (KAIN48)
Теперь про стрельбу и замена объекта после взрыва.

Мувебле-статика. Add destruction data, какжется так эта вкладка называется. Там задаются: прочность объекта; стадии разрушения; скорость разрушения; будут ли взрывы, а если будут, то сколько и какие; какие детали будут разлетаться и на что в конечном итоге будет заменена первоначальная модель. Т.е. там можно указать, что радиоприемник после разрушения будет заменен, например, на пылесос. Очевидно, что плита в свое время была сделана из взрывающегося мотоцикла. Разрушать можно как с помощью оружия, так и скриптом (команда DamageObject). Посмотрите, как устроены взрывающиеся машины, короче говоря.

Мод "Нью-Йорк" на русском:
Мод "Нью-Йорк" на английском:
Scarabay  Offline Сообщение №3 написано: 28 Апреля 2012 в 09:41



85
Привет всем! Давно не заходил на сайт, а тут такое.. good
KAIN48, а почему бы не попытаться комбинировать несколько коллизий в одном объекте?

Здесь был Саша...
KAIN48  Offline Сообщение №4 написано: 09 Мая 2012 в 09:05


Шаманистый шаман


1416
Scarabay, Привет!
Quote (Scarabay)
а почему бы не попытаться комбинировать несколько коллизий в одном объекте?

Я не знаю про такое, знаю, что коллизия может быть составной, в NifTools хелпер "bhkCollProxy" можно добавить несколько объектов и он создаст единую convex-модель коллизии для них. Сложный составной объект - в котором мы для каждой части создаём свой меш коллизии, а затем объеденяем все meshes коллизии в одну convex форму и экспортируем.
Я сей час забросил всё на время - посевная! Я в деревне живу - пришло время в огороде "копать и рыть"! Так что "Движение объекта с коллизией" пока "задвинул". Graf - делает мод с летающим вертибёрдером ( что такое он писал) с ним то же мало переписываюсь. Почти неделю какая то беда была с FireFox - окна и шрифты "всбесились" - невозможно было писать. Так и не понял, что и почему - только после второй переустановки всё заработало! После первой нет!
Такие дела.
Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
RustWays  Offline Сообщение №5 написано: 10 Мая 2012 в 01:32



5264
Вот они все тайны "геймбюро" постепенно вскрываются. Интересно было почитать. Вообще если делать лифт и перемещать НПС то для него можно "в воздухе" рисовать полоски навмеша. Тоесть пока он поднимается, он соприкасается с каким-нибудь идле маркером и в этот момент почешет в затылке, а анимация будет проигрываться во время подъема. Вот "лифт" остановился, непись встал на свой навмешъ и пошел.

SoloDrive  Offline Сообщение №6 написано: 06 Июля 2012 в 15:02



36
Очень интересно) А возможно ли осуществить движение по диагонали????

Если все, кто меня критикуют - завистники,
следовательно, те, кто хвалят - льстецы?
© Диспепсий Пустула Вербалийский
rizys-mod  Offline Сообщение №7 написано: 08 Августа 2012 в 17:13


Команда "Rizys-Mod"


250
SoloDrive, да, конечно. Вот нужный скрипт:
Code
Short State

Float YPos
Float YAchse

Float ZPos
Float ZAchse

Begin OnActivate
if State == 0
;    disableplayercontrols 1 1 0 1 0 1 ; если требуется =)
  Set State to 1
endif
End

Begin GameMode
if (State == 1)
  Set ZPos to objectRef.GetPos Z
  Set ZAchse to ZPos +2
  objectRef.SetPos Z ZAchse
endif

if (State == 1)
  Set YPos to objectRef.GetPos Y
  Set YAchse to YPos +2
  objectRef.SetPos Y YAchse
endif

if (State == 1) && (Marker01Ref.getdistance, player <= 10)
  Set State to 2
endif
End

Команда "Rizys-mod" - разработка плагинов на Fallout.
Рыба  Offline Сообщение №8 написано: 30 Сентября 2012 в 18:15


faceless


693
Возможно сменить тип коллизии у объекта?

KAIN48  Offline Сообщение №9 написано: 30 Сентября 2012 в 20:59 | Отредактировано: KAIN48 - Воскресенье, 30 Сентября 2012, 21:03


Шаманистый шаман


1416
Quote (Sazans_Theme)
Возможно сменить тип коллизии у объекта?

Возможно при помощи NifSkope в ветке bhkRigidBodyT (или другая) это вторая после bhkCollisionObject
Поменять в двух местах OL_STATIC на OL_CLUTTER

И коллизия будет двигать NPC или персонажа вверх.
В статье в самом верху есть ссылка на Народ - это esp с плитой (лифтом) можешь посмотреть настройки коллизии плиты там.
А по этой ссылке находится плагин с лифтом Лифт сделанным Graf . Лифт возле Гоморры
Переместиться к Гоморре можно набрав в консоли coc TheStripWorldNew.
Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
Рыба  Offline Сообщение №10 написано: 17 Декабря 2012 в 12:58


faceless


693
KAIN48,
Quote (KAIN48)
Возможно при помощи NifSkope в ветке bhkRigidBodyT (или другая) это вторая после bhkCollisionObject
Поменять в двух местах OL_STATIC на OL_CLUTTER

это то, что я искал 3 дня. Спасибо огромное.

Добавлено (17.12.2012, 12:24)
---------------------------------------------
В общем, поискал я в Интернетах, как сменить коллизию у объекта (метод KAIN48 через NifScope) не помог.
Так ничего толкового и не нашел. Если кто-нибудь видел хороший туториал (для 9-ого Макса) или может сам подробно все расписать - буду очень признателен.

Добавлено (17.12.2012, 12:58)
---------------------------------------------
В общем, за полчаса копания в Максе, я смог сделать это: тык.
Заменил тип коллизии у лифта (я знаю, что у Графа уже готовая модель, но мне хочется сделать все самому), однако "краснота" еще есть... Мало того, я не знаю как экспортировать модель вместе с коллизией. Все равно, хоть что-то.


KAIN48  Offline Сообщение №11 написано: 18 Декабря 2012 в 06:52 | Отредактировано: KAIN48 - Вторник, 18 Декабря 2012, 19:03


Шаманистый шаман


1416
Sazans_Theme, Привет!
У тебя на скрине коллизия Convex Chape (то есть вокруг всего объекта)
Как здесь - внутрь колеса непись не правалится, если будет ходить по нему.


А здесь коллизия созданная методом Strips Shape (то есть вокруг всех деталей объекта)

Непись сможет зайти в десантный отсек.

У тебя лифт должен быть сборным. Колонны и направляющие (статичный) - один объект с коллизией созданной по методу Strips Shape.
И площадка ( двигающийся) с коллизией Сonvex Chape.
В GECK ставишь статику, внутрь площадку.
А как сейчас непись не сможет зайти внутрь - коллизия не даст.

Мы вышли из дома, когда во всех... Поздно вышли!
Graf  Offline Сообщение №12 написано: 18 Декабря 2012 в 21:29



181
Sazans_Theme, на счет преобразовании коллизии - http://rizys-mod.ucoz.ru/forum/28-50-1 я писал полный вариант у себя на сайте. Личку ты закрыл, ссылку пришлось кинуть сюда.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Форум » Fallout: New Vegas » Мастерская » Коллизия и движение объекта (Обсуждаем, думаем, пробуем)
  • Страница 1 из 1
  • 1
Поиск: