BLOGブログ

2016.02.02UE4UE/ Blueprint

[UE4] ちょっとだけ幸せになれるブループリント

改訂バージョン: Unreal Engine 4.19

今回はブループリントのマイナーな(わたくし調べ)ちょっとうれしい機能をいくつかご紹介しようと思います。

 

クリックのみで変数の型変更!

ブループリントの各変数左横にある変数のアイコンを左クリックすると型の変更、

右クリックをすると配列か単体かの変更ができます。

variconclick variconleftclick variconrightclick

 

 

死んだ変数を再利用!「Create Variable」

下のような何らかの関数「FunctionA」のうち一部をコピーして別の関数「FunctionB」にペーストすると

functiona

functionbpaste

変数が灰色になり、そのままノードを組んでも

コンパイル時に「The property associated with Function A Local Var could not be found」と変数が見つからない旨のエラー出てしまい使えません。

 

ここで変数を左クリックで選択した状態にし、

ノード上で右クリックをすると以下のように「Create variable ‘変数名’」「Create local variable ‘変数名’」が現れるのでクリックします。

selectnodeandcreatevariable    createdvariabe

するとこのように変数名が維持されたまま新規の変数が自動的に作られます!

関数をまたげるだけでなく、ブループリント間も同様の操作でまたげるので

一部関数をBlueprintFunctionLibraryに纏める必要が出てきた際などに使えそうです。

 

 

Compact Node Titleでコンパクトに!

ブループリントで加算代入演算子+=のような計算をしようとすると以下のような感じになると思います。

plusequal

コードで同じ計算をするのに比べて、なんとなく冗長な感じがします。

もう少しコンパクトにしたいです。

そこで新規BlueprintFunctionLibraryを用意し、「Add」という名前で関数を作ります。(※ArrayのAddと名前が被るので実用の際はもう少し抽象度の低い名前にすることをお勧めします)

InputにInt型の変数を2つ指定し、片方の「Pass-by-Referrence」にチェックを入れます。

「Pass-by-Referrence」が表示されていない場合は、変数名左の右向きの三角▷をクリックしてください。

addnodeinput

ノードは以下のように組みます。

addnodenoding

入ってきた「Value」にAddValueを足すという処理です。

そしてこれが一番重要です。

関数のDetailsのGraph内にある「Compact Node Title」に「+=」といれます。

するとノードを「+=」などで検索した際に作成した「Add」が候補に現れます。

searchplusequal

これを使って「Num += 10」を書くととてもコンパクトになります!

plusequalfinal

これだけ!

こんな感じでCompact Node Titleは、

C++の演算子のオーバーロードのような感じの使い方に向いていると思います。

頻繁に使うユーティリティなどもコンパクトにしてしまうのがいいかもしれません。

 

 

関数のInput/Outputピンを楽に増やす!

とある構造体「Structure」の一部のメンバ変数のみゲットしたい場合があるとします。

※ 構造体については公式のドキュメントを参照ください。

structgetterfirst

関数のOutputの欄にあるNewをクリックして変数名を指定し、型を合わせて一つ一つOutputのPinを作っていくのもいいですが、

以下のようにPinからドラッグでReturnノード上にもっていくと「Add Pin to Node」というのが出てきます。

structgetteraddpin

Returnノード上でドラッグ&ドロップをするとなんと

autoaddpin

自動で変数名と型を引き継いでOutput Pinを作ってくれます。

これを利用してほぼマウス操作のみの4操作だけで下のようなGetterが作れてしまいます。

structgetterfinal

 

同様にInput Nodeにドラッグ&ドロップをすることでInput Pinが作れてしまいます。

structsetter

structsetterfinal

とっても簡単ですね。

 

 

以上、ちょっとだけ幸せになれるブループリントでした。