Choose your operating system:
Windows
macOS
Linux
ほとんどのゲームでは、プレイヤー キャラクターがキルされ、ワールドに再スポーンするときがやってきます。この操作ガイドでは、シングル プレイヤー用途での簡単な再スポーン システムのセットアップ方法について説明します。
実装ガイド
ここでは、ブループリントを使用してシングル プレイヤー ゲームでプレイヤー キャラクターをリスポーンする方法について学習します。
手順
以下では、シングル プレイヤー ゲームでプレイヤーがキルされた場合にリスポーンする手順を説明します。
以下の手順は、 Blueprint Third Person Template プロジェクトの使用に基づいていますが、必要に応じて他のプロジェクトを使用することもできます。
-
プロジェクト内で、 Game Mode ブループリントを開きます ( ThirdPersonGameMode ブループリントを使用しています)。
-
グラフ内で 右クリック して、 Event Begin Play ノードを追加します。再度 右クリック して Get Player Character ノードを追加します。
-
Get Player Character ノードの Return Value をドラッグして、 Cast To ThirdPersonCharacter ノードを追加し、ノードを接続します。
Player Character ブループリント (この例では ThirdPersonCharacter) に Cast To します。これで、このブループリントにアクセス可能になり、On Destroyed event を使用して、プレイヤー キャラクターがいつキルされるかを判断します。この時、新しいプレイヤー キャラクターをスポーンできます。
-
As ThirdPersonCharacter C ピンをドラッグして、 Assign On Destroyed ノードを追加します。
-
新規追加した OnDestroyed_Event ノードから、リスポーンまでの任意の遅延時間を設定した Delay ノードを追加します (オプション)。
ここでは、あるイベントを別のブループリントからの別のイベントにバインドしています。これで、別のブループリントからイベントが発生するとこのブループリントのイベントが発行できるようになります (ThirdPersonCharacter から OnDestroy Event)。これは、 Event Dispatcher といい、 Level ブループリント と通信し、ワールドに対してイベントが発生したことを通知するためにも使用することができます。
詳しい情報については、「 イベント ディスパッチャー 」を参照してください。
-
Delay ノード (追加した場合) から、 SpawnActorFromClass ノードを追加し、 Class ドロップダウンを ThirdPersonCharacter に設定します。
-
新規 Transform 変数を作成し、それを Spawn Transform と呼びます。次に、それを Spawn Actor ノードの Spawn Transform に接続します。
-
グラフ内を 右クリック して、 Possess ノードを追加します。
ノードをメニューに表示するために Context Sensitive オプションのチェックを外す必要があるかもしれません。
-
Spawn Actor から Return Value を Possess ノードの In Pawn に接続し、その実行ワイヤーを接続します。
-
Possess ノードの Target ピンからドラッグして、 Get Player Controller ノードを追加します。
-
Event Begin Play ノード付近で、グラフ内を 右クリック して Custom Event を追加し、 Respawn と名前を付けます。
ノードをメニューに表示するために Context Sensitive を再確認する必要があるかもしれません。
-
このカスタム イベントを Cast To ThirdPersonCharacter ノードに接続します。
-
Possess ノードからドラッグして、 Respawn を呼び出します。グラフ全体は以下のようになります。
画像をクリックしてフルサイズで表示
-
コンパイル し 保存 してから、ブループリントを閉じます。
-
ThirdPersonCharacter ブループリントを開き、グラフ内で 右クリック し、 Event Begin Play ノードを追加します。
-
再度 右クリック して、 Get Game Mode ノードを追加します。次にそこから Cast To MyGame (またはご自身の Game Mode) にドラッグします。
-
As My Game C ピンをドラッグして、 Set Spawn Transform ノードを追加します。
-
グラフ内で 右クリック して、 Get Actor Transform ノードを追加し、それを Set Spawn Transform ノードに接続します。
これで、ゲームを開始するとプレイヤーの位置を取得し、それをリスポーン位置として設定します。
-
グラフ内で 右クリック して、 F キー イベントを追加し、 Pressed ピンから Destroy Actor ノードを接続します。
これはテスト目的であり、 F キーが押されると、キルします(アクタを破壊)。プレイヤーがヘルスを十分に失うか、通常プレイヤーをキルするような他のイベントでこの Destroy Actor ノードを呼び出す可能性が高くなります。
コンパイル し、エディタで再生すると、 F キーを押すたびに、一瞬消えた後に開始位置でリスポーンします。