UE4 汎用マクロの作成(Blueprint Macro Library)
どこからでも呼び出せる汎用的なマクロを作る方法です。
結構悩んでいたのですが「Blueprint Macro Library」を使うことでできるみたいですね。
公式ドキュメントはここらへんを。
・ブループリント マクロ ライブラリ
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/UserGuide/Types/MacroLibrary/index.html
・マクロ ライブラリの使用方法
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/BP_HowTo/MacroLibraries/index.html
まずはアセットに「ブループリントマクロライブラリ」を追加します。

その際、どのクラスを継承するかを選ぶ必要があります。

使う場面場面で継承元を選択しましょう。
アクターの機能が必要じゃないなら「Object」クラスを選択する感じでしょうか。
ちなみに、「Object」クラスはDelayノードが使えないなどの制限があるので気を付けたほうがよさそうです。
alwei さんの書かれているこれが参考になります。
・UE4 Object継承のマクロライブラリーの中でDelayを使う方法
http://unrealengine.hatenablog.com/entry/2015/10/06/152115
といったところみたいです。結構注意が必要そうですね。
これでできたマクロライブラリに名前を付けます。割と何でもよさそうです。
機能ごとにファイルを作ったほうがよいのでそれにあった名前にしましょう。
ファイルができたらダブルクリックしてマクロをじゃんじゃん作りましょう。

こんな感じですね。
あとはいつもどおり他のブループリントから呼び出すだけです。

マクロは呼び出し元が「Self」になったり、継承元によってはLatentノードが使えたり、
親クラスの機能が使えたり、複数の実行ピンが使えたりします。
上記の用途がない場合は関数ライブラリを使ってあげたほうがよいかも知れません。
汎用的なマクロを作っておけばのちのちゲームの開発がしやすくなると思うので、
機能やカテゴリごとに、結構使うものは汎用マクロ化しておいたほうがよさそうですね。
結構悩んでいたのですが「Blueprint Macro Library」を使うことでできるみたいですね。
公式ドキュメントはここらへんを。
・ブループリント マクロ ライブラリ
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/UserGuide/Types/MacroLibrary/index.html
・マクロ ライブラリの使用方法
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/BP_HowTo/MacroLibraries/index.html
まずはアセットに「ブループリントマクロライブラリ」を追加します。

その際、どのクラスを継承するかを選ぶ必要があります。

使う場面場面で継承元を選択しましょう。
アクターの機能が必要じゃないなら「Object」クラスを選択する感じでしょうか。
ちなみに、「Object」クラスはDelayノードが使えないなどの制限があるので気を付けたほうがよさそうです。
alwei さんの書かれているこれが参考になります。
・UE4 Object継承のマクロライブラリーの中でDelayを使う方法
http://unrealengine.hatenablog.com/entry/2015/10/06/152115
Delayノードはとても便利なものですが、
これをマクロで利用するためには"Actor"を継承したクラスでなければなりません。
しかしマクロライブラリーを作成した際にどこからでも使用できるようにするためには
Object継承のマクロにしなくてはならず、この場合にはDelayノードを利用する事が出来ません。
といったところみたいです。結構注意が必要そうですね。
これでできたマクロライブラリに名前を付けます。割と何でもよさそうです。
機能ごとにファイルを作ったほうがよいのでそれにあった名前にしましょう。
ファイルができたらダブルクリックしてマクロをじゃんじゃん作りましょう。

こんな感じですね。
あとはいつもどおり他のブループリントから呼び出すだけです。

マクロは呼び出し元が「Self」になったり、継承元によってはLatentノードが使えたり、
親クラスの機能が使えたり、複数の実行ピンが使えたりします。
上記の用途がない場合は関数ライブラリを使ってあげたほうがよいかも知れません。
汎用的なマクロを作っておけばのちのちゲームの開発がしやすくなると思うので、
機能やカテゴリごとに、結構使うものは汎用マクロ化しておいたほうがよさそうですね。
| UE4 | 15:00 | comments:0 | trackbacks:0 | TOP↑