いつもお世話になっております。
アニメーションBPのアニムグラフの中の処理を整理したい要件があり、アニメーションノードの自作をするため、まずはこのサイトの真似をしようとしています。
少し古いUE4で作られているようでしたので、以下のように書きなおしました。
AnimNode_MySimple.h
#pragma once
#include "CoreMinimal.h"
#include "Runtime/Engine/Classes/Animation/AnimNodeBase.h"
#include "AnimNode_MySimple.generated.h"
USTRUCT(BlueprintInternalUseOnly)
struct GAMEPROJECT_API FAnimNode_MySimple : public FAnimNode_Base
{
GENERATED_USTRUCT_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Links)
FPoseLink SourcePose;
public:
FAnimNode_MySimple();
virtual void Initialize_AnyThread(const FAnimationInitializeContext& Context) override;
virtual void CacheBones_AnyThread(const FAnimationCacheBonesContext& Context) override;
virtual void Update_AnyThread(const FAnimationUpdateContext& Context) override;
virtual void Evaluate_AnyThread(FPoseContext& Output) override;
};
AnimNode_MySimple.cpp
#include "AnimNode_MySimple.h"
// ----------------------------------------------------------------------------
FAnimNode_MySimple::FAnimNode_MySimple()
{
}
// ----------------------------------------------------------------------------
void FAnimNode_MySimple::Initialize_AnyThread(const FAnimationInitializeContext& Context)
{
FAnimNode_Base::Initialize_AnyThread(Context);
SourcePose.Initialize(Context);
}
// ----------------------------------------------------------------------------
void FAnimNode_MySimple::CacheBones_AnyThread(const FAnimationCacheBonesContext& Context)
{
SourcePose.CacheBones(Context);
}
// ----------------------------------------------------------------------------
void FAnimNode_MySimple::Update_AnyThread(const FAnimationUpdateContext& Context)
{
SourcePose.Update(Context);
}
// ----------------------------------------------------------------------------
void FAnimNode_MySimple::Evaluate_AnyThread(FPoseContext& Output)
{
SourcePose.Evaluate(Output);
}
AnimGraphNode_MySimple.h
#pragma once
#include "CoreMinimal.h"
#include "Editor/AnimGraph/Classes/AnimGraphNode_Base.h"
#include "GameProject/Public/AnimNode_MySimple.h"
#include "AnimGraphNode_MySimple.generated.h"
UCLASS()
class UAnimGraphNode_MySimple : public UAnimGraphNode_Base
{
GENERATED_UCLASS_BODY()
public:
UPROPERTY(EditAnywhere, Category = Settings)
FAnimNode_MySimple Node;
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
};
AnimGraphNode_MySimple.cpp
#include "AnimGraphNode_MySimple.h"
#define LOCTEXT_NAMESPACE "MySimpleAnimNode"
// ----------------------------------------------------------------------------
UAnimGraphNode_MySimple::UAnimGraphNode_MySimple(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
// ----------------------------------------------------------------------------
FText UAnimGraphNode_MySimple::GetNodeTitle(ENodeTitleType::Type TitleType) const
{
return LOCTEXT("AnimGraphNode_MySimple_Title", "My Simple");
}
#undef LOCTEXT_NAMESPACE
FAnimNode_MySimple 構造体については Runtimeモジュールに、
UAnimGraphNode_MySimple クラスについては Editor モジュールに作成しました。
このC++プロジェクトをビルドしますと、AnimGraphNode_MySimple.cpp のコンパイル時に
fatal error C1083: include AnimNode_MySimple.generated.h: No such file or directory.
というコンパイルエラーが出てしまい、行き詰っております。
何か、原因として考えられるものはありますでしょうか。
アドバイス頂けるとありがたいです。
以上
よろしくお願いします。