コンテンツにスキップ

Live2D アニメーションとマッピング

Mapping タブは、エージェントの行動をアニメーションに接続して Live2D モデルに命を吹き込む場所です。システムには 3 つのレイヤーがあります:Clips が何が起こるかを定義し、Rules がいつ起こるかを定義し、エージェントの状態がすべてを自動的に駆動します。

エージェント状態(感情、動作、ツール呼び出し)
┌──────────┐ all-match(マッチした全ルールが発火)
│ Rules │ ──────────────────────► どのクリップを再生?
└──────────┘
┌──────────┐ クリップは並列再生
│ Clips │ ──► 時間経過に伴うパラメータ変化
└──────────┘
│ 競合はプライオリティ+ブレンドモードで解決
Live2D モデルパラメータ更新

クリップ は再利用可能なアニメーション — 時間経過に伴うパラメータ変化のセットです。複数のルールからトリガーできる短いアニメーションシーケンスと考えてください。

3 つの作成方法:

1. 手動作成

  • Mapping タブの Add Clip をクリック
  • パラメータトラックを追加してキーフレームを設定
  • 精密な制御にはフルスクリーンタイムラインエディターを使用

2. 表情からインポート

  • Create From Expression をクリック
  • モデルの表情プリセット(.exp3.json)を選択
  • Enter → Hold → Release フェーズのクリップが作成されます
  • 各フェーズの持続時間を設定

3. モーションからインポート

  • Import Motion As Clip をクリック
  • モデルのモーション(.motion3.json)を選択
  • モーションのカーブが編集可能なキーフレームに変換されます
プロパティオプション説明
ブレンドモードAdd、Multiply、Overwrite他のアクティブなクリップとの合成方法
再生One Shot、Loop、Repeat Nクリップの再生回数
完了Complete、Boundトリガー終了時にクリップを最後まで再生するか
終了動作Stop、Hold then Releaseクリップ終了時の動作
リリースカーブ持続時間(ms)クリップ終了時のスムーズなフェードアウト

Open Full Editor をクリックして独立のタイムラインエディターを開きます:

  • パラメータごとのキーフレームトラック(トラックモディファイア対応)
  • 3 次ベジェカーブ編集(ビジュアルプレビュー付き)
  • スクラブ、パン、ズーム操作
  • モデルと同期したリアルタイムプレビュー

キーフレーム編集ショートカット

Section titled “キーフレーム編集ショートカット”
操作ショートカット説明
キーフレーム選択クリック1回目で選択、2回目でインライン編集パネルを開く
カーブ切り替えCtrl+クリックリニア → ベジェ → スプリング → ステップ を順に切り替え
キーフレーム追加/削除ダイヤモンドボタン再生ヘッド位置にない場合は追加、ある場合は削除

キーフレームアイコンでカーブタイプを一目で識別:

  • ◇ ダイヤモンド(スカイブルー)— リニア補間
  • ● 円形(エメラルド)— キュービックベジェ
  • ◆ 丸角ダイヤ(バイオレット)— スプリング
  • ■ 四角(アンバー)— ステップ(即座にジャンプ)

モディファイアはキーフレーム値を変換するプロシージャルエフェクトです — After Effects のエクスプレッションに着想を得ています。追加のキーフレームなしで有機的な動きを加えられます。

  1. タイムライン: トラックラベル横の [+] ボタンをクリック、またはモディファイアバッジをクリックして編集
  2. インスペクター: トラック上のキーフレームを選択し、モディファイアセクションの 追加 ドロップダウンを使用
モディファイアバッジ効果主なパラメータ
Wiggle[W]パーリンノイズオフセット — 有機的なランダム揺れfrequency, amplitude
Drift[D]スムーズな漂流 — 中心値付近をゆっくり漂うradius, speed
Sine[S]正弦波 — 規則的な周期振動amplitude, speed, phase
Pulse[P]ランダム間隔のインパルス — 時折の突発的変化peak offset, interval range
Spring[K]減衰振動 — 衝撃 → 回復バウンスinitial offset, stiffness, damping
Loop[L]キーフレームの繰り返し — cycle または pingpongmode
Noise[N]簡易版 Wiggle — 固定振幅ノイズamplitude, speed
Clamp[C]値制限 — 出力を安全範囲に維持min, max

各トラックにはブレンドモードがあり、他のアクティブなクリップとの合成方法を制御します:

モード動作用途
Override(デフォルト)高優先度クリップが低優先度を置き換え表情アニメーション
Add他のクリップの出力に加算呼吸、揺れ(表情クリップ中も持続)
Multiply他のクリップの出力を乗算特殊効果

バーチャルフォーカスパラメータ

Section titled “バーチャルフォーカスパラメータ”

2つの特殊な仮想パラメータでモデルの視線方向を制御できます:

パラメータ範囲説明
__focus_x__[-1, 1]水平視線方向(左 ↔ 右)
__focus_y__[-1, 1]垂直視線方向(下 ↔ 上)

パラメータリストの Virtual グループに表示されます。クリップタブの テンプレートVirtual Focus で、Driftモディファイア付きのフォーカストラックをワンクリックで作成できます。

ルールはエージェントの状態をクリップに接続します。エージェントの状態がルールの条件に一致すると、関連するクリップが再生されます。

各ルールには:

  • 条件 — いつトリガーするか(感情、動作、ツール呼び出し、アイドル)
  • クリップグループ — トリガー時に再生するクリップ
  • 再生モード — 単一クリップ、全クリップ、ランダム選択
タイプトリガー
Expressionemotion + action の組み合わせemotion = happy、action = speaking
Tool Callエージェントが特定ツールを使用web_searchmanage_memory
Idleエージェントが何もしていないバックグラウンドアニメーション

emotion と action の両方で 「Any」 ワイルドカードがサポートされています。

条件を満たすすべてのルールが 同時に 発火します。first-match-wins ではありません。複数のルールがマッチすると、すべてのクリップが並列再生されます。

ルール 1: emotion=angry, action=Any → "angry" クリップ再生
ルール 2: emotion=Any, action=speaking → "talk" クリップ再生
ルール 3: emotion=happy, action=Any → "smile" クリップ再生
ルール 4: idle → "breathing" クリップ再生

エージェントが怒りながら話している場合、ルール 1 と ルール 2 の 両方 がマッチし、“angry” クリップと “talk” クリップが同時に再生されます。

競合解決(クリッププライオリティ)

Section titled “競合解決(クリッププライオリティ)”

複数のクリップが同じパラメータに書き込む場合、クリップのプライオリティ(ルール単位ではなくクリップ単位で設定)で競合が解決されます:

プライオリティレベルユースケース
0Idle背景の呼吸、微妙な動き
1Normalほとんどのクリップのデフォルト
2Emotion表情/動作トリガーのクリップ
3Force最高 — すべてをオーバーライド

高いプライオリティのクリップが優先されます。同じプライオリティ内では ブレンドモード で値の合成方法が決まります(Add = 重ね、Multiply = スケール、Overwrite = 置き換え)。

アイドル挙動 は、他のルールがマッチしない時に再生される長期的なバックグラウンドアニメーションです。

ベース挙動 はアイドルとアクティブ両方の状態で実行され、持続的なアニメーションレイヤー(微妙な呼吸やまばたきなど)を提供します。

Live2D アニメーションマッピングは、より広い Expression Settings システムと連携します:

  1. Vocabulary(Expression Settings → Vocabulary タブ) — エージェントが表現できる感情と動作の語彙を定義
  2. Mapping Rules(Live2D Settings → Mapping タブ) — それらの感情/動作を Live2D クリップにマッピング
  3. エージェント出力 — 会話中、LLM が感情と動作を出力し、マッチするルールが自動トリガー

ユースケース 1: 基本的な会話アニメーション

Section titled “ユースケース 1: 基本的な会話アニメーション”

ステップ 1: モデルをインポート(Model タブ)

ステップ 2: デフォルトのアイドルモーションを設定(Parameters タブ)

ステップ 3: クリップを作成(Mapping タブ → Clips)

  • “happy”ParamEyeLOpen: 0.7ParamMouthForm: 0.8(目を細めた微笑み)
  • “thinking”ParamAngleX: -8ParamEyeLOpen: 0.5(頭を傾けて半目)
  • “speaking”ParamMouthOpenY 0 → 0.6 → 0 サイクル(口の動きループ)

ステップ 4: ルールを作成(Mapping タブ → Rules)

  • emotion = happy → “happy” クリップ再生
  • emotion = thinking → “thinking” クリップ再生
  • action = speaking → “speaking” クリップ再生(ループ)

ステップ 5: シーケンステスターで各ルールの動作を確認

ユースケース 2: ツール呼び出しアニメーション

Section titled “ユースケース 2: ツール呼び出しアニメーション”

クリップを作成:

  • “search”ParamEyeLOpen: 1.0ParamBrowLY: 0.3(目を見開いて眉を上げる)
  • “write”ParamAngleY: -5ParamEyeLOpen: 0.6(下を向いて集中)

ルールを作成:

  • tool_call = web_search → “search” クリップ再生
  • tool_call = manage_memory → “write” クリップ再生

ユースケース 3: モデル表情からインポート

Section titled “ユースケース 3: モデル表情からインポート”
  1. Mapping タブで Create From Expression をクリック
  2. 表情プリセットを選択(例:「smile」)
  3. タイミング設定:Enter 300ms、Hold 2000ms、Release 500ms
  4. スムーズなパラメータ遷移のクリップが自動作成
  5. emotion = happy → インポートしたクリップにマッピングするルールを作成

ユースケース 4: デスクトップペットモード

Section titled “ユースケース 4: デスクトップペットモード”
  1. AnySoul デスクトップアプリ をインストール
  2. Desktop Pet モードを有効化
  3. Live2D モデルがデスクトップ上の透明オーバーレイでレンダリング
  4. すべてのアニメーションルールがそのまま動作

Mapping タブ下部の Default (Idle) セクションで、ベースラインのパラメータ値を設定できます。クリップやルールがアクティブでない時に適用される値です。