Как сделать «пьяную физику» на Unreal Engine 4
Всем привет! В этой статье я поделюсь опытом использования “Physical Animation Component”, с помощью которого я добился эффекта “пьяной физики” в моей весёлой игре про пьяные драки "Drunken Fist 🍺👊 Totally Accurate Beat 'em up"
Physical Animation - это метод симуляции покадровой скелетной анимации с помощью физики. Идея заключается в том, что физический движок пытается повторить положение ключевых точек из покадровой анимации, используя только физические силы.
Этот метод позволяет симулировать физику, во время проигрывания любых анимаций. Например, если ваш персонаж ударит врага, то рука героя не пролетит сквозь голову супостата, а остановится и согнется.
Этот приём также полезен для создания эффекта "тряпичной куклы"
Чтобы применить этот эффект к скелетным анимациям, вам нужно добавить компонент “Physical Animation Component” в блупринт вашего персонажа.
Затем нужно добавить компонент “Physical Animation” на Event Graph, и, в нужный вам момент (например, при старте игры), поочередно вызвать ноды:
- “Set Skeletal Mesh Component”, чтобы указать к какому Skeletal Mesh нужно применить физическую анимацию.
- “Apply Physical Animation Settings Below”, чтобы применить физическую анимацию ко всем костям, ниже указанной в иерархии скелета. Для настройки физических сил, вы можете использовать ноду “Make Physical Animation Data” или взять уже готовый профиль. Чем выше значения сил, тем точнее физика будет стараться повторить анимацию, и наоборот. Поиграйте со значениями, чтобы добиться “пьяного эффекта”.
- “Set All Bodies Bellow Simulate Physics”, чтобы заставить Mesh симулировать физику ниже указанной кости в иерархии скелета. Без этой ноды, ваша физическая анимация не заработает. Убедитесь, что Skeletal Mesh имеет привязанный к нему Physics Asset в свойствах.
Здесь есть один важный момент, который я бы хотел отметить. Если вы хотите, чтобы ваш персонаж мог ходить и оставался в капсуле во время движения, у вас есть 2 способа:
- Вы применяете физическую анимацию и симулируете физику на всех костях КРОМЕ кости таза (Pelvis). Таз не будет участвовать в симуляции и ваш персонаж будет всегда находится в капсуле (Capsule Component). Это похоже на то, если бы вы насадили таз персонажа на палку, и двигали бы им по сцене, при этом все остальные части скелета симулируют физику.
- Вы применяете физическую анимацию и симулируете физику на всех костях В ТОМ ЧИСЛЕ и на кости таза (Pelvis), но снимаете галочку “Is Local Simulation” и задаете довольно большую Position Strength. Это будет означать, что персонаж, фактически не привязан к капсуле, но физическая сила будет пытаться удерживать его в ней. Этот способ не подойдет вам, если вы хотите задать слишком низкую силу для придания эффекта “тряпичной куклы”, она просто не удержит таз персонажа внутри капсулы.
Больше информации по настройке вашего персонажа с помощью “Physical Animation” вы можете почерпнуть из стрима разработчиков Unreal Engine
Надеюсь, эта статья станет для кого-то отправной точкой в поиске интересных идей для игр, с использованием "Physical Animation"
Раз уж статья в геймдеве, мб стоит убрать "Эффект "тряпичной куклы" " и заменить на устоявшийся в индустрии термин, без всяких никому не нужных локализаций?
Раз уж статья в геймдеве, то значит вместо наследования должен быть inheritance, вместо языка программирования programming language? Мб сразу ещё и на английском давайте писать, устоявшийся в индустрии язык же...
Пишите свои статьи так как вам хочется, а другие пусть пишут как им хочется.
totally accurate battle simulator вы делали или просто такая "маркетинговая тактика"?
маркетинговая тактика )
Норм дед