ゲーム作りが大好きな人のブログ

ゲームを作るのが大好きな人のブログ。UE4とBlender、MAYA(LT)、3DCoatを使用しています!

【UE4:ブループリント】マクロを使って楽をしよう その2 ~ ブループリントマクロライブラリー ~

f:id:toofu0:20150410233136p:plain

はい、前回からの続きのブループリントマクロライブラリーを説明します。

内容としては非常に簡単です。

そして、すみません。簡単なので説明画像は極力なしです(手抜き)。

 

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

詳細は公式を見ていただいた方がよいと思いますが

ここでは簡潔にブループリントマクロライブラリーの使い方を

説明しようと思います。

 

◆ まずは一番簡単な使い方から覚える

f:id:toofu0:20150410233151p:plain

  1. コンテンツブラウザから右クリック → ブループリント → ブループリントマクロライブラリを選択します。
  2. 「親クラスを選択画面」の一番下にある「すべてのクラス」ボタンを押し、そのすぐ真下にある「Object」を選択し、右下にある「選択」ボタンを押して次に進みます(名前はなんでもいいですが、ObjectMacroLibraryあたりが無難かと思います)
  3. 作ったファイルを開き、マクロを作ります。名前は「TestMacro」にしましょう。
  4. コンテンツブラウザに戻り、なんでもいいのでブループリントを開きます
  5. EventGraph画面にいき、右クリックからキーボードで「TestMacro」入力します。
  6. あら不思議。TestMacroが使えます。

 

これで終わりです。

ここで重要なのは作ったマクロがどのブループリントでも使えるようになっている事です。

今まで作ったブループリントも、これから作るブループリントにも

全て使えるようになっています。

 

これは何故か?ここから若干話が難しくなりますが

上の作業工程2番で行ったObjectを親クラスにしている所がポイントとなります。

ブループリントで作られたクラスは基本的にObjectクラスを親にして作られます。

補足説明:

厳密には直近の親クラスは別クラスの場合が大半ですが、その親クラスの親クラス……つまり、親クラスの親をドンドン辿ると最終的にObjectクラスが親になっています。このクラスの親子関係は2番の親クラス選択時にツリー形式で表示されているので、どういった構造かはわかります。

 

先ほど作ったブループリントマクロライブラリは親クラスがObjectなので

それを継承したブループリントには、先ほど作ったマクロが全て使えるようになるわけです。

『親の能力』は『子供にも使える』ってわけです

 

◆ 親クラスを変えてみよう

次に親クラスをCharacter等に変えてみましょう。

今度はCharacterを継承したブループリントでしか使えなくなります。

 

それってあんまり利点がないんじゃ・・・と思われるかもしれませんが

実はCharacterが所持している変数をマクロ側から触る事が出来ます

なので、よりそのクラスに適したマクロを作成する事が可能です。

これは便利!

 

◆ 最後に。普通のマクロじゃダメなの?

これは将来的に変更されるかもしれませんが

各ブループリントで作られたマクロは継承先で使用できないといった制約があります。

呼べる事は呼べるんだけど、保存しようとするとエラーが出て保存出来ない。

 

ここで問題が起きるくらいであれば最初からブループリントマクロライブラリで

定義しておいた方が後々安全かと思います。

 

 

ふー、今回も長文となってしまいました。

色々とめんどくさいですね。次回用のネタも何個かあるんですが

また気が向いた時にでも書きます。それでは。