このクイックスタートガイドでは、さまざまなコンポーネントを使ってレベル内にアクタを作成します。キャラクターがレベル内で飛行できるように、起動ビヘイビアの追加が可能な Blueprint クラスへの変換方法を説明します。Blueprint クラスへ変換することで、コンテンツ ブラウザ からレベルへのドラッグのみで数多くのジャンプ台 (Launchpad) を作成することでできるようになります。
1 - 必要なプロジェクト設定
Unreal Project ブラウザの [New Project] タブから、以下の設定で Games カテゴリから プロジェクトを新規作成 します。
サイドスクローラー
ブループリント
スターターコンテンツを有効
スケーラビリティと品質は最適なものを設定できます。
どの設定にすれば良いか分からない場合は、「プロジェクト設定」セクションを参照してください。
プロジェクトに名前を付けたら、[Create Project (プロジェクトを作成)] ボタンをクリックして作成します。
表示されたサイド スクローラ レベルの追加を開始する準備ができました。
2 - ジャンプ台を構成する
レベル エディタでジャンプ台 (Launchpad) をビルドして、ゲームプレイ ビヘイビアを追加するためにその後 Blueprint クラスに変換します。
まず、レベルの一番上のプラットフォームが見えるまで、ビューポートを移動します。
Empty Actor (空のアクタ) を使用して、ジャンプ台の要素すべてを保持するコンテナを作成します。必要な 2 つのパート (またはコンポーネント) は、ジャンプ台を表現するための形状とキャラクターがオーバーラップした時のトリガーです。
メイン ツールバーで [Modes] ボタンを押し、ドロップダウン メニューで [Select] をクリックして [Place Actors] パネルを表示します。
[Place Actors] パネルで [Basic] をクリックして Empty Actor を探します。
アクタをレベルへドラッグして、表示されているプラットフォームのどれかに配置します。
レベルでアクタを選択すると、アクタのプロパティが [Details (詳細)] パネルに表示されます。[Details (詳細)] パネルの一番上でアクタの名前を変更することができます。ボックス内をクリックして、「ジャンプ台」など名前を付けてください。
[Components] パネルで、 [Add Component (コンポーネントを追加)] ボタンをクリックして [Common] の中から [Cube] を選択します。
新しく追加した キューブ を DefaultSceneRoot にドラッグして キューブ を新しいルートにします。
Cube コンポーネントを選択して [Scale (スケール)] を (X:1.0, Y:1.0, Z:0.1) に設定します。
ここで、何かとオーバーラップすると必ずイベントを発行するBox Collision コンポーネントを追加します。[Details] パネルで、 [Add Component (コンポーネントを追加)] ボタンをクリックして ([Collision] から) [Box Collision] を選択します。
[Box Collision (ボックス コリジョン)] [Scale (スケール)] を ( X:1.25, Y:1.25, Z:9.75)、[Location (位置)] を ( X:0, Y:0, Z:200) に変更して、ボックスがジャンプ台全体とその先へ延びるようにします。
例えば、ジャンプ台全体を拡張するなどアクタのプロパティを変更する時は、[Details (詳細)] パネルの [Add Components (コンポーネントを追加)] ボタンの下の [LaunchPad (Instance)] をクリックします。
設定通りにアクタを作成したので、これをブループリント クラスに変換します。ブループリントエディタ 内でコンポーネントをさらに追加して、これまでと同じ操作でレベルのコンポーネントを調整できます。
3 - アクタを Blueprint クラスへ変換する
ブループリント内部に変更を加えるということは、新規 Launchpad (ジャンプ台) を作成するたびに、ユーザーが ブループリント エディタ で作成したルック アンド フィールが設定されることを意味します。レベルの周囲に LaunchPad アクタを複製した場合、特定のジャンプ台に加えた変更はそのコピーのみに影響します。
[Details (詳細)] パネルで [Blueprint/Add Script (ブループリント/スクリプトを追加)] ボタンをクリックします。
[Create Blueprint from Selection] ダイアログ ボックスが表示されます。ブループリントのデフォルト パスを編集していきます。
パスを Game/SideScrollerBP から Game/SideScrollerBP/Blueprints に変更します。
この時点でブループリント名を変更するかデフォルト設定の LaunchPad_Blueprint のままにすることができます。
[Create Blueprint (ブループリントを作成)] をクリックします。
コンテンツ ブラウザ にユーザーのブループリントが表示されます。コンテンツ ブラウザ からレベルへドラッグ アンド ドロップ操作で、プラットフォームメッシュとトリガーのコピーを多数作成できますが、コピーにはビヘイビアはまだ付いていません。次の手順で、ジャンプ台と交差した時にキャラクターを起動させるために、ブループリント内にグラフノードを設定します。
4 - 開始地点を作成する
Blueprint クラスを追加するには、ブループリント エディタ 内でそれを開く必要があります。
コンテンツ ブラウザ で Blueprint クラスを ダブルクリック します。
ブループリント エディタ が開いて、ビューポートに Cube コンポーネントと Box コンポーネントが表示されます。この時点で Box コンポーネントの配置を調整すると、この Blueprint クラスから作成するすべてのジャンプ台 (Launchpad) にも変更が適用されます。LaunchPad アクタ上でコンポーネントを動かす場合と同様に、[Components (コンポーネント)] リストから Box コンポーネントを選択して位置を修正できます。[Location (位置)] を (X:0, Y:0, Z:350) にします。
[Viewport (ビューポート)] タブの横にドッキングされているのは [Construction Script (コンストラクション スクリプト)] タブと [Event Graph (イベントグラフ)] タブです。これからゲームプレイ ビヘイビアを作成するので、イベントグラフ から開始します。[Event Graph (イベントグラフ)] タブをクリックします。
イベントはブループリント グラフ実行の開始点であり、様々なゲームプレイ シチュエーションと関連付けることができます。最もよく使用するイベントの選択肢が、透明な Event ノードとしてすぐに表示されます。ほとんどのブループリント グラフで役立ちますが、1 つだけ作成します。
Box コンポーネントに何かがオーバーラップすると実行するイベントを作成します。[Components] タブで Box コンポーネントを追加します。
グラフに追加するノードのコンテキスト メニューを呼び出すために、グラフの空の領域を 右クリック します。
グラフ内で動かすには、右クリックしてドラッグします。この時点で、グラフを左へ移動しておくと良いです。あらかじめ配置したイベント ノードをスクリーンの左側へ移動させて、ジャンプ台のロジックを作成するための余白を作ります。
このコンポーネントにイベントを追加するには、[Add Event for Box (Box にイベントを追加)] ドロップダウン メニューを展開して [Collision (コリジョン)] を選択します。検索ボックスに「Component Begin Overlap」と入力するとメニューにフィルタを設定します。
[On Component Begin Overlap] を選択します。
グラフに OnComponentBeginOverlap ノードが表示されます。このイベントに接続したすべてのノードは、ジャンプ台の Box コンポーネントと何かがオーバーラップすると実行します。
次のガイドで、このノードの出力ピンへノードを接続して、ブループリント上のノードと連携させる方法について学んでいきます。
5 - オーバーラップしているアクタをテストする
現時点では、何かが Box トリガーにオーバーラップすると OnComponentBeginOverlap イベントが実行されます。ただし、対象のアバターまたはポーンのみがオーバーラップした場合に、ジャンプするビヘイビアを実行します。「Box トリガーにオーバーラップしているアクタは、ポーンと同じアクタか?」と考えてみてください。
OnComponentBeginOverlap イベントの Other Actor 出力を使用して設定していきます。
OnComponentBeginOverlap イベントの Other Actor ピンをクリック、グラフの空のスペースにドラッグ、最後にピンをリリースするとコンテクストメニューが開きます。
互換性のあるノードのみを表示するために、コンテキスト メニューはユーザーが現在作業しているピンでフィルタが設定されています。
検索ボックスに「=」を入力して利用できるノードにフィルタをかけます。そして [Equals (Object)] を選択します。
別の入力として Equals ノードに Side Scroller Character を設定することもできますが、使用している Character を変更した場合は、このブループリントで再び開いて手動で更新しなくてはいけません。そうではなくて、現在使用しているポーンへの参照を取得します。
グラフの空のスペースを 右クリック してコンテキスト メニューを開きます。
メニューの検索ボックスに「Player Pawn」と入力して、(Game の) [Get Player Pawn (プレイヤーポーンを取得)] を選択します。
Get Player Pawn の Return Value 出力を Equals ノードの 2 番目の入力と接続します。
Other Actor がプレイヤーがコントロールするポーンの場合はこれを示すノードを作成したので、応答に基づいてグラフの実行フローを変更します。つまり、On Component Begin Overlap ノードを去る時に直接実行フローへ指示を出します。従って Flow Control ノード、具体的には Branch ノードを使用します。
OnComponentBeginOverlap ノードから実行ピンをドラッグして、グラフの空きスペースでリリースします。
検索ボックスに「Branch」と入力して、コンテキスト メニューから [Branch] を選択します。
Equals ノードの出力ピンを Condition ノードの入力ピン Boolean につなぎます。
オーバーラップしているアクタがユーザーのアクタかどうかに合わせて、グラフに別のビヘイビアを設定して実行する準備ができました。次のステップでこれを実行します。等値 比較の結果が True の場合、キャラクターが起動するようにブループリント ノードを設定します。
6 - キャラクターを起動する
アンリアルのジャンプ台 (Launchpad) は Launch Character という関数を使用すると機能します。Launch Character 関数は、キャラクターの現在のベロシティに指定したベロシティを追加して、好きな方向に飛ばすことができます。この設定はキャラクターのみ有効です。必ずポーン (アバター) をキャラクター (人間そっくりのアバター) になるように設定してください。
設定はキャストで行います。キャスティングはユーザー入力を別タイプの入力に変換します。これにより特定タイプのみに有効な特殊機能へのアクセスが可能になります。入力がそのタイプに基づいていれば成功します。
後から追加が可能な特殊ビヘイビアも含めて、レベルに配置できるものはすべてアクタです。つまり、レベル内にあるすべてのものに対して参照を取得して、それを Actor にキャストすると成功します。ただし、ポーンは必ずしもゲーム内でキャラクターを表現するわけではないので、ポーン にキャストできない場合もあります。
Get Player Pawn ノードから Return Value ピンを引き出します。
コンテキスト メニューの検索欄に「Cast to Character」と入力して同じ名前のノードを検索します。
Cast To Character ノードから As Character を引き出します。
検索ボックスに「Launch」と入力して、コンテキスト メニューから [Launch Character (キャラクターを起動)] を選択します。
クリックしてフルサイズ表示。
正常にキャストするための出力実行ピンが Launch Character の入力実行ピンと自動接続することに注目してください。
Launch Character ノードの Z フィールドに「3000」と入力します。
最後に、オーバーラップしているアクタが Pawn の場合のみ Cast to Character と Launch Character が発生するように Branch ノードの True 実行ピンを Cast to Character ノードの入力実行ピンと接続します。
クリックしてフルサイズ表示。
ここでツールバーのボタンで コンパイル と 保存 を行って、ブループリント エディタを閉じます。
コンテンツ ブラウザ からジャンプ台をいくつかレベルへドラッグします。
ツールバーの [Play (再生)] ボタンをを押すと、レベルを走り回ったり (WASD キー) ジャンプ (スペース バー) することができます。プラットフォームに着陸したり、飛行する様子を確認します。
7 - 応用編
クイックスタートガイドを通じて学んだ知識を活かして、以下の操作をしてみましょう。
キャラクターを起動時に Audio コンポーネント を使用してサウンドを再生します。
Launch Velocity を格納する 変数 を作成して、レベル内の各コピーにこの変数を設定できるように公開します。
ブループリントに
[パーティクルシステムのコンポーネント](designing-visuals-rendering-and-graphics/general-rendering-features/rendering-componentsコンポーネント)を追加して、スターター コンテンツ から パーティクルシステム を1つ使用します。Arrow コンポーネント を追加して、キャラクターを起動する方向を定義するためにコンポーネントの回転を使用します。
タイムライン を使用して、キャラクターの起動を表現するために Box Mesh にアニメーションをいくつか追加します。
ブループリント ビジュアル スクリプティングに関する詳細は、「ブループリント」を参照してください。
クイック スタートガイドで取り扱った内容の詳細は、以下を参照してください。
各種 Blueprint クラスの概要は「ブループリント入門」を参照してください。
ブループリントの詳細は、「Blueprint クラス」を参照してください。
Blueprint クラスの作成と作業に関する簡単なチュートリアルは、「ブループリントの操作ガイド」を参照してください。
ブループリント エディタに関する詳細は、「ブループリント エディタ」を参照してください。