ここであなたが鋭く気づいた 「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 に追加する
どこを深めたい?