Привет всем!
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 мотоцикла и телефона – в игре ведёт себя по разному.
Почему!?
Первоначальная версия, что на это влияют флаги из нодов модели отпала.
Наверное, мы что то важное пропустили, или не заметили. Поэтому тоже надо думать и экспериментировать.
===========
Ответ оказался прост. Мы просто изменили оригинальный мотоцикл, и его настройки взрыва сохранились вместе с новым объектом (в id).
Подсказку дал
Spalny_Vagon Мувебле-статика. Add destruction data, какжется так эта вкладка называется. Там задаются: прочность объекта; стадии разрушения; скорость разрушения; будут ли взрывы, а если будут, то сколько и какие; какие детали будут разлетаться и на что в конечном итоге будет заменена первоначальная модель. Т.е. там можно указать, что радиоприемник после разрушения будет заменен, например, на пылесос. Очевидно, что плита в свое время была сделана из взрывающегося мотоцикла. Разрушать можно как с помощью оружия, так и скриптом (команда DamageObject). Посмотрите, как устроены взрывающиеся машины, короче говоря.
Я МОГУ ЛИШЬ УКАЗАТЬ ДВЕРЬ. ТЫ САМ ДОЛЖЕН ВЫЙТИ НА...(Матрица) Как использовать!
Хоть как.
Строите новые уровни с движущими объектами, по которым игрок должен передвигать к цели.
Стройте лифты и подъёмники, «летающие» станции и дирижабли, спускаемые капсулы и тп.
(Пример – поднимающаяся вверх кабина с иллюминаторами, в которые игрок видит удаляющуюся землю, свободно перемещаясь внутри.)
Даже если учитывать минус, что при горизонтальном движении объекта игрок вынужден «подрабатывать» ногами, что бы не упасть с объекта. Всё равно можно делать интересные моменты.
Не говоря уж про движение вверх или вниз, когда всё работает полностью. Игрок может стоять, двигаться, стрелять и тп.
Неписи то же могут стоять и стрелять, могут передвигаться в пределах объекта и падать вниз.
Понятно, что пакеты AI скорее всего будут работать не все. Sand Box скорее всего точно не будет – сетки navmesh нет. Хотя кто его знает как игра отслеживает расстояние до сетки и есть ли ограничения по высоте – возможно, что непись двигаясь на высоте 10 метров от земли, будет точно так же двигаться по объекту, как если бы был на поверхности. (Надо пробовать).
В общем пробуйте - вот esp
http://narod.ru/disk....ip.html В нём две плиты и скрипт движения (движение безконечное) по X в одном случае и по Z в другом
Пишите если натолкнётесь, на что-нибудь интересное. Пока.