ここまで OS 全体を積み上げてきたからこそ、
「キャラクターモデルを含めた全体パス(公式パイプライン)」を
完全版として 2026 年仕様でまとめ直すのがちょうどいいタイミングだね。
あなたの Python キャラ生成OSの内部構造なので、純粋に OS のレイヤー構造として整理するよ。
🌌 2026 キャラ生成OS:全体パス(CharacterModel を含む完全版)
あなたの OS は 静的レイヤ → 動的レイヤ → 中間表現 → レンダリング → 監査
という “OS らしい” 5 層構造で動く。
以下は キャラクターモデル(静的設定)を含めた正式パイプライン。
🟥 0. CharacterModel(静的レイヤ:体型・スタイル)
model = CharacterModel.from_preset("anime_default")
含まれるもの:
- proportions(head_size, limb_length, torso_length, thickness)
- style(line_width, roundness, exaggeration)
- metadata(version, style_name)
これは キャラの恒常的プロパティで、
PoseVector のように毎フレーム変わらない。
🟦 1. PoseVector / FaceVector(意味レイヤ:動的)
pose = PoseVector(bend=0.6, twist=0.4)
face = FaceVector(eye_open=0.8, mouth_smile=0.7)
- 動き(bend, twist)
- 表情(eye_open, mouth_smile)
🟩 2. JointSystem(構造レイヤ:骨格・座標)
joint_system = JointSystem(joints_dict)
✔ CharacterModel を骨格に反映
joint_system.apply_character_model(model)
→ base_vec(骨長)が体型に応じてスケールされる
→ chibi / realistic / anime の体型差が構造に反映される
✔ PoseVector → joint_angles
joint_angles = pose.to_joint_angles()
joint_system.apply_pose(joint_angles)
✔ 3D 計算 → 2.5D 投影
joint_system.compute_3d_positions()
joint_system.project_2d()
🟫 3. skeleton_paths(骨格パス生成)
paths = build_skeleton_paths(joint_system.joints)
🌱 4. FaceVector → 顔の制御点生成
eye_l = face.eye_control_points("left")
eye_r = face.eye_control_points("right")
mouth = face.mouth_control_points()
🟪 5. IR(中間表現レイヤ:意味+構造)
ir = build_ir(
joints=joint_system.joints,
skeleton_paths=paths,
vocabulary=DATA_PARTS
)
🟦 6. CharacterIR(IR オブジェクト)
character_ir = CharacterIR(
joints=ir["joints"],
bones=ir["bones"],
face_parts=ir["face_parts"],
metadata={
"style": model.style.name,
"line_width": model.style.line_width,
"roundness": model.style.roundness,
"exaggeration": model.style.exaggeration,
"version": "2026.03"
}
)
ここで CharacterModel のスタイルが IR に注入される。
🎨 7. prompt_builder.py(Gemini 指示生成)
payload = build_prompt(character_ir)
🖼 8. render_client.py(SVG 生成)
client = RenderClient(endpoint="https://api.example.com/render")
svg_string = client.render_to_svg_string(payload)
✏ 9. svg_writer.py(OS 内部で SVG を生成する場合)
※ Gemini を使わず OS 内で SVG を書く場合
svg_string = character_ir_to_svg(character_ir)
ここで line_width / roundness が stroke に反映される。
🔍 10. svg_parser.py(SVG → 点群)
dp_points = svg_to_datapart_points(svg_string)
🛡 11. remap_svg.py(監査:構造との一致チェック)
diff = remap_svg_to_structure(
svg_string,
DATA_PARTS,
joint_system.export_positions()
)
📄 12. audit_report.py(レポート生成)
report = format_report(diff)
print(report)
🌟 全体パス(CharacterModel を含む OS 公式パイプライン)
CharacterModel(静的:体型・スタイル)
↓ apply_character_model()
PoseVector / FaceVector(意味)
↓ to_joint_angles()
JointSystem(構造:骨格・座標)
↓ compute_3d_positions()
↓ project_2d()
skeleton_paths(骨格パス)
↓
IR(意味+構造)
↓ metadata にスタイル注入
CharacterIR
↓
prompt_builder(Gemini 指示)
↓
render_client(SVG)
↓
svg_parser(点群抽出)
↓
remap_svg(監査)
↓
audit_report(レポート)
🧠 これで OS がどう進化したか
-
体型(CharacterModel)→ 骨格(JointSystem)→ SVG(スタイル)
が完全に一貫した OS になった -
意味・構造・スタイル・SVG・監査
の 5 層が OS として明確に分離された -
キャラ生成が 再現性・透明性・拡張性 を持つ
次はどこを強化する?
- exaggeration(デフォルメ度)を SVG 曲線に反映
- 服・髪の skeleton を追加
- 種族(chibi / realistic)を CharacterModel に追加
- IR の外部公開用 JSON Schema を作る
どれでも一緒に進められるよ。