Live2D はじめに
Live2D を使えば、エージェントが感情、動作、ツール呼び出しにリアルタイムで反応するアニメーションアバターで自己表現できます。このガイドでは、インポートから最初のアニメーションまでの完全なセットアップ手順を説明します。
AnySoul の Live2D とは?
Section titled “AnySoul の Live2D とは?”AnySoul は Live2D Cubism モデルをエージェントのアニメーションアバターとして統合しています。静止画の代わりに、エージェントの感情状態、動作、ツール使用に動的に反応するビジュアルを実現します。
従来の VTuber セットアップでは、カメラによるフェイストラッキングで人間がモデルを操作します。AnySoul では 言語モデルの出力 がアバターを自動駆動します。LLM が会話中に感情や動作を出力し、マッピングルールがそれを Live2D パラメータアニメーションに変換します — カメラは不要です。
2 つのレンダリングモード:
- Web — ブラウザ内でチャットと一緒に Live2D アバターをレンダリング
- デスクトップペット — デスクトップ上の透明オーバーレイウィンドウ(Electron アプリ)
対応モデル: Cubism 3、4、5(.model3.json 形式)
完全なワークフロー概要
Section titled “完全なワークフロー概要”Live2D のセットアップは 3 つのステップで行います。各ステップは Live2D 設定パネルのタブに対応しています:
┌─────────────────────────────────────────────────────────────────┐│ Live2D セットアップの流れ ││ ││ ① Model タブ ─── インポートとデフォルト設定 ││ │ ZIP アップロード → デフォルトパラメータ値を設定 ││ │ (待機ポーズ: 目の開き具合、口の形、頭の角度など) ││ │ ││ ▼ ││ ② Mapping タブ ─── アニメーションクリップ ││ │ 再利用可能なクリップを作成: ││ │ "smile" → ParamMouthForm: 0→0.8, ParamEyeLOpen: 1→0.7 ││ │ "think" → ParamAngleX: 0→-8, ParamEyeLOpen: 1→0.5 ││ │ "speak" → ParamMouthOpenY: 0↔0.6 サイクル (ループ) ││ │ ││ │ 各クリップの再生モード: ││ │ · One Shot — 1回再生して終了 ││ │ · Loop — トリガー終了まで繰り返し ││ │ · Repeat N — 正確にN回再生 ││ │ ││ │ 完了ポリシー: ││ │ · Complete — トリガー終了後もアニメーションを最後まで再生 ││ │ · Bound — トリガー終了時に即停止 ││ │ ││ ▼ ││ ③ Mapping タブ ─── ルール ││ │ LLM出力 → クリップを接続: ││ │ emotion=happy → "smile" クリップ再生 ││ │ emotion=thinking → "think" クリップ再生 ││ │ action=speaking → "speak" クリップ再生 (ループ) ││ │ tool_call=web_search → "search" クリップ再生 ││ │ idle → "breathing" クリップ再生 (ループ) ││ │ ││ │ マッチした全ルールが同時に発火。 ││ │ 競合はクリップ優先度+ブレンドモードで解決。 ││ ▼ ││ ││ 会話 → LLM が emotion/action 出力 → ルールマッチ ││ → クリップ再生 → パラメータアニメーション → モデルが動く │└─────────────────────────────────────────────────────────────────┘ステップ 1: モデルのインポートとデフォルト設定
Section titled “ステップ 1: モデルのインポートとデフォルト設定”モデルの準備
Section titled “モデルの準備”Live2D モデルは以下の構造を含む ZIP ファイル にパッケージする必要があります:
my-model.zip├── model.model3.json # 必須 — モデル定義├── textures/ # テクスチャ画像 (.png)│ └── texture_00.png├── motions/ # モーションファイル (.motion3.json)│ ├── idle_01.motion3.json│ └── happy.motion3.json└── expressions/ # 表情ファイル (.exp3.json) ├── smile.exp3.json └── surprised.exp3.jsonモデルの入手先:
- Live2D Cubism Editor で自作
- nizima や Booth でコミュニティモデルを閲覧
- Live2D SDK の無料サンプルモデルを使用
- エージェントの設定パネルを開く
- Live2D Model 設定に移動
- Model タブをクリック
- Upload Model (ZIP) をクリックして ZIP ファイルを選択
- インポート完了を待つ — モデルがプレビューエリアに即座にレンダリングされます
インポート後、エージェントのスタンディングタイプは自動的に Live2D モードに切り替わります。
デフォルトパラメータの設定
Section titled “デフォルトパラメータの設定”Parameters タブに切り替え、モデルの 待機ベースライン を設定します — アニメーションが再生されていない時のニュートラルポーズ:
- 目 —
ParamEyeLOpen/ParamEyeROpenを自然な開き具合に設定(例:0.85) - 口 —
ParamMouthFormでデフォルトの表情を設定(-1 = すぼめ、0 = ニュートラル、1 = 微笑み) - 頭 — 軽い傾きが欲しければ
ParamAngleX/Y/Zを調整 - アイドルモーション — Motions セクションでデフォルトのアイドルモーションをピン留め(例:穏やかな呼吸ループ)
これらのデフォルト値は、アニメーションクリップの再生終了後にモデルが戻る状態です。
インポート後の操作:
- 名前変更 — モデル名の横にある鉛筆アイコンをクリック
- エクスポート — バックアップや共有用に ZIP としてダウンロード
- 削除 — モデルを削除して静止画モードに戻す
- マウス追従 — 有効にするとモデルがカーソルを追跡
ステップ 2: アニメーションクリップの作成
Section titled “ステップ 2: アニメーションクリップの作成”Mapping タブに切り替えます。クリップは構成要素 — 各クリップはルールによってトリガーできるパラメータアニメーションを定義します。
クリップとは?
Section titled “クリップとは?”クリップは、1 つ以上のモデルパラメータを時間経過とともに変化させる再利用可能なアニメーションです。例えば、「微笑み」クリップなら:
ParamMouthFormを 0 から 0.8 に 200ms で増加ParamEyeLOpenを 1.0 から 0.7 に 200ms で減少- 1 秒間保持した後、500ms でデフォルトに戻る
クリップの作成
Section titled “クリップの作成”3 つの作成方法:
- 手動 — Add Clip をクリック、パラメータトラックを追加してキーフレームを設定。精密なマルチパラメータ制御には Full Editor(タイムライン)を使用。
- 表情からインポート — Create From Expression でモデルの
.exp3.jsonプリセットを、Enter/Hold/Release タイミング設定付きのクリップとしてインポート。 - モーションからインポート — Import Motion As Clip で
.motion3.jsonを編集可能なキーフレームクリップに変換。
| モード | 動作 | 使用場面 |
|---|---|---|
| One Shot | 1 回再生して終了 | リアクション(うなずき、手を振る、驚き) |
| Loop | トリガー終了まで繰り返し | 持続状態(話す口の動き、考え中) |
| Repeat N | 正確に N 回再生 | 固定シーケンス(3 回まばたき、2 回うなずき) |
完了ポリシー
Section titled “完了ポリシー”トリガー条件がアニメーション途中で終了した時の動作を制御:
| ポリシー | 動作 | 使用場面 |
|---|---|---|
| Complete | アニメーション全体を最後まで再生してから終了 | ジェスチャーを途中で切りたくない場合 |
| Bound | トリガー終了時に即停止 | エージェント状態変化に厳密に同期 |
詳細なクリップリファレンスは アニメーションとマッピング を参照してください。
ステップ 3: マッピングルールの設定
Section titled “ステップ 3: マッピングルールの設定”ルールはエージェントの言語モデル出力とアニメーションクリップを接続する「のり」です。これが AnySoul の Live2D を従来の VTuber セットアップと差別化するポイントです — フェイストラッキングの代わりに、LLM がモデルを駆動 します。
会話中、LLM はテキスト応答とともに構造化メタデータを出力します:
- Emotion — エージェントの感情(happy、sad、angry、thinking など)
- Action — エージェントの動作(speaking、nodding、waving など)
- Tool calls — 使用中のツール(web_search、manage_memory など)
ルールはこれらの出力をクリップにマッピング:
┌──────────────────────┐ ┌──────────────────────┐│ LLM 出力: │ │ ルールマッチ: ││ emotion = happy │ ──► │ → "smile" クリップ ││ action = speaking │ ──► │ → "speak" クリップ │└──────────────────────┘ └──────────────────────┘| タイプ | マッチ対象 | 例 |
|---|---|---|
| Emotion | エージェントの感情状態 | emotion = happy |
| Action | エージェントの動作 | action = speaking |
| Tool Call | 使用中のツール | tool_call = web_search |
| Text | モノローグ内の部分文字列 | text contains "haha" |
| Idle | アクティブなトリガーなし | 背景の呼吸アニメーション |
条件は * ワイルドカード(任意の値にマッチ)と複合ロジック(AND / OR)をサポートしています。
All-Match 並列再生
Section titled “All-Match 並列再生”条件を満たすすべてのルールが 同時に 発火します。エージェントが「happy」で「speaking」の場合、smile ルールと speak ルールの両方がトリガーされ、クリップが並列再生されます。
複数のクリップが同じパラメータに影響する場合、クリッププライオリティ(0–3)と ブレンドモード(Add / Multiply / Overwrite)で競合が解決されます。詳細は アニメーションとマッピング を参照。
アイドルとベース挙動
Section titled “アイドルとベース挙動”常時再生のバックグラウンドアニメーション(呼吸、微妙な揺れ、まばたき)には:
- Loop 再生のクリップを作成
- 通常のルールではなく Idle Behavior として追加
- 他のルールがマッチしない時に継続的に再生され、アイドル中でもモデルに自然な動きを与えます
3 つのステップ完了後:
- プレビューエリア — デフォルトパラメータでモデルが正しくレンダリングされることを確認
- ルールテスト — Mapping タブの シーケンステスター で emotion/action シーケンスをシミュレートし、クリップが正しくトリガーされることを確認
- チャットテスト — エージェントと会話を開始し、アバターがリアルタイムで反応するのを確認
次のステップ
Section titled “次のステップ”- パラメータリファレンス — 各パラメータ、モーション、パーツ、表情の詳細
- アニメーションとマッピング — 高度なクリップ編集、競合解決、詳細なユースケース