← ドキュメント一覧
VRM・Live2D キャラクター
作成日: 2026-06-10 / 更新日: 2026-06-10
kaedevn は 2D 立ち絵に加えて、VRM(3D) と Live2D(2D アニメ) のキャラクターに対応しています。いずれも 2D 立ち絵と同じスクリプト記法で配置・制御でき、表情・口パク・モーションは 3 系統横断で共通のコマンドが使えます。
状態: ロードマップ Phase 3「VRM・Live2D キャラクター統合」はテスト中です。現時点では同梱の公式サンプルのみ利用でき、独自モデルの取り込みは未対応です。
対応状況(早見表)
| 種別 | 形式 | 描画 | プラットフォーム | 状態 |
|---|---|---|---|---|
| 2D 立ち絵 | 画像 | PixiJS | Web / ネイティブ | 対応 |
| Live2D | Cubism 3 / 4 / 5 | PixiJS(untitled-pixi-live2d-engine) | Web のみ | テスト中 |
| VRM | VRM 1.0 / 0.x | Filament(Web / ネイティブ共通) | Web + macOS / Windows / Android(Filament)。iOS は現状スタブ | テスト中 |
VRM(3D キャラクター)
- 対応バージョン: VRM 1.0 をフル対応、VRM 0.x はレガシー対応(A ポーズへのリセットや歩行ポーズ補正は VRM 1.0 準拠モデルでのみ動作)。
- 描画: 3D は Filament(WebGL)でレンダリングし、PixiJS の 2D レイヤーの上に別キャンバス(z-index)として重ねて合成します。
@sceneMode 2d | vrmで 2D / 3D シーンを切り替えます。 - トゥーン表現: 独自の Filament マテリアル(
toon.filamat)に差し替えてアニメ調の陰影を出します(glTF の MToon 拡張ではなく独自実装)。 - 表情: モデルが持つプリセット表情+カスタム表情を読み込み、名前と重み(0〜1)で適用します。表情数はモデル依存です。
- 揺れもの:
VRMC_springBone(Verlet 積分)で髪・スカートが自然に揺れます。コライダー(当たり判定)は初版未対応。 - ノード制約:
VRMC_node_constraint(roll / aim)を評価し、袖・ツイスト用のボーン(J_Roll / J_Aim)を駆動します。これを評価しないと、humanoid ボーンを動かしても腕まわりが T ポーズのまま残ります。 - ポーズ・配置: 立ち位置
pos(L/C/R)、x/y/s(スケール)、rotY(Y 軸回転)、プリセットポーズaPose/idle。
VRM コマンド
@sceneMode vrm # 3D シーンに切替(2d で戻す)
@vrmShow akane pos=C fade=500 # VRM モデル表示
@vrmExpression happy weight=1 dur=300 # 表情(プリセット/カスタム名)
@vrmPose idle # ポーズプリセット(aPose / idle)
@vrmHide fade=500 # 非表示
Live2D(2D アニメキャラクター)
- ライブラリ:
untitled-pixi-live2d-engine(PixiJS 統合)。Cubism 3 / 4 / 5 に対応。 - モーション: 任意の名前付きモーショングループ(Idle / TapBody など)をインデックス指定で再生。
- 表情: モデル定義から読み込んだ名前付き表情。
- リップシンク: 音声再生に同期(
speak(audioUrl))、またはParamMouthOpenYへの手動値で口パク。 - まばたき・呼吸: エンジンが自動処理。
Live2D コマンド
@live2d hiyori motion=Idle x=640 y=360 scale=0.13 # 表示(path/motion/index/x/y/scale 省略可)
@live2d_motion hiyori TapBody index=0 # モーション再生
@live2d_expression hiyori smile # 表情
@live2d_hide hiyori # 非表示
3 系統共通の表情・口パク・モーション
表情・口パク・モーションは 2D 立ち絵 / Live2D / VRM 横断で同じコマンドが使えます(キャラの種別に応じて内部で振り分け。kanim キャラは一部未対応)。
@ch_exprname expression [fadeMs]— 表情変更(2D=テクスチャ差し替え、Live2D=表情呼び出し)@ch_lipname auto|off|voice [audioUrl]— リップシンク(Live2D はParamMouthOpenY)@ch_motionname motion [index]— モーション再生(Live2D のモーション)
制限事項(現状)
- Phase 3 テスト中。同梱の公式サンプルのみ利用可能で、独自モデルの取り込みは未対応。
- VRM の springBone コライダーは未対応。VRM 0.x は一部のポーズ補正が効かない。
- Live2D はネイティブ未対応(Web のみ)。VRM はネイティブも対応:macOS / Windows / Android が Filament バックエンド(各 ABI 用 Filament ライブラリが配置されている前提。無ければスタブ)。iOS は現状スタブ(Filament パス未配線)。
関連ドキュメント
- エンジンの仕組み — スクリプトエンジンとレンダラの分離
- KS スクリプト仕様書 —
@vrm*/@live2d*/@ch_*コマンドの詳細 - マルチプラットフォーム — ネイティブ描画(Filament / SDL2)
- キャラクターのセットアップ — クリエイター向けの使い方
Ad: inContent (336x280)
Ad: stickyBottom (728x90)