アンリアルエンジンのブループリントの基礎
アンリアルエンジンのブループリントとはノードと呼ばれる要素をつなげることで処理を行うことができるプログラミングである。
.jpg)
コードを書かずに視覚的なプログラミングができるため、習得難易度が低めであり効率よく開発を行うことができる。
まずは、アンリアルエンジンの一人称または三人称ゲームのテンプレートでプロジェクトを作ってほしい。そこからブループリントの基礎について詳しく紹介していく。
アンリアルエンジンのブループリントの基礎目次
2種類のブループリントの開き方レベルブループリントの作り方
ブループリントクラスの作り方
まとめ
目次にもどる
2種類のブループリントの開き方
ブループリントは2種類ある。
レベル(マップなどのワールド)で作るブループリントはレベルブループリントと言う。
レベルブループリントは以下のようにビューポート上部にある以下のマークを選択し、「レベルブループリントを開く」を選択することで開くことができる。
.jpg)
以下はレベルブループリントの画面。後ほど詳しく説明するが、中央のイベントグラフにノードを配置してつなげることで処理を作成していくことになる。
.jpg)
アクタ(例えばCube・キャラ・武器などのオブジェクト)で作るブループリントはブループリントクラスと言う。
ブループリントクラスを作る際は以下のようにコンテンツブラウザで右クリックして「ブループリント」→「レベルブループリントを開く」を選択する(コンテンツブラウザ内ならどこでもこの操作は可能だが、コンテンツ→StarterContent→Blueprints直下で作ると後でファイルの場所がわかりやすい)。
.jpg)
以下のような画面となるので、「Actor」を選択するとブループリントクラスを作成できる。

ファイルの名前はBP_movecubeとした(BPと頭につけることでブループリントであることが一目瞭然。また、movecubeとしたのは動くcubeを後ほど制作予定であるため)。
BP_movecubeをダブルクリックで開くと以下の画面となる。中央のイベントグラフにノードを配置して処理を作っていく。
.jpg)
この画面にならない場合もある。その場合は「フルブループリントエディタを開く」の部分をクリックすれば画面が開く。
目次にもどるレベルブループリントの作り方
レベル(マップなどのワールド)で作るレベルブループリントの作り方から紹介していく。
基本的に右クリック→必要なノードを英文字を撃ち込んで検索する流れでノードを配置していく。
今回は「スタート」という文字をビューポートに出す処理を作ってみる。
レベルブループリントを開き、イベントグラフ上で右クリックしてbe・・程度まで打ち込んで検索すれば「Event Begin Play」のノードが見つかるはずだ。
.jpg)
選択すると以下のようにノードが作成される。
.jpg)
もう1回右クリックして今度はPrint程度まで打ち込んで検索すればPrint Stringのノードが見つかるはず。
選択すると以下のように表示される。
.jpg)
「Event Begin Play」はゲーム開始時に後続のノードの処理を行うという意味である。
「Print String」はテキスト表示機能となっている。
デフォルトでは表示される文字列がHelloとなっているので「スタート」に変更してやろう。
.jpg)
続いて「Event Begin Play」の実行ピン(白い矢印部分)をクリックして「Print String」の実行ピン部分までドラッグすることでつなぐことができる。
.jpg)
実行ピンをつなぐ線は実行ワイヤーと言う。
実行ピンが繋がっている順に処理が実行され、「Event Begin Play」→「Print String」のように処理が実行される。
つまり、「ゲーム開始時にテキスト表示機能でスタートと表示する」処理を作ることができた。
ノードを作り終えたのでコンパイルを選択する。コンパイルをすることでノードをゲームで実行可能にすることができるようになる。基本的にノードに変更・追加などを加えたらコンパイルをしていこう。
ゲームを開始すると、スタートと文字が出たのが確認できる。
.jpg)
もう一度レベルブループリントを開いてみよう。
.jpg)
「Event Begin Play」は赤いノードになっているのがわかる。赤いノードはイベントと呼ばれ、処理を行うタイミングを決めることができる。
「Print String」は青いノードになっているのがわかる。青いノードは関数と呼ばれ、処理内容を決めることができる。
「イベント→関数」の形を作り処理を作成するのがブループリントの最基礎と言える事項なのでしっかり覚えておこう。
目次にもどるブループリントクラスの作り方
続いてアクタ(例えばCube・キャラ・武器などのオブジェクト)で作るブループリントクラスについて紹介していく。
とはいえ、ノードを作成し「イベント→関数」の形を作り処理を作成していく基本の流れは同じである。
まずは先ほど作成したBP_movecubeをダブルクリックした画面を開いてほしい。
.jpg)
レベルブループリントと比べて大きく異なるのは2つ。
1つ目はビューポートがあること。
以下のようにビューポートタブを選択すれば、ビューポート画面に切り替わりアクタの見た目を確認することができる。
.jpg)
とはいえ現状ではコンポーネント(アクタを構成する部品のような物)を設定していない。
レベルブループリントと異なる点の2つ目はコンポーネントのビューがあること。
ここでコンポーネントの編集・追加などを行うことができる(ここ以外でもレベル画面のビューでも編集・低下できる)。
「追加」を選択し、「キューブ」を選択しよう。
.jpg)
ビューポートの画面にCubeが作成されたのが確認できる。
.jpg)
次にイベントグラフタブを選択し、ノードの作成を行っていく。
右クリックをしてtickと入力すると、「Event Tick」のノードが出てくるのでこれを選択して作成する。
「Event Tick」は毎フレームごとに処理を行うノードである。
次に「Event Tick」実行ピンを選択しドラッグして放す。すると以下の画面が出る。
.jpg)
「AddActorLocalOffset」を検索し選択して作成する。最初に紹介したノードの作り方では後から実行ワイヤーをつなぐ必要があったが、この方法なら実行ワイヤーがつながった状態でノードを作成可能。こちらの方法も覚えておこう。
.jpg)
AddActorLocalOffsetではアクタの移動を行うノードとなっている。例えばDelta Locationの以下のYの値を1にしてみよう。
この状態でコンパイルを行ってブループリントの画面を閉じ、レベルの画面を開く。
レベルの画面で、作ったブループリントのBP_movecubeを選択し、ビューポートにドロップして配置する。
.jpg)
このままでは床に埋まっているので適当に位置を調節し、Ctrl+Shift+Sキーで保存しよう。
この状態でゲームを実行すると、Cubeが画面内でY方向に移動し続けるのが確認できる。
.jpg)
「Event Tick」+「AddActorLocalOffset」により「毎フレームごとにアクタがY方向に1移動する」処理を作ることができた。
目次にもどるまとめ
ブループリントの最基礎について紹介した。
レベルブループリントでレベル全体に関わる処理を実装することができる(例えばUIやマップの仕掛けなど)。
ブループリントクラスでアクタの処理を実装することができる(例えばキャラの移動・敵のAIなど)。
どちらのブループリントでも、「イベント」→「関数」のようにノードを組み合わせて処理を作っていく。基本的な作成の流れは同じだ。