Как сделать покачивание камеры в ue4

Обновлено: 04.07.2024

​Реакции столкновения (Collision Responses) и реакции трассировки (Trace Responses) формируют основу для обработки столкновений и бросания лучей (ray casting) UE4 во время игры. Каждый объект, который может сталкиваться, получает объектный тип и ряд реакций, которые определяют как он будет взаимодействовать со всеми другими типами объектов. Когда происходит столкновение или событие пересечения, у всех взаимодействующих объектов может быть установлено воздействие или реакция на воздействие следующим образом: блокировкой, игнорированием или событием пересечения.

Trace Response в основном работает также, за исключением того, что сама трассировка (ray cast) может быть назначена как один из типов Trace Response, таким образом позволяя Actor либо блокировать его, либо игнорировать, основываясь на их Trace Response.

Взаимодействия

Нужно иметь ввиду несколько правил, по которым обрабатываются столкновения:

  • Блокировка естественно случится между двумя или более Actor, если у них установлено Block. Однако чтобы произошло событие попадания (Hit Event), которое используется в блюпринтах, разрушаемых Actor (Destructible Actor), триггерах и т.д., должен быть включен Simulation Generates Hit Events.
  • Установка у Actor Overlap часто выглядит так, как будто объекты игнорируют друг друга - без включения Generates Overlap Events, по сути Overlap работает также как Ignore.
  • Чтобы объекты блокировали друг друга, у всех должно быть выставлено Block в соответствующих типах объектов.
  • Для взаимодействующих объектов: если у одного стоит Overlap а у другого Block, то при столкновении сработает overlap а не block.
  • Overlap Event может быть сгенерировано даже если у объекта включен Block, особенно при движении на высокой скорости.
    • не рекомендуется для объекта иметь и событие пересечения и событие столкновения. Это требует ручной настройки.

    ​Для целей тестирования уровней и осмотра вашего мира:

    • В режиме по умолчанию Play In Editor камера является Pawn. Она может быть заблокирована любым Pawn с включенным Block.
    • В режиме Simulate In Editor камера, пока не вселилась во что-нибудь, не является Pawn. Она может свободно проходить сквозь все препятствия и не создает никаких событий и коллизий.

    ​Примеры взаимодействий при столкновениях

    Эти взаимодействия предполагают что у всех объектов в пункте Collision Enabled стоит Collision Enabled, так что они настроены на полное столкновение со всем. Если же коллизия выключена, это будет аналогично установке Ignore во всех пунктах Collision Responses.

    В следующем разделе будут даны настройки для объяснения происходящего:


    Здесь шар - PhysicsBody, a стена - WorldDynamic, и изменяя их настройки столкновения мы можем получить различные поведения.

    Столкновение

    Установив у обоих объектов в настройках коллизии блокировать друг друга, мы получим хороший пример взаимодействия объектов:


    Настройки коллизий шара Настройки коллизий Стенки


    В этом случае шар это PhysicsBody и он настроен на блокировку WorldDynamic (которой является стена). Стена это WorldDynamic и она установлена на блокировку PhysicsBody (которым является шар).

    В этом случае шар и стена просто столкнутся; никаких дополнительных уведомлений о столкновении не будет.

    Столкновение и генерирование Hit Event

    Просто столкновение полезно и в целом это достаточный минимум для физических взаимодействий, но если вы хотите чтобы возникало событие столкновения для срабатывания блюпринта или участка кода:


    Настройка коллизий шара Настройка коллизий стены


    Как и в предыдущем примере, шар это PhysicsBody и он настроен на блокировку WorldDynamic (которой является стена). Однако у него также включен Simulation Generates Hit Event, так что он будет сам вызывать событие каждый раз, когда сталкивается с чем-нибудь. Стена это WorldDynamic и она настроена на блокировку PhysicsBody (которым является шар). Поскольку у стены не включен Simulation Generates Hit Event, она не станет генерировать событие столкновения.

    С установкой у шара Simulation Generates Hit Event, он будет знать когда столкнется с чем-либо. В результате выдаются события в блюпринте шара, такие как RecieveHit и OnComponentHit. А вот у стены, если произойдет столкновение, никакого события не возникнет, так как она себе не сообщит об этом.

    Пересечение и игнорирование (Overlap и Ignore)

    Для всех намерений и целей, Overlap и Ignore работают точно также, как если Generate Overlap Events отключен. В этом случае шар настраивается на пересечение или игнорирование стены:


    Настройки Коллизий Шара Настройки Коллизий Стены


    Здесь шар настроен на пересечение с объектами WorldDynamic (как наша стена), но у него не включен Generate Overlap Events. Таким образом настроенный шар ни с чем не столкнется и не пересечется, то есть проигнорирует нашу стену. Стена является WorldDynamic и настроена на блокировку объектов PhysicsBody (которым является шар). Как указано выше, оба объекта должны быть настроены на блокировку соответствующих типов объектов, иначе столкновения не произойдет.

    Настройки Коллизий Шара Настройки Коллизий Стены


    Здесь шар настроен на игнорирование WorldDynamic ( таких как наша стена), и он пройдет сквозь стену. Стена является WorldDynamic и настроена на блокировку PhysicsBody (которым является наш шар). Как показано выше, оба объекта должны быть настроены на блокировку типов друг друга, иначе столкновения не произойдет.

    Пересечение и генерирование события пересечения (Overlap Event)

    В отличие от столкновений, которые срабатывают каждый кадр, события пересечения срабатывают в начале (RecieveBeginOverlap) и в конце (RecieveEndOverlap) пересечения.

    Для того, чтобы случилось пересечение, нужно чтобы у обоих Actor'ов был включен пункт Generate Overlap Events. Это сделано для производительности.

    Систему процедурно разрушаемой машины можно бесплатно скачать с Gumroad и импортировать в Unreal Engine 4.

    Dries Deryckere рассказал о том, как ему удалось создать замечательную процедурную систему разрушения машин. Трудно представить что студенты могут делать с новейшими технологиями в наши дни. Dries Deryckere совсем недавно опубликовал свой проект (который вы можете скачать абсолютно бесплатно или пожертвовать несколько долларов на Gumroad), который содержит в себе сцену разрушаемых автомобилей с мощными скриптами. Dries рассказал, как он решился сделать эту систему и какие проблемы встречались при создании проекта.

    Вступление

    Создание процедурно разрушаемой машины в UE4

    Создание процедурно разрушаемой машины

    Данный проект создавался для научной работы по окончанию учебного года в DAE. Я изучил различные пути процедурной деформации и наконец сел за создание этой системы. Система работает по такому принципу:

    Unreal Engine 4 поддерживает систему skeletal меша, которая позволяет пользователю импортировать Fbx файлы с риггом. Этим объектам можно придать физику и симуляцию ragdoll. Я создал меш и добавил на него сильный damping. Модели не имеют анимаций, кроме естественного толкания объекта другим объектом с коллайдером.

    Проблема заключалась в том, что объект не падал на пол и не имел другой физики, кроме деформации. Я придумал такой выход из ситуации, который позволил бы симулировать физику в local space. Я достиг этого результата благодаря созданию статичного меша, так чтобы объект вел себя как будто мы установили "simulate physics".

    Создание процедурно разрушаемой машины в UE4

    Потом, используя Blueprint, я поставил конструкцию skeletal меша поверх статичного меша. Оба меша имеют коллайдеры, которые взаимодействуют с другими физическими объектами, но коллайдеры не действуют друг на друга.

    Если говорить кратко, то вот мой совет в двух словах: Skeletalmesh with high damping > teleport to > simulated staticmesh.

    Создание процедурно разрушаемой машины в UE4

    Проблемы первой версии моего проекта:

    1. Машины не могут взаимодействовать друг с другом (скоро будет исправлено).

    2. Деформация непредсказуема и объекты должны быть очень тяжелыми, чтобы было видно реальное воздействие.

    3. Некоторые объекты отсутствуют на машине.

    4. Требуется сильное железо для 6+ машин на сцене.

    5. Систему приходится переделывать под каждую новую машину практически с нуля. Нет возможности нажать на кнопку "Generate" и сгенерировать под нужный пользователю меш.

    6. Все элементы проекта затекстурированы в Substance Painter. Эффект деформации в Normal карте создается благодаря динамическому материалу, который регистрирует попадание.

    Создание процедурно разрушаемой машины в UE4

    Недавно решился я поиграть в старого доброго ждалкера в новом исполнении. Тайные тропы 2. Скачал, поставил, начал играть. С первых же минут игры заметил, что герой при ходьбе и беге наклоняется в стороны и шатается как алкаш идущий домой на автопилоте. Жутко вымораживает такая функция в играх.

    Авторы игрушки переборщили с реалистичностью. Ибо когда человек идет он воспринимает картинку немного не так, как они представляют это себе. В общем было решено эту супермегахрень отключить.

    Оказалось сделать это не так уж и сложно.

    Нужно отредактировать файл S.T.A.L.K.E.R.gamedataconfigmisceffectors.ltx блокнотом.
    Найти строки:

    run_amplitude = 0
    walk_amplitude = 0
    limp_amplitude = 0

    Установить все параметры на нули. И тогда покачивания не будет.

    ПС. Нашел для себя в этом файле много чего интересного :)

    Комментарии

    Спасибо за информацию, интересный файл, буду разбираться!

    Сборка удачная,нравится мне,хочу пройти но вот минус

    Как убрать раскачивание в сталкере

    Автор Артём Цехановский задал вопрос в разделе Прочие

    Как убрать качание камеры при ходьбе и беге в Сталкере? и получил лучший ответ

    Ответ от Ѐоман Кузьменков[гуру]
    Чтобы убрать раскачивание камеры при ходьбе, надо в файле: user.ltx (путь: C:\Documents and Settings\All Users\Документы\stalker-shoc) найти по алфавиту строку: cam_inert и выставить значение на 0. По умолчанию там стоит – 0.7. В интернете лень покапаться?



    S.T.A.L.K.E.R.: Shadow of Chernobyl

    Находим файл user.ltx (открывается Блокнотом) и правим строки:
    cam_inert 0.
    cam_slide_inert 0.25 (так в оригинале по умолчанию)

    если Win7, то user находим по пути: — C:UsersPublicDocumentsSTALKER-SHOC
    если Win XP, то user: — Мой компьютерОбщие документыSTALKER-SHOC

    Находим файл user.ltx (открывается Блокнотом) и правим строки:
    cam_inert 0.
    cam_slide_inert 0.25 (так в оригинале по умолчанию)

    если Win7, то user находим по пути: — C:UsersPublicDocumentsSTALKER-SHOC
    если Win XP, то user: — Мой компьютерОбщие документыSTALKER-SHOC

    Находим файл user.ltx (открывается Блокнотом) и правим строки:
    cam_inert 0.
    cam_slide_inert 0.25 (так в оригинале по умолчанию)

    если Win7, то user находим по пути: — C:UsersPublicDocumentsSTALKER-SHOC
    если Win XP, то user: — Мой компьютерОбщие документыSTALKER-SHOC

    Находим файл user.ltx (открывается Блокнотом) и правим строки:
    cam_inert 0.
    cam_slide_inert 0.25 (так в оригинале по умолчанию)

    если Win7, то user находим по пути: — C:UsersPublicDocumentsSTALKER-SHOC
    если Win XP, то user: — Мой компьютерОбщие документыSTALKER-SHOC

    Как понять правим? Что мне с этой строкой делать? Напишите кто нибудь, будьте так любезны.

    Блин, да это понятно что значение надо выставить, второй вопрос какое ставить?

    Каждую осень новейшие функции Google Camera дебютируют на флагманских устройствах Pixel, а затем переходят на более старые смартфоны. Также случилось и с Google Camera 8.4, которая до недавнего времени была эксклюзивом для смартфонов Pixel. И вот благодаря разработчику с ником BSG новая версия приложения получит более широкое распространение — она приходит на устройства на базе Android.

    Вышел порт Google Camera 8.4 для многих Android-устройств. Как установить – фото 1

    Умелец портировал программу с Android 12, а затем адаптировал ее для других смартфонов. Мод протестирован и успешно работает на таких устройствах: OnePlus 3T, OnePlus 5T, OnePlus 6, OnePlus 7 Pro, OnePlus 7T Pro, OnePlus 8 Pro, OnePlus 8T, Samsung S20 Ultra, Poco X2, Poco X3, Redmi Note 7 Pro, Asus Zenfone, Poco X3 Pro, OnePlus 9, OnePlus 9R, OnePlus 9RT, OnePlus 9 Pro, Redmi Note 10, Redmi Note 10 Pro и другие.

    Новый порт доступен для большого количества Android - смартфонов. Однако есть некоторые ограничения, но основное из них связано с необходимостью наличия поддержки Camera2 API. Также важно убедиться, что ваш смартфон работает под управлением Android 10 и более новой версии операционной системы.

    Ключевые функции GCAM 8.4 и журнал изменений:

    Вышел порт Google Camera 8.4 для многих Android-устройств. Как установить – фото 2

    Новую версию Google Camera можно опробовать уже сейчас. Сделать это можно, следуя инструкции:

    • проверьте, что смартфон работает под управлением Android 10 или новее и есть поддержка Camera2 API;
    • загрузите файл APK по этой ссылке;
    • в настройках разрешите установку приложений из неизвестных источников;
    • откройте в браузере раздел «Скачанные файлы и установите приложение;
    • запустите Google Camera и предоставьте разрешения.

    Если вы выполнили это, делитесь своим опытом и впечатлениями с другими и не забудьте указать свою модель смартфона. Напоминаем, что у нас нет возможности протестировать работу GCAM 8.4 на всех устройствах.

    Читайте также: