Есть исходник, который портирую на другую игру. Почти всё сделал, но не могу побороть изменение аима с кости на хитбокс!!!
Кости в этой игре у каждого персонажа разные и от этого нет общей кости в голову или тело!
Есть вариант переписать аим на хитбокс персонажа? Как не пробовал, не смог нормально сделать это. Прошу помощи в знающих!
if (ClosestEnemy && LocalPawn)
{
auto CameraLocation = ACameraCache::GetLocation();
if (HitBoxTarget == FVector() || CameraLocation == FVector()) break;
auto AimAngle = Engine::AimAtVector(HitBoxTarget, CameraLocation);
if (Settings::TargetingSpeed > 0)
{
auto CurrentAngles = read<FRotator>(LocalPlayerController->GetReference() + 0x8c);
if (CurrentAngles != FRotator() && WorldInfo != nullptr)
{
AimAngle = UObject::RInterpTo(CurrentAngles, AimAngle,
WorldInfo->GetDeltaSeconds(), Settings::TargetingSpeed, false);
}
}
if (AimAngle != FRotator())
write<FRotator>(LocalPlayerController->GetReference() + 0x8c, AimAngle);
}
auto Mesh = ClosestEnemy->GetMesh();
if (Mesh == nullptr) break;
if (!strcmp(SelectedHitbox, "HEAD"))
HitBoxTarget = Mesh->GetBoneLocation(Player::Bones::C_Head_BN);
else if (!strcmp(SelectedHitbox, "NECK"))
HitBoxTarget = Mesh->GetBoneLocation(Player::Bones::C_Neck01_BN);
else if (!strcmp(SelectedHitbox, "CHEST"))
HitBoxTarget = Mesh->GetBoneLocation(Player::Bones::C_Pelvis_BN);
auto RootWorldLocation = CurMesh->GetBoneLocation(Player::Bones::Root_bn),
HeadWorldLocation = CurMesh->GetBoneLocation(Player::Bones::C_Head_BN);
//________________________________________________________________________
if (RootWorldLocation == FVector() || HeadWorldLocation == FVector()) continue;
auto RootScreenLocation = Engine::ProjectWorldToScreen(RootWorldLocation),
HeadScreenLocation = Engine::ProjectWorldToScreen(HeadWorldLocation);
if (RootScreenLocation == FVector() || HeadScreenLocation == FVector()) continue;