• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Как восстановить состояние ragdoll врага после загрузки уровня?

  • Автор темы Автор темы manking
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
8 Ноя 2022
Сообщения
28
Реакции
0
Добрый день!

Как восстановить состояние анимации или ragdoil врага который уже умер?

Загружаю уровень и выполняю spawn ACharacter, а затем выставляю у него SetActorLocation чтобы переместить его на последнее место где он бегал или умер. Но враг в начале стоит на ногах и только потом у него включается SetAllBodiesSimulatePhysics.
А можно ли как то задать ему позиции всех его костей? Например используя UPoseableMeshComponent?

Пробую сделать Cast из USkeletalMeshComponent, но возвращается пустой указатель.

Код:
Expand Collapse Copy
UPoseableMeshComponent * mesh = Cast<UPoseableMeshComponent>(GetMesh());
 
Добрый день!

Как восстановить состояние анимации или ragdoil врага который уже умер?

Загружаю уровень и выполняю spawn ACharacter, а затем выставляю у него SetActorLocation чтобы переместить его на последнее место где он бегал или умер. Но враг в начале стоит на ногах и только потом у него включается SetAllBodiesSimulatePhysics.
А можно ли как то задать ему позиции всех его костей? Например используя UPoseableMeshComponent?

Пробую сделать Cast из USkeletalMeshComponent, но возвращается пустой указатель.

Код:
Expand Collapse Copy
UPoseableMeshComponent * mesh = Cast<UPoseableMeshComponent>(GetMesh());

Чтобы восстановить состояние ragdoll, можно использовать функцию SetAllBodiesPhysicsBlendWeight или SetAllBodiesSimulatePhysics в зависимости от того, как был настроен персонаж на момент смерти.

Чтобы задать позиции всех костей, можно использовать функцию SetBoneTransforms из UPoseableMeshComponent, передав в нее массив матриц трансформации для каждой кости. Матрицы трансформации могут быть получены из сохранения предыдущего состояния персонажа перед его смертью. Или можно попытаться восстановить позицию костей на основе информации о скелете персонажа и его текущих координатах. Для этого можно использовать функцию GetBoneTransforms из USkeletalMeshComponent.
 
Назад
Сверху Снизу