Войти
Unreal EngineФорумОбщее

UE4. Реализация физики шланга

Advanced: Тема повышенной сложности или важная.

#0
5:58, 18 июня 2018

Всем привет.

Необходимо реализовать шланг. Задача реализации физического поведения шланга (кабеля, каната) глобальная, но начнем по порядку с самого простого.

Как избавиться от дрожания шланга при его перемещении по уровню? Шланг должен адекватно взаимодействовать с коллизией, не растягиваться, не игнорировать поверхности. (вариант со стандартным кабелем отпадает).

У нас имеется мешь, длинной 25 метров. У нее есть скелет на 50 костей.
Hose | UE4. Реализация физики шланга

В физ ассете кости имеют параметр Default
1 | UE4. Реализация физики шланга

Констрейнты
2 | UE4. Реализация физики шланга

В итоге если игрок берет шланг за один из концов, у кости в руке отрубается физика. Игрок тянет за эту кость и шланг перемещается. Но по непонятной причине кости начинают хаотично "мандражировать".

Как решить эту проблему? Заранее респект за помощь:)


#1
7:09, 18 июня 2018

Other11
> В итоге если игрок берет шланг за один из концов, у кости в руке отрубается
> физика. Игрок тянет за эту кость и шланг перемещается. Но по непонятной причине
> кости начинают хаотично "мандражировать".
вот это удивление, надо же. как ты думаешь, почему в играх не бывает нормальных верёвок или шлангов?

задача в принципе решаема до определённой степени, но далеко не так просто, как хотелось бы автору и далеко не без своих ограничений. я сомневаюсь, что стандартный солвер такое потянет, поэтому начать можно с простой constraint-based dynamics, потом медленно переходить к иерархическим сеткам, multigrid solver'ам, потом обнаружить, что self-collision'ы всё равно не работают и если на этом этапе всё ещё не погаснет запал, то искать, как это обходить.

#2
7:58, 18 июня 2018

Suslik
> вот это удивление, надо же. как ты думаешь, почему в играх не бывает нормальных
> верёвок или шлангов?
> задача в принципе решаема до определённой степени, но далеко не так просто, как
> хотелось бы автору и далеко не без своих ограничений. я сомневаюсь, что
> стандартный солвер такое потянет, поэтому начать можно с простой
> constraint-based dynamics, потом медленно переходить к иерархическим сеткам,
> multigrid solver'ам, потом обнаружить, что self-collision'ы всё равно не
> работают и если на этом этапе всё ещё не погаснет запал, то искать, как это
> обходить.
Ок, спасибо за подсказку, будем копать в солверы.

Но это не самая важная задача на текущий момент.
Возможно поможете по поводу следующей проблемы с применением констрейнов.

Стоит задача приаттачить крайние кости шланга к сторонним объектам на карте. Как пытался решить:
Все в одном блупринте
- Добавил 1 мешь и привязал к сокету крайней кости.
- Добавил констрейн и еще 2 мешь. Связал 1 и 2й меши констрейном.
По идее если атачить 2 мешь к любому объекту на карте и перемещать этот объекта, то за ним должен последовать 1 мешь и кость, а следом и весь шланг, т.к. весь скелет лежит на земле с включенной физикой. Однако на практике 2 мешь следует за объектом, а все остальное остается неподвижным. Если отъаттачить 2 мешь от объекта, то он вернется к 1 мешу т.к. работает констрейн. В итоге так и не получилось заставить двигаться кость за привязанным констрейном.

Вопрос, почему скелет не двигается за объектом, хотя он связан констрейном и на костях включена физика?

#3
8:47, 18 июня 2018

Other11
> реализовать шланг
Cable Component не пробовал?

#4
9:01, 18 июня 2018

Sh.Tac.
Пробовал. Есть ряд минусов, которые не удалось решить кабель компонентом
1. Само физическое поведение контролируется еще хуже, чем при реализации скелетом. Тело компонента иногда цепляется за объекты карты и на меше компонента возникают артефакты.
2. Не подтягивается противоположный конец шланга и приаттаченый к концу физ.объект на карте - происходит растяжение компонента.
3. Нет фиксации длинны компонента. При достижении максимума компонент также растягивается.

Такие дела.

#5
16:41, 18 июня 2018

В UE4 физ. движок PhysX, можно попробовать их стандартные рекомендации для джойнтов применить

https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/… -are-unstable
http://www.codercorner.com/blog/?p=1281
http://www.codercorner.com/blog/?p=1291

Unreal EngineФорумОбщее

Тема в архиве.