Record original-alignment implementation and traceability checkpoint
Capture current source, content data, tests, asset licenses, and original-specification traceability. Original implementation remains incomplete. The accepted matching UI generation passed 154 suites and 12,253 checks, with eight rendered staff-contract screens reviewed. Latest native Windows and full-original acceptance remain outstanding.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# P22 素材の実在・必要枠台帳
|
||||
|
||||
状態: 初回棚卸し。原本に対する完成認定ではない。原本は `docs/traceability/original/BASELINE.txt`。派生する旧アート仕様書や仮素材の存在を根拠に、原本要件を省略しない。
|
||||
|
||||
`python3 tools/build_original_asset_inventory.py` で再生成する。対象はローカル制作コピーのassetsと、scripts/scenes/autoload/data/assets内のリテラル参照。動的に組み立てる参照や実画面での到達性は別途確認が必要。
|
||||
|
||||
## ファイルと必要枠
|
||||
|
||||
- `media_inventory.json`: 実在290ファイルのSHA・容量・PNG寸法・ソース中の参照・Kenneyライセンスへの対応。mockupsは参考資料として区別。
|
||||
- `facility_usage_slots.json`: 原本30施設 × Lv1〜3 × 表裏 × 外観/内装の360利用枠。360枚の新規画像が必要という意味ではない。共有素材やコード描画で満たせる枠は、レベル・状態・レイヤーの画面証拠を確認してから対応付ける。原本の配置層と表示素材の層を混同しない。
|
||||
- `character_usage_slots.json`: 指定7名の立ち絵・表情・衣装・破損/汚れ、待機/歩行/作業/気絶/運搬/救護/休息の84枠群。複数差分の必要数は未確定。汎用人物の色違いだけでは固有人物の完成を認定しない。
|
||||
- `other_usage_slots.json`: 背景、UI、エフェクト、BGM/環境音/操作音/声、その他人物、今回制作対象外の内容を追跡する17枠群。未制作項目を除外して全素材完成とは扱わない。
|
||||
- `inventory_summary.json`: 件数、原本SHA、リテラル参照の欠損を記録。
|
||||
|
||||
今回の走査では音声ファイル0、画像等へのリテラル参照欠損0。これは音響要件が満たされるという意味ではない。原本は表裏のアレンジ違いBGMとクロスフェード、環境音、操作音、声を要求する。音響の接続コードも今回確認範囲では見つからず、P25で制作・接続が必要。
|
||||
|
||||
## 既存描画の扱い
|
||||
|
||||
`pixel_tower_art.gd` と `pixel_people.gd` は独自のコード描画。前者の施設ID文字列は候補の抽出にだけ使用し、特定施設の内装・外観・Lv差分が存在する証拠にはしていない。後者の汎用ポーズも人物別完成品としていない。旧高解像度テーマへの参照があっても、現在のマップで使われているとは限らない。
|
||||
|
||||
Kenney Tiny Dungeon/Tiny Townは同梱License.txtにCC0の明記を確認し、ファイルハッシュと対応を保存。配布元は `assets/kenney/sources.json`。その他テーマ画像の制作元・制作担当・完成承認はこの台帳では未確認とする。権利問題があると断定するものではない。
|
||||
|
||||
## 差し替えと制作契約
|
||||
|
||||
1. ゲーム保存は施設ID・人物ID・状態を保持し、画像パスやAtlas座標を埋め込まない。既存VisualThemeProfileの意味IDによる差し替えを維持する。
|
||||
2. 既存マップはKenneyの16×16タイルと人物16×18のコード座標を使用。PNGは透明・Nearest・Mipmap無効。画像解像度から当たり判定を変更しない。
|
||||
3. 新しい利用枠は施設/人物ID・レベル・レイヤー・状態を識別し、ファイルの有無とは別に「未制作→仮素材→接続済み→画面受入済み」を記録する。
|
||||
4. 制作時のファイル命名案は `<meaning-id>/<state>-vNN.png`。既存ファイルを一括改名せず、意味IDとの対応を先に追加する。Atlas化は表示側の都合として扱う。
|
||||
5. PNG寸法・余白・原点・フレーム順/時間は制作開始前に対象枠ごとに記録。静止画だけでアニメーション合格にしない。実際の歩行/仕事/搬送/停止状態と照合する。
|
||||
6. 外部素材はURL・作者・ライセンス本文・取得日・原ファイルSHAを保持。Kenneyを優先する。既存ゲームの画像や音を配布物へ取り込まない。
|
||||
7. 各枠に制作担当・受入担当・完成資産・画面証拠を割り当てる。現在は未割当。P22の完了には差分数と担当・品質判断の確定が残る。
|
||||
|
||||
関連: `docs/ART_ASSET_PRODUCTION_SPECIFICATION.md`、`docs/PIXEL_TOWER_VISUALS.md`。これらは制作手順/現実装の記録であり、基本仕様原本を上書きしない。
|
||||
+1262
File diff suppressed because it is too large
Load Diff
+6482
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"facility_mapping": "docs/plans/original-completion-2026-09-29/execution/original_facility_mapping.json",
|
||||
"facility_mapping_sha256": "df0c933220449c8bb3e0fd942ad6f1dee49075abdd6587c4856022e12e3665cf",
|
||||
"baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a",
|
||||
"media_files": 290,
|
||||
"literal_referenced_media_files": 8,
|
||||
"audio_files": 0,
|
||||
"facility_count": 30,
|
||||
"facility_usage_slots": 360,
|
||||
"named_heroines": 7,
|
||||
"character_usage_slot_groups": 84,
|
||||
"other_slot_groups": 17,
|
||||
"approved_assets": 0,
|
||||
"missing_literal_references": [],
|
||||
"scope": "Inventory and candidate mappings only. No asset is promoted to complete by file existence, procedural fallback, or a passing gameplay test. Variant counts and production ownership remain unresolved."
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"scope": "inventory consistency, not visual quality or production completeness",
|
||||
"checks": {
|
||||
"unique_media_paths": true,
|
||||
"unique_facility_slots": true,
|
||||
"original_facilities": true,
|
||||
"unique_character_slots": true,
|
||||
"media_hashes_match": true,
|
||||
"kenney_cc0_present": true,
|
||||
"candidates_exist": true,
|
||||
"no_unreviewed_completion_claim": true
|
||||
},
|
||||
"passed": true
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,192 @@
|
||||
[
|
||||
{
|
||||
"slot_id": "background.front",
|
||||
"requirement": [
|
||||
"B-13.3"
|
||||
],
|
||||
"candidate": "scenes/main/world_preview.gd",
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "background.back",
|
||||
"requirement": [
|
||||
"B-13.3"
|
||||
],
|
||||
"candidate": "scenes/main/world_preview.gd",
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "ui.front_skin",
|
||||
"requirement": [
|
||||
"B-13.4"
|
||||
],
|
||||
"candidate": "assets/themes/japanese_fantasy/visual-theme-v1.tres",
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "ui.back_skin",
|
||||
"requirement": [
|
||||
"B-13.4"
|
||||
],
|
||||
"candidate": "assets/themes/japanese_fantasy/visual-theme-v1.tres",
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "ui.emotion_graph",
|
||||
"requirement": [
|
||||
"B-13.4"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "ui.camera_overlay",
|
||||
"requirement": [
|
||||
"B-13.4"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "effect.shield",
|
||||
"requirement": [
|
||||
"B-13.2"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "effect.smoke",
|
||||
"requirement": [
|
||||
"B-13.2"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "effect.mana_light",
|
||||
"requirement": [
|
||||
"B-13.2"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "audio.front_bgm",
|
||||
"requirement": [
|
||||
"B-13.5"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "audio.back_arrangement",
|
||||
"requirement": [
|
||||
"B-13.5"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "audio.front_ambience",
|
||||
"requirement": [
|
||||
"B-13.5"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "audio.back_ambience",
|
||||
"requirement": [
|
||||
"B-13.5"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "audio.ui",
|
||||
"requirement": [
|
||||
"B-13.5"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "audio.character_voice",
|
||||
"requirement": [
|
||||
"B-13.5"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "other_characters",
|
||||
"requirement": [
|
||||
"B-13.1"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "unverified_required_slot",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
},
|
||||
{
|
||||
"slot_id": "restricted_content_unproduced",
|
||||
"requirement": [
|
||||
"B-12.3",
|
||||
"B-13.1",
|
||||
"B-13.2",
|
||||
"B-13.5"
|
||||
],
|
||||
"candidate": null,
|
||||
"status": "not_produced_outside_current_content_scope",
|
||||
"creator": "unassigned",
|
||||
"required_variant_count": null,
|
||||
"approved_asset": null
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user