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

今回はその2ということで、3on3用のキャラクターセレクトについて説明します。

Widget_BlueprintのTickに繋がった処理で、変数”Select Character”がTrueになると、変数”Player01”の値を確認してからキャラクター選択の処理を開始します。

1on1と3on3では、処理が違うため、変数”Fighting-mode”の値を確認して、処理するイベントを分けており、今回は3on3のカスタムイベントを説明します。

3on3のカスタムイベントでは、まず、青枠のオンフォーカスボックスの位置を指定しています。

次に方向キーの横が入力されると、変数”Input Value H”の値が変化するので、Switchノードでそれぞれの値の処理を行っており、初期状態では”0″のノードが処理されます。

変数”Player01″の値を確認した後は、変数”P01-1 Selected”の値を確認していますが、これはPlayer01が、一番左のキャラクターである白いマネキンを選択済みかを確認しています。

3on3では、同じキャラクターを選択できない仕様にしているので、選択済みであれば、エンターキーの入力を無効にしています。

それから、キャラクター名称の画像設定と、選択したキャラクターをスポーンするときにSwitchノードで参照する変数”P01 P Char Num”に”1″を設定しています。

次に変数”Num of char”の値を確認していますが、これは何人目を選択しているか確認しており、”0”であれば1人目、”1″であれば2人目、”2″であれば3人目となります。

次に変数”P01 Num of Char-1″、”P01 Num of Char-2″、”P01 Num of Char-3″に”1″を設定していますが、これらは、Player01の1人目、2人目、3人目として白のマネキンが選択されたことを意味しています。

その後にキャラクターをスポーンするPlayerControllerのカスタムイベントを処理しており、以前のバージョンから変更はありません。

ただし、キャラクターブループリントの処理が変更になっているので後ほど説明します。

次に、キャラクター選択後にEnterキーが入力されると、変数”P01 Anim For Selected-1″にTrueが設定されます。

これは、1人目のキャラクターが決定されたので、選択された場合のアニメーションを開始するという意味になります。

それから、バトルが始まったときにHPバーに表示する名前と画像を設定しています。

その後は、Enterキーの入力リセットと、選択されたキャラクターの画像に選択禁止マークの画像を設定しています。

2人目の処理も同じように行い、3人目のキャラクターが決定したときの処理は、入力リセットの処理と変数”Player01″にFalseを設定して、Player02の処理を開始するのと同時に、Player02側のキャラクターの名前を表示するアニメーションの処理を開始しています。

それでは、キャラクターブループリントの説明に戻ります。

キャラクターが選択される前は、キャラクターブループリントのイベント「BeginPlay」で待機中のポーズを処理していますが、今回変更したのは選択された後の、赤枠内の処理を変更しています。

まず、変数”Num Of Char”の値を確認して、何人目のキャラクターを選択したのかを確認しており、1人目の場合は、変数”P01 Anim For Selected-1″がTrueであれば、選択されたことが確実となります。

それから、変数”P01-1 Char Num”に”1″を設定することで、Player01の1人目のキャラクターは白のマネキンが選択されたことを指定しています。

さらに、変数”P01-1 Selected”をTrueに設定することで、Player01の1人目の選択が完了したことになり、選択後のアニメーション処理と変数”Num of Char”に1を加算することで、次のキャラクター選択へ移行します。

次にPlayer02の処理を開始する前に、Widget_BlueprintのTickに繋がった処理で、変数”Player01″がFalseになったときに、ノードDoOnceで前処理をしています。

具体的には、Delayで0.5秒待った後に、CPUモードか確認後、キャラクター選択禁止マークを非表示にして、変数”Num of Char”に3を設定するのと、Player02の入力を許可しています。

Player02の入力は基本的にPlayer01と同じですが、3人目のキャラクター選択が完了したときは、バトルステージをロードするカスタムイベントの処理を開始しています。

それでは次に、選択をキャンセルしたときの処理を説明します。

例として、Player01の3人目を選択時に、キャンセルボタンが押された場合の処理を見てみましょう。

画面ではこのような状態の時です。

ここでキャンセルボタンが押された場合は、3人目の青いマネキンと2番目の選択後のポーズをしているグレーのマネキンをDestroyして、2人目のキャラクター選択禁止マークを非表示にする必要があります。

それではブループリントの説明に戻ります。

変数”Cancel”がTrueになると、変数”Player01″の値を確認し、今回の場合はTrueの処理を行います。

キャラクター選択時の仮の変数”Temp P01 Char Num”を”0″に初期化後、変数”Num of Char”に応じた処理を行っており、今回は”2”の場合の処理を行います。

次に変数”P01 Num of Char-2″の値により、2人目は、どのキャラクターを選択したのかを確認しており、今回は”2″の場合が処理され、変数”P01-2 Selected”の初期化と、グレーのマネキンの選択禁止マークの非表示を処理し、変数”P01 Anim For Selected-2″を初期化し、2人目の選択をキャンセルしたことになります。

その後は、3人目の現在選択中のキャラクターと2人目の選択が決定されたキャラクターをDestroyしています。

そして、変数”Num of Char”の値から1を引き算することで、2人目のキャラクター選択処理へ戻ります。

3on3のキャラクター選択時のキャンセル処理は少し複雑なので、別の場合も説明しておきます。

今度は、Player02の1人目の選択時にキャンセルした場合です。

ここでキャンセルボタンが押された場合は、Player02の1人目の赤いマネキンとPlayer01の3番目の選択後のポーズをしている青いマネキンをDestroyして、Player01の1人目と2人目のキャラクター選択禁止マークを表示する必要があります。

それではブループリントの説明に戻ります。

変数”Cancel”がTrueになると、変数”Player01″の値を確認し、今回の場合はFalseの処理を行います。

キャラクター選択時の仮の変数”Temp P01 Char Num”を”0″に初期化後、変数”Num of Char”に応じた処理を行っており、今回は”3”の場合の処理を行います。

次に変数”P01 Num of Char-3″の値により、Player01の3人目は、どのキャラクターを選択したのかを確認しており、今回は”3″の場合が処理され、変数”P01-3 Selected”の初期化と、青いマネキンの選択禁止マークの非表示を処理してから、変数”P01 Anim For Selected-3″を初期化し、Player01の3人目の選択をキャンセルしたことになります。

その後は、Player02の1人目の現在選択中のキャラクターとPlayer01の3人目の選択が決定されたキャラクターをDestroyして、Player01が入力を開始するための初期化処理をしています。

さらに、Player01が選択した、1人目と2人目のキャラクター選択禁止マークを表示する必要があるので、変数”P01 Num of Char-1″と変数”P01 Num of Char-2″の値により、どのキャラクターを選択したかを確認し、キャラクター選択禁止マークを表示しています。

最後に、変数”Num of Char”の値から1を引き算することで、Player01の3人目のキャラクター選択処理へ戻ります。

今回の説明は以上です。

次回は、バトル開始前に処理する、3人のキャラクターの初期化とスポーンについて説明します。

それではまた。

コメントを残す

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

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