格闘ゲームの作り方・プログラムの解説 その3

今回はタイトル画面で○ボタンもしくは、Enterキーが入力されてから、セレクトモードでモードを選択するまでのWidgetブループリントの処理を解説します。

タイトル画面が表示されると、イベントConstructが処理されて”Begin Title”がTrueになるため、Tickに繋がっている関数「Start Menu」の処理が可能になります。

関数「Start Menu」 では、最初のブランチで、○ボタンもしくは、Enterキーが入力されたかを確認しており、入力されると、次のセレクトモード画面へ移行するまでの間、”Input Possible For P01”の値をFalseにしてPlayer01の入力を不可にしています。

次にタイトル画面で、 ○ボタンもしくは、Enterキーが入力 されるとPressEnterKeyと表示されたボタンを高速点滅させるアニメーションとセレクトモード画面へ移行するために画面全体を黒くするアニメーションを再生しています。

PressEnterKeyと表示されたボタンを高速点滅させるアニメーションは、Color and OpacityとRender Opacityを「1」→「0」→「1」となるよう繰り返し処理していますが、Color and Opacityのみの処理でも、同様の効果が得られます。

画面全体を黒くするアニメーションは画面全体を覆った黒い画像を用意しておき、透明度を「0」→「1」となるよう指定しています。

その後、”Begin Title”にFalseを代入して、タイトル画面の処理を完了させて、セレクトモード画面の処理を開始するために、 カスタムイベント 「Begin to Select Mode」の処理を開始します。

それと同時に、入力状態を管理している変数のリセット処理を行うマクロ「Reset Input」の処理も行います。

それでは、カスタムイベント「Begin to Select Mode」の処理を説明します。

画面全体を黒くするアニメーションが、再生されてから1.0秒後にタイトル画面で使用していた背景とボタンを非表示(Hidden)に変更し、”Select Mode”へTrueを代入することで、Tick側のセレクトモードの処理が有効になります。

その後、画面を黒くしたアニメーションを逆再生して画面を見えるようにするのと同時に、セレクトモードのタイトル画像やボタンを表示するアニメーションを再生します。

セレクトモードのタイトル画像やボタンアニメーションの設定は下図のようになっています。

Button_Canvasの中に、セレクトモードのタイトル画像とVertical Boxの中にボタンを2つ挿入しており、Button_Canvasを画面外から画面内へ”Translation”の効果を使い、移動させています。

さらに2つのボタンに対しては、アニメーション終了後に入力が有効になるように”is Enabled”の効果をTrueにしています。

その後は、セレクトモードのアニメーション再生後の0.2秒後にタイトルコールの音声再生とPlayer01の入力を許可しています。

次にTickに繋がった、”Select Mode”がTrueになると、関数「Select Mode」の処理を開始します。

関数「Select Mode」 では、メニューの選択肢が縦に並んでいるため、整数型の変数”Input Value V”を使用してアクティブになっている選択肢を特定します。

初期値は「0」になっているので、一番上のブランチがTrueとなり、ボタンの画像SM01にボタンがアクティブになったとき用の画像を指定し、Falseのときは、ボタンがアクティブではないとき用の画像を指定します。

また、方向キー下が入力されると、”Input Value V”の値が、「-1」となり、上から2番めのブランチがTrueとなり、ボタンの画像を指定する処理を1番上のブランチ同様に行います。

次にBackspaceキーや☓ボタンが押されたときに、論理型変数”Cancel”がTrueになったときの処理を説明します。

これはセレクトモード画面からタイトル画面へ戻る処理となります。

まず、”Input Possible For P01”にFalseを代入して、Player01の入力を不可にした後、セレクトモードのアニメーションを逆再生するのと、 画面を 黒くするアニメーションを再生します。

その後、”Select Mode”をFalseにして、セレクトモードの処理を完了させ、カスタムイベント「Back To Title」の処理と、入力状態を管理している変数のマクロによるリセット処理も行います。

それでは、カスタムイベント 「Back To Title」の処理 を説明します。

最初のブランチでは、ポーズメニューによるタイトル画面への戻り処理か確認しており、ここではFalseとなるため、下側を処理します。

既に、画面を黒くするアニメーションが実行されているため、開始後1.0秒後にタイトル画面用の背景とボタンを可視化(Visible)します。

それから”Begin Title”をTrueにして、Tick側のタイトル画面処理を可能にします。

その後、”Enter”と”Input Possible For P01″と” Input Possible For P02″にFalseを代入して、入力不可にした後、 画面を黒くするアニメーション を逆再生して、画面を見えるようにしてから、既に説明したカスタムイベント「Begin Title」の処理を開始します。

それでは、再度 関数「Select Mode」 の説明に戻ります。

セレクトモードの「VS CPU」か「VS Player」が選択されている状態で、○ボタンもしくは、Enterキーが入力されると、Player01のCommon_Controllerで定義している論理型の変数”CPU Mode”に対応した値を代入後、セレクトモードのアニメーションを逆再生するのと、画面を黒くするアニメーションを再生します。

最後に、 ”Select Mode”をFalseにしてセレクトモードの処理を完了させ、関数「Begin to Select Stage」の処理と入力状態を管理している変数のリセット処理も行います。

以上で説明は終了です。

次回はセレクトステージの処理を説明します。

コメントを残す

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

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