ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE4・UE5】〈Tips〉UEC++ 実行ピンが複数あるUFUNCTIONを作ろう

目次

 

はじめに

▼今回作るノード

 

IsVaildやブランチノードのように入力される値によりピンが分岐するノードはとても便利です。これらの実装を一般的なUFUNCTIONで行う方法を解説します。

 

環境 : UE5.1

 

個人の備忘録としてまとめています。誤った情報がある場合があります。

コメントにてご指摘のほどお願いいたします。

 

解説

今回はint型の値を受け取り判定用の値と比較して、より大きい・より小さい・同じの3パターンで判定してくれるノードを作ってみたいと思います。

汎用性を高めるにはオーバーロードやテンプレートなどが有効ですが今回はしません。

 

まずOUT用のピンをEnumで定義します。

=, <, >の3パターンです。

 

実装を書いていきます。見やすさ重視で.hにべた書きしてます。

 

まずはUFUNCTIONの定義から。ここで重要なのはメタデータExpandEnumAsExecsを付けることです。

UFUNCTION(BlueprintCallable, Category = "", meta=(ExpandEnumAsExecs="Comparison"))

 

どこからでもアクセスできるようにしたいのでstaticで定義します。


最後に比較を行い結果に応じてEnumを設定します。

 

これで準備完了です。コンパイルして実行してみましょう。

検索するとカテゴリーで指定した階層に出てきます。

 

ノードを組んで確認してみましょう。

このように簡単に作ることができるのでどんどん活用していきましょう!

 

実行ピンが2つの場合はExpandBoolAsExecsを使うとよいでしょう。

UFUNCTION(BlueprintCallable, Category = "", meta=(ExpandBoolAsExecs="ReturnValue"))

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。

投げ銭を投げる