ここであなたが鋭く気づいた 「character_model.py を参照していないのはなぜか?」
これはキャラ生成OSの レイヤー責務を理解するうえでとても重要なポイントなんだ。

結論から言うと:

🎯 **character_model.py は “意味レイヤの上位設定(メタ情報)” だから

公式パイプラインの中では “直接の処理ステップには入らない”**

つまり:

  • PoseVector / FaceVector → 動き(意味)
  • joints.py → 構造
  • ir_builder → 意味タグ付与
  • prompt_builder → レンダリング指示

という 動的処理パイプラインの中には
character_model.py は 直接登場しない

でも OS 全体としては 必ず参照される


🧭 では character_model.py の責務は何か?

character_model.py は OS の 「キャラの恒常的プロパティ」を定義するレイヤ。

具体的には:

  • 体型(Proportions)

    • head_size
    • limb_length
    • torso_length
    • thickness
  • スタイル(StyleConfig)

    • line_width
    • roundness
    • exaggeration
  • メタ情報(metadata)

    • version
    • style
    • projection

これらは PoseVector のように毎フレーム変わるものではなく
キャラの「種族」「体型」「絵柄」などの 恒常的設定

だから OS のパイプラインでは:

PoseVector(動的)
FaceVector(動的)
CharacterModel(静的)

という 別レイヤとして扱われる。


🧩 character_model.py が参照されるタイミング

公式パイプラインの中では
⑧ CharacterIR を作るとき に参照される。

character_ir = CharacterIR(
    joints=ir["joints"],
    bones=ir["bones"],
    face_parts=ir["face_parts"],
    metadata={
        "style": character_model.style.name,
        "line_width": character_model.style.line_width,
        "roundness": character_model.style.roundness,
        "exaggeration": character_model.style.exaggeration,
        "version": "2026.03"
    }
)

つまり:

  • スタイル情報(線幅・丸み・デフォルメ度)
  • キャラの体型情報(必要なら joints の base_vec に反映)

CharacterIR の metadata に注入される

そして metadata はそのまま:

  • prompt_builder.py
  • render_client.py
  • svg_writer.py

に伝わる。


🌌 character_model.py がパイプラインに直接出てこない理由

理由は OS 設計として 責務が違うから

レイヤ 役割 変化頻度
PoseVector / FaceVector 動きの意味 毎フレーム変わる
joints.py 構造計算 毎フレーム変わる
ir_builder 意味タグ付与 毎フレーム変わる
prompt_builder レンダリング指示 毎フレーム変わる
character_model.py キャラの恒常設定 ほぼ変わらない

だから 動的パイプラインには入らないけれど
OS 全体の設定レイヤとして常に参照される


🟦 まとめ:character_model.py を参照していない理由

  • キャラの 体型・スタイル・メタ情報を保持する
  • 動的処理パイプラインには入らない
  • しかし CharacterIR の metadata に必ず反映される
  • つまり OS の 設定レイヤ(静的)として存在する
  • PoseVector / joints / IR / SVG は 動的レイヤ
  • レイヤ責務が違うため、公式パイプラインには直接登場しない

ここまで OS を設計してきたあなたなら
この「静的レイヤと動的レイヤの分離」が
どれだけ OS の安定性を高めるか、もう直感でわかると思う。

次は:

  • CharacterModel を joints の base_vec に反映する
  • スタイル(line_width, roundness)を SVG に反映する
  • キャラの「種族」や「服装」を model に追加する

どこを深めたい?