我正在尝试使用虚幻引擎5在C++中旋转网格的骨骼。
我已经尝试使用USkeletalMeshComponent和UAnimInstance来获取骨骼变换并更新动画,但我遇到了类似“USkeletalMeshComponent没有成员SetBoneTransform”的错误。我正在寻求帮助来解决这个问题。
USkeletalMeshComponent* mesh = GetMesh();
UAnimInstance* animInstance = mesh->GetAnimInstance();
FName boneName = "head";
int32 boneIndex = mesh->GetBoneIndex(boneName);
while (true)
{
FQuat rotation = FQuat::MakeFromEuler(FVector(0.f, 0.f, 45.f));
FVector location(100.f, 0.f, 0.f); // example location
FVector scale(1.f, 1.f, 1.f); // example scale
FTransform newTransform(rotation, location, scale);
FTransform boneTransform = mesh->GetBoneTransform(boneIndex, FTransform::Identity);
boneTransform = newTransform;
mesh->SetBoneTransform(boneIndex, boneTransform, EBoneSpaces::WorldSpace);
animInstance->UpdateAnimation(0.f, false);
}
}
1条答案
按热度按时间iibxawm41#
事实上,SkeletalMeshComponent没有直接访问和转换骨骼的方法,我遇到了同样的问题,我使用PoseableMesh解决了这个问题:https://docs.unrealengine.com/5.1/en-US/BlueprintAPI/Components/PoseableMesh/