Language:
Page Info
Tags:
Engine Version:

ブループリントの概要

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

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

つまり、ブループリントがアンリアル スクリプトに取って替わるということでしょうか?どちらとも言えません。 過去にアンリアル スクリプトを使用したゲームプレイ プログラミングやその他すべてのゲームプレイ要素は、今でも C++ 言語で処理することができます。同時に、ブループリントはアンリアル・スクリプトの代替ではないものの、 アンリアル スクリプトで処理していた以下の目的のほとんどを達成することができます。

  • クラスの拡張

  • デフォルト プロパティの格納および修正

  • クラスのサブ オブジェクト (例えばコンポーネント) のインスタンス化の管理

ゲームプレイ プログラマーは、自分達が設定したベースクラスで作成したブループリントで使用および拡張できる便利な関数とプロパティを 公開できるようになることが期待されます。

下表は、ネイティブコードと ブループリント の比較だけでなく、エンジンの前のバージョンからの推移しやすいように、 アンリアル スクリプト (アンリアル エンジン 3 より)、 C++、ブループリントにおいて各種アスペクトがどのように処理されるのかを 比較しています。

アンリアル スクリプト (UE3)

ブループリント (UE4)

C++ (UE4)

.uc file

Blueprint Asset

.h/.cpp files

UClass

UBlueprintGeneratedClass

UClass

extends [ClassName]

ParentClass

: [ClassName]

Variable

Variable

UProperty()

Function

Graphs/Events

UFunction()

defaultproperties{}

Class Defaults

native constructor

Default Components

Components List

native constructor

ブループリント入門 では、より入門向けの概要がご覧いただけます。

ブループリントのタイプ

ブループリントは、他のブループリントが使用するインターフェースやマクロを定義するために、新規タイプからスクリプト レベル イベントの作成まで、 数種類の中のある特定用途タイプに分類されます。

Blueprint クラス

ブループリント クラス は、コンテンツ クリエーターが既存のゲームプレイ クラスに機能を簡単に追加できるアセットで、しばしば省略して ブループリント と呼ばれます。 ブループリント はコード入力ではなく、アンリアル エディタで視覚的に作成します。コンテンツ パッケージにアセットとして保存されます。 これらは実質的に、他のアクタ タイプと同様に動作するインスタンスとしてマップに配置することができる 新規のクラスまたはアクタのタイプを定義することができます。

データ専用ブループリント

データのみのブループリント は、親から継承したコード (ノードグラフ形式)、 変数、そしてコンポーネントのみを格納するブループリント クラスです。継承したプロパティは微調整や修正が可能ですが、新規のエレメントは追加できません。 基本的にこれらはアーキタイプの代わりで、デザイナーがプロパティや設定アイテムを変化させるために使用します。

データのみのブループリントはコンパクトなプロパティ エディタで編集されますが、ブループリントエディタ の機能をくまなく使用してコード、変数、またはコンポーネントを単に追加するだけで 完全なブループリントへ変換することができます。

Level ブループリント

Level ブループリントは、レベル全体のグローバルイベント グラフとしての役割を果たす、特別なタイプの ブループリント です。 プロジェクトの各レベルには、アンリアル エディタ内で編集可能な独自の Level ブループリントがデフォルトで作成されます。 ただし、新規の Level ブループリントはエディタ インターフェースによって作成されます。

レベル全体に関連するイベントもしくはレベル内のアクタの特定インスタンスは、 関数呼び出しまたはフロー制御オペレーションという形式でアクションのシーケンスを実行するために使用されます。 アンリアル エンジン 3 のキズメットの機能と酷似しているため、 アンリアル エンジン 3 を熟知しているユーザーには馴染みのあるコンセプトです。

Level ブループリント は、マチネ に対する制御メカニズム、 およびレベル内に配置されるアクタにイベントをバインドするための制御メカニズムを提供します。

ブループリント インターフェース

ブループリント インターフェース (Blueprint Interface) は、実装されていない名前だけの 1 つ以上の関数のコレクションで、 他のブループリントへ追加することができます。インターフェースが追加されたブループリントには、必ずこれらの関数が格納されます。インターフェースの 関数には、追加されるそれぞれのブループリントで機能性が与えられます。一般のプログラミングの インターフェースのコンセプトと基本的に一緒で、共通のインターフェースを通じてさまざまなタイプのオブジェクトの 共有やアクセスが可能となります。簡単に言うと、ブループリント インターフェースはブループリントの相互共有やデータの送信を可能にします。

ブループリント インターフェースは他のブループリントと同様に、エディタを使用してコンテンツ クリエーターが作成します。 しかしある程度の制限があり以下の作業はできません。

  • 変数の追加

  • グラフの編集

  • コンポーネントの追加

ブループリント マクロ ライブラリ

ブループリント マクロ ライブラリ (Blueprint Macro Library)マクロ または内蔵グラフのコレクションを保持するコンテナで、 別のブループリントにノードとして配置することができます。実行とデータ移行のための入出力の両方が付いていて、 よく使うノードのシーケンスを格納できるため、時間を短縮できます。

マクロは参照されるすべてのグラフで共有されますが、 コンパイル時の折りたたまれたノードのように、グラフへ自動的に展開されます。つまり、ブループリント マクロ ライブラリではコンパイルが必要ありません。ただし、マクロへの変更は、 これらのグラフを含んだブループリントが再コンパイルされた時に そのマクロを参照するグラフのみに反映されます。

ブループリント ユーティリティ

ブループリント ユーティリティBlutility とも呼ばれるブループリントで、 エディタの実行や機能の拡張に使用します。これらは UI のボタンとしてパラメータなしで イベント をエクスポーズすることができます。 ブループリント にエクスポーズされた全ての機能を実行する能力があり、現ビューポートで選択されたアクタ一式を実行します。

ブループリントの仕組み

ブループリントの機能はさまざまな要素で定義します。その中にはデフォルトで存在する機能もあれば、 必要な時に追加できる機能もあります。これらの機能により、コンポーネントの定義、初期化の実行、 設定操作、イベントへの対応、操作の構造化およびモジュール化、 プロパティの定義などが可能になります。

Components ウィンドウ

コンポーネントを理解すれば、ブループリント エディタ 内の [Components] ウィンドウを使ってコンポーネントをブループリントに追加することができるようになります。これにより、 CapsuleComponents や BoxComponents や SphereComponents 経由でのコリジョン ジオメトリの追加、 StaticMeshComponents または SkeletalMeshComponents の形でのレンダリングされたジオメトリの追加、 MovementComponents を利用した動作の制御を実現します。コンポーネント リストに追加されたコンポーネントは、 インスタンス変数に割り当てることによって、コンポーネントのイベントグラフや別のブループリントからコンポーネントへのアクセスを可能とします。

コンストラクション スクリプト

コンストラクション スクリプト は、Blueprint クラスのインスタンスが作成されるときに コンポーネント リストに従って実行します。Blueprint クラスのインスタンに初期化オペレーションを実行できるようにするノードグラフが含まれています。 ワールドへのトレースの実施やメッシュやマテリアルの設定などのアクションは、 コンテキスト固有のセットアップを実現するために使用することがあるので、非常に強力です。例えば、Light ブループリントでは、どのタイプのグラウンドに配置するかを決定、および メッシュ一式の中から使用する適切なメッシュを選択できます。 Fence ブループリントでは、距離をカバーするために必要なフェンスの長さを決めるために各方向にトレースを実行します。

イベント グラフ

ブループリントの イベントグラフ には、ブループリントに関連するゲームプレイ イベントに応じたアクションを実行するために、イベントと関数呼び出しを利用するノードグラフがあります。これは、ブループリントのすべてのインスタンスに共通の機能を追加するために使用します。イベントグラフは、インタラクティビティと動的反応を設定する場所です。例えば、ライトのブループリントは、LightComponent をオフにし、メッシュが使用するマテリアルを変更することでダメージ イベントに反応します。その結果、このビヘイビアはライトのブループリントのすべてのインスタンスに自動的に与えられます。

関数

関数 は、ブループリントで他のグラフから実行または呼び出しができる 特定の ブループリント に属しているノードグラフです。関数には、ノードによって指定され、単一の実行出力ピンを含む関数名がつけられた エントリーポイントがあります。関数が別のグラフから呼び出されると、出力実行ピンが有効になり、 接続されたネットワークが実行されます。

変数

変数 とは、ワールド内のオブジェクトやアクタの値または参照を保持するプロパティです。これらを含む ブループリント には内部からアクセス可能です。 また、 レベルに配置された ブループリント のインスタンスで作業をしているデザイナーが変更を加えられるように、 外部からのアクセスも可能となっています。

Tags