UE4/UE5 関数ライブラリの使い方と実用例(Function Library)

query_builder 2022/04/23
ブログ
ue5loadingbm

皆さんこんにちは、株式会社Poison Gamesでゲーム開発をしている香川です。



今回はUE5の関数ライブラリ(Function Library)の使い方と実際にどういう使い方をしているのかを紹介します。


ファンクションライブラリって何?という方や、知ってるけどほとんど使ってない!という方向けの内容です。


私の環境では先日正式リリースされたUnreal Engine5を使っていますがUE4でも同じはずです。



関数ライブラリとは?


自分で作った関数をまとめて、どこからでもアクセスできるようになるブループリントです。


ただしアセット参照などを含めると依存関係が発生してしまうので注意しましょう。

ですので、BPの参照連鎖などをよく理解した上で使った方がいいでしょう。

Reference Viewer などで確認しながら使いましょう。



実用例を見ながら使い方を紹介


皆さんこんな感じでPrint Stringを使っていませんか?



例えば  Is ValidマクロやValidated Getを使ったときです。

本来は毎回 Is Validに処理が行く想定でノードを組んでいるけど、もしかしたら Is Not Validに行くことがあるかもしれない。そのときはエラーをプリントしておこう!という状況です。


エラーだからText Colorを赤にして、見逃さないようにDurationを長めに設定して・・・

という感じです。


私は開発中に色んな箇所で何度もこの作業をやってました。

エラー出力用にPrintStringは無いのか!と思いましたが、無いっぽいので自分で使いやすいように拡張してみることにしました。



まずはBlueprint Function Libraryを作りましょう。

コンテンツブラウザで右クリックして、Blueprintsの先にあります。



名前を入力させられるので、分かりやすいように名前を付けましょう。

MyFunctionLib などでお好みで付けてください。


作ったBPを開いたら最初の関数に名前を付けます。


今回はPrintErrorにしました。


PrintStringを出して、InputピンをD&Dしてinputを追加していきます。




TextColorは赤に、Durationは10にしました。



ここで小技を一つ

関数のDetailsにKeywordsという欄があります。

ここに作った関数を呼び出すときのキーワードを入れると関数を探すときに便利になります。

ローマ字表記で"era-" と入力しておきます。



こうしておく事で、どこかのBPから右クリックして"era-"と入れると・・・

すぐに呼び出せるようになります。






このままでも十分便利ですが、さらにEnum(列挙型)を作って拡張します。


コンテンツブラウザで右クリック→Blueprints→Enumerationを作成します。


名前はEnumErrorTypeとしました。


Add Enumerator を押して、よくあるエラーのタイプを追加していきます。



今回はこんな感じにしました。


is Not Found(~が見つかりません。)

is Not Valid  (~が存在しません。)

Is Failed(~は失敗しました。)

Other (その他)


これを先ほどの関数のinputに追加します。


最終的にはこんな形になりました。





コンパイルして実際に呼んでみましょう。


今回はレベルブループリントから呼んでいます。



実行結果





使い方と解説


inputピンが3つありますね。


上から

・Object Reference型

・String型

・先ほど作ったEnumErrorType型


です。


Object Inputに呼び出し元のSelfリファレンスを繋いでおくと、どのオブジェクトがエラーを出しているのか出力してくれます。


今回はLevelBPから呼んでいるのでLevelBPの名前が出ています。

ちなみにこれをしなくてもOutputLogを見ればどのオブジェクトがPrintstringしたか分かるのでお好みでどうぞ。


String型にエラーメッセージを入れます。


ErrorTypeのプルダウンを状況に合わせて使います。

Otherはどれにも当てはまらないときに使います。



呼び出しの例と実行結果


ObjectをValidatedGetしたときの例


実行結果






Castしたときの例




実行結果





以上です!


エラー用に毎回Printstringのパラメータをいじるのが面倒だったのが多少マシになりました。

みなさんの使いやすいように改造して使ってみてください!




できればこのブログでUE5Tipsを毎週更新していきたいと思っています。

PoisonGames(ポイズンゲームス)をよろしくお願いします!


ではまた!

記事検索

NEW

  • BitSummitX-Roadsにてアンビリーバブーンが紹介されました!

    query_builder 2022/08/09
  • 日本最大級のインディーゲームイベントに参加してきました!

    query_builder 2022/08/09
  • 株式会社PoisonGamesが本日二期目を迎えました!

    query_builder 2022/08/02
  • インディゲームスジャパンにてMechNestが紹介されました。

    query_builder 2022/07/24
  • INDIE Live Expo にてMechNestが紹介されました。

    query_builder 2022/06/07

CATEGORY

ARCHIVE