プロジェクト

全般

プロフィール

機能 #351

完了

機能 #340: [Phase 1] 非依存コア(パーサ/スキンIR/DB/タイミング)

ferrhythm-skin: 内部スキン IR + LR2 CSV パーサ→IR

機能 #351: ferrhythm-skin: 内部スキン IR + LR2 CSV パーサ→IR

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

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

100%

予定工数:

説明

目的

ゲームが唯一参照する内部スキン IR を定義し、LR2 CSV スキンを IR へ変換するパーサを実装。beatoraja スキンは後追い。

スコープ

  • 内部スキン IR モデル(複数ローダーを単一 IR へ向ける)
  • LR2 CSV パーサ→IR 写像

検証(コンテナ)

LR2 スキン1枚が内部 IR へ無理なく写像できるかをテスト。cargo test グリーン

担当

Codex 委譲(source-only)

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

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

実装に着手しました。

  • ブランチ: feature/351-skin
  • 対応方針: ゲームが唯一参照する内部スキン IR(ローダー非依存)を定義し、LR2 CSV スキン(.lr2skin エントリ+ #INCLUDE される CSV パーツ)を構造的・無損失に IR へ写像するパーサを実装する。検証は samples/skin/lr2/WMII_FHD(play 画面・実スキン)を対象に行う。
  • スコープ: 内部スキン IR モデル / LR2 CSV パーサ→IR 写像 / #INCLUDE 解決(リゾルバ注入)。
  • 対象外(別フェーズ): 実際のスキン描画(Phase 4 / #344)、.lr2font 内部フォーマットの解析、result 画面の .luaskin(beatoraja Lua)。SRC/DST のピクセル値や op コードの実行時評価は IR に素データとして保持し、解釈は描画フェーズに委ねる。

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

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

対応が完了しました。

概要

ゲームが唯一参照するローダー非依存の内部スキン IR を定義し、LR2 CSV スキン(.lr2skin エントリ+#INCLUDE される CSV)を構造的・無損失に IR へ写像するパーサを実装。実スキン WMII_FHD(play 画面)が無理なく IR 化できることを実証。

変更点

  • model: Skin ルート+型付きレコード群。SkinElement は素データ Source/Destination +型付きビュー(SpriteSrc/TextSrc/Keyframe)の無損失設計。条件は論理式 SkinCondition(Option/Not/All/Any)、#SETOPTIONOptionAssignment。未知命令は unhandled、異常は warnings に退避しパースを止めない。
  • lr2: Shift-JIS デコード、コメント/空白除去、命令ディスパッチ、#SRC_*/#DST_*(kind, object_id) 直近バインド、#IF/#ELSEIF/#ELSE/#ENDIF のガード式構築、#INCLUDE をリゾルバ注入(NullResolver/FsIncludeResolver)で再帰展開(深さ上限16)。
  • error/encoding: SkinErrordecode_lr2_text。optional serde フィーチャ。
  • スコープ外: 実描画(Phase 4 #344)・.lr2font 内部・result の Lua スキン。
  • 変更ファイル: crates/ferrhythm-skin/src/{lib,error,encoding,model,lr2}.rsCargo.toml ほか(.gitignoresamples/ 追記)計 6 件。

テスト

  • cargo test --all-features : 成功(skin 26件、workspace 全クレート緑)
  • cargo clippy --all-targets --all-features / cargo fmt --all -- --check : 成功(警告0 / 整形OK)
  • env 駆動の実スキンパーステストで WMII_FHD を 1384要素・2624キーフレーム・警告0・orphan 0 で写像確認

関連 MR

  • !7 (feature/351-skin → develop)

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