アップデートVer.3.0のプログラム解説その4

今回はその4ということで、3on3のサブキャラクターのポジション管理とキャラクターチェンジについて説明します。

サブキャラクターは、バトルが始まったときに画面には表示されていませんが、キャラクターチェンジに備えて、位置と向きを管理する必要があります。

まずバトル開始前は、ステージの外側へスポーンしており、Player02側は、900としています。

バトルが開始されると、BP_CommoncontrollerのTickに繋がったノード「Face to Face」でサブキャラクターの位置を管理しており、カメラが移動するとサブキャラクターも画面の外側で、カメラとの距離を一定に保つよう移動しています。

これは、キャラクターチェンジのときに、サブキャラクターがフレーム・インしてくるまでの時間を同じにするためです。

「Face to Face」では、ノード「Sequence」を使用して、プライマリーキャラクターの向きやサブキャラクターの位置と向きを管理しており、変数”Fighting-mode”が”1″の場合のみ、サブキャラクターの処理を行います。

サブキャラクターの処理を開始するには、条件があり、キャラクターチェンジやアシスト、エアリアルコンボが実行されているときは、処理をしないようにしています。

具体的には、変数”Change For OUT”と”P01 Assist Move”がTrueであれば、キャラクターチェンジとアシストが実行されていることになり、サブキャラクターは別の移動処理をしているため、ここでは処理しないようにしています。

エアリアルコンボについては、演出のためにカメラが大きく移動し、サブキャラクターを一緒に移動させる必要がないため、処理しないようにしています。

次に、ノード「Gate」を使用して、これらの条件を満たせば、Delayで0.1秒待ってから処理を開始します。

Delayを使用しているのは、キャラクターチェンジやアシストの処理が終了してからキャラクターをフレームアウトするためのエフェクト表示とタイミングを合わせるためです。

次に、変数”PlayerSide”により、相手キャラクターとの左右の位置が特定できたら、変数”P01 Order Of Char”により、どのキャラクターがサブキャラクターなのかを特定します。

その後、サブキャラクターの向きについては、プライマリーキャラクターと同じ向きに設定し、位置については、XとZ座標はプライマリーキャラクターと同じ値に設定し、YのみカメラのY座標に600をプラスした値を設定しています。

変数”PlayerSide”がFalseの場合は600をマイナスした値を設定します。

これにより、サブキャラクターの位置は、カメラのY座標に追従するようになります。

それでは、次にキャラクターチェンジについて説明します。

キャラクターチェンジは、方向キーの前とR1かR2ボタンで行いますが、R1ボタンの処理で説明します。

まずは、マクロ「Controller_ID」でどちらのPlayerであるかを確認後、ノード「P01 Change 01」の処理を開始します。

変数”Fighting-mode”の値を確認し、3on3の”1″であることが確認できたら、ボタンが押されたことを示す変数”Press Change 1″にTrueを設定します。

それから、変数”Begin Battle”や変数”P01 Aerial Attacking”の値を確認して、キャラクターチェンジができる状態なのかを確認しています。

それから、変数”Player Side”の値からキャラクターの向きを確認して、方向キーの前だけが入力されていることを確認しますが、この条件を満たさない場合は、アシストの処理をすることになります。

条件を満たした場合は、操作しているキャラクターであるプライマリーキャラクターは、フレームアウトする際に垂直に上昇するため、移動速度を一旦、0に設定後、関数「Delay」により、1フレーム待ってから、最終的にキャラクターチェンジができる状況なのか、各状態管理の変数を確認し、変数”P01 R1 Changed”にTrueを設定します。

それから変数”P01 Order Of Char”の値を確認して、フレームインしてくるキャラクターのHPやスタン、移動、攻撃等の各パラメーターをPlayerが操作するために使用するPrimaryの変数へ代入します。

パラメーターの設定が全て完了したら、次に関数「Possess」を使用して、操作対象をフレームインしてくるキャラクターに変更します。

その後は、ノード「Sequence」を使用して、処理を2つに分けていますが、フレームインとアウトするキャラクターの組み合わせを特定する変数”Combi Char Num”やフレームインしてくるキャラクターを特定する変数”M-in Char Num”、フレームアウトするキャラクターを特定する変数”M-out Char Num”へ状況に応じた値を設定しています。

もう一方の処理は、関数「Delay」により、0.1秒待ってから、フレームアウトするときのエフェクト表示とサウンド再生をしています。

次にカメラのターゲットをBP_GlobalCameraに設定していますが、これは関数「Possess」を使用したときにカメラのターゲットが「Possess」で指定したキャラクターに設定される仕様のためです。

その後、フレームインとアウトを管理している変数にTrueを設定したり、Capsule_componentが衝突しているのかを管理している変数”Overlap Of Capsule”にFalseを設定しています。

最後に、フレームアウトするキャラクターは完全無敵となりますので、ダメージボックスをOFFに設定しています。

これで、キャラクターチェンジをするときのパラメータの変更を説明しましたが、今回はここまでとします。

次回はキャラクターチェンジの処理の続きを説明します。

それではまた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください