powerful of blueprint visual scripting
TRANSCRIPT
![Page 1: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/1.jpg)
Powerful of Blueprint Visual Scripting
知られざるブループリントについて
フリーランスゲームクリエイターコミュニティサポーター
中村匡彦
Unreal Fes 2015 Osaka
![Page 2: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/2.jpg)
自己紹介
名前 : 中村 匡彦
Twitterだと @aizen76
元々はゲームプログラマー(3DアクションゲームやMMO作ってた)
去年のアンリアルフェスでも喋らさせていただきました。
普段はフリーでゲームを作るお仕事をしたり、ゲームの作り方を教えたり。
Unreal Engine歴は実はまだ1年だけ。
![Page 3: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/3.jpg)
ところで皆さん。ブループリントどうですか?
![Page 4: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/4.jpg)
実際のところ色々な意見があると思いますが…
![Page 5: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/5.jpg)
今回はブループリントとビジュアルスクリプティングの良いところを実演を混じえて紹介していきたいと思います!
![Page 6: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/6.jpg)
ショートカットについて
![Page 7: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/7.jpg)
かなりのショートカットがあります
Blueprint EditorCheat Sheet
https://docs.unrealengine.com/latest/attachments/Engine/Blueprints/UserGuide/CheatSheet/BlueprintCheatSheet-1989117414.pdf
※公式です
![Page 8: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/8.jpg)
ショートカットを覚えるのはツールの基本
• どれだけ使い勝手のいいツールでも、ショートカットを覚えないと使いにくいのは当たり前
• 煩わしいと思った操作ほど楽に操作出来るかも?
• チートシートを印刷してモニターの近くに貼るのはいいかも。
![Page 9: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/9.jpg)
コメント機能
![Page 10: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/10.jpg)
ただのコメントではない!
• UE4のコメント機能はコメントだけの使いみちではなくて、ノードを整理する機能として使えます。
• グルーピング化、カラー変更、ズームアウトしても読めるバブルコメントなどなど。
• コメント内コメントも可能。ちゃんと深度設定も出来ます。
![Page 11: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/11.jpg)
再ルートノード
![Page 12: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/12.jpg)
ノードの線を再度ルーティングする時に
• ノードピンの線を固定出来る仕組み。複数のピンの線をひとつにまとめることも。
• 沢山のケーブルを束ねる結束バンドのイメージ。線が複雑になってきたらこれで綺麗にしましょう。
![Page 13: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/13.jpg)
ノードの折り畳み
![Page 14: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/14.jpg)
複雑なノードでも一発で折り畳めます
BEFORE AFTER
![Page 15: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/15.jpg)
関数化、マクロ化も一発
関数へ折り畳む マクロへ折り畳む
![Page 16: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/16.jpg)
定期的にノードを整理しましょう
• ソースコードなどと同じようにノードも整理しないとスパゲッティになります。
• 見た目で言えばソースコードよりもノードは酷いか一発でわかってしまうので、後で見た人が苦労しないようなノード作成を心掛けましょう。
• ブループリントにはここまで紹介した機能だけでも十分にノードを整理出来る機能が備わっているはずです。
![Page 17: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/17.jpg)
基本フロー制御ノード
![Page 18: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/18.jpg)
覚えると非常に便利な基本フロー制御ノード
• 分岐を行なうBranchノードやループをするForEachLoopノードも基本制御ノードです。
• 内部的にはマクロを用いて実装されています。
• 地味だけど便利な縁の下の力持ちタイプなナイスガイ
• 今回はBranchやLoopとSwitch以外を紹介します。
![Page 19: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/19.jpg)
Sequence
• 上から順番にシーケンスな流れとしてノードを実行してくれるノード。
• シンプルで分かりやすいですが、ノードの見た目を整理するのに必須なノード。
• Sequenceなしでノードを作っていると、横にとても長くなってスパゲッティになりがち。
1
2
3
![Page 20: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/20.jpg)
DoN & DoOnce
• N回実行するか、もしくは一度だけフローを実行してくれるノード。
• フラグや変数を用いなくても回数制限をかけたい時に便利。
• 一度Resetを実行すれば再度同じ条件で実行してくれます。
• DoOnceはResetかけるまで実行しないという使い方も可能。
![Page 21: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/21.jpg)
FlipFlop
• FlipFlop回路と聞けばわかる人も結構いるはず。
• ノードが実行されるたびにルートが切り替わり、AとBが交互に実行されます。
• 何かに入った時と出た時で交互に違う処理をさせたい時にとても便利!
![Page 22: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/22.jpg)
Gate
• その名前の通り、ゲートが開いている時にのみ処理するノード。
• Enterピンを通っている間にOpenピンが処理されるとその間に処理が走ります。
• Closeさせると処理が止まる。Toggleの場合は交互に入れ替わります。
![Page 23: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/23.jpg)
MultiGate
• 名前こそGateとついているが、さきほどとは別物のノード。
• ノードが実行される度にOutピンの上から順番に実行されます。
• Resetをかけると実行ピンが最初からになり、Is Randomでランダムに実行されます。Loopもチェックするとループします。
![Page 24: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/24.jpg)
Delay & Retriggerable Delay
• 指定した秒数まで一度停止してからその後に実行してくれるノード。
• 一度ノードの実行が完全に止まったように見えますが、ちゃんと実行してくれます。
• Retriggerable Delayは再度実行した場合、時間をリセットしてから実行してくれます。
![Page 25: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/25.jpg)
タイムラインノード
![Page 26: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/26.jpg)
Timeline & カーブエディター
タイムラインノード カーブエディター
![Page 27: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/27.jpg)
これぞビジュアルスクリプトの真骨頂!
• Timelineノードはこれぞまさしくビジュアルスクリプティングだからこそ出来るモノ。
• カーブエディターと合わせてリアルタイムに動きを作成する事が出来ます。
• Float,Vector,Color以外にEventトラックも作成出来ます。自動再生、ループなども簡単。
動く床やオブジェクトがすぐ作れる!
![Page 28: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/28.jpg)
ブループリントのデバッグ
![Page 29: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/29.jpg)
ブループリントのデバッグ
ブレークポイントとウォッチ ブループリント用デバッガー
![Page 30: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/30.jpg)
ブループリントデバッグのデモ動画
![Page 31: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/31.jpg)
ブループリントの差分とマージ
![Page 32: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/32.jpg)
ブループリントの差分確認
![Page 33: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/33.jpg)
差分確認のデモ動画
![Page 34: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/34.jpg)
ブループリントのマージ(3Way方式)
![Page 35: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/35.jpg)
マージのデモ動画
![Page 36: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/36.jpg)
ちなみにブループリントはテキストでコピペも可能
ノードを選択してコピー メモ帳にペースト
![Page 37: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/37.jpg)
ビジュアルスクリプトだけどコードを扱うのと変わらない配慮
![Page 38: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/38.jpg)
コンストラクションスクリプト
![Page 39: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/39.jpg)
コンストラクションスクリプトとは?
• オブジェクトが生成されるタイミングで実行されるグラフ。
• ゲームを再生していなくても実行される唯一の存在。
• レベル内でアクター毎に違う挙動を設定する事が出来る。
![Page 40: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/40.jpg)
ゲームを再生していなくても実行する
装備品のアタッチをする 各種エディター内でも反映!
![Page 41: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/41.jpg)
ダイナミックマテリアルインスタンス
コンストラクションスクリプトで設定しておくと…
ゲームを実行する前に動的にマテリアルを変更できるようになる!
![Page 42: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/42.jpg)
見た目の調整だけでゲームを実行したくないという場合もある
![Page 43: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/43.jpg)
本来ゲームを実行しないと確認出来ないものも確認が可能!
![Page 44: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/44.jpg)
数学式
![Page 45: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/45.jpg)
数学式(Math Expression)
• ノードだけで複雑な式を組み立てるのはとても大変。
• そこで登場したのがテキストから数学式を自動で生成するノード。
• かなり複雑な数式でも書ける。超便利なのでどんどん使いましょう!
![Page 46: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/46.jpg)
ベクトル、変数、数学関数などを自動的に認識!
![Page 47: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/47.jpg)
複雑な論理演算もOK!
![Page 48: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/48.jpg)
少しでも面倒な式は数学式ノードに書きましょう!
![Page 49: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/49.jpg)
乱数
![Page 50: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/50.jpg)
乱数(ランダムストリーム)
• 通常の乱数と基本的には同じ。IntやFloatやVectorなど沢山の乱数がとれる。
• ランダムストリームの初期シード値を固定すれば何度やっても同じ結果に。
• 使うだけならとても簡単!
![Page 51: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/51.jpg)
バウンディングボックス内のVectorをランダムに!
コンストラクションスクリプトで… ボックス内に毎回ランダムで配置
![Page 52: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/52.jpg)
変数のスライダーとクランプ
![Page 53: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/53.jpg)
変数のスライダーとクランプ
• 一部の変数はエディター上でスライダー操作が出来るようになっています。
• 変数を公開すれば自動的にスライダーになります。
• スライダー操作はリアルタイムの変化を確認出来て、とても便利です!
![Page 54: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/54.jpg)
スライダー範囲を設定と値の上限下限値でクランプ
マウスでグリグリと横にスライド 変な値が入っても自動クランプ
![Page 55: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/55.jpg)
Vectorの3Dウィジェット
![Page 56: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/56.jpg)
Vector変数はビューポート上に表示出来る
ベクトルの変数でチェックする 3Dウィジェットが表示される!
![Page 57: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/57.jpg)
構造体
![Page 58: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/58.jpg)
構造体について
• ユーザー定義の構造体を作成すると、自動的に3個のノードが生成されます。
• Break系とMake系とSet members in系ノード。
• これらのノードを使って構造体の操作を行ないます。
![Page 59: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/59.jpg)
不要な構造体メンバーは隠す事が可能
詳細からチェックを外す チェックされているメンバーのみに
![Page 60: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/60.jpg)
更にこんな機能も…
![Page 61: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/61.jpg)
直接構造体ピンからメンバーを操作も可能!
ノードの分割というのが可能 メンバーが出現!
![Page 62: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/62.jpg)
ぶっちゃけ、こちらの方が便利!ノード作らなくていいし…
![Page 63: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/63.jpg)
好きな方を使いましょう!ケースバイケースという事で…
![Page 64: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/64.jpg)
マクロの活用法
![Page 65: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/65.jpg)
マクロって関数と比べてどうなの?
• 関数があるのになぜマクロが必要なのか?
• マクロを使うタイミングがよくわからない…
• ぶっちゃけ全部関数でいいのでは?
![Page 66: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/66.jpg)
徹底比較!関数 VS マクロ
関数
• 基本的にターゲット(誰に対して行なうか)を必要とする。
• 必ず実行前にコンパイルをする必要がある。
• 純粋関数でない限り、実行線は必ず入出力ともひとつずつのみ。
• Latentノード使用不可。
マクロ
• 親クラスを指定するので、ターゲット指定が必要ない。
• 実はインライン展開されるので、コンパイルが必要ない。
• 実行線を入出力共にいくらでも持たせる事が可能。
• Latentノード使用可能。
![Page 67: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/67.jpg)
わかりやすいマクロの有効活用例(CompareInt)
![Page 68: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/68.jpg)
そもそも使用目的が違う
• 関数は外部に機能を公開するために使用する。
• マクロは継承されたクラス内でのユーティリティとして使う。
• 関数は10台の車を生産するのにひとつの工場で作る。
• マクロは10台の車を10の工場で1台ずつ作る。
• 最終的にインライン化されるマクロの方が効率的になる。
![Page 69: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/69.jpg)
AnswerHubで、とても詳しい解説がありました
https://answers.unrealengine.com/questions/30834/whats-the-difference-between-blueprint-macros-and.html
![Page 70: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/70.jpg)
マクロの方が制限が少なく、ビジュアルスクリプトの恩恵が強い!
![Page 71: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/71.jpg)
用法用量を守って、正しくマクロをお使いください
![Page 72: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/72.jpg)
キャスト VS インターフェース
![Page 73: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/73.jpg)
キャスト便利過ぎー!問題
• キャストは手軽に別のブループリントの情報が参照出来て便利。
• 便利過ぎて多用し過ぎてませんか?
• キャストは便利ですが、それなりに諸刃の剣です。
![Page 74: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/74.jpg)
キャストの問題点
• キャストは失敗してしまう可能性があり、エラーハンドリングミスによってはゲームが正しく実行されない可能性がある。
• キャストした側とされる側で依存関係を持つ事になる。
• 依存関係を持ったBP同士は双方のコンパイルが必須になり、依存関係が複雑になればコンパイル速度は無視出来ないものになる。
![Page 75: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/75.jpg)
インターフェース関数を使おう
• インターフェースは呼び出し元に依存せず安全に呼び出せます。
• ターゲットがアクターである必要ですらなく、安全にハンドリングしてくれます。
• 何よりも依存関係もなくコンパイル時間が長くならない!
![Page 76: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/76.jpg)
インターフェースによるカプセル化
• 本来インターフェースはオブジェクト指向言語由来の考え方であり、今の時代においても有効な手段。
• カプセル化は情報隠蔽(Private化)の事だけではありません。
• インターフェースにおけるカプセル化は、オブジェクトを抽象化し、依存関係をなくすものですが、プロのゲームプログラマーの方でもこれを理解されずに使っている方が多く、少し勿体なく思います。
![Page 77: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/77.jpg)
更にブループリント インターフェースのメリット
• 相手が誰であろうと、インターフェースを継承していようがなかろうがなんと誰でも安全にインターフェース呼び出しが出来る!
• C++の仮想関数と同様の使い方が出来ます。ポリモーフィズムによるアクターごとによる多態性の実現!
• 相手の詳細を知らなくても呼び出せるので、ブループリント間での通信やメッセージハンドリングが出来る!
![Page 78: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/78.jpg)
インターフェースについてもっと詳しく知りたい方はこちら!
http://unrealengine.hatenablog.com/entry/2014/09/23/201458
![Page 79: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/79.jpg)
用法用量を守って、正しくキャストお使いください
![Page 80: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/80.jpg)
まとめ
![Page 81: Powerful of blueprint visual scripting](https://reader034.vdocuments.net/reader034/viewer/2022050818/55a6db4a1a28abbe728b45a6/html5/thumbnails/81.jpg)
ブループリントは常に進化し続けています
• 本日公開したTipsはまだまだ一部。
• UE4同様にブループリントも常に進化しており、どんどん便利に。
• ビジュアルスクリプトに最初は慣れないかもしれませんが、一度覚えてしまえば普通にコーディングするよりも生産性が上がります。
ブループリントでトライ&エラーを早めてゲーム作りを素早く!楽しく!