ゲーム内で複数のプレイ可能なキャラクター間で切り替えたり、キャラクターがビークルに入り、ビークル (車、飛行機、タンクなど) を制御する、または固有のコントロールを持つ他のポーン (プレイヤーが制御可能な装着されたマシンガンなど) を制御する状況など、入力情報を伝えるためにキャラクターやポーンを所有します。
プレイヤー コントローラ は、ポーンに指示を出すものであり、ポーンの所有には、プレイヤー コントローラを指定する必要があります。ポーン自体は人間の形をしたキャラクターである必要はありません。基本的な動きを適用し、プレイヤーが制御できるものであれば何でもかまいません。一方、キャラクターは、コリジョンを含み、人間のような基本的な動きを可能にする CharacterMovement コンポーネントをデフォルトで含むポーンの一形態です。 以下のリンク先のSetup セクションでは、ブループリントを使用したポーン所有の例を説明しています。
実装ガイド
Possess と UnPossess の ブループリント ノードを使って、プロジェクトの ポーン や キャラクター を制御し、入力を与えます。
このガイドの目的上、 Blueprint Side Scroller テンプレートを使用しますが、皆さんの独自のプロジェクトをお使いいただくこともできます。プロジェクトの作成およびテンプレートの使用の方法がわからない場合は、 プロジェクト ブラウザ ページで詳しい情報をご覧ください。
ステップ
-
コンテンツ ブラウザ から、制御するキャラクターを追加でレベルにドラッグします。
ここでは、 「Content > SideScrollerBP > Blueprints」 フォルダから 2 つの SideScrollerCharacter をレベルに追加し、キャラクターは合計 3 つになりました。この特定のテンプレート プロジェクトでは、デフォルトでキャラクターは既にレベル内に配置されています。
-
ワールド アウトライナー で、制御対象の各キャラクターを選択します。
-
メイン ツールバーで [ブループリント] ボタンをクリックして、[Open Level Blueprint] を選択します。
-
グラフ エリア内で 右クリック し、コンテキスト メニューから [Create References to selected Actors] オプションを選択します。
これで、レベルで選択した各キャラクターを参照することができます。
-
グラフ エリアで 右クリック して、1 Keyboard Event を検索して選択します。
1 キーを押すか、1 キーを開放すると常にイベントを発行させることができます。
-
2 と 3 のKeyboard Event をグラフに追加します。
-
グラフ内で 右クリック し、 Get Player Controller ノードを検索して追加します。
プレイヤー コントローラー を使用して、人プレイヤーからの入力を受け取り、それをポーンのアクションに変換します。
-
左クリック して、Get Player Controller ノードの Return Value からドラッグして、Possess ノードを検索して追加します。
これにより、プレイヤー コントローラーに対して、どのターゲット ポーンを所有し、制御するかを指示します。Possess 関数が呼び出されると、ポーンが現在制御されているかを自動的にチェックし、まずそれを UnPossess (所有を解除) してから、新しいポーンを所有しようとします。
プレイヤーのポーンの制御を解除させて、例えばプレイ可能なキャラクターを直接制御しないステートのスペクテーター (観戦者) タイプにする場合には、 UnPossess 関数を使用することができます。
-
あと 2 つ Possess ノードを作成して、以下のように 1、2、および 3 の Keyboard Event を接続します。
1、2、 または 3 が押されたら、ポーンを所有するようにセットアップします。次に、参照からどのポーンを所有するかを定義する必要があります。
-
SideScrollerCharacter 参照のそれぞれを以下のように In Pawn ピンに接続します。
スクリプティングした機能が完成し、テストする準備が整いました。
-
ツールバーから Compile をクリックして、スクリプトを更新します。
-
ツールバーから [Play (再生)] をクリックしてエディタでゲームを再生します。
最終結果
キーボードで 1、 2、 または 3 を押すと、レベル内の各キャラクターの間で切り替わります。