【UE5】サブシステムって何のこと?

この記事は約2分で読めます。

UE5を見ていると、やたらとサブシステムサブシステムと出てくるが、一体なんのこっちゃなのか?サブシステムと言うからにはメインシステムにぶら下がっているんだろうとは思うが、今更ながら一体何なのか?となった。

Just a moment...

ちゃんと試したわけじゃないんだが、上のドキュメントによるとサブシステムを使えば、「プログラマはエンジン クラスの変更または上書きするといった複雑な作業を回避しつつ、ブループリントや Python を公開できます」とある。「ブループリントや Python に公開」じゃないのか?ちょっとよく分からないから原文を見てみたら、”These classes provide easy to use extension points, where the programmers can get Blueprint and Python exposure right away while avoiding the complexity of modifying or overriding engine classes.”とあった。うーん。ただし、もう少し読み進めてみると次のようにある。

プログラミング サブシステムを使用する理由は、以下をはじめ、いくつかあります。

プログラミング時間が短縮される。
エンジン クラスのオーバーライド回避に役立つ。
ただでさえ入り組んだクラスにさらに API を追加しなくてすむ。
ユーザー フレンドリなタイプのノードを通じてブループリントにアクセスできる。
エディタ スクリプティングやテスト コードの記述のために Python スクリプトにアクセスできる。
コードベースのモジュール性と一貫性を実現する。

ブループリントへのアクセスが簡単になるってことなのか。

ブループリントに公開するルーチンは簡単に書けるようだが、それはサブシステム内じゃなくてもいいのかな?今度試してみるしかない。

公式ドキュメントを読む限り、GameInstanceを例にすると、GameInstanceSubsystemを使わない理由がない。

GameInstanceはサーバーでもクライアントでも必ず最初に1つ作られる、という話なので、既に継承して作ったんだが、よく分かっていなかったくせに何故かちゃんとGameInstanceSubsystemを継承していた。
俺自身が妙な真似をしない限り、このSubsystemがガベージコレクションされるなんてことはないんだろう。他のクラスについてもSubsystemを積極的に使っていこうと思う。

コメント

タイトルとURLをコピーしました