Top.Mail.Ru
Ответы

Как сделать так, чтобы персонаж в юнити ( unity ) мог предотвращать свое падение?

<Вопросы новичка>

Я сделал так:

Сначала создал пустой объект

Поместил в него персонажа, скачанного с миксамо и character controller, ещё прикрепил камеру к голове перса следов её дочерним объектом.

Сделал из него регдол т.е. тряпичную куклу и скрепил конечности джоинтами (это тело я назвал физическим).

В дочерний к "физическому телу"↑↑↑ я поместил такое же тело, но оно анимировано, т.е. не имеет физики и вдобавок полностью прозрачно ( его я назвал астральным).

Дальше я сделал скрипты для управления персом: character controller всегда находится на той же высоте что и "физическое тело" ( точнее его таз); расстояние между контроллером и тазом "физ. тела" не превышает больше 1, т.к. установлен кап; когда "астральное тело" делает анимацию, например ходьбы, "физ. тело" старается повторить за ним ( можно сказать что "астральное тело" это то, какое движение мы хотим сделать, а воплощаем задуманное через "физ. тело") вдохновился я этим благодаря данному видео: https://youtu.be/4pX7Cpu5XhQ?feature=shared .

А теперь проблема вотв чём: персонаж спотыкается и падает. Нужно научить его предотвращать падение самому, а не подвесить его голову в воздухе например. А также научить вставать, если упал.

Господа профессионалы, жду вашего совета! Заранее спасибо!

По дате
По Рейтингу
Аватар пользователя
Новичок

Предотвращение падений и вставание персонажа в Unity
Интересный подход к управлению персонажем! Идея с астральным и физическим телом имеет потенциал, но действительно, нужно решить проблему с падениями. Вот несколько советов, которые могут помочь:
1. Улучшение баланса физического тела:
Центр масс: Убедитесь, что центр масс физического тела находится в правильном месте, обычно ближе к земле, в районе таза. Это повысит устойчивость персонажа.
Физические материалы: Поэкспериментируйте с физическими материалами коллайдеров персонажа. Увеличение трения с поверхностью может уменьшить скольжение и падения.
Joint Limits: Настройте ограничения суставов (Joint Limits) так, чтобы предотвратить неестественные движения, которые могут привести к потере равновесия.
2. Реакция на потерю равновесия:
Анимации восстановления: Создайте анимации, которые помогут персонажу восстановить равновесие, например, вытягивание рук в стороны или шаг назад.
Raycast или SphereCast: Используйте Raycast или SphereCast вниз от персонажа, чтобы определить, находится ли он близко к потере равновесия. Если расстояние до земли слишком большое, активируйте анимацию восстановления.
Inverse Kinematics (IK): IK может помочь динамически корректировать положение ног персонажа, чтобы он мог сохранять равновесие на неровной поверхности.
3. Вставание после падения:
Анимация вставания: Создайте анимацию, показывающую, как персонаж поднимается с земли.
Trigger collider: Добавьте trigger collider к персонажу, который активируется, когда он падает. При активации, воспроизведите анимацию вставания и верните персонажа в вертикальное положение.
Дополнительные советы:
PhysX: Ознакомьтесь с документацией PhysX, чтобы лучше понять физику в Unity и возможности ее настройки.
Ragdoll Tools: Существуют различные ассеты и инструменты в Asset Store, которые упрощают работу с Ragdoll, например, Final IK.
Поиск по форумам и сообществам: Unity имеет большое и активное сообщество, где можно найти ответы на вопросы и вдохновение для решения проблем.
Не бойтесь экспериментировать и искать свой собственный подход к управлению персонажем!

Аватар пользователя
Мудрец

С# и гитхаб в помощь

Аватар пользователя
Профи

Ai