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
Spalny_VagonOffline
Сообщение №2
написано: 15 апреля 2012, 12:58
| Отредактировано: Spalny_Vagon - 15 апреля 2012, 13:00
Спасибо, KAIN48, расшифровка значений AL_STATIC и остальных будет весьма полезна.
Цитата KAIN48
Теперь про стрельбу и замена объекта после взрыва.
Мувебле-статика. Add destruction data, какжется так эта вкладка называется. Там задаются: прочность объекта; стадии разрушения; скорость разрушения; будут ли взрывы, а если будут, то сколько и какие; какие детали будут разлетаться и на что в конечном итоге будет заменена первоначальная модель. Т.е. там можно указать, что радиоприемник после разрушения будет заменен, например, на пылесос. Очевидно, что плита в свое время была сделана из взрывающегося мотоцикла. Разрушать можно как с помощью оружия, так и скриптом (команда DamageObject). Посмотрите, как устроены взрывающиеся машины, короче говоря.
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
а почему бы не попытаться комбинировать несколько коллизий в одном объекте?
Я не знаю про такое, знаю, что коллизия может быть составной, в NifTools хелпер "bhkCollProxy" можно добавить несколько объектов и он создаст единую convex-модель коллизии для них. Сложный составной объект - в котором мы для каждой части создаём свой меш коллизии, а затем объеденяем все meshes коллизии в одну convex форму и экспортируем. Я сей час забросил всё на время - посевная! Я в деревне живу - пришло время в огороде "копать и рыть"! Так что "Движение объекта с коллизией" пока "задвинул". Graf - делает мод с летающим вертибёрдером ( что такое он писал) с ним то же мало переписываюсь. Почти неделю какая то беда была с FireFox - окна и шрифты "всбесились" - невозможно было писать. Так и не понял, что и почему - только после второй переустановки всё заработало! После первой нет! Такие дела. Пока.
Вот они все тайны "геймбюро" постепенно вскрываются. Интересно было почитать. Вообще если делать лифт и перемещать НПС то для него можно "в воздухе" рисовать полоски навмеша. Тоесть пока он поднимается, он соприкасается с каким-нибудь идле маркером и в этот момент почешет в затылке, а анимация будет проигрываться во время подъема. Вот "лифт" остановился, непись встал на свой навмешъ и пошел.
Возможно при помощи NifSkope в ветке bhkRigidBodyT (или другая) это вторая после bhkCollisionObject Поменять в двух местах OL_STATIC на OL_CLUTTER И коллизия будет двигать NPC или персонажа вверх. В статье в самом верху есть ссылка на Народ - это esp с плитой (лифтом) можешь посмотреть настройки коллизии плиты там. А по этой ссылке находится плагин с лифтом Лифт сделанным Graf . Лифт возле Гоморры Переместиться к Гоморре можно набрав в консоли coc TheStripWorldNew. Пока.
Возможно при помощи NifSkope в ветке bhkRigidBodyT (или другая) это вторая после bhkCollisionObject Поменять в двух местах OL_STATIC на OL_CLUTTER
это то, что я искал 3 дня. Спасибо огромное.
Добавлено (17.12.2012, 12:24) --------------------------------------------- В общем, поискал я в Интернетах, как сменить коллизию у объекта (метод KAIN48 через NifScope) не помог. Так ничего толкового и не нашел. Если кто-нибудь видел хороший туториал (для 9-ого Макса) или может сам подробно все расписать - буду очень признателен.
Добавлено (17.12.2012, 12:58) --------------------------------------------- В общем, за полчаса копания в Максе, я смог сделать это: тык. Заменил тип коллизии у лифта (я знаю, что у Графа уже готовая модель, но мне хочется сделать все самому), однако "краснота" еще есть... Мало того, я не знаю как экспортировать модель вместе с коллизией. Все равно, хоть что-то.
Изменение репутации для пользователя KAIN48
KAIN48Offline
Сообщение №11
написано: 18 декабря 2012, 02:52
| Отредактировано: KAIN48 - 18 декабря 2012, 15:03
Sazans_Theme, Привет! У тебя на скрине коллизия Convex Chape (то есть вокруг всего объекта) Как здесь - внутрь колеса непись не правалится, если будет ходить по нему.
А здесь коллизия созданная методом Strips Shape (то есть вокруг всех деталей объекта) Непись сможет зайти в десантный отсек.
У тебя лифт должен быть сборным. Колонны и направляющие (статичный) - один объект с коллизией созданной по методу Strips Shape. И площадка ( двигающийся) с коллизией Сonvex Chape. В GECK ставишь статику, внутрь площадку. А как сейчас непись не сможет зайти внутрь - коллизия не даст.
Sazans_Theme, на счет преобразовании коллизии - http://rizys-mod.ucoz.ru/forum/28-50-1 я писал полный вариант у себя на сайте. Личку ты закрыл, ссылку пришлось кинуть сюда.
...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...