3d форум по Blender
Blender => Вопросы от новичков => Тема начата: Moorven от 01 Октябрь 2023, 11:39:10
-
Как сделать автоматическое открывание двери если герой находится рядом с ней в BGE?
-
Можешь уточнить у тебя bge или upbge, и что имено не получается?
По сути нужно сделать Collision Sensor https://upbge.org/#/documentation/docs/latest/manual/manual/logic/sensors/types/collision.html
-
Наверное bge, версия блендера 2.79
-
у тебя что-то уже сделано? что не получается?
-
Да сделано, попробовал через коллизию и вроде бы получилось, но теперь другая проблема - я касаюсь двери и запускается анимация открытия, но сквозь дверной проём я всё-равно не могу пройти т.к. коллайдер остался на месте дверного проёма.
Пробовал привязать отдельный невидимый объект с к самой двери через три вершины на ней но в режиме тестирования он куда то смещается в сторону и не двигается с анимацией двери
-
выложи модель, так будет быстрее понять проблему
-
https://disk.yandex.ru/d/ZHr3rLBrrkUriQ (https://disk.yandex.ru/d/ZHr3rLBrrkUriQ)
-
скачал, смотрю, можешь еще описать логику дверей - они всегда открываются при приближении перса или нужно что-то делать? если для открытия двери нужно только к ней подойти и другого ничего не нужно, то можно будет использовать другую логику ...
-
Тоже скачал посмотрел, у меня есть версия upbge на исходниках 2.78, так вот там всё работает, за исключением, того, что, когда перс подходит, дверь начинает постоянно опускаться подниматься. но пройти через неё можно. С логикой пока не разбирался, некогда... может вечером тож чего предложу...
ЗЫ:А ну да в коллизию тыкаешься пока она не поднимется.
-
Тут как раз нужно чтобы автор пояснил задуманную логику. Есть несколько вариантов, например запустить анимацию открытия-закрытия двери и не дожидаться пока перс пройдет или запустить анимацию открытия двери, подождать пока перс пройдет и запустить анимацию закрытия двери. Еще вариант - открыть и не закрывать (совсем просто и тоже может не противоречить сюжету).
Поскольку по сюжету нажимать ничего не нужно, то предлагаю использовать сенсор Near, по нему можно отловить два события "приблизился к двери ближе чем на ..." и удалился от двери дальше чем на ...". Но событие повесить не на саму дверь, а на портал. Это позволит избежать смещения зоны взаимодействия из-за перемещения двери вверх или вниз.
Для какой логики готовить пример?
ЗЫ: Можно проработать несколько вариантов открытие-закрытие двери, поскольку и для Насти тоже потребуется.
-
Давайте тогда через сенсор Near попробуем сделать.
И ещё мне кажется было бы неплохо движение двери сделать не через анимацию а с помощью смещения по оси Z до определённых значений (верх и низ), тогда такую дверь можно будет дублировать без создания отдельной анимации для каждой двери.
-
https://disk.yandex.ru/d/BSZy3nyp2Otang
-
>> И ещё мне кажется было бы неплохо движение двери сделать не через анимацию а с помощью смещения по оси Z
программист?
-
Скорее нет чем да, с питонами не знаком совсем :)
-
Файл заменил https://disk.yandex.ru/d/BSZy3nyp2Otang .
Пример содержит две двери. Двери можно добавить, если выделить одновременно Potal+Door и сделать Shift+D, далее в логике портала указать на какую дверь посылается сообщение "open".
-
Странно, у меня почему то перестал двигаться герой.
Хотя кирпичи управления вроде бы прежние остались. :-\
-
в твоем файле? там случайно раскладка клавы не влияет
-
Мне кажется это может быть связанно с версией блендера, т.е. из старой в новую импортируется без проблем а обратно может работать не корректно.
-
мы с тобой в одной версии работаем, 2.79, не так ли?
-
Да, получается что в одной. Тогда не знаю с чем может быть связан баг ???
-
чем я могу тебе помочь?
-
sungreen, спасибо! я могу просто посмотреть принцип которым ты открывал дверь и попробовать скопировать его в свой исходник.
-
упс, я так и думал, что ты посмотришь как это сделано и скопируешь к себе, у меня твои человечки с самого начала не работали ...
если тебя дверь устраивает, то выстави еще раз свой рабочий файл, я впилю дверь в него и отдам тебе рабочий, без вопросов ...
-
Вот еще вариант двери через арматуру
https://disk.yandex.ru/d/4UbVxchnKoe6zA
Суть - объектов стало больше, но логика проще.
Арматура принимает событие от сенсора Near при приближении объекта со свойством pers и запускает перемещение своей единственной кости.
Дверь и портал привязаны к арматуре. Двери еще привязана к кости, что заставляет её подниматься при открытии.
Теперь двери можно копировать и расставлять по локации. Они должны автоматом открываться при приближении перса. Для коприрования через шифт выдели AutoDoor, A_Door, A_Portal и сделай Shift+D. Далее перемести созданную новую арматуру AutoDoor.xxx в требуемое место.
-
sungreen, спасибо! попробую)