プロジェクト

全般

プロフィール

機能 #408

完了

機能 #396: ゲーム内常駐ペット育成機能の追加

機能 #406: VRChatアバターの読み込み

three-vrm アバター Web アプリ(VRM1.0 描画 MVP)

機能 #408: three-vrm アバター Web アプリ(VRM1.0 描画 MVP)

エージェント ちゃん さんが12日前に追加. 12日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/24
期日:
進捗率:

100%

予定工数:

説明

背景

#406 決定記録に基づき、VRM 1.0 アバターを three-vrm(@pixiv/three-vrm, three.js)で描画する Web アプリを実装する。

作業内容

  • obs/avatar/(beatoraja の HTTP サーバから配信)に JS/TS アプリを配置。
  • 指定された VRM1.0 ファイルをロードし、MToon マテリアル込みで描画。
  • 待機(idle)アニメーション、機嫌(mood)→VRM 標準表情(joy/sorrow/angry/relaxed/ surprised )マッピング。
  • 連携フィード(/pet/state.json/pet/events SSE)を購読して反映。
  • pet_comment を吹き出し表示(将来 TTS/口パク拡張余地を残す)。
  • 背景透過(OBS/オーバーレイ合成前提)。

完了条件

  • ブラウザで VRM が表示され、state/events に応じて表情・吹き出しが変化する。

依存

「アバター連携フィード基盤」子チケット(契約一致)。VRM1.0 への変換済みアセット。

追記

テスト用VRM1.0ファイル: rusk_vrm1.vrm

いづ さん さんが12日前に更新 操作 #1

いづ さん さんが12日前に更新 操作 #2

エージェント ちゃん さんが12日前に更新 操作 #3

  • ステータス未着手 から 実装中 に変更
  • 進捗率0 から 10 に変更

実装に着手しました。

  • ブランチ: feature/408
  • 対応方針: obs/avatar/ に three-vrm(ベンダー同梱・ビルド無し)の Web アバターアプリを実装。/pet/state.json/pet/events(SSE) を購読し、mood→VRM標準表情(joy/sorrow/angry/relaxed、surprised不使用)・各イベント→リアクション/吹き出し・背景透過を実現。検証は Playwright のブラウザ自動テスト。

エージェント ちゃん さんが12日前に更新 操作 #4

  • ステータス実装中 から 完了 に変更
  • 進捗率10 から 100 に変更

対応が完了しました。

概要

#406 決定記録に基づき、#407 のペットフィード(/pet/state.json/pet/events SSE)を消費する three-vrm アバター Web アプリを obs/avatar/ に新規実装。ObsHttpServer 経由で http://localhost:7322/avatar/index.html 表示、ビルド工程なし・オフライン動作。

変更点

  • three.js + three-vrm で VRM1.0 を描画(MToon対応、alpha + clearColor 0 で背景完全透過、まばたき+呼吸 idleアニメ、spring bone/lookAt)。VRM未配置でも落とさず SSE・吹き出しは継続動作。
  • 起動時に /pet/state.json 取得 → /pet/events(SSE) 購読。mood(0–100)→VRM標準表情(<25 angry / 25–44 sad / 45–69 neutral / 70–84 relaxed / 85–100 happy、surprised不使用)。result/level_up/pet_comment/session_summary/practice_recommend を一時リアクション+吹き出しに反映。
  • 吹き出しは speak(text, ms) 単一APIに分離(将来TTS/口パク余地)。既存OBSオーバーレイのデザイン言語に統一、webfontリンク無しでオフライン維持。
  • 依存は vendor 同梱: obs/avatar/vendor/three-vrm-bundle.js(three 0.160.1 + @pixiv/three-vrm 3.1.6 を esbuild で単一ESM)。*.vrm は gitignore 維持(アセット非コミット)。
  • 変更ファイル: obs/avatar/ 配下の新規18ファイル(アプリ source・Playwrightテスト・vendorバンドル)。既存ファイルの変更なし(Java側は ObsHttpServer/avatar/** を自動配信するため追加実装不要)。

テスト

  • .\gradlew.bat test : Java の変更が無いため対象外(実行せず)。
  • Playwright ブラウザ自動テスト(chromium): 全テスト green(透過背景 / mood→表情 / pet_comment吹き出し / result反応)。VRMアセット非配置でも通過。

関連 MR

  • !85 (feature/408 → develop)

他の形式にエクスポート: PDF Atom