次の項目は別ページに分割しました。
Unity に関する基本的な情報は次のページにまとめています。
アニメーターコントローラー
公式サイト:
アニメーターコントローラー | Unity マニュアル [公式]
目次
- 1 概要
- 2 使い方
- 3 導入
- 4 基本
- 5 操作
- 6 アニメーションステート (Animation State)
- 7 Write Defaults
- 8 アニメーションパラメーター
- 9 レイヤー (Layers)
- 10 加算レイヤー (Additive Layer)
- 11 アバターマスク (Avatar Mask)
- 12 Default State
- 13 遷移の条件を論理和 (OR) で組み合わせる
- 14 ドアをアニメーションさせる
- 15 パラメーターで遷移先を変更する (Conditions)
- 16 状態遷移に応じてハンドラを実行する
- 17 非アクティブ化に伴って Animator がリセットされる
- 18 Animator コンポーネント
- 19 Culling Mode
- 20 Animator Override Controller
- 21 SetTrigger / ResetTrigger
- 22 SendMessage / SendMessageUpwards
- 23 現在のステートを取得する (GetCurrentAnimatorStateInfo)
- 24 AnimatorController
- 25 AnimatorState
- 26 OnAnimatorMove
- 27 Tips
- 28 まとめ
概要
参考:
アニメーションシステム概要 | Unity マニュアル [公式]
使い方
- ステートマシン
- サブステートマシン
- アニメーションステート
- ブレンドツリー
- レイヤー (Layers)
- パラメーター (Parameters)
特別な状態
- Entry
- Exit
- Any State
参考:
Unity の Animation Controller の簡易的な解説 – Qiita
Unity の Animator Controller の使い方 | npaka
Animator Controller の使い方を解説 | STYLY
Animator Controller を用いたアニメーション切り替え方法 | XR-Hub
Animator Controller の基礎 | TECH PROjin
Animator Controller の使い方 | Unity で魔物使いゲームを作る
ユニティちゃんでもっと Animator Controller を上手く使いたい | Unity で魔物使いゲームを作る
Animator Controller でできることメモ | WeatherVane
Animator Controller の作成 | Unity マニュアル [公式]
導入
参考:
Unity のアニメーションの切り替えシステムとスクリプト | かめくめ
UI デザイナーが Unity の Animator Controller 使ってみた – Qiita
基本
参考:
操作
参考:
Animator ウィンドウ | Unity マニュアル [公式]
アニメーションステート (Animation State)
- Motion
- Speed
- Multiplier
- Mirror
- Cycle Offset
- Foot IK
- Write Defaults
- Transitions
参考:
アニメーションの時間を指定して何かの値と同期させる | ネコロモーフ
アニメーションステート | Unity マニュアル [公式]
UnityEngine.AnimationState | Unity スクリプトリファレンス [公式]
AnimationState.clip | Unity スクリプトリファレンス [公式]
AnimationState.time | Unity スクリプトリファレンス [公式]
How to change “Motion” of an animator state in runtime? – Unity Forum
Change motion of the animator state – Unity Forum
access motion parameter? – Unity Forum
Write Defaults
参考:
知らないと面倒くさい事になるかもしれない Animator の Write Defaults の動作について | テラシュールブログ
Animator の Write Defaults の設定 | STAC STAR
Animator 付きの GameObject の非アクティブ化について | 原カバンは鞄のお店ではありません。
Mecanim Default Values – Unity Forum
アニメーションパラメーター
- Integer
- Float
- Bool
- Trigger
参考:
アニメーションパラメーター | Unity マニュアル [公式]
レイヤー (Layers)
設定
- ウェイト (Weight)
- マスク (Mask/デフォルト:
None
) - ブレンド (Blending)
- オーバーライド (Override/デフォルト)
- 加算 (Additive)
- 同期 (Sync/デフォルト:
無効
)- タイミング (Timing/デフォルト:
無効
) - ソースの層 (Source Layer)
- タイミング (Timing/デフォルト:
- IK パス (IK Pass/デフォルト:
無効
)
参考:
Animator Controller の Layer を使ってモーションを一部だけブレンドしたり加算したりする | LIGHT11
指のポーズをブレンドしてハンドジェスチャーを作ろう | すぎしーの XR と 3DCG
レイヤー/アバターマスクを用いてアニメーションを複数同時に再生する | XR-Hub
Unity の Animator のレイヤーの Sync を使ってアニメーションを全て変更する | かめくめ
Unity のレイヤー、アバターマスクを使って体の一部分を別のアニメーションにする | かめくめ
Unity で Generic リグのキャラクターモデルのアニメーションを組み合わせる | MR が楽しい
Unity でキャラの表情コントロール | ini-T MUSIC SKY
アニメーションのレイヤー | Unity マニュアル [公式]
加算レイヤー (Additive Layer)
参考:
Additive Animation (Override?) – Unity Forum
Mecanim root motion and additive layer bug ? – Unity Forum
how to use animation layer with additive mode and root motion applied? – Unity Answers
アバターマスク (Avatar Mask)
参考:
Unity のレイヤー、アバターマスクを使って体の一部分を別のアニメーションにする | かめくめ
レイヤー・アバターマスクを用いてアニメーションを複数同時に再生する | XR-Hub
Animator Controller のレイヤーで移動中に上半身だけ別のモーションを行う方法 | ゴマちゃんフロンティア
アバターマスクウィンドウ | Unity マニュアル [公式]
Default State
- Set StateMachine Default State:Entry を右クリックしてメニューから「Set StateMachine Default State」を選択して既定の遷移 (濃いオレンジ色の矢印) を作成する。
- Set as Layer Default State:ステートを右クリックしてメニューから「Set as Layer Default State」を選択してレイヤーの初期状態 (オレンジ色のステート) を指定する。
参考:
Unity のアニメータで1回だけアニメーションさせる | matudozer のアプリ作成日記
アニメーションの初期ステートを変更する | TISSUE BOY
アニメーションステート | Unity マニュアル [公式]
エントリートランジションの変更について – teratail
How to change the default or entry animation for an animator | NeedOne
How can I change orange animation state transitions? – Unity Forum
“Set Default State” in AnimatorController in code? – Unity Forum
Default State in Animator – Unity Forum
Animator default values can change through the animations itself – Unity Forum
遷移の条件を論理和 (OR) で組み合わせる
必要な数だけ遷移を作成し、それぞれに条件を指定する。
参考:
Animator transition conditionals is OR possible, or only and? | Unity Answers
ドアをアニメーションさせる
参考:
アニメーションのスクリプト操作 (Raycast) | Unity と Blender とムービー制作
パラメーターで遷移先を変更する (Conditions)
参考:
Unity のアニメーションの切り替えシステムとスクリプト | かめくめ
状態遷移に応じてハンドラを実行する
- StateMachineBehaviour を継承してハンドラをオーバーライドする
- トリガーと同時にタイマーを起動して処理する
参考:
Best way to know when animation enter/exit a state? – Unity Forum
How to add key frames to a new animation file in Unity? – Stack Overflow
非アクティブ化に伴って Animator がリセットされる
参考:
Unity の GameObject を非アクティブにすると Animator がリセットされる挙動、その対処法 | テラシュールブログ
Animator 付きの GameObject の非アクティブ化について | 原カバンは鞄のお店ではありません。
Animator コンポーネント
参考:
Animator からステートの一覧を取得する – Qiita
Animator の State 一覧を取得する | うにてぃブログ
Animator コンポーネント | Unity 2018.4 マニュアル [公式]
UnityEngine.Animator | Unity スクリプトリファレンス [公式]
Culling Mode
- Always Animate:常にアニメーションを更新し、カリングを行わない。
- Cull Update Transform:レンダラーが表示されていない時に、リターゲティング、IK、Transform の更新を行わない。
- Cull Completely:レンダラーが表示されていない場合に、アニメーションを完全に無効化する。
参考:
Animator の Culling Mode でハマった話 | kido Tech Blog
Culling Mode | Unity 2018.4 マニュアル [公式]
Cull Update Transforms: Doing this at a distance | Unity Forum
How does Animator Culling work? – Unity Answers
Animator Override Controller
Animator Controller による振る舞いは同じまま、アニメーションクリップだけ差し替える。
参考:
Unity の Animator Override Controller を使う | かめくめ
Animator Override Controller | Unity で魔物使いゲームを作る
Animator Override Controller | Unity マニュアル [公式]
How to change “Motion” of an animator state in runtime? – Unity Forum
Change motion of the animator state – Unity Forum
access motion parameter? – Unity Forum
SetTrigger / ResetTrigger
SetTigger
:トリガーを起動するResetTrigger
:トリガーをリセットする
参考:
Animator.SetTrigger | Unity スクリプトリファレンス [公式]
Animator.ResetTrigger | Unity スクリプトリファレンス [公式]
Character Controller speed: running vs. walking – Stack Overflow
SendMessage / SendMessageUpwards
参考:
Component.SendMessage | Unity スクリプトリファレンス [公式]
Component.SendMessageUpwards | Unity スクリプトリファレンス [公式]
現在のステートを取得する (GetCurrentAnimatorStateInfo)
参考:
Unity の Animator の遷移状態をスクリプトで取得し遷移させるかどうかを決める | かめくめ
Animator で現在のステートを取得する | naru design
任意の Animation State と現在再生されている State を比較する | でっかい肉じゃが
Animator.GetCurrentAnimatorStateInfo | Unity スクリプトリファレンス [公式]
Current animator state name? | Unity Forum
Get name of current animation state – Stack Overflow
AnimatorController
参考:
Animator に設定されている Layer と State を実行時に取得してみた | kandy codings 開発ブログ
Animations.AnimatorController | Unity スクリプトリファレンス [公式]
AnimatorState
参考:
Animations.AnimatorState | Unity スクリプトリファレンス [公式]
Setting Motion Time on Animator State sends Root Motion crazy – Unity Forum
OnAnimatorMove
参考:
Unity上でMMDモデルを独自アニメーションで走らせる | テラシュールブログ
MonoBehaviour.OnAnimatorMove() | Unity スクリプトリファレンス [公式]
Tips
参考:
Animator のスパゲティなステートマシンを整理する | テラシュールブログ
まとめ
参考:
Animator Controller をマスターして自由で自然なモーション再生!複雑な各設定項目を全て解説 | LIGHT11