🎯 今日のゴール
- Animatorのパラメータ(Trigger / Bool / Float)の使い方を理解
- C#スクリプトからキーボード操作でアニメーションを切り替える
- 自分の操作でアバターの動きをコントロールできる基礎を身につける
✅ 今日の作業内容
Step1:Triggerパラメータの作成と設定
- Animatorウィンドウ → Parametersタブ →
Trigger
を追加(例:WaveTrigger
) - 通常ステート(例:IdleやJUMP00B)→ WaveモーションへのTransitionを作成
- Transitionの条件に
WaveTrigger
を追加、Has Exit TimeをOFF - 戻り用のTransition(Wave → Idle)も作成
Step2:C#スクリプトでTriggerを発火
-
W
キーでWaveモーションを再生するスクリプトを作成し、アバターにアタッチ
using UnityEngine;
public class AnimationController : MonoBehaviour
{
Animator anim;
void Start() => anim = GetComponent<Animator>();
void Update()
{
if (Input.GetKeyDown(KeyCode.W))
anim.SetTrigger("WaveTrigger");
}
}
Step3:Boolパラメータで状態を保持
-
Walk
(Bool)を作成- Idle → Walk(Walk == true)
- Walk → Idle(Walk == false)
- C#で
A
キーON、S
キーOFFに割り当て
Step4:Floatパラメータで連続的制御
-
Speed
(Float)を作成し、Walk/Runを数値で切り替え -
Shift+↑/↓
で数値を増減し、モーションをBlend
❓ 今日の疑問と解決
Q1. Triggerとは何か?
A. 一回限り有効になるパラメータ。
条件に設定されたTransitionが即発動し、実行後は自動でfalse状態に戻る。
→ 一瞬の動き(Wave, Jumpなど)に最適。
Q2. Bool / Floatとの違いは?
A.
- Bool → ONの間は状態を維持(歩く/止まるなど)
- Float → 数値に応じて状態やBlendを変化(速度でWalk⇔Run切り替え)
- Trigger → その瞬間だけ発火(一回だけの動き)
Q3. StateやTransitionがオレンジにならないのはなぜ?
A. Playモードでシーン内のアバターを選択していない/Auto Live LinkがOFF/再生が一瞬で見逃している可能性が原因。
→ Lock解除、Speedを落とす、戻り遷移を遅らせるなどで確認可能。
Q4. Motion欄が.anim
ではなく.fbx
に見えるのは?
A. .fbx
内にアニメーションクリップが含まれているため。Unityはその内包クリップを直接参照している。
Q5. Idleステートとは?
A. 待機時にループ再生するアニメ。
- MotionにIdle系クリップを割り当て
- Loop TimeをONにして、右クリック→Set as Layer Default Stateでデフォルトに設定
📌 今日の学び
- C#スクリプトを導入すれば、自分の操作でアニメを切り替えることができる
- Triggerは「瞬間的な動き」、Bool/Floatは「状態の維持や連続変化」に使う
- Animatorは State・Transition・Parameters の組み合わせで動きを管理する
-
.fbx
内のアニメもそのままMotionに適用可能
⏭️ 明日(Day4)の予定
- この仕組みを自作VRMモデルに適用
- Idle/Walk/Run/Waveを切り替えられる配信用アバターを構築
- OBSで配信テスト