関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2020.03.11UE4UE/ 初心者向け
執筆バージョン: Unreal Engine 4.24 |
こんにちは、エンジニアの山中です。
突然ですが皆さんはプロパティにおける「カテゴリ機能」を使っていますか?
ワードからある程度は想像できるかとは思いますが、
似たような区分、種類のプロパティに対して予め設定しておくことで
利用する際に目的のプロパティに辿り着きやすくなったり、
誤って意図しないプロパティを変更してしまう、といった問題を回避することができます。
↑グラフから右クリックで開く検索窓。
エンジンが提供している機能は細かくカテゴライズされています。
↑独自で定義した体力に関する変数たち。
単に並べただけだと、どの変数がどういう用途で使用されるかを
変数名で判断するしかないが、カテゴリを設定することである程度分かりやすくなるかも?
・ブル―プリント
・ブル―プリント関数ライブラリ
・アニメーションブル―プリント
等々、基本的に変数や関数等のプロパティを追加できるような
アセットにて設定可能です。
プロパティ指定子として追加します。
公式ドキュメントはこちら→「プロパティ指定子」
下記はコードの一例になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
UCLASS() class TESTPROJECT_API ATestActor : public AActor { GENERATED_BODY() public: // 関数 UFUNCTION(BlueprintCallable, Category = "TestProject") void Function01() {} UFUNCTION(BlueprintCallable, Category = "TestProject|Test") void Function02() {} // 変数 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "TestProject") int32 Variable01; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "TestProject|Test") float Variable02; }; |
↑検索窓での表示の際、変数は自動で「Variables」という階層が付与されるようです。
新規で作成する際は以下の手順になります。
また、C++の場合でも既に使用していますが、
文字列に「|」を入れることで階層的な設定が可能です。
既に追加されているカテゴリに設定したい場合は以下のような方法があります。
一番安全な方法です。
スペルの打ち間違い等、人為的なミスが発生する可能性があるので
できればプルダウンメニューから選ぶようにしましょう。
こちらは設定方法としては直感的で良いのですが、一つ注意すべき点があります。
それは「実際に文字列で設定していたカテゴリとは異なるカテゴリが作られる可能性があること」です。
少し説明を入れますと、UE4の仕様上
①プロパティリストにカテゴリを表示する際は自動的に先頭以外の大文字の前に半角スペースが付く
②プロパティリストでのカテゴリ変更の際には、表示されている文字列をそのままカテゴリとして設定する
といった挙動の為、①の段階で実際に設定している文字列と異なっていた場合は
半角スペース付きの別のカテゴリが新しく作られてしまうことになります。
↑カテゴリリストでの表記。「Test Project」といった感じで、間に半角スペースが入っています。
↑この状態で「TestProject|A」へドラッグアンドドロップすると・・・
ですので、こちらの方法を使用する場合は
「UE4の表記ルールに合わせて、大文字を使用する場合はその前に半角スペースを入れるようにする」
といったようなカテゴリ設定時のルールが必要になりそうです。
また、もう一点補足で注意すべき点ですが、
既存のカテゴリを後になって変更したいといった場合も、一応プロパティリストより変更可能なのですが、
変更した際の階層の文字列のみを抽出して新たなカテゴリとして作成してしまいます。
↑特定の階層に対してカテゴリ名を変更すると・・・(今回は「A」→「B」)
↑変更した階層以外の階層のカテゴリが消失。
「TestProject|A」→「B」になってしまった例。
一応、プロパティの設定画面より、階層を考慮したカテゴリの文字列をコピーした上で
一部だけ変更といったことは可能ですが、誤操作等でカテゴリ項目を選択、編集してしまわないように気を付けましょう。
↑既存のカテゴリを一斉変更。上手く使えばとても便利な機能です。
上記2点の注意点を考慮した上で、
いっそ「カテゴリ関連の設定はプルダウンメニューから」といったルールでも良いでしょう。
↑変数のプロパティリスト、検索窓での表示。
設定の一例ですが、一番上の階層をプロジェクト共通にすることで
そのプロジェクトで新規で作成された項目、というのが分かりやすくなります。
パラメータとして変更すべき項目に「Settings」等と設定することで
誤った変数を設定してしまうといった問題を回避できます。
↑クラスデフォルトから設定する例。このように、パラメータ調整が必要な項目は
どこかにまとまっていると便利かと思います。
いかがでしたか?
使用感においていくつか注意点はありますが、
理解した上で使いこなせば開発効率アップに一役買ってくれるはずです。
また、カテゴリの設定ルール等は予めエンジンに定義されてある公式のプロパティが
参考になるかもしれません。
是非、プロジェクト毎に分かりやすいカテゴリ設定を心がけてみてください。