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

More Related Content

What's hot

What's hot (20)

UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計
 
C++コードはいらない!UE4で作るお手軽マルチプレイ ネットワークゲームについて
C++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについてC++コードはいらない!UE4で作るお手軽マルチプレイネットワークゲームについて
C++コードはいらない!UE4で作るお手軽マルチプレイ ネットワークゲームについて
 
低スペックPCでも動く!UE4の設定&歩き方
低スペックPCでも動く!UE4の設定&歩き方低スペックPCでも動く!UE4の設定&歩き方
低スペックPCでも動く!UE4の設定&歩き方
 
Unity5とUE4の比較
Unity5とUE4の比較Unity5とUE4の比較
Unity5とUE4の比較
 
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
 
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろうUE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
 
映像制作者向け UE4で作る映像制作ワークショップ
映像制作者向け UE4で作る映像制作ワークショップ映像制作者向け UE4で作る映像制作ワークショップ
映像制作者向け UE4で作る映像制作ワークショップ
 
Unityと.NET
Unityと.NETUnityと.NET
Unityと.NET
 
ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門ゆるゆるUE4ネットワーク入門
ゆるゆるUE4ネットワーク入門
 
はじめてのAI~ 愛のあるAIを作ろう
はじめてのAI~ 愛のあるAIを作ろうはじめてのAI~ 愛のあるAIを作ろう
はじめてのAI~ 愛のあるAIを作ろう
 
徹底比較Unreal engine4&unity5
徹底比較Unreal engine4&unity5 徹底比較Unreal engine4&unity5
徹底比較Unreal engine4&unity5
 
ゲームサウンドクリエイター育成にUnreal Engine4!神戸電子専門学校での導入実例
ゲームサウンドクリエイター育成にUnreal Engine4!神戸電子専門学校での導入実例ゲームサウンドクリエイター育成にUnreal Engine4!神戸電子専門学校での導入実例
ゲームサウンドクリエイター育成にUnreal Engine4!神戸電子専門学校での導入実例
 
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
 
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive OnlineUE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
 
Unityは神,Unrealは現実
Unityは神,Unrealは現実Unityは神,Unrealは現実
Unityは神,Unrealは現実
 
【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity
 
UE4映像制作ハンズオン@大阪
UE4映像制作ハンズオン@大阪UE4映像制作ハンズオン@大阪
UE4映像制作ハンズオン@大阪
 
UE4ローカライズ事例 (UE4 Localization Deep Dive)
UE4ローカライズ事例 (UE4 Localization Deep Dive)UE4ローカライズ事例 (UE4 Localization Deep Dive)
UE4ローカライズ事例 (UE4 Localization Deep Dive)
 
【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版
 
UnrealFest2014_ようこそアンリアル・エンジンの世界へ
UnrealFest2014_ようこそアンリアル・エンジンの世界へUnrealFest2014_ようこそアンリアル・エンジンの世界へ
UnrealFest2014_ようこそアンリアル・エンジンの世界へ
 

Viewers also liked

Viewers also liked (7)

GGJ2017 事前勉強会 UE4編
GGJ2017 事前勉強会 UE4編GGJ2017 事前勉強会 UE4編
GGJ2017 事前勉強会 UE4編
 
UE4でパノラマVRをやってみよう
UE4でパノラマVRをやってみようUE4でパノラマVRをやってみよう
UE4でパノラマVRをやってみよう
 
Unreal engine 4でのリアルタイムセルルック3DCGアニメーション
Unreal engine 4でのリアルタイムセルルック3DCGアニメーションUnreal engine 4でのリアルタイムセルルック3DCGアニメーション
Unreal engine 4でのリアルタイムセルルック3DCGアニメーション
 
ゲームジャムでの チーム制作における 大事なこと
ゲームジャムでのチーム制作における大事なことゲームジャムでのチーム制作における大事なこと
ゲームジャムでの チーム制作における 大事なこと
 
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについてゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
 
モバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイルゲーム制作について
モバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイルゲーム制作についてモバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイルゲーム制作について
モバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイルゲーム制作について
 
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則についてUE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
UE4の攻略方法を伝授! より効率よく楽しく学ぶ ための鉄則について
 

Similar to Powerful of blueprint visual scripting

Similar to Powerful of blueprint visual scripting (20)

Unreal Engine 4 Education 2 UnityとUE4の違いは?
Unreal Engine 4 Education 2 UnityとUE4の違いは?Unreal Engine 4 Education 2 UnityとUE4の違いは?
Unreal Engine 4 Education 2 UnityとUE4の違いは?
 
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
 
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
 
【UNREAL FES 2015 OSAKA】インタラクティブスタジオ 1-10designの考えるアンリアルエンジンの可能性
【UNREAL FES 2015 OSAKA】インタラクティブスタジオ 1-10designの考えるアンリアルエンジンの可能性【UNREAL FES 2015 OSAKA】インタラクティブスタジオ 1-10designの考えるアンリアルエンジンの可能性
【UNREAL FES 2015 OSAKA】インタラクティブスタジオ 1-10designの考えるアンリアルエンジンの可能性
 
「宴」まとめ(2016年7月23UniBoookLT大会)
「宴」まとめ(2016年7月23UniBoookLT大会)「宴」まとめ(2016年7月23UniBoookLT大会)
「宴」まとめ(2016年7月23UniBoookLT大会)
 
ゲーム開発で使えるかもしれないレイアウトデザイン
ゲーム開発で使えるかもしれないレイアウトデザインゲーム開発で使えるかもしれないレイアウトデザイン
ゲーム開発で使えるかもしれないレイアウトデザイン
 
ゲームの仕様書を書こう2 仕様書に記載する機能内容
ゲームの仕様書を書こう2 仕様書に記載する機能内容ゲームの仕様書を書こう2 仕様書に記載する機能内容
ゲームの仕様書を書こう2 仕様書に記載する機能内容
 
Unreal Studio+機械CADのワークフロー
Unreal Studio+機械CADのワークフローUnreal Studio+機械CADのワークフロー
Unreal Studio+機械CADのワークフロー
 
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
 
Unity用ビジュアルノベルツール「宴3」開発帰還報告書
Unity用ビジュアルノベルツール「宴3」開発帰還報告書Unity用ビジュアルノベルツール「宴3」開発帰還報告書
Unity用ビジュアルノベルツール「宴3」開発帰還報告書
 
20111112 kofblender
20111112 kofblender20111112 kofblender
20111112 kofblender
 
ARLT_10_Unityと昔のAR会
ARLT_10_Unityと昔のAR会ARLT_10_Unityと昔のAR会
ARLT_10_Unityと昔のAR会
 
アセット作成のワークフロー
アセット作成のワークフローアセット作成のワークフロー
アセット作成のワークフロー
 
C#でアプリを作ってみよう! #ngtnet
C#でアプリを作ってみよう! #ngtnetC#でアプリを作ってみよう! #ngtnet
C#でアプリを作ってみよう! #ngtnet
 
Unity講座資料1
Unity講座資料1Unity講座資料1
Unity講座資料1
 
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
常識を疑え ゲームの企画書に望まれるものと期待されるもの (HDIfes#3 2014-6-21)
 
Unityでこんなことができる KLab×博多Tech塾
Unityでこんなことができる KLab×博多Tech塾Unityでこんなことができる KLab×博多Tech塾
Unityでこんなことができる KLab×博多Tech塾
 
ホントのホントの0から始める3Dモデリング入門
ホントのホントの0から始める3Dモデリング入門ホントのホントの0から始める3Dモデリング入門
ホントのホントの0から始める3Dモデリング入門
 
アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話
 
Prototype in Service Design
Prototype in Service DesignPrototype in Service Design
Prototype in Service Design
 

More from Masahiko Nakamura (6)

UE4のコンポジット機能をもっと深く使ってみた
UE4のコンポジット機能をもっと深く使ってみたUE4のコンポジット機能をもっと深く使ってみた
UE4のコンポジット機能をもっと深く使ってみた
 
拳と筋肉とバーチャリアリズム
拳と筋肉とバーチャリアリズム拳と筋肉とバーチャリアリズム
拳と筋肉とバーチャリアリズム
 
Bullet TrainとOculus Touchの衝撃
Bullet TrainとOculus Touchの衝撃Bullet TrainとOculus Touchの衝撃
Bullet TrainとOculus Touchの衝撃
 
第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー
 
50分でわかるブループリントについて
50分でわかるブループリントについて50分でわかるブループリントについて
50分でわかるブループリントについて
 
ゲーム開発環境の自動化
ゲーム開発環境の自動化ゲーム開発環境の自動化
ゲーム開発環境の自動化
 

Powerful of blueprint visual scripting