Spec
機能仕様書: プロジェクト設定管理機能
機能ID: SPEC-7a2c8e6d
作成日: 2025-10-17
ステータス: 完了
入力: Unityプロジェクト設定の取得と更新(Player、Graphics、Quality、Physics、Audio、Time、Build、Editor等)
実行フロー (main)
1. 入力から設定操作要件を解析
→ 操作タイプ(取得/更新)、設定カテゴリの特定
2. 設定カテゴリの選択
→ Player、Graphics、Quality、Physics、Physics2D、Audio、Time、Build、Editor、InputManager、Tags/Layers
3. 設定の取得(取得操作時)
→ includeフラグに基づいて必要なカテゴリのみ取得
4. 設定の更新(更新操作時)
→ 確認フラグ(confirmChanges)の検証
→ カテゴリごとの設定値の検証と適用
5. 設定変更の永続化
→ AssetDatabaseの保存とプロジェクトファイルの更新
6. 結果の返却
→ 更新された設定値または取得した設定情報
7. 戻り値: SUCCESS(設定情報)
⚡ クイックガイドライン
- ✅ プロジェクト設定の自動化とAIエージェントによる設定管理の必要性に焦点
- ❌ 内部的なUnityの設定ファイル構造やシリアライゼーションの詳細は避ける
- 👥 ゲーム開発者・プロジェクトマネージャー・AIエージェント向けに記述
ユーザーシナリオ&テスト
主要ユーザーストーリー
開発者として、プロジェクト設定を一括で確認・変更するために、設定をプログラムで操作したい。AIエージェントとして、ユーザーの指示に従ってプロジェクト設定を最適化したい。
受け入れシナリオ
- 前提 プロジェクト設定を確認したい、実行 Player設定のみ取得、結果 会社名、製品名、バージョンが返される
- 前提 グラフィックス設定を確認したい、実行 Graphics設定を含めて取得、結果 カラースペース、レンダーパイプラインが返される
- 前提 会社名を変更したい、実行 Player設定更新(confirmChanges=true)、結果 会社名が更新される
- 前提 重力を変更したい、実行 Physics設定更新、結果 重力ベクトルが更新される
- 前提 VSync設定を変更したい、実行 Quality設定更新、結果 VSync countが更新される
- 前提 確認なしで更新しようとした、実行 confirmChanges=falseで更新、結果 エラーが返される
- 前提 全設定を一括確認したい、実行 全includeフラグをtrueで取得、結果 全カテゴリの設定が返される
エッジケース
- confirmChangesがfalseで更新した場合、どう処理するか? → エラーメッセージと確認フラグの説明を返す
- 無効な設定値を指定した場合、どう処理するか? → バリデーションエラーと有効な範囲を返す
- カラースペースを変更した場合、再起動は必要か? → 再起動が必要であることを警告
- 設定更新に失敤した場合、ロールバックされるか? → Unity側の制限により部分的に適用される可能性がある
- 複数のカテゴリを同時に更新した場合、どうなるか? → すべての設定が順次適用される
要件
機能要件
- FR-001: ユーザーは11種類の設定カテゴリから必要なものを選択して取得できる必要がある
- FR-002: システムはPlayer設定(会社名、製品名、バージョン、ウィンドウ設定等)の取得/更新をサポートする必要がある
- FR-003: システムはGraphics設定(カラースペース、レンダーパイプライン等)の取得/更新をサポートする必要がある
- FR-004: システムはQuality設定(品質レベル、VSync、アンチエイリアス、影等)の取得/更新をサポートする必要がある
- FR-005: システムはPhysics設定(重力、ソルバー、スリープ閾値等)の取得/更新をサポートする必要がある
- FR-006: システムはPhysics2D設定(重力、イテレーション等)の取得/更新をサポートする必要がある
- FR-007: システムはAudio設定(グローバル音量等)の取得/更新をサポートする必要がある
- FR-008: システムはTime設定(固定タイムステップ、タイムスケール等)の取得/更新をサポートする必要がある
- FR-009: システムはBuild設定(ビルドシーン、ターゲットプラットフォーム等)の取得をサポートする必要がある
- FR-010: システムはEditor設定(Unity Remote、シリアライゼーションモード等)の取得をサポートする必要がある
- FR-011: システムはInputManager設定(レガシー入力システム)の取得をサポートする必要がある
- FR-012: システムはTags/Layers設定の取得をサポートする必要がある
- FR-013: 設定更新時にconfirmChangesフラグ(安全性確認)が必須である必要がある
- FR-014: システムは設定更新後にAssetDatabaseを保存する必要がある
- FR-015: システムは再起動が必要な設定変更を警告する必要がある
非機能要件
- NFR-001: 設定取得は2秒以内に完了する必要がある(全カテゴリの場合)
- NFR-002: 設定更新は3秒以内に完了する必要がある(複数カテゴリの場合)
- NFR-003: 設定値のバリデーションは即座に実行される必要がある
- NFR-004: 設定更新の失敗時にエラーメッセージを明確に返す必要がある
- NFR-005: 設定取得時のメモリ使用量は10MB以下である必要がある
主要エンティティ
- ProjectSettings: 各カテゴリの設定値を含むプロジェクト設定情報
- PlayerSettings: 会社名、製品名、バージョン、ウィンドウ設定を含むPlayer設定
- GraphicsSettings: カラースペース、レンダーパイプラインを含むGraphics設定
- QualitySettings: 品質レベル、VSync、アンチエイリアス、影距離を含むQuality設定
- PhysicsSettings: 重力、ソルバーイテレーション、閾値を含むPhysics設定
- SettingsUpdateRequest: カテゴリごとの更新値、確認フラグを含む更新要求
レビュー&受け入れチェックリスト
コンテンツ品質
要件完全性
実行ステータス
参考実装
実装ファイル
unity-cli/src/handlers/settings/SettingsGetToolHandler.js
unity-cli/src/handlers/settings/SettingsUpdateToolHandler.js
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/ProjectSettingsHandler.cs
技術詳細
- PlayerSettings、QualitySettings、PhysicsSettings等の静的APIを使用
- EditorBuildSettings、EditorSettings、TagManagerによる設定管理
- AssetDatabase.SaveAssetsによる永続化
- 設定変更の検証とエラーハンドリング
Plan
実装計画: プロジェクト設定管理機能
機能ID: SPEC-7a2c8e6d | ステータス: 実装完了
概要
本機能は既に実装済みです。このplan.mdは実装完了後に作成されました。
実装状況
- ✅ Phase 0: Research完了
- ✅ Phase 1: Design完了
- ✅ Phase 2: Task planning完了
- ✅ Phase 3: Tasks実装完了
- ✅ Phase 4: 実装完了
- ✅ Phase 5: テスト完了
参考実装
実装詳細については spec.md の「参考実装」セクションを参照してください。
本ドキュメントは実装完了後に作成されました
Tasks
タスク: プロジェクト設定管理機能
機能ID: SPEC-7a2c8e6d | ステータス: 完了
実装状況
本機能は既に実装済みです。すべてのタスクが完了しています。
完了済みタスク
参考
実装詳細については spec.md および plan.md を参照してください。
本ドキュメントは実装完了後に作成されました
TDD
TODO
Research
TODO
Data Model
TODO
Quickstart
TODO
Contracts
Artifact files under contracts/ are managed in issue comments with contract:<name> entries.
Checklists
Artifact files under checklists/ are managed in issue comments with checklist:<name> entries.
Acceptance Checklist
Spec
機能仕様書: プロジェクト設定管理機能
機能ID:
SPEC-7a2c8e6d作成日: 2025-10-17
ステータス: 完了
入力: Unityプロジェクト設定の取得と更新(Player、Graphics、Quality、Physics、Audio、Time、Build、Editor等)
実行フロー (main)
⚡ クイックガイドライン
ユーザーシナリオ&テスト
主要ユーザーストーリー
開発者として、プロジェクト設定を一括で確認・変更するために、設定をプログラムで操作したい。AIエージェントとして、ユーザーの指示に従ってプロジェクト設定を最適化したい。
受け入れシナリオ
エッジケース
要件
機能要件
非機能要件
主要エンティティ
レビュー&受け入れチェックリスト
コンテンツ品質
要件完全性
実行ステータス
参考実装
実装ファイル
unity-cli/src/handlers/settings/SettingsGetToolHandler.jsunity-cli/src/handlers/settings/SettingsUpdateToolHandler.jsUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/ProjectSettingsHandler.cs技術詳細
Plan
実装計画: プロジェクト設定管理機能
機能ID:
SPEC-7a2c8e6d| ステータス: 実装完了概要
本機能は既に実装済みです。このplan.mdは実装完了後に作成されました。
実装状況
参考実装
実装詳細については
spec.mdの「参考実装」セクションを参照してください。本ドキュメントは実装完了後に作成されました
Tasks
タスク: プロジェクト設定管理機能
機能ID:
SPEC-7a2c8e6d| ステータス: 完了実装状況
本機能は既に実装済みです。すべてのタスクが完了しています。
完了済みタスク
参考
実装詳細については
spec.mdおよびplan.mdを参照してください。本ドキュメントは実装完了後に作成されました
TDD
TODO
Research
TODO
Data Model
TODO
Quickstart
TODO
Contracts
Artifact files under
contracts/are managed in issue comments withcontract:<name>entries.Checklists
Artifact files under
checklists/are managed in issue comments withchecklist:<name>entries.Acceptance Checklist