AnimGraphNode_SkeletalControlBase is returning nullptr for in UE 4.20

codehawk64
Tue, 24 Jul 2018 07:53:03 +0000
Character & Animation

][1]

The above crash states LowLevelFatalError on skeletalControlBase.h at line 164 at the GetNode() pure virtual function.

This problem never happened in my same plugin project in 4.19,4.18 and so on.

There is no compilation error in visual studio apart from some errors such as “generated files not found” or “source files not found”. While the custom animgraphnode compiles , the moment i try to spawn a node in any animation blueprint , it crashes every time , giving the posted stack trace starting from the GetNode() function.

This problem is also easily reproducible in a minimal class file deriving from AnimGraphNode_SkeletalControlBase.

Example almost blank starter code to reproduce the crash:

pragma once

#include "CoreMinimal.h"
#include "AnimGraphNode_SkeletalControlBase.h"
#include "AnimNode_SkeletalControlBase.h"
#include "AnimGraphNode_Test.generated.h"

USTRUCT(BlueprintInternalUseOnly)
struct PROJECT20_PLUGN_API FAnimNode_TestFeetSolver : public FAnimNode_SkeletalControlBase
{
	GENERATED_BODY()
};

UCLASS()
class PROJECT20_PLUGN_API UAnimGraphNode_Test : public UAnimGraphNode_SkeletalControlBase
{
	GENERATED_BODY()

		UPROPERTY(EditAnywhere, Category = Settings)
		FAnimNode_TestFeetSolver ik_node;
public:
	UAnimGraphNode_Test(const FObjectInitializer& ObjectInitializer);
	virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
	virtual FText GetTooltipText() const override;
	virtual FString GetNodeCategory() const override;
	virtual FLinearColor GetNodeTitleColor() const override;

};

.CPP code:

#include "AnimGraphNode_Test.h"

UAnimGraphNode_Test::UAnimGraphNode_Test(const FObjectInitializer & ObjectInitializer)
{
}

FText UAnimGraphNode_Test::GetNodeTitle(ENodeTitleType::Type TitleType) const
{
	return FText::FromString(FString("Test Foot Solver"));
}

FText UAnimGraphNode_Test::GetTooltipText() const
{
	return FText::FromString(FString("Test. Find more details in the document ."));
}

FString UAnimGraphNode_Test::GetNodeCategory() const
{
	return FString("Test Plugin");
}

FLinearColor UAnimGraphNode_Test::GetNodeTitleColor() const
{
	return FLinearColor::Red;
}

The virtual function GetNode() inside for some reason is always returning nullptr from my experimentation. I believe this is a bug introduced in 4.20 and i hope someone from epic can shed some light on this.

7 posts - 1 participant