fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 C++でアニメーション通知(Animation Notifications)の「AnimNotify」を作成する(UAnimNotify)

C++でアニメーション通知(Animation Notifications)の「AnimNotify」を作成する方法です。

こちらを参考にさせていただきました。

・UE4 AnimNotifyをC++で書く場合のメモ
https://qiita.com/unknown_ds/items/ecadbe7b76cb3b1835d9

公式ドキュメントはこちら。

・UAnimNotify
https://docs.unrealengine.com/5.0/en-US/API/Runtime/Engine/Animation/AnimNotifies/UAnimNotify/

アニメーション通知(Animation Notifications)の「AnimNotify」を作るには
「UAnimNotify」を継承したクラス
を作成します。

まずはヘッダの定義になります。

#include "Animation/AnimNotifies/AnimNotify.h"

// AnimNotify クラス
class UAnimNotify_New : public UAnimNotify
{

GENERATED_BODY()
public:
// コンストラクタ
UAnimNotify_New ();
public:
// Notify 設定
virtual FString GetNotifyName_Implementation() const override;
virtual void Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation) override;
public:
// 公開変数
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Value;
};

上記で「UAnimNotify」を継承したクラスを作成しました。

「GetNotifyName_Implementation」関数は「Notify」を配置した場合に表示される文字列を記述します。
・「Notify」関数は「Notify」が実行された時の処理を記述します。
・変数を定義することで「Notify」のパラメータとして受け取ることができます。

次に実際の処理を記述します。

// 通知が来た時の処理
void UAnimNotify_New::Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation)
{

// 取得
TObjectPtr< AActor> aActor = Cast< AActor>(MeshComp->GetOwner());

// 何か処理色々
}

こんな感じで通知がきたときの処理を書くことができます。

簡単な通知はBPで作ってしまったほうが良い場合もありますが、
ある程度複雑な処理の場合はC++で書いた方が楽なのかなと思いました。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/781-e08c782e

TRACKBACK

PREV | PAGE-SELECT | NEXT