# 最大欲求優先AIと来客観察UIの実装 2026-09-29。原本 `BASELINE.txt` 81〜83行(B-4.2)を現行のGuestServiceとRuntimeへ反映した。原本そのものは変更していない。 ## 挙動の変更 従来は欲求解消・好み・品質・価格等の総合点を先に比較しており、空腹90・睡眠70でも高品質な客室を選び得た。現在は、施設が解消する四大欲求(食欲・睡眠欲・娯楽欲・性欲)の現在値を優先し、同じ欲求優先度の候補間で既存の距離・行列・価格・品質・好み等の点数を比較する。候補側が指定する緊急度で実欲求を上書きしない。 到達不能・休業・所持金不足・最低品質・クラス制約等の既存フィルターは維持する。同点時は既存の安定した施設ID順に決め、候補の投入順に左右されない。主欲求を解消する施設が利用不能、効用が退館閾値未満、予約失敗の場合は次の利用可能な候補へ進む。これは既存の代替施設・退館処理を維持する実装判断で、原本にない閾値や料金を新設していない。 新たな意思決定時に適用する。移動・待機・利用途中の目的地を強制的に変更しない。サービス属性一致の料金加算とは別の選択規則であり、未設定の加算額・不足基準を確定していない。衛生・救護の既存状態と緊急回復経路も保持する。 ## ゲーム内の確認方法 上部の「来客」ボタンを押すと、実在する客を選び、四欲求のバー、所持金、忍耐、現在の行動、目的地を確認できる。現在最も高い欲求を文字でも表示する。同値の欲求は併記し、全て0なら「なし」。退館者の選択は残さず、読込後は復元されたGuestServiceから表示を作り直す。 表示は現在値と選択方針の説明。過去の意思決定を記録した思考履歴ではない。B-11.2の四欲求観察部分を進めたが、同要件群全体を完了とはしない。 パネルの更新は表示中のみ0.5秒間隔。経路探索や候補採点を表示のために再実行せず、保存スキーマも追加しない。描画確認ではSimulationDigest不変を検証した。 ## 検証 [最終集計](../../../artifacts/guest-ai-2026-09-29/verification-summary.json): 関連 **627項目PASS・失敗0**。今回は関連試験の再実行であり、前回の全83本を新たに全件実行した結果ではない。 | 対象 | 項目数 | 主な確認 | |---|---:|---| | GuestService | 137 | 低い欲求の高品質施設より最大欲求を優先、距離・列・価格、到達・所持金、同値、閾値と予約失敗の代替、保存再生 | | 来客UI | 22 | 実HUDから開く、全行動状態、欲求更新、空一覧、退館、復元、観察による状態不変 | | Runtime客・職員統合 | 40 | 自律行動とサービス、24時間再生の完全一致 | | Runtime異常系 | 74 | 行動・経路・保存境界 | | ダッシュボード | 127 | HUD、操作、複数解像度のレイアウト | | 営業 | 48 | 料金・受付・待機等 | | 保存ライフサイクル | 96 | ディスク保存、復元、破損と回復 | | 通常開業 | 53 | 初期予算から実建設・雇用・宿泊・00:00決算・翌朝、実描画 | | macOS配布PCK | 15 | ソース非依存の18施設・建設・来客パネル | | Windows配布PCK | 15 | 同上 | `make check`、`git diff --check`も成功。Macの配布実行ファイルを起動して正常終了。Windows向け書き出しとPCK検証はMac上で行い、今回のWindows実機操作・性能測定は未実施。 [来客パネルの実画面](../../../artifacts/guest-ai-2026-09-29/observer.png) は、テスト用の実GuestRuntimeの欲求を設定した表示確認。自然来客の営業受入は上記53項目の別シナリオで確認した。 ## 配布版 - Mac: `build/macos/TheTree-GuestAI-2026-09-29.app` - `TheTree-ドット版を起動.command` を上記へ更新(ローカルとDriveの既存起動リンク)。 - Windows: `build/TheTree-Windows-GuestAI-2026-09-29.zip`。展開したEXEとPCKを同じフォルダーに置き、EXEを起動する。 - [ソース・配布物のハッシュ](../../../artifacts/guest-ai-2026-09-29/manifest.json) ## 残件 天候・流行、救護搬送のローカル統合、全施設・経済・進行・クラス特性、思考履歴などは残る。[原本対応表](IMPLEMENTATION_STATUS.md) と `requirements.json` を参照。本変更で原本全体の完成とはしない。