Unity 3Dキャラ待機モーションと攻撃モーションの切替1/4

前回は、Unity で 3D キャラクターの動作を設定した AnimationClip を追加して、それをデフォルトステートに置き換える手順を紹介しました。
待機アニメーションを繰り返すためにループの設定も行いました。

前回の記事:Unity AnimationClip の追加とデフォルトステートの変更 | Compota-Soft-Press

Unity AnimationClip を Animator ウィンドウにドラッグ&ドロップしてノードを追加します.

今回は、待機用アニメーションを追加して、入力があったときだけ攻撃アニメーションを実行させて、他は待機アニメーションを繰り返す実装例を紹介します。
※ Unity のバージョンは 2021.3.25f1 です。3D キャラクターは Unity の無料アセット「Adventure Character」を使用しています。アニメーションは「Mixamo」から入手したものを使用しています。

仕様の確認

以下のように 3D キャラクターのアニメーションを切り替えます。

  • 入力がない状態では、待機アニメーションを繰り返します。
  • 入力があったときは、攻撃アニメーションを1度だけ行います。
  • 入力はクリックとします。

アニメーションパラメータの設定

3D キャラクターに設定した AnimatorController アセットを Project ウィンドウでダブルクリックして、 Animator ウィンドウで開きます。

Animator ウィンドウ左上の「Layer」「Parameters」のタブを「Parameters」に切り替えて、近くの「+」ボタンを押して、リストから Bool を選択すると Parameters のリストに Bool パラメータが追加されるので、適当にリネーム(例では Attacking )します。

Unity AnimatorController に Bool 型のパラメータを追加します.

攻撃アニメーションへの遷移の条件の設定

AnimatorController では、 Entry ステートの先にあるオレンジ色のデフォルトのステート(例では「待機」)が最初のステートになります。

待機ステートのときに、 Attacking パラメータが有効になったら、攻撃ステートに遷移するように「待機」→「攻撃」ステートへの遷移の線を設定します。
遷移先を指定するには、遷移元(例では「待機」)ステートを右クリックして表示されたメニューから「Make Transition」を選択し、遷移先(例では「攻撃」)ステートをクリックします。

Unity AnimatorController の遷移元ステートの右クリックメニューMake Transition を選んだあと遷移先ステートをクリックして接続します.

作成した遷移先への線を選択して Inspector ウィンドウで遷移の条件や変化の仕方を設定します。
Conditions リストで「+」ボタンを押して条件欄を追加して、Attacking パラメータが true のときに遷移する条件を設定します。

Has Exit Time では、遷移元から遷移先にアニメーションがスムーズに置き換わるように、切り替わる時間を指定できます。
今回は、入力に応じて即時、遷移先(例では「待機」から「攻撃」)のアニメーションに切り替えるするために Has Exit Time は無効にします。

Unity AnimatorController の遷移の条件や変化の仕方を遷移の線を選択したあと設定します.

テスト

シーンを再生してテストしてみましょう。
#丸太の大きさやキャラクターの配置を少し見やすくしました。

まだ、キー押下時にパラメータを変化させるプログラムを付加していませんが、 Animator ウィンドウのパラメータのチェックボックスを操作することで、パラメータの値をシーン再生中に変更することができます。

「待機」→「攻撃」のステートの遷移条件に Attacking パラメータが true であることを設定してあるので、 Animator ウィンドウの Attacking パラメータを true にすることで、デフォルトステート「待機」アニメーションの繰り返しから、ステート「攻撃」アニメーションへ遷移することが確認できました。

※ シーン再生時に Animator ウィンドウのステートの青いプログレッシブバーを表示するには、そのアニメーションを行っているゲームオブジェクト(例では Man_Full)を選択しておく必要があります。

※画像・動画内のステータスという言葉は正しくはステートです。

今回はここまで

今回は、Unity の無料の 3D キャラクターアセット「Adventure Character 」をシーンに配置して、「Mixamo」で無料で入手した「待機」アニメーションから「攻撃」アニメーションへのステート遷移の設定を紹介しました。
まだ、プログラムを付加していませんが、 Animator ウィンドウで追加した「Attacking(攻撃中)」パラメータを false から true に画面で直接切り替えることで、待機から攻撃アニメーションへ遷移することを確認しました。

参照サイト Thank You !

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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