2014-5-9

ブループリント マクロとマクロ ライブラリ

作成 Michael Noland

ブループリント マクロを使うと、セットになったノードを何回も再利用できます。ブループリント マクロは、あらゆるブループリントで作成できます (My Blueprint ツールバーにある Add Macro ボタンを使います)。また、ノードをマクロに変えることもできます。そのためには、ノードを選択して右クリックし、Collapse to Macro (マクロへコラプスする) を選択します。マクロの機能は、コラプスされた (折り畳まれた) グラフととてもよく似ています。任意の入力および出力を定義できます。これらは、マクロ インスタンスを配置するとピンとして表示されることになります。あるオブジェクトのピンが有効かどうかを調べる IsValid というマクロの例をご覧ください。

IsValid macro declaration

[IsValid マクロの宣言]

マクロを宣言した後は、他のグラフの中にインスタンスとしてそのマクロを配置できます。そこに含まれているノードのための略記として配置することによって、コードを再利用できるとともに、複雑性を隠蔽できることになります。

IsValid macro usage

[IsValid マクロの使用法] 

マクロには Description (説明) と Category (カテゴリー) を必ずセットしてください。Description は、ノード インスタンス上のツールチップの一部として表示されることになります。これがあると、いちいちマクロを開かなくてもそのマクロの機能が何であるか思い出すことができます (インスタンスをダブルクリックするといつでも中を見ることはできるのですが)。Category は、グラフ アクション メニューにおけるそのマクロの表示場所を規定するためのものです。インスタンスの色を選ぶこともできます。これによって、インスタンス上のノード タイトル バーの色が決まります (たとえば私たちは、フロー コントロール ノードに白を使うことによって、実行ピンとワイヤーの色に合わせています)。

Specifying Description and Category

[Description と Category の指定]

マクロ ライブラリ
マクロはあらゆるブループリントに追加できますが、通常は、そのブループリントでのみ使用できます。多数のブループリント間で 1 つのマクロを共有するためには、そのマクロをマクロ ライブラリに追加します。エンジンのコンテンツ ディレクトリにはマクロ ライブラリがいくつかビルトインされています (for ループなど多数の機能がマクロを使って作られています)。ただし、ご自分でエンジンのコンテンツを決して変更しないでください。将来、エンジンのアップデートによって、その変更が台無しになるからです。その代わりにコンテンツ ブラウザを使ってご自分のプロジェクトのためのマクロ ライブラリのアセットを作成してください。

Creating a new Macro Library

[新たなマクロ ライブラリを作成する]

通常のブループリントと同じように、マクロ ライブラリのための親クラスを選択するように求められます (よく分からない場合は、Actor を選択しておくのが無難です)。こうすることによって、ライブラリのマクロから、親クラスで宣言された変数や関数にアクセスできるようになります。あたかもスコープ内にあるかのように。たとえば、Pawn クラスに基づくライブラリのマクロは、Pawn が渡されなくても GetController を呼び出すことができます。さらにそれらは単に、Pawn クラスに基づくブループリントや、Character などのような Pawn クラスからさらに派生したクラスに基づくブループリントのためのコンテクストメニューにオプションとして表示されます。

マクロ ライブラリを初めて作る場合は、マクロ ライブラリ エディタのインターフェイスを解説したチュートリアルがあります (見るのを省略していた場合は、Help メニューから開くことができます)。

ご質問、ご意見がありましたら、アンリアル・エンジンのフォーラムまでお越しください。または、Twitter で @joatski をフォローしてください。

最近の投稿

最新技術を先取りチェック:間もなく実現、アンリアルのリアルタイム レイトレーシング

「リアルタイム」と「レイトレーシング」はかつて相反する言葉でした。しかしNVIDIA RTX 技術の登場により、アンリアル エンジンでのリアルタイム ...

西部劇風ビジュアルの大乱闘 FPS、『Sky Noon』の制作背景

ニュージーランドを拠点とするインディー デベロッパー チームであり、Unreal Dev Grant を受賞した Lunar Rooster が、ユニ...

GitHub アカウントと Epic Games アカウントの紐付けの認証プロセスのアップデート

ユーザー エクスペリエンスとセキュリティの向上のために、GitHub アカウントと Epic Games アカウントの紐付けプロセスに OAuth 機...