Unreal Engine の ブループリント ビジュアル スクリプティング システムは、ノードベースのインターフェースを使用して Unreal Editor 内からゲームプレイ要素を作成するゲームプレイ スクリプティング システムです。一般的な多くのスクリプト処理言語と同様に、このシステムは、Engine でオブジェクト指向 (OO) のクラスやオブジェクトを定義するために使用します。Unreal を使う場合、ブループリントを使用して定義したオブジェクトは通常、単純に「ブループリント」と呼びます。
非常に柔軟かつパワフルなシステムで、一般的にプログラマーしか使用できなかったコンセプトとツールを、デザイナーが事実上すべて使えるようになります。さらに、Unreal Engine に導入されている C++ でブループリント特有のマークアップを使用すれば、プログラマーはデザイナーが展開する基本システムを作成することができます。
ブループリントの仕組みを含めたブループリントの概要、およびブループリントの UE3 Kismet および UnrealScript との関連性については ブループリントの概要 で詳細を参照してください。
ブループリントの仕組み
ブループリントは基本的に、スクリプトをゲームに視覚的に追加していくシステムです。ノード、イベント、関数、そして変数をワイヤーで接続して複雑なゲームプレイ要素を作成することができます。
ブループリントは、オブジェクト構築、個々の関数、一般的なゲームプレイ イベントなど、様々な目的を持つノードのグラフを使って機能します。これらのノードは各インスタンスに固有で、動作や様々な機能を実装します。
一般的なブループリントの種類
作業でよく使われる種類は、Level ブループリント と Blueprint クラス です。
この 2 種類の他にも、ブループリントの種類 には ブループリント マクロ や ブループリント インターフェース があります。
Level ブループリント
Level ブループリントは Unreal Engine 3 の Kismet と同じ役目を果たし、同じ性能を持っています。レベルごとに専用の Level ブループリントが存在し、レベル内でのアクタへの参照と操作、Matinee アクタを使用したシネマティックスの制御、レベル ストリーミングやチェックポイントやその他のレベル関連システムの管理が可能になります。さらに Level ブループリントは、レベル内に配置された Blueprint クラス (次のセクションで例を紹介します) と相互作用し、例えば変数の読み取り / 設定や中に含まれるカスタム イベントのトリガーなどが可能です。
ブループリント クラス
Blueprint クラスはドア、スイッチ、収集アイテム、破壊される景色などのインタラクティブなセットの作成に理想的です。上の画像では、ボタンとドアのセットがそれぞれ別のブループリントで、各ブループリントにはプレイヤー オーバーラップ イベントに反応し、アニメートさせ、サウンド エフェクトを再生し、マテリアルを変更するために必要なスクリプトが含まれています (例えば、ボタンは押されると光ります)。
この場合、ボタンを押すとドアのブループリント内のイベントがアクティブになり、ドアを開きます。ただし、ドアは他の種類のブループリントあるいは Level ブループリント シーケンスでも簡単にアクティブにすることができます。ブループリントは独立しており、レベルにドロップして構築することができ、しかも最低限の設定で簡単に機能します。つまり、プロジェクト全体で使用するブループリントを編集すると、各インスタンスが更新されます。
ブループリントのその他の機能
ここまで Level ブループリントと Blueprint クラスについて説明しました。ブループリントは次のようなこともできます。
コンストラクション スクリプトを使用したカスタマイズ可能なプレハブの作成

コンストラクション スクリプトは、ゲームプレイ以外でそのアクタがエディタでの配置または更新が行われた時に実行される Blueprint クラス内のグラフのタイプです。マテリアルを自動更新してポイントライト コンポーネントの色や輝度に一致させる照明設備、あるいはフォーリッジ メッシュをエリア全体にランダムに散らすブループリントなど、背景アーティストが早く作業できるようなカスタマイズが簡単にできるプロップを作成する場合に便利です。
コンテンツ サンプル マップには、長い部屋にそれぞれサンプルが含まれていますが (上図)、実は多数のコンポーネントからなる 1 つのブループリントで構成されています。ブループリントのコンストラクション スクリプトは、ブループリントの [Details (詳細)] パネルに公開されるパラメータに基いて、様々なスタティック メッシュやライトを作成し調整します。それぞれのコンテンツ サンプル マップを作成したら、デモルームのブループリントで長さ、高さ、作成する部屋の数の値 (その他いくつかのオプション) を設定します。これで部屋全体の設定が完了です。
このようなブループリントは初期の作成に時間がかかりますが、使用頻度が高いのであれば、レベルのビルド時間を短縮でき、変更も楽に行えるので、使う価値はあります。
プレイ可能なゲーム キャラクターの作成

Pawns (ポーン) もまた Blueprint クラスの 1 つで、ブループリント グラフでプレイ可能な キャラクター に必要なエレメントをまとめることができます。カメラ の挙動を操作し、マウス、コントローラ、タッチスクリーン用に入力イベントを設定し、スケルタル メッシュ アニメーションを処理するための Animation Blueprint アセットを作成することができます。
新規作成された Character ブループリント には、動き回る、ジャンプする、泳ぐ、落ちるという動作に必要なビヘイビアのほとんどがビルトインされたキャラクター コンポーネントが付いているので、希望するキャラクターの制御方法にあった入力イベントの追加だけが必要になります。
「キャラクターの移動を設定する」チュートリアルを参照してください。
HUD の作成

ゲームの HUD の作成にブループリント スクリプトを使用することができます。イベント シーケンスと変数を含むことができる点で Blueprint クラスと似ていますが、直接レベルに追加されるのではなくプロジェクトの GameMode アセットに割り当てられます。
別のブループリントから変数を読み取るように HUD を設定し、ヘルス値バーの表示、スコア値の更新、オブジェクティブ マーカーの表示などに使用することができます。HUD は、クリック可能なボタン、またはモバイル ゲームであればタッチ入力に反応するボタンのようなエレメント用のヒットボックスの追加にも使用できますし、
ブループリントでも可能ですが、Unreal Motion Graphics システムはデザイナが UI をレイアウトしやすいようにブループリント ビジュアル スクリプトがベースとなっています。
ブループリント エディタとグラフ
Level ブループリントでも Blueprint クラスでも、ブループリント エディタ の ブループリント エレメント を使用します。
作業しているブループリントのタイプに合わせて、様々な ブループリント エディタ が利用可能になります。ブループリント エディタ のメイン機能は Graph モードです。Graph モードの中央の [Graph (グラフ) タブを使ってブループリントのネットワークを配置します。
ブループリントのサンプルとチュートリアル
以下のリソースで、ブループリント システムについてさらに学習することができます。