2DRPGの作り方7 移動した向きによってUnityアニメーションを切り替えよう | Unity入門の森 ゲームの作り方

2DRPGの作り方7 移動した向きによってUnityアニメーションを切り替えよう

Unity C# 2DRPGゲームの作り方 ~ドラクエ風レトロRPGを作ろう!~


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

前回まででアニメーションに関するアセットの作成および設定方法について解説してきました。

前回の記事:

2DRPGの作り方6 2DUnityのAnimatorController・State・Triggerを理解しよう
前回はUnityを用いたアニメーション機能について解説し、キャラクターの歩行アニメーションを作りました。前回の記事:今回は「AnimatorController」とスクリプトを用いたアニメーション制御の方法について解説していきます。Anim...

今回の記事ではスクリプトからUnityのアニメーション機能を制御していきます。

アニメーションの解説は今回で一区切りつくので頑張って進めていきましょう!


【Line登録者限定のプレゼントもあるよ!】

Animatorコンポーネントについて

Unityでアニメーションをスクリプトから制御する際は「Animator」コンポーネントを使用します。

「Animator」コンポーネントには「AnimatorController」を一つ設定できます。これを用いてアニメーションの制御を行います。

それでは実際にスクリプトでこのAnimator Controllerの制御を行っていきます。使用するAnimatorControllerは「PlayerAC」になります。

まだ作成していない方は前回までの記事を読んで作成し、「Player」プレハブの「Animator」コンポーネントに設定してください。

設定したら、そのまま再生してください。

前回の記事と同じ設定内容になっていたら、「Player」が「PlayerMoveDown」アセットの内容でアニメーションするようになっています。

これは「PlayerAC」で開始時に「PlayerMoveDown」アセットで設定したステートを再生するようにしているためです。

移動の向きに合わせてアニメーションを切り替える

「Animator」コンポーネントは何もしなくても最初に設定した「AnimatorController」の内容を再生してくれます。

「AnimatorController」のステートの遷移情報によっては自動的に色々なアニメーションを再生することも可能です。

ただそれだけでは不十分な場面もあるのでスクリプトから「Animator」コンポーネントを操作し、ステートを切り替えるようにしていきます。

「Player」コンポーネントを次の内容に修正してください。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

それでは次の記事に行ってみましょう!

次の記事:

2DRPGの作り方8 RPGにおけるマップ切り替えイベントをUnityで実装する方法
前回までの記事でプレイヤーキャラをマップ上で移動させ、アニメーションを付けることができました。前回の記事:今回の記事ではフィールドマップとダンジョンマップの切り替えを実装していきます。フィールドとダンジョンを移動するイベント用マスの作成まず...

Unity C# 2DレトロRPGゲームの作り方講座へ>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

  1. しーぶりっつ より:

     移動キーを押さない場合に足踏みをしないようにしたい場合について質問があります。
     アニメーションを何らかの形で停止して直立の画像を表示させるか、待機用の動かないアニメーションを作りそれに遷移させるかのどちらかをすればいいのかなぁと考えているのですがどちらでも可能でしょうか。
     アニメーションを止める場合PlayerACのanystateをexitに繋ぎ、他のアニメーションと同じようにtrigerを使ってコードから制御するといった手法で問題なさそうでしょうか?

    • Unity入門の森 より:

      質問ありがとうございます。
      講座でのアニメーションをつなげるルートは一例なのでちゃんと実装して自分の望むアニメーションができていれば他の実装方法でも問題ありません。
      基本の流れは同じで新しいstateを作りtriggerから制御し、次のstateにつないでいけばOKです。

タイトルとURLをコピーしました