Language:
Page Info
Tags:
Engine Version:

ブループリント入門

アンリアル エンジンの ブループリント ビジュアル スクリプティング システム は、アンリアル エディタを使用したゲームプレイ エレメントの作成に、 ノードをベースとするインターフェースの概念を基礎としたゲームプレイ スクリプティング システム一式です。一般的な多くのスクリプト処理言語と同様に、エンジンでオブジェクト指向 (OO) クラスまたはオブジェクトを定義します。 UE4 を使う場合、ブループリントを使って定義したオブジェクトは通常「ブループリント」と呼ばれます。

非常に柔軟かつパワフルなシステムで、一般的にプログラマーしか使用できなかったコンセプトとツールを、デザイナーが事実上すべて使えるようになります。さらに、 アンリアル エンジンに導入されている C++ でブループリント特有のマークアップを使用すれば、プログラマーはデザイナーが展開する基本システムを作成することができます。

ブループリント アナトミーと含むブループリントの概要、およびブループリントの UE3 Kismet およびアンリアル スクリプトとの関連性については ブループリントの概要 で詳細をご覧いただけます。

ブループリントの仕組み

ブループリントは基本的に、スクリプトをゲームに視覚的に追加していくシステムです。ノード、イベント、関数、そして変数をワイヤーと接続して複雑なゲームプレイ要素を作成します。

ブループリントは、オブジェクト構築、個々の関数、一般的なゲームプレイ イベントなど、様々な目的を持つノードのグラフを使って機能します。これらのノードは各インスタンスに固有で、動作や様々な機能を実装します。

一般的なブループリントの種類

作業でよく使われる種類は、Level ブループリントと Blueprint クラスです。

この 2 種類の他にも、ブループリントの種類 には ブループリント マクロブループリント インターフェース があります。

Level ブループリントはアンリアル エンジン 3 における Kismet と同じ役目を果たし、同じ性能を持っています。レベルごとに専用の Level ブループリントが存在し、レベル内でのアクタへの参照と操作、Matinee アクタを使用したシネマティックスの制御、レベル ストリーミングやチェックポイントやその他のレベル関連システムの管理が可能になります。さらに Level ブループリントは、レベル内に配置された Blueprint クラス (次のセクションで例を紹介します) と相互作用し、例えば変数の読み取り / 設定や中に含まれるカスタム イベントのトリガーなどが可能です。

Blueprint クラスはドア、スイッチ、収集アイテム、破壊される景色などのインタラクティブなセットの作成に理想的です。上の画像では、ボタンとドアのセットがそれぞれ別のブループリントで、各ブループリントにはプレイヤー オーバーラップ イベントに反応し、アニメートさせ、サウンド エフェクトを再生し、マテリアルを変更するために必要なスクリプトが含まれています (例えば、ボタンは押されると光ります)。

この場合、ボタンを押すとドアのブループリント内のイベントがアクティブになり、ドアを開きます。ただし、ドアは他の種類のブループリントあるいは Level ブループリント シーケンスでも簡単にアクティブにすることができます。ブループリントは独立しており、レベルにドロップして構築することができ、しかも最低限の設定で簡単に機能します。つまり、プロジェクト全体で使用するブループリントを編集すると、各インスタンスが更新されます。

ブループリントのその他の機能

ここまで Level ブループリントと Blueprint クラスについて説明しました。ブループリントは次のようなこともできます。

コンストラクション スクリプトを使用したカスタマイズ可能なプレハブの作成

Construction_Script.png

コンストラクション スクリプトは、ゲームプレイ以外でそのアクタがエディタでの配置または更新が行われた時に実行される Blueprint クラス内のグラフのタイプです。マテリアルを自動更新してポイントライト コンポーネントの色や輝度に一致させる照明設備、あるいはフォーリッジ メッシュをエリア全体にランダムに散らすブループリントなど、背景アーティストが早く作業できるようなカスタマイズが簡単にできるプロップを作成する場合に便利です。

コンテンツ サンプル マップには、長い部屋にそれぞれサンプルが含まれていますが (上図)、実は多数のコンポーネントからなる 1 つのブループリントで構成されています。ブループリントのコンストラクション スクリプトは、ブループリントの [Details (詳細)] パネルに公開されるパラメータに基いて、様々なスタティック メッシュやライトを作成し調整します。それぞれのコンテンツ サンプル マップを作成したら、デモルームのブループリントで長さ、高さ、作成する部屋の数の値 (その他いくつかのオプション) を設定します。これで部屋全体の設定が完了です。

このようなブループリントは初期の作成に時間がかかりますが、使用頻度が高いのであれば、レベルのビルド時間を短縮でき、変更も楽に行えるので、使う価値はあります。

プレイ可能なゲーム キャラクターの作成

Game_Characters.png

Pawns (ポーン) もまた Blueprint クラスの 1 つで、ブループリント グラフでプレイ可能なキャラクターに必要なエレメントをまとめることができます。カメラのビヘイビアを操作し、マウス、コントローラ、タッチスクリーン用に入力イベントを設定し、スケルタル メッシュ アニメーションを処理するための Animation Blueprint アセットを作成することができます。

新規作成された Character ブループリント には、動き回る、ジャンプする、泳ぐ、落ちるという動作に必要なビヘイビアのほとんどがビルトインされたキャラクター コンポーネントが付いているので、希望するキャラクターの制御方法にあった入力イベントの追加だけが必要になります。

HUD の作成

Create_HUDs.png

ゲームの HUD の作成にブループリント スクリプトを使用することができます。イベント シーケンスと変数を含むことができる点で Blueprint クラスと似ていますが、直接レベルに追加されるのではなくプロジェクトの GameMode アセットに割り当てられます。

別のブループリントから変数を読み取るように HUD を設定し、ヘルス値バーの表示、スコア値の更新、オブジェクティブ マーカーの表示などに使用することができます。HUD は、クリック可能なボタン、またはモバイル ゲームであればタッチ入力に反応するボタンのようなエレメント用のヒットボックスの追加にも使用できますし、

上のサンプル写真はすべて UE4 で使用できるサンプル コンテンツに入っています。Content ExamplesFirst Person ShooterSwing Ninja プロジェクトでじっくりご覧いただけます。

ブループリント エディタとグラフ

Level ブループリントでも Blueprint クラスでも、ブループリント エディタ の ブループリント エレメント を使用します。

作業しているブループリントのタイプに合わせて、様々な ブループリント エディタ が利用可能になります。ブループリント エディタ のメイン機能は Graph モードです。 中央の [Graph] タブでブループリントのネットワークをレイアウトします。

ブループリントのサンプルとチュートリアル

以下のリソースで、ブループリント システムについてさらに学習することができます。

Tags