clean up redundant hand animation code
This commit is contained in:
@@ -40,31 +40,6 @@ USGVirtualHandAnimInstance::USGVirtualHandAnimInstance(const FObjectInitializer&
|
||||
{
|
||||
}
|
||||
|
||||
void USGVirtualHandAnimInstance::NativeInitializeAnimation()
|
||||
{
|
||||
Super::NativeInitializeAnimation();
|
||||
}
|
||||
|
||||
void USGVirtualHandAnimInstance::NativeUpdateAnimation(const float DeltaSeconds)
|
||||
{
|
||||
Super::NativeUpdateAnimation(DeltaSeconds);
|
||||
}
|
||||
|
||||
void USGVirtualHandAnimInstance::NativePostEvaluateAnimation()
|
||||
{
|
||||
Super::NativePostEvaluateAnimation();
|
||||
}
|
||||
|
||||
void USGVirtualHandAnimInstance::NativeUninitializeAnimation()
|
||||
{
|
||||
Super::NativeUninitializeAnimation();
|
||||
}
|
||||
|
||||
void USGVirtualHandAnimInstance::NativeBeginPlay()
|
||||
{
|
||||
Super::NativeBeginPlay();
|
||||
}
|
||||
|
||||
FSGVirtualHandAnimInstanceProxy* USGVirtualHandAnimInstance::CreateAnimInstanceProxy()
|
||||
{
|
||||
return new FSGVirtualHandAnimInstanceProxy();
|
||||
|
||||
@@ -56,26 +56,6 @@ FSGVirtualHandAnimInstanceProxy::FSGVirtualHandAnimInstanceProxy(UAnimInstance*
|
||||
{
|
||||
}
|
||||
|
||||
void FSGVirtualHandAnimInstanceProxy::Initialize(UAnimInstance* InAnimInstance)
|
||||
{
|
||||
FAnimInstanceProxy::Initialize(InAnimInstance);
|
||||
}
|
||||
|
||||
void FSGVirtualHandAnimInstanceProxy::Uninitialize(UAnimInstance* InAnimInstance)
|
||||
{
|
||||
FAnimInstanceProxy::Uninitialize(InAnimInstance);
|
||||
}
|
||||
|
||||
void FSGVirtualHandAnimInstanceProxy::PreUpdate(UAnimInstance* InAnimInstance, const float DeltaSeconds)
|
||||
{
|
||||
FAnimInstanceProxy::PreUpdate(InAnimInstance, DeltaSeconds);
|
||||
}
|
||||
|
||||
void FSGVirtualHandAnimInstanceProxy::Update(const float DeltaSeconds)
|
||||
{
|
||||
FAnimInstanceProxy::Update(DeltaSeconds);
|
||||
}
|
||||
|
||||
void FSGVirtualHandAnimInstanceProxy::PreEvaluateAnimation(UAnimInstance* InAnimInstance)
|
||||
{
|
||||
FAnimInstanceProxy::PreEvaluateAnimation(InAnimInstance);
|
||||
@@ -97,25 +77,25 @@ void FSGVirtualHandAnimInstanceProxy::PreEvaluateAnimation(UAnimInstance* InAnim
|
||||
|
||||
bool FSGVirtualHandAnimInstanceProxy::Evaluate(FPoseContext& Output)
|
||||
{
|
||||
USkeletalMeshComponent* HandMeshComponent = GetSkelMeshComponent();
|
||||
USkeletalMeshComponent* HandMeshComponent{GetSkelMeshComponent()};
|
||||
if (!IsValid(HandMeshComponent))
|
||||
{
|
||||
return FAnimInstanceProxy::Evaluate(Output);
|
||||
}
|
||||
|
||||
const USkeletalMesh* HandMesh =
|
||||
const USkeletalMesh* HandMesh{HandMeshComponent->
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
HandMeshComponent->GetSkeletalMeshAsset();
|
||||
GetSkeletalMeshAsset()
|
||||
#else
|
||||
HandMeshComponent->SkeletalMesh;
|
||||
SkeletalMesh
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
|
||||
};
|
||||
if (!IsValid(HandMesh))
|
||||
{
|
||||
return FAnimInstanceProxy::Evaluate(Output);
|
||||
}
|
||||
|
||||
const USkeleton* HandSkeleton = HandMesh->GetSkeleton();
|
||||
const USkeleton* HandSkeleton{HandMesh->GetSkeleton()};
|
||||
if (!IsValid(HandSkeleton))
|
||||
{
|
||||
return FAnimInstanceProxy::Evaluate(Output);
|
||||
@@ -162,14 +142,4 @@ bool FSGVirtualHandAnimInstanceProxy::Evaluate(FPoseContext& Output)
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void FSGVirtualHandAnimInstanceProxy::PostUpdate(UAnimInstance* InAnimInstance) const
|
||||
{
|
||||
FAnimInstanceProxy::PostUpdate(InAnimInstance);
|
||||
}
|
||||
|
||||
void FSGVirtualHandAnimInstanceProxy::PostEvaluate(UAnimInstance* InAnimInstance)
|
||||
{
|
||||
FAnimInstanceProxy::PostEvaluate(InAnimInstance);
|
||||
}
|
||||
@@ -257,11 +257,11 @@ USkeletalMesh* ASGVirtualHand::GetHandMesh() const
|
||||
{
|
||||
ensureAlwaysMsgf(IsValid(Mesh), TEXT("Invalid Mesh object!"));
|
||||
|
||||
return
|
||||
return Mesh->
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
Mesh->GetSkeletalMeshAsset()
|
||||
GetSkeletalMeshAsset()
|
||||
#else
|
||||
Mesh->SkeletalMesh
|
||||
SkeletalMesh
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
;
|
||||
}
|
||||
@@ -273,46 +273,28 @@ void ASGVirtualHand::SetHandMesh(USkeletalMesh* VirtualHandMesh, const bool bRei
|
||||
|
||||
USkeleton* ASGVirtualHand::GetHandSkeleton() const
|
||||
{
|
||||
ensureAlwaysMsgf(IsValid(Mesh), TEXT("Invalid Mesh object!"));
|
||||
|
||||
USkeletalMesh* SkeletalMesh =
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
Mesh->GetSkeletalMeshAsset()
|
||||
#else
|
||||
Mesh->SkeletalMesh
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
;
|
||||
|
||||
USkeletalMesh* SkeletalMesh{GetHandMesh()};
|
||||
ensureAlwaysMsgf(IsValid(SkeletalMesh), TEXT("Invalid SkeletalMesh object!"));
|
||||
|
||||
return
|
||||
return SkeletalMesh->
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
SkeletalMesh->GetSkeleton()
|
||||
GetSkeleton()
|
||||
#else
|
||||
SkeletalMesh->Skeleton
|
||||
Skeleton
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
;
|
||||
}
|
||||
|
||||
const FReferenceSkeleton& ASGVirtualHand::GetHandRefSkeleton() const
|
||||
{
|
||||
ensureAlwaysMsgf(IsValid(Mesh), TEXT("Invalid Mesh object!"));
|
||||
|
||||
USkeletalMesh* SkeletalMesh =
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
Mesh->GetSkeletalMeshAsset()
|
||||
#else
|
||||
Mesh->SkeletalMesh
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
;
|
||||
|
||||
USkeletalMesh* SkeletalMesh{GetHandMesh()};
|
||||
ensureAlwaysMsgf(IsValid(SkeletalMesh), TEXT("Invalid SkeletalMesh object!"));
|
||||
|
||||
return
|
||||
return SkeletalMesh->
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
SkeletalMesh->GetRefSkeleton()
|
||||
GetRefSkeleton()
|
||||
#else
|
||||
SkeletalMesh->RefSkeleton
|
||||
RefSkeleton
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
;
|
||||
}
|
||||
@@ -372,11 +354,11 @@ TMap<FName, FRotator> ASGVirtualHand::GetFingersBonesRotations()
|
||||
return MoveTemp(Rotations);
|
||||
}
|
||||
|
||||
const TArray<TArray<FVector>> HandAngles = HandPose->GetHandAngles();
|
||||
const TArray<TArray<FVector>> HandAngles{HandPose->GetHandAngles()};
|
||||
|
||||
for (int32 FingerIndex = 0; FingerIndex < HandAngles.Num(); ++FingerIndex)
|
||||
{
|
||||
const TArray<FVector>& FingerJointAngles = HandAngles[FingerIndex];
|
||||
const TArray<FVector>& FingerJointAngles{HandAngles[FingerIndex]};
|
||||
|
||||
for (int32 JointIndex = 0; JointIndex < FingerJointAngles.Num(); ++JointIndex)
|
||||
{
|
||||
@@ -444,26 +426,13 @@ FString ASGVirtualHand::FImpl::GetDefaultMeshPath() const
|
||||
|
||||
bool ASGVirtualHand::FImpl::IsUsingUserMesh() const
|
||||
{
|
||||
ensureAlwaysMsgf(IsValid(Owner->Mesh), TEXT("Invalid Mesh object!"));
|
||||
|
||||
if (!IsValid(
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
Owner->Mesh->GetSkeletalMeshAsset()
|
||||
#else
|
||||
Owner->Mesh->SkeletalMesh
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
))
|
||||
const USkeletalMesh* SkeletalMesh{Owner->GetHandMesh()};
|
||||
if (!IsValid(SkeletalMesh))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
const FString CurrentMeshPath(
|
||||
#if ENGINE_MAJOR_VERSION >= 5 && ENGINE_MINOR_VERSION >= 1
|
||||
Owner->Mesh->GetSkeletalMeshAsset()->GetPathName()
|
||||
#else
|
||||
Owner->Mesh->SkeletalMesh->GetPathName()
|
||||
#endif /* ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1 */
|
||||
);
|
||||
const FString CurrentMeshPath(SkeletalMesh->GetPathName());
|
||||
const FString LeftHandDefaultMeshPath(GetDefaultLeftHandMeshPath());
|
||||
const FString LeftHandDefaultMeshPathOnly(GetDefaultLeftHandMeshPathOnly());
|
||||
const FString RightHandDefaultMeshPath(GetDefaultRightHandMeshPath());
|
||||
|
||||
@@ -44,25 +44,7 @@
|
||||
UCLASS(Transient, Blueprintable, BlueprintType, meta=(BlueprintThreadSafe), Within=SkeletalMeshComponent)
|
||||
class SENSEGLOVE_API USGVirtualHandAnimInstance : public UAnimInstance
|
||||
{
|
||||
GENERATED_UCLASS_BODY()
|
||||
|
||||
public:
|
||||
// the below functions are the native overrides for each phase
|
||||
// Native initialization override point
|
||||
virtual void NativeInitializeAnimation() override;
|
||||
|
||||
// Native update override point. It is usually a good idea to simply gather data in this step and
|
||||
// for the bulk of the work to be done in NativeUpdateAnimation.
|
||||
virtual void NativeUpdateAnimation(float DeltaSeconds) override;
|
||||
|
||||
// Native Post Evaluate override point
|
||||
virtual void NativePostEvaluateAnimation() override;
|
||||
|
||||
// Native Uninitialize override point
|
||||
virtual void NativeUninitializeAnimation() override;
|
||||
|
||||
// Executed when begin play is called on the owning component
|
||||
virtual void NativeBeginPlay() override;
|
||||
GENERATED_UCLASS_BODY()
|
||||
|
||||
protected:
|
||||
virtual FSGVirtualHandAnimInstanceProxy* CreateAnimInstanceProxy() override;
|
||||
|
||||
@@ -54,31 +54,7 @@ public:
|
||||
FSGVirtualHandAnimInstanceProxy(UAnimInstance* Instance);
|
||||
|
||||
protected:
|
||||
/** Called when our anim instance is being initialized */
|
||||
virtual void Initialize(UAnimInstance* InAnimInstance) override;
|
||||
|
||||
/** Called when our anim instance is being uninitialized */
|
||||
virtual void Uninitialize(UAnimInstance* InAnimInstance) override;
|
||||
|
||||
/** Called before update so we can copy any data we need */
|
||||
virtual void PreUpdate(UAnimInstance* InAnimInstance, float DeltaSeconds) override;
|
||||
|
||||
/** Update override point */
|
||||
virtual void Update(float DeltaSeconds) override;
|
||||
|
||||
/** Called on the game thread pre-evaluate. */
|
||||
virtual void PreEvaluateAnimation(UAnimInstance* InAnimInstance) override;
|
||||
|
||||
/**
|
||||
* Evaluate override point
|
||||
* @return true if this function is implemented, false otherwise.
|
||||
* Note: the node graph will not be evaluated if this function returns true
|
||||
*/
|
||||
virtual bool Evaluate(FPoseContext& Output) override;
|
||||
|
||||
/** Called after update so we can copy any data we need */
|
||||
virtual void PostUpdate(UAnimInstance* InAnimInstance) const override;
|
||||
|
||||
/** Called after evaluate so we can do any game thread work we need to */
|
||||
virtual void PostEvaluate(UAnimInstance* InAnimInstance) override;
|
||||
};
|
||||
Reference in New Issue
Block a user