改訂バージョン: Unreal Engine 4.19 |
今回はブループリントのマイナーな(わたくし調べ)ちょっとうれしい機能をいくつかご紹介しようと思います。
クリックのみで変数の型変更!
ブループリントの各変数左横にある変数のアイコンを左クリックすると型の変更、
右クリックをすると配列か単体かの変更ができます。
![variconrightclick](https://historia.co.jp/wp/wp-content/uploads/2016/02/variconrightclick.png)
死んだ変数を再利用!「Create Variable」
下のような何らかの関数「FunctionA」のうち一部をコピーして別の関数「FunctionB」にペーストすると
![functiona](https://historia.co.jp/wp/wp-content/uploads/2016/02/functiona.png)
![functionbpaste](https://historia.co.jp/wp/wp-content/uploads/2016/02/functionbpaste.png)
変数が灰色になり、そのままノードを組んでも
コンパイル時に「The property associated with Function A Local Var could not be found」と変数が見つからない旨のエラー出てしまい使えません。
ここで変数を左クリックで選択した状態にし、
ノード上で右クリックをすると以下のように「Create variable ‘変数名’」「Create local variable ‘変数名’」が現れるのでクリックします。
![createdvariabe](https://historia.co.jp/wp/wp-content/uploads/2016/02/createdvariabe.png)
するとこのように変数名が維持されたまま新規の変数が自動的に作られます!
関数をまたげるだけでなく、ブループリント間も同様の操作でまたげるので
一部関数をBlueprintFunctionLibraryに纏める必要が出てきた際などに使えそうです。
Compact Node Titleでコンパクトに!
ブループリントで加算代入演算子+=のような計算をしようとすると以下のような感じになると思います。
![plusequal](https://historia.co.jp/wp/wp-content/uploads/2016/02/plusequal.png)
コードで同じ計算をするのに比べて、なんとなく冗長な感じがします。
もう少しコンパクトにしたいです。
そこで新規BlueprintFunctionLibraryを用意し、「Add」という名前で関数を作ります。(※ArrayのAddと名前が被るので実用の際はもう少し抽象度の低い名前にすることをお勧めします)
InputにInt型の変数を2つ指定し、片方の「Pass-by-Referrence」にチェックを入れます。
「Pass-by-Referrence」が表示されていない場合は、変数名左の右向きの三角▷をクリックしてください。
![addnodeinput](https://historia.co.jp/wp/wp-content/uploads/2016/02/addnodeinput.png)
ノードは以下のように組みます。
![addnodenoding](https://historia.co.jp/wp/wp-content/uploads/2016/02/addnodenoding.png)
入ってきた「Value」にAddValueを足すという処理です。
そしてこれが一番重要です。
関数のDetailsのGraph内にある「Compact Node Title」に「+=」といれます。
するとノードを「+=」などで検索した際に作成した「Add」が候補に現れます。
![searchplusequal](https://historia.co.jp/wp/wp-content/uploads/2016/02/searchplusequal.png)
これを使って「Num += 10」を書くととてもコンパクトになります!
![plusequalfinal](https://historia.co.jp/wp/wp-content/uploads/2016/02/plusequalfinal.png)
これだけ!
こんな感じでCompact Node Titleは、
C++の演算子のオーバーロードのような感じの使い方に向いていると思います。
頻繁に使うユーティリティなどもコンパクトにしてしまうのがいいかもしれません。
関数のInput/Outputピンを楽に増やす!
とある構造体「Structure」の一部のメンバ変数のみゲットしたい場合があるとします。
※ 構造体については公式のドキュメントを参照ください。
![structgetterfirst](https://historia.co.jp/wp/wp-content/uploads/2016/02/structgetterfirst.png)
![](https://historia.co.jp/wp/wp-content/uploads/2016/02/AddOutput.png)
関数のOutputの欄にあるNewをクリックして変数名を指定し、型を合わせて一つ一つOutputのPinを作っていくのもいいですが、
以下のようにPinからドラッグでReturnノード上にもっていくと「Add Pin to Node」というのが出てきます。
![structgetteraddpin](https://historia.co.jp/wp/wp-content/uploads/2016/02/structgetteraddpin.png)
Returnノード上でドラッグ&ドロップをするとなんと
![autoaddpin](https://historia.co.jp/wp/wp-content/uploads/2016/02/autoaddpin.png)
自動で変数名と型を引き継いでOutput Pinを作ってくれます。
これを利用してほぼマウス操作のみの4操作だけで下のようなGetterが作れてしまいます。
![structgetterfinal](https://historia.co.jp/wp/wp-content/uploads/2016/02/structgetterfinal.png)
同様にInput Nodeにドラッグ&ドロップをすることでInput Pinが作れてしまいます。
![structsetter](https://historia.co.jp/wp/wp-content/uploads/2016/02/structsetter.png)
![structsetterfinal](https://historia.co.jp/wp/wp-content/uploads/2016/02/structsetterfinal.png)
とっても簡単ですね。
以上、ちょっとだけ幸せになれるブループリントでした。