#我々はそろそろ、真剣にBlueprintについて考えるべきではないか
あなたは、本当にBlueprintをご存知だろうか。
Blueprint、もはやこれは、地球規模のプログラミング言語なのだ。
あなたも無関心ではいられない、無関心であることがノードベースプログラミング迫害につながっているのだ。
ゲーム業界ではかなりノードベースプログラミングが迫害されているというほうこくがある。
我々は長期にわたり、さまざまなBlueprintの潮流を体感し続けてきた。
ゲーム業界はBlueprint無しでは生きられなくなるだろう。
今回公開する記事を通し、その事実を今一度、思い出していただきたい。
【あなた方の知りたくない真実】 MaterialはBlueprintとは別のものであり、組み方とかが違う
##イベントドリブン
###for Unity(MonoBehavier)
インプットを取得するには、以下のようなコードを書く必要がある。
void Update () {
if (Input.GetKeyDown("return")){
//エンターキーが押されたときの処理
}
}
###for UnrealEngine(Blueprint)
インプットを取得するイベントは、標準で組み込まれているのである。
登録したキーが押されたときに発火するActionMappingsや、スティックの倒され具合を正規化してくれるAxisMappingsもあり、わざわざ余計なことをしなくても、体感的に正しくやってくれるのである。
【あなたが知りたくない真実】 一見Blueprintには見えないが、LevelもBlueprintの一部である。
UIについても、MonoBehavierだと、「表示されるべき値が変更されたときに、UIの値も変更する」といった、気の利くことはやってくれない。常時UIを書き換えるか、気の利くことをやってくれるかもしれないUniRxを使用するかである。
Blueprintでは、表示されるべき値を監視することで、「値が変更されたときに、UIの値も変更する」という、気の利くことをやってくれるのであり、もっとUIを最適化したければ、イベントドリブンで更新することも簡単なのである。
【あなただけが知らない真実】
イベントディスパッチャーも、ブループリントインターフェイスも、発信されたものを受信して行動しているので、ReactiveExtensionsであるのだ。
##便利な機能
あなたは回数を限定して実行するときにDoNを使用することで、
void Update () {
if (counter > 10) { return; }
}
if文とカウンター変数を省略する事ができるし、
一度だけ実行するときにDoOnceを使用することで、
void Update () {
if (flag == true) { return; }
}
if文とフラグを省略する事ができる。
【気づきづらい真実】 Unityのオブジェクトは多重継承だが、UnrealEngine4のアクターは単一継承である
MathExpressionは画期的な機構である。数式を記入するだけで、なんかいい感じにコーディングをやってくれる。
もはや複雑な計算を実現するために、多重カッコのスパゲッティーに悩まされることもないのだ。