プレイヤーオブジェクトを作る
この記事はFlare Engineというテンプレートアセットを使った記事になります。

空のオブジェクトに必要なオブジェクトを追加
Hierarchy上で空のオブジェクトを追加したら適当に名前をつけて(ここではPlayerとしました)Inspector上で必要なコンポーネントをAdd Componentする。
必要なコンポーネントは以下の通り
- Rigidbody 2D
- Box Colider 2D (BoxじゃなくてもOK)
- SpriteRender
- SpriteEngine
- Player
- Player Input (Joypad等使う場合)

Rigidbody 2Dの設定
Rigidbody 2DのBody Typeを基本的にKinematicにする。(ゲームの内容による)
追加したコライダーがCapsuleみたいに角が丸かったりすると、キャラクタが転がり始める事があるので、必要に応じてConstrainsをFreeze Rotationしておくといい結果になるかもしれない

Sprite Rendererの設定
実際の表示はSpriteEngineが担うが、編集の際に見えないのが不便なので設定する。
Sorting LayerやOrder in Layerも重なり順で必要であれば設定する。
(ここではDefaultの1とでもしておく)
主人公の表示を確認したいので、主人公のスプライトのいずれかイイ感じのものをSpriteに設定する。

スプライトシートやスプライト、画像をUnityで使う基本的な事については以前の記事を参考にしてください。
スプライトを設定するとシーンでプレイヤーが見えるようになります。

Box Collider 2Dの設定
主人公の当たり判定範囲を設定します。
Edit Coliderを使って直感的にやってもいいし、OffsetとSizeを調整してもいいです。
初期値だとSizeがX1,Y1でやりにくいので、とりあえず10と20とかいれて調整しやすいようにした方がいい

調整している時は緑の枠がでるので、それを参考に調整しましょう。

Layerの設定
プレイヤーキャラはLayerをPlayerに設定する必要があります。

この段階で再生ボタンを押すと、プレイヤーが重力にひかれて地面に着地するようになります。
地面はLayerがWorldになっている必要があります。

SpriteEnginesの設定
待機状態と歩行のスプライトアニメーション設定
SpriteEnginesは初期状態で以下のようになってると思います。

Spritesの設定
Spritesをクリックして項目をオープンしNew Spriteに待機状態と移動のスプライトセットを追加します。(ここではIdleとRunします。新規追加ボタンを使用する)
そしてそれぞれアニメーションとして使いたいスプライトをDrop Sprite Hereにドラッグアンドドロップします。
すると以下のようになると思います。
再生ボタンでアニメーションを確認します。
必要であればスピードを調整します。(スプライト名の横にある数字です。大きいほど早い)


これでそれぞれアニメーションは完成
Signalsの設定
プレイヤーのアニメーションを制御するための項目です。
Signalsの項目は自分で作ることもできますが、基本的なものはかなり用意されていますので、それらを選択していきます。
ここでは以下をアクティブにしてください。
- alwaysTrue (常にTrue)
- onGround (地面に設置している)
- velX (横方向の移動)
- velXZero (横方向の移動が無い)
- velXLeft (左方向の移動)
- velXRight (右方向の移動)
これらの状態(フラグ)を使ってスプライトアニメーションを変更していくわけです。

Stateの設定
状態によってどのスプライトアニメーションに変更するかを設定する項目です。
基本優先順位は上からになります。(上の方が優先)
以下のように設定します。解説すると…
- 接地しているかどうか(onGround)
- 横方向へ移動している(velX)
- Runアニメーション
- 横方向へ移動していない(velXZero)
- Idleアニメーション
- 横方向へ移動している(velX)
- 常にチェックする(alwaysTrue)
- 左方向へ移動(velXLeft)
- アニメーションを左向きに(逆)
- 右方向へ移動(velXRight)
- アニメーションを右向きに(正)
- 左方向へ移動(velXLeft)
flipLeft、flipRightを使う場合はスプライトは基本的に右を向いて作っておく必要があります。
この状態で再生を押すと、プレイヤーは地面に設置して待機状態のアニメーションになり、キーボードの「A」で左、「D」で右へ走るアニメーションになります。(移動もします)

Playerの設定
Playerは初期状態で以下のようになっていると思います。
Inputをクリックするとキーボードのキーがどの動作になるかが設定されていることがわかります。

移動速度を調整する
プレイヤーの移動速度を変更したい場合はAbilitiesをクリックしてWalkという項目がでてくると思うので、それもクリックしてパネルをオープンします。
Speedの数字を変更します。
大きいと移動速度が早くなります。

Player Inputの設定 (Joypad等使う場合)
Joypad等使いたい場合はPlayer Inputを設定します。Player InputはUnityのInput Systemから提供されているものなので、詳しくは調べてもらえればいっぱい情報は見つかると思う。
現時点で左右しか動けないのでその部分だけ設定しています。
必要に応じて設定を追加してください。
次の手順で設定していきます。
- Action部分にInput Action Assetを設定します。新しく作ってもいいですが、手っ取り早くFlare Engine のDemoから引っ張ってきましょう。この段階だとプロジェクトの中には一つしかないので◎ボタンでアッサリ設定できるはずです。
- Default MapがPlayerになっていることを確認。
- BehaviorをInvoke Unity Eventに設定します。
- Events > Playerと開いて LeftとRightを下記のように設定します。

Input Button SOは
Assets > TwoBitMachines > FlareEngine > AssetsFolder >Inputs
にあります
Joypadを接続し、キーボード同様に動いたら成功です。
筆者は有線のXBOX360コントローラーとDualSense(PS5)で確認しましたが、どちらも問題なく動きました。
※方向キーで動きます。アナログスティックではありません。
コメント