UNREAL→LABØ

Unreal Engine4の情報をまとめます。

【第4回】レベルブループリント

概要

今回から処理(ブループリント)について学習していきます。

まずは「レベルブループリント」を使ってみましょう。

 

レベルブループリント

レベルブループリントは各レベル(マップ)に紐づいていて、レベルごとにひとつだけ持つことができるというブループリントです。その性質から、そのレベルでしか使わない処理などを記述することが多いですね。

 

ではさっそく、「ThirdPersonExampleMap」のレベルブループリントを開いてみましょう。

ツールバーの「ブループリント」項目から「レベルブループリントを開く」を選択します。

f:id:miccak:20210426160619p:plain



 図のような「イベントグラフ」が開いたことを確認してください。

f:id:miccak:20210426160646p:plain


この場所に、処理(ブループリントの内容)を記述します。

グラフの操作はどのブループリントも共通です。
マウス右ボタンをドラッグで移動、マウスホイールで拡大縮小します。

 

 

「Begin Play」イベントを作成する。

処理させる起点となる「イベント」を作成してみましょう。

 

グラフの好きな場所を右クリックします。
ポップアップの検索ウィンドウが出現しますので「BeginPlay」と打ち込んで検索しましょう。


絞り込み検索で表示された「イベント BeginPlay」を選択します。
すると、グラフ上に「Begin Play」イベントノードが追加されるはずです。

f:id:miccak:20210426160834g:plain

f:id:miccak:20210426160910p:plain


このように、通常UE4では基本的に検索してノードを配置します。

 

配置したイベント「Begin Play」は、ブループリントが読み込まれたとき自動で実行されるイベントです。自動的に実行されるため、作成者が意図的に呼び出す必要が無いのが特徴です。

 

「読み込まれたとき」とは、どんなときでしょうか?
これは基本的に「レベル上に出現したとき」と考えておけば問題ありません。

つまりこのレベルに紐付いているレベルブループリントの場合、レベルが開始されたときに実行されることになります。

「Begin Play」は頻繁に使う重要なイベントなので、覚えておきましょう!

 

では、ゲーム開始時にメッセージが表示されるようにしてみましょう。
グラフを右クリックして「Print String」と検索して、検索結果を選択して配置します。

f:id:miccak:20210426011135p:plain
f:id:miccak:20210426011141p:plain

 

図のような「Print String」ノードがグラフに出現したら正しく配置できています。

この「Print String」は実行されると画面にデバッグメッセージを表示します。
ノードにある「In String」の内容が表示されます。

 

つづけて「Begin Play」イベントの「実行ピン(▷)」を左クリックしてホールドし、マウスを動かしましょう。実行ピンからワイヤーが伸びることを確認してください。

f:id:miccak:20210426161038p:plain


そして伸ばしたワイヤーを「Print String」の入力ピン(▷)まで伸ばしてからマウスホールドを解きましょう。ノード同士がつながるはずです。

f:id:miccak:20210426011226p:plain
f:id:miccak:20210426011228p:plain

図のように処理がつながったでしょうか。

これで「Begin Play」イベントが実行されると(ワイヤーの繋がっている処理が流れて)、接続されている「Print String」が実行されるはずです。

実行ピンでつながっていなければ、処理が実行されません。

基本ですが本当に重要なので覚えましょう!


「In String」に適当な文字をいれておきます。 

f:id:miccak:20210426161051p:plain


ここまでできたら、ツールバーの「コンパイル」を押しましょう。
図のようにチェックマークが付けば問題ありません。

f:id:miccak:20210426161102p:plain


コンパイルはファイルの保存ではありません。

保存コマンドはコンパイルの右側にあるボタンから実行します。

詳細な意味は覚える必要ありませんが、コンパイルは、作成したブループリントが実行可能かをエディタにチェックしてもらう行為と考えておきましょう。


では、プレイボタンを押して実行してみましょう。 

ブループリントエディタにある「プレイ」ボタンを実行した場合、ビューポート上ではなく、新規エディタウィンドウとしてプレイが実行される場合がありますが、そういう仕様なので問題ありません。停止するときは、ビューポートと同じように「Esc」キーを押しましょう。

f:id:miccak:20210426161311p:plain


図のように、画面左上にメッセージが表示されたでしょうか?

おめでとうございます!
作成したブループリントが正しく実行されました。

 

なお「Print String」には表示文字以外のオプション設定があります。

図のように▼ボタンで表示します。
Durationは、画面にテキストを表示する時間です。
その他、カラーなどを変更したり「Print to Screen」のチェックをOFFにして、画面表示を消すようなオプションもあります。


いろいろ変更して確認してみてください。

f:id:miccak:20210426161323p:plain


複数のノードを接続する

実行順序について学習を深めるため、複数のノード(処理)をつなげてみましょう。

f:id:miccak:20210426161338p:plain

プレイして確認します。
図のように実行順ごとにメッセージが表示されたでしょうか。

 

テキストの表示は下からはじまります

f:id:miccak:20210426161348p:plain

 

実行ピンのワイヤーに沿って処理が実行されることをイメージできるようになりましょう。

ためしに好きなだけノードを繋げてみてください。

 


「Delay」を使う

もう少しだけ処理を発展させてみましょう。
テキストを一気に表示させず、表示されるまでに少しウェイト(待機・遅延)を発生させます。

待機には「Delay」ノードを使います。

グラフの適当な場所を右クリックして検索ウィンドウを出し「Delay」と検索して配置しましょう。
図のように配置してください。

f:id:miccak:20210426161400p:plain

 

ひとつめの「Print String」実行ピンからワイヤーを伸ばして、「Delay」ノードの入力ピンに接続します。さらに「Delay」ノードのCompletedピンからワイヤーを伸ばして、2つ目(右側)の「Print String」につなげます。

f:id:miccak:20210426161412p:plain

 

図のように接続しましょう。
これで「Print String」ノードの間に「Delay」ノードが処理に組み込まれました。
このようにブループリントでは実行順序を容易に組み替えることができます。


ひとつめの「Print String」が実行されたあと、待機処理が入り、それが完了したら次の「Print String」が実行されるようになっているはずです。

待機時間は「Delay」ノードにある「Duration」で指定します(単位は秒)
0.2だとわかりづらいので2秒に変更します。

f:id:miccak:20210426161430p:plain

 

それぞれのノードを見やすくまっすぐにしておきます。

実行してみましょう。

f:id:miccak:20210426161449g:plain


ひとつめの「Print String」が実行されたあと指定秒数経過してから、つぎの「Print String」が実行されるはずです。

 

 

「Delay」を利用して、処理の順番に慣れる

「Delay」を応用すると、繰り返し風の処理を簡単につくることができます。

もうひとつ「Delay」を追加して、図のようにつなげてみましょう。

f:id:miccak:20210426161509p:plain


つなげたらコンパイルして実行してみましょう。

2つめの「Print String」のあとに待機し、再度ひとつめの「Print String」が実行されました。

このように、うまくDelay後に処理の流れを戻すことで、簡単ではありますが繰り返しのような処理を作ることも可能です。

 

ちなみにツールバーの「デバッグオブジェクトが選択されていません」というドロップダウンから当該レベルを選択することで、実行中の処理の流れを確認することができます。

f:id:miccak:20210426161520p:plain

f:id:miccak:20210426161532g:plain


ひとまずここでは、「こういう感じの処理もあるんだな」くらいで見ておけば大丈夫です。

 

今回は以上です!

次回はブループリントでキャラクターのアクションを作成していく予定です。
おつかれさまでした!


なお、処理を外したいときは、「Begin Play」から伸びる実行ピンを切っておくだけです。
「Alt」キーを押しながらワイヤーを左クリックすると切断できます。

次回は使う予定がないので切っておくことにしましょう。

f:id:miccak:20210426161609p:plain

 

 

【補足】用語

今後は説明の際、以下のようにように説明する予定です。
おおよそ予想のつくように書くつもりなので、暗記する必要はありません。
ざっくりと覚えておいていただければと思います。

f:id:miccak:20210426161746p:plain

 

 

【補足】ショートカット

適宜ショートカットを覚えていきましょう。ひとまずは以下の2つを紹介します。

処理のワイヤーを切る:
ワイヤー(あるいは実行・入力ピン)にマウスオーバーして Altキー+左クリック

「Delay」ノードを配置する:
グラフ上の好きな場所で、 Dキー+左クリック

 

 

【補足】ワイヤーがつながった状態でノードを置く

ノードの実行ピン(▷)からワイヤーを伸ばしたままマウスを離し、表示された検索ボックスからノードを配置すると、ワイヤー伸ばし元のノードとつながった状態のままで配置されます。

これからも頻繁に使う方法なので覚えておきましょう。

f:id:miccak:20210426161805g:plain