4.情報をレベルからキャラクターに渡す

Level ブループリント を使用して、スポーン ポイントの位置を取得して、その情報を Character ブループリントに渡してみましょう。

Windows
MacOS
Linux
  1. メイン ツールバーで [Blueprints] ボタンをクリックして、[Open Level Blueprint (Level ブループリントを開く)] を選択します。

    OpenLevelBlueprint.png

  2. グラフ内を 右クリック して、 Event Begin Play ノードと Get Player Character ノードを追加します。

    GetPlayerCharacter.png

  3. Get Player CharacterReturn Value を引き出して、 Cast To MyCharacter ノードを追加します。

    CastToNode.png

    ここで、Cast ノードを使ってプレイヤー キャラクターを取得してから、そのプレイヤーが使用する Character ブループリントを取得します (この場合は FirstPersonCharacter が呼び出されて、プレイ可能なキャラクター用の他のスクリプトを設定します)。Cast ノードを使って、プレイヤー キャラクターのブループリントとその中の変数、イベント、関数へアクセスすることができます。

    Casting に関する詳細は、ブループリントでキャストする のドキュメントをご覧ください。

  4. 以下のようにノードを接続し、 Cast To ノードの Return Value を引き出して、Promote to variable を選択します。

    PromoteToVariable.png

    プレイヤーが使用する FirstPersonCharacter ブループリントへのリファレンスを維持するための変数を作成して、Cast を毎回使わなくても済むようにします。Event Begin Play でこの処理をすると、後に時間が節約できます。

  5. 昇格した変数を選択して [Details (詳細)] パネルで名前を「MyCharacter」に変更し、Boolean 型であることを確認します。

    RenamedMyCharacter.png

  6. MyCharacter ノードの Return Value を引き出して、Assign Get Spawn Location を追加します。

    AssignSpawnLocation.png

    これが作成された イベント ディスパッチャー です。これを選択すると、ノードが 2 つ追加されます。

    リストにこのノードがない場合は、FirstPersonCharacter ブループリントで [Compile] を必ずクリックして、再度確認してみてください。

  7. Bind Event から新しく追加されたノードに接続していることを確認してください。

    ConnectAddedNodes.png

    GetSpawnLocation が Character ブループリント内で呼び出されると、この新規の カスタム イベントも呼び出されます。

  8. Control を押したまま [MyBlueprint] ウィンドウから MyCharacter 変数をドラッグして、Set Spawn Location ノードを追加します。

    SetSpawnLocation.png

  9. メインのエディタ ウィンドウに戻り、ワールド アウトライナーTarget Point を検索して 1 つずつ選択します。

    SelectAllTargetPoints.png

  10. Level ブループリント に戻り、グラフ内を 右クリック[Create References to 3 selected Actors (選択した 3 つのアクタにリファレンスを作成)] オプションを選びます。

    AddReferences.png

  11. グラフ内を 右クリック して、Make Array ノードを追加し、それぞれの Target Point へ接続します。

    MakeArray.png

    [Add Pin (ピンを追加)] ボタンをクリックすれば、ピンを追加することができます。この配列は、アクセス可能なターゲットポイントのコレクションを格納します。

  12. Array ピンを引き出して Get ノードを追加します。

  13. Get ノードを引き出して、Random Integer in Range ノードを追加し、[Min] を 0 に、[Max] を 2 に設定します。

    GetNodeAdded.png

    ここで、スポーン ポイントとして使用するために、ランダムにターゲットポイントを取得します。スポーン位置がもっと多い場合、それらを配列に追加して Range ノードの Random Integer の Max 値を増やせば、それらを含むことができます。

  14. Get ノードを引き出して Get Actor Transform ノードを追加し、それを Set Spawn Location ノードに接続します。

    スクリプト全体は上の画面のようになるはずです。クリックすると拡大表示されます。

このページではかなりいろいろな事をやってみました!Cast ノードを使って Character ブループリントにアクセスしてから、その中にあるカスタム イベントをイベントディスパッチャーにつなげました。これにより、イベントディスパッチャーが呼び出されると必ず Level ブループリントのカスタム イベントを実行することができます。そして、スポーン位置の 1 つをランダムに取得し、それを (岩をスポーンする位置に使用する) 変数 Spawn Location として Character ブループリントへ戻します。

次のステップでは、Bind Event と OnHit というイベントを使って、岩を撃ち破壊できるようにします。

タグ
Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信