今回からいよいよブループリントの実習を開始したいと思います。ねらいは、あくまでも、 動画チュートリアルで (毎回は) 詳しく解説されるとは限らない基本的な知識や技術を得ることです。
今回はまず、プログラミング学習開始時によく行われる伝統的な儀式に則り、ブループリントで Hello, World を表示してみたいと思います。
それでは前回作成した MyCube のブループリント エディタを開きましょう。
中央に置かれている 3 つのノードは、最初からよく使われるものとして UE4 があらかじめ親切心で置いてくれているものです。 ノードとは何かあらためて説明すると、下の画像で赤く囲っているような長方形状のもののことを言い、ブループリントの最小構成要素がノードである、ということになります。(ちなみに、この画像には、左下のノードを入れて全部で10個のノードがあります。)
簡単に言えば、ブループリントではノードを組み合わせて (つなぎ合わせて) ねらいの動作や機能を作り上げていくことになります。ブロックを組み合わせて何かを形作る玩具をご存知だと思いますが、そのブロックに相当するのがノードです。
今回は、最初から用意されているこれら 3 つのノードから、[イベント BeginPlay] というノードを使ってみます。
この [イベント BeginPlay] というノードは、「ゲームが開始された」というイベントが発生したら、必ず呼び出される (実行される) ノードです。言い換えると、ゲームが開始されたら、この [イベント BeginPlay] というノードが呼び出されて、このノードに接続している他のノードが実行されることになります。
では、実際にこの [イベント BeginPlay] に他のノードを接続してみましょう。今回は Hello, World! という文字列を表示するので、文字列を表示できるノードを接続することになります。それは [Print String] (文字列を表示) というノードです。
それでは、[イベント BeginPlay] ノードの実行ピン (ノードの中の右側にある白い小さな多角形的な矢印) をマウスで左クリックし、クリックしたままの状態でドラッグしてから、左マウスボタンをリリースしてください (左マウスボタンを放す) 。次のように検索のためのウィンドウが開けばOKです。
上の状態のまま、検索窓に print とタイプしてみましょう (半角で)。
すると、上のように print が含まれるノードがすべて表示されるので、そこから Print String (文字列を表示) をクリックします。
すでに Print String ノードには、Hello という文字列が入っていますね。せっかくですから、これを Hello, World! にかえてみましょう。
そして、左上の [コンパイル] というボタンをクリックしてください。
[コンパイル] のボタンにチェックマークが入りました。コンパイルが完了したということです。この コンパイルというのは、プログラミングした結果をコンピュータが分かるような形式のデータに内部的に変換することです。ブループリントは人間の目には分かりやすい形式になっていますが、この形式のデータでは機械には分かりづらいのです。
さて、コンパイルが完了したら、ついでに保存してから、ゲームを実行してみましょう。もちろん、PIE (Play In Editor) を使いましょう。次のように [プレイ] のボタンをクリックしましょう。
下の画像のように画面左上に Hello, World! と表示されたと思います。
さて、ここでこの簡単な Hello World のブループリントがどのような仕組みになっているのか説明しておきたいと思います。まず、下の画像でグラフ (ノードが集まったもの) をもう一度確認してみましょう (グラフは少し移動して見やすくしています。ノードを移動するには左クリックしながらドラッグします)。
まず、グラフの実行の流れは非常に重要です。簡単なことなのですが、最初にしっかり覚えておきましょう。上の画像のグラフが実行される順番は、次のようになります。
[イベント BeginPlay] → [Print String] ノード
実行の順番は、実行ピンどうしを結び付けているワイヤーに沿って左から右です。このことは非常に重要です。実行ピンどうしのつながりをたどっていけば、グラフの実行順が分かることになります (もっと複雑なグラフが出てきた時にもう一度このことはとりあげたいと思います)。
具体的に実行の順番をたどってみましょう。まず、プレイボタンを押すとゲームが始まるので、[イベント BeginPlay] ノードが発動します (実行されます)。[イベント BeginPlay] ノードが発動すると、この BeginPlay の実行ピンから発して [Print String] ノードにつながっているワイヤー (画像の中の白い線) によって、[Print String] ノードが実行されます。この [Print String] ノードは、文字列を表示するためのノードですが、これには Hello, World! というデータが埋め込んでおきましたので、それがゲーム画面に表示されることになります。
今回は、単に Hello, World! を表示するだけでしたが、実は、これを発展させることによって、ブループリントで使われるさまざまな技法や概念が分かりやすくなります。次回はそれについて考えてみます。