プロジェクト

全般

プロフィール

機能 #401

完了

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

AI ペットコメント(pet_comment)

機能 #401: AI ペットコメント(pet_comment)

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

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

100%

予定工数:

説明

背景 / 目的

親チケット #396 追加メモ①。リザルト後にペットが短いコメントを発話する機能を実装する。プレイヤーの傾向やスコア変化を元に、ペットらしい言葉でフィードバックする。

作業内容

  • リザルト画面でペットコメントを生成するロジックを実装する
  • 入力: スコア・判定分布・BP・クリア種別・過去ベスト
  • 出力: pet_comment 文字列として skin から参照できるプロパティに追加する
  • コメントのパターン例: 「今日は FAST 多め」「BP 減ってる」「この曲は前回より良い」
  • ローカルロジックで生成する(外部 API 不使用)

完了条件 (DoD)

  • リザルト後に pet_comment が空でない値になる
  • FAST 多め・BP 増減・スコア更新などの代表ケースで適切なコメントが生成される
  • pet_comment が skin から ID / 名前で解決できる
  • ユニットテストがすべて通る

補足

依存先: #397(永続化)・#400(skin プロパティ)が完了していること。性格機能(#405)と連携予定。

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

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

実装に着手しました。

  • ブランチ: feature/401
  • 対応方針: コメント生成は #398 と同様に ScoreData 非依存の独立純粋関数モジュール(PetCommentGenerator + 入力値オブジェクト)として実装する。出力先はチケット本文の skin プロパティ案から変更し、アバター連携フィードの PetEvent.Comment(type pet_comment)経由で publish する(#400 却下=skin 側廃止方針、および #407 系で PetEvent.Comment 実装済みのため)。MusicResult のリザルト後処理で PetEvent.Result に続けてコメントを publish する。

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

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

対応が完了しました。

概要

単曲 PLAY のリザルト後にペットが短いコメントを発話する機能を追加。コメント生成は #398 と同様の独立純粋関数モジュールとして実装し、出力はアバター連携フィードの PetEvent.Comment(type pet_comment)経由のみとした。

スコープ補足

チケット本文は出力先を skin プロパティとしていたが、依存先 #400(skin プロパティ追加)が「VRMでやりたい」として却下済みのため、アバターフィードの PetEvent.Comment のみとし skin プロパティは追加していない(事前にユーザー確認済み)。

変更点

  • PetCommentInput(新規): 不変の入力値オブジェクト。コンストラクタで防御的に正規化(負値→0、null ClearTypeNoPlay)。
  • PetCommentGenerator(新規): ScoreData 非依存の純粋・決定的な生成器。優先順位10分岐で常に非null・非空の日本語コメントを返す(クリアランクアップ/スコア更新/BP増減/FAST・SLOW多め/Failed/フルコン/初プレイ/fallback)。
  • result/MusicResult.java(変更): 単曲 PLAY ガード内、PetEvent.Result publish 直後に新旧 ScoreData から入力(FAST/SLOW 合計・BP・クリア・EXスコア・初プレイ判定)を構築しコメントを publish。
  • テスト PetCommentGeneratorTest(新規、13ケース): 全分岐/非null非空保証/防御的正規化/初プレイ時の過去ベスト比較ガードを網羅。
  • 変更ファイル: src/bms/player/beatoraja/PetCommentInput.javaPetCommentGenerator.javaresult/MusicResult.javasrc/test/java/bms/player/beatoraja/PetCommentGeneratorTest.java(計4件、+245行)

テスト

  • .\gradlew.bat compileJava compileTestJava test --tests bms.player.beatoraja.PetCommentGeneratorTest : 成功(13ケース緑、警告は既存の無関係なもの)。変更は JavaFX 非依存の純粋ロジック+リザルト連携のみ。

関連 MR

  • !87 (feature/401 → develop)

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