Симуляция груди в Unreal engine : то о чем вы не просили, но явно заслужили ,часть 2 )
Разберем как создать физику грудей на персонаже ( и не только)
С помощью Physical Assets and Physical Animation
Первую часть с более простым методом можно прочитать тут
мой тг канал про анимацию итд
Правой кнопкой мыши по Skeletal Mesh - Physical Assets -Create and Assign
Physics Asset— это набор физических тел (коллайдеров) и соединений (constraints) для скелета.
Он нужен, чтобы:
- делать ragdoll (персонаж падает и взаимодействует с физикой),
- работать с RigidBody / физической симуляцией костей,
- настраивать коллизии частей тела/аксессуаров (чтобы, например, хвост/волосы не проходили сквозь тело).
Настройки +\- оставляю дефолтными , меня min bone Size на 10 и ставлю галочку Create Body For all Bones
Настраиваем размеры коллайдеров - под размеры частей тела ( плюс , минус)
Теперь перейдем к настройки Constraint нужных нам частей тела
Выделим коллайдер груди и увидим констрейнт
Нажмем на него
Тут ряд важных настроек
Linear Limits — ограничивают линейное перемещение кости/телае по осям X/Y/Z:
Angular Limits — ограничивают повороты
Важный момент обычно Linear Limits оставляем locked - однако для грудей - поставим limited ( и повторим тоже самое для констрейна другой груди)
Теперь протестируем как отрабатывает физику - выделим все коллайдеры - нажмем правой кнопкой мыши Physics Type kinematic ( что бы выключить симуляцию там где нам не нужно)
После этого выделим коллайдеры грудей и поставим там Physics Type Simulated
И нажмем вот эту кнопку
Если наш что то не устраивает стоит - - ограничить лимиты по движения- особенно по транслейтам
Переходим в Blueprint персонажа и добавляем ему Physical Animation
Physical Animation — это режим, где кости физического тела (Physics Asset) пытаются следовать анимации как цели, но при этом остаются физическими (с массой, инерцией, коллизиями).- короче говоря блендинг анимации и физики
ВАЖНО : у меша ставим Collision Enable Query and physics - а то у нас просто не будет отрабатывать физика
Создаем вот такую связку нод
Set Skeletal mesh Component — говорим компоненту Physical Animation, каким Skeletal Mesh он управляет
Make Physical Animation Data ( тут будем и настраивать нашу грудь))) создаем настройки на сколько физика влияет на анимаци
Apply Physical Animation Settings Below — применяем эти настройки к выбранной кости и всем ниже по иерархии
В bone name - нужно написать нужную нам кость
Include Self - значит - включая себя
Set All Bodies Below Simulate Physics — включаешь симуляцию физики для кости и всех ниже по иерархии (иначе Physical Animation не будет работать).
Отдельно параметры Make Physical Animation Data
Is Local Simulation — симуляция в локальном пространстве (обычно стабильнее для персонажа).
Orientation Strength — насколько сильно кость держит ориентацию как в анимации (выше = жестче, меньше “болтанка”).
Angular Velocity Strength — насколько сильно кость стремится к угловой скорости анимации (помогает “подхватывать” быстрые повороты, меньше запаздывание).
Position Strength — насколько сильно кость держит позицию (выше = меньше отлетает от анимации).
Velocity Strength — насколько сильно кость стремится к линейной скорости анимации (плавнее следование при резких движениях).
я обычно работаю с этими 4 параметрами
Bone name - вывожу в отдельную переменную и туда прописываю свою кость
Такс вот как выглядит наша первичная настройка) как я уже говорил регулировать мы можем лимиты движения в physical asset и настройки в Physical Animation
Теперь я тоже самое повторю для 2 груди
И для хвоста и хвоста и ягодиц
Вот такая связка нод вышла