Unreal Engine 4
http://uengine.ru/forum/

Столкновения для всех компонентов
http://uengine.ru/forum/viewtopic.php?f=3&t=34642
Страница 1 из 1

Автор:  Alexander2002 [ 11 июн 2019, 15:10 ]
Заголовок сообщения:  Столкновения для всех компонентов

Здравствуйте. Как сделать столкновения с объектами для всех компонентов Pawn, а не только для Root компонент. Если я добавляю компонент в Pawn (вручную или в игре с помощью Add static mesh component), то в случае столкновения с каким-либо объектом (стена, к примеру) в мире pawn реагирует лишь тогда, когда столкнётся корневой компонент, а вся остальная часть pawn просто проходит сквозь стену. Как сделать, чтобы столкновение происходило и с добавленными компонентами, то-есть как только компонент доходит до стены активировалось столкновение и pawn не проходил сквозь стену? Вариант с использованием коллизии (box, sphere или capsule) в качестве root component не подходит, так как форма pawn со всеми добавленными компонентами может быть любой (неправильной, то-есть подгонять root коллизию не получиться).

Уже месяц пробую различные варианты настроек - всё равно большая часть Pawn оказывается в стене при столкновении. Подскажите пожалуйста как это решить.

Автор:  Alexander2002 [ 11 июн 2019, 15:59 ]
Заголовок сообщения: 

Вспомнил! Я находил один способ - включить физику для объектов с которыми буду сталкиваться. Но тогда как сделать статичные объекты (стены, к примеру, ведь если включить физику, то объекты можно будет сдвинуть и даже если ставить гигантскую массу, то они всё равно будут отлетать в сторону при столкновении. Включать же физику в Pawn для компонентов бесполезно, так как тогда персонаж разлетается на куски (происходит столкновение между компонентами, они приобретаю гигантский импульс и всё разлетается в разные стороны), оставляя лишь root component вращающийся со скоростью в сотни оборотов в минуту (он иногда тоже исчезает вместе со всем pawn - игра вылетает с ошибкой). В общем этот вариант оказался тупиковым - он хоть и даёт столкновение со стенами, но не может дать правильное столкновение с многокомпонентными pawn.

Автор:  Agny [ 12 июн 2019, 17:12 ]
Заголовок сообщения: 

Можно использовать sphere trace. Но будет работать только в одном направлении. Отталкивать будет только оттуда куда он направлен.

Автор:  Alexander2002 [ 12 июн 2019, 18:38 ]
Заголовок сообщения: 

Буду экспериментировать, спасибо. А ещё такой вопрос - нельзя ли произвольно включить заложенную в unreal engine 4 систему реакции на столкновения или (лучше первый вариант) отключить и прописать свою? То-есть по данным о координатах столкновения и координатах root componenta получить координаты (или вектор, не знаю как точно обрабатываются столкновения) того места куда пришёлся бы удар, если бы он пришёлся на root component, чтобы unreal отреагировал на это как на столкновение? Как-то сумбурно объясняю... Почему у меня не реагирует кнопка загрузить картинку на сайт? По изображению всё было-бы понятнее... Напишу по другому. В качестве root component возьмём сферу радиуса 0.5. Через sphere trace и out hit получаем координаты столкновения. Рисуем линию от центра сферы к этой точке и, зная радиус сферы, находим точку на сфере, лежащую на этой линии и теоретически являющейся проекцией столкновения составного объекта на root component, которую назовём точкой X (то-есть, как я понимаю, если бы столкновение обрабатывалось для всех объектов, то это дало бы тот же результат, как если бы столкновение произошло в точке X). Так вот, если команда в движке, которая инициализирует логику столкновений по точке объекта? То есть можно ли заставить программу обработки столкновений подумать, что в точке X действительно произошёл удар и на это нужно среагировать (остановиться, если это ходячий персонаж или срикошетить (не знаю, как правильно назвать то, что делает при столкновении со стеной по умолчанию FlyingPawn))? Вроде подробно объяснил вопрос.

Автор:  Alexander2002 [ 12 июн 2019, 19:08 ]
Заголовок сообщения: 

И ещё желательно передать в анализатор столкновений (а есть ли подробный урок/обзор как работает физический движок unreal, особенно, как он рассчитывает результат столкновения движущихся объектов? Если есть, то можно ссылку.) значение импульса объекта, чтобы персонаж, к примеру, не отскакивал от пули, но отлетал от грузовика (и грузовик в свою очередь не отлетал от персонажа, а просто продолжал движение по программе, возможно таща персонажа перед собой).

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/