もくじ
Birdにジャンプ処理を追加する
Visual Scripting
チュートリアルビデオでは、C#スクリプトを作成するためにScriptコンポーネントを追加しているが、ここではVisual Scriptingを使いたいので、Script Machineコンポーネントを追加し、Birdという名前でScript Graph Assetを作成する。( 2.1)
Edit Graphボタンをクリックし、Visual Scripting Graphウィンドウを表示させる。Birdゲームオブジェクトのジャンプの動きをC#スクリプトのコードと同じ処理を行うVisual Scriptingのユニットを追加し、フローグラフを組み立てていく。マウスボタンの左クリックによってその場でジャンプする動きをするスクリプトグラフはスクリーンショット画像の通りとなる。
最初にisDeadとupForceという変数をObject Variablesとして追加する。簡単に説明するとUpdate Eventユニットからフローがスタートし、isDead変数をチェックしFalseであれば進み、さらにマウスボタンの左クリックがTrueで先に進む。Birdゲームオブジェクトを上に移動させるためにSet Velocityで一旦加速度をリセットしてから、AddForceユニットでY軸方向にupForce変数で指定した値だけ上に移動させるようにする。( 2.2)
以下、ここまでの進捗ビデオ①となる。 ( 2.3)
2.3 ここまでの進捗ビデオ①
Birdのグラウンド落下処理
Visual Scripting
先ほどはBirdゲームオブジェクトにジャンプ機能を追加しただけなので、グラウンドに落下してもジャンプができてしまう。グラウンドに落下したらisDeadをTrueに変更しジャンプができないようにしたい。これはOn Collision Enter 2Dユニットで実現する。グラウンドに落下するとisDeadがTrueとなり、それ以降、ジャンプができなくなる。( 2.4, 2.5)
Birdのアニメーション
Animation Animator
HierarchyウィンドウでBirdゲームオブジェクトを選択してAnimationウィンドウを開く。Createボタンをクリックし、Idleアニメーションを作成する。BirdというAnimator Controllerが自動で作成されAnimatorコンポーネントがBirdゲームオブジェクトにアタッチされる。( 2.6, 2.7)
Birdゲームオブジェクトを選択した状態で、Animationウィンドウ → 「Add Property」ボタン → Sprite Rendererメニューを開く → Spriteの横にある「+」ボタンをクリックする。1.0秒の位置にあるSpriteイメージは削除しておく。( 2.8, 2.9)
さらにAnimation Clipを作成するため、Animationウィンドウで「Create New Clip...」を選択し、Flapという名前で保存する。同様にDieというAnimation Clipを作成し、全部で3つのAnimation Clipを作成する。( 2.10, 2.11)
下記リストの通り各Animation Clipにそれぞれ指定されたSpriteを設定する。
- Idle : BirdHero_1
- Flap : BirdHero_0
- Die : BirdHero_2
ここまででAnimatorウィンドウには3つのステートができているだろう。EntryとAny Stateはデフォルトで設定されるステートである。( 2.12)
AnimatorのParametersパネルウィンドウでFlapとDieという2つのTriggerパラメータを追加する。( 2.13)
それぞれのステート間でトランジションを作成・接続し、下記の通り、ConditionsとHas Exit Timeを設定する。( 2.14)
- Transition : Idle → Die
- Conditions : Die
- Has Exit Time : Off
- Transition : Idle → Flap
- Conditions : Flap
- Has Exit Time : Off
- Transition : Flap → Idle
- Conditions : 設定しない
- Has Exit Time : On
2.14 Transition Settings - Animator
Birdのアニメーションをスクリプトで制御する
Visual Scripting
Birdゲームオブジェクトのジャンプ機能を設定したスクリプトグラフのAddForceユニットの後ろにAnimatorのパラメータ「Flap」のTriggerをセットするため、Set Triggerユニットを追加する。( 2.15)
同様にOn Collision Enter 2DイベントのフローにAnimatorのパラメータ「Die」のTriggerを設定する。( 2.16)
ここまででBirdゲームオブジェクトに設定したジャンプ処理と落下処理のVisual Scripting Graphとなる。( 2.17)
下記、進捗ビデオではBirdゲームオブジェクトのジャンプ処理、落下処理、アニメーション処理が追加されていることがわかるだろう。( 2.18)
2.18 ここまでの進捗ビデオ②
次は、スコアやゲームオーバーテキストなどのUIの設定を行い、ゲームオーバー時のリスタート処理や背景スクロールを実装していく。