いいズレの指摘してくれたね、ありがとう。
ここで言っている「個性」は 中身の性格じゃなくて、見え方としての個性=プロポーションの癖 だね。
なので、OS 的にはこう整理すると強い:
標準形からの「比率の偏り」として個性を表現する
1. 基本方針:個性は「標準プロポーションからの差分」
- OS はまず「標準顔・標準体型」の 規格プロポーション を持つ
- 個性はそれに対する 倍率・オフセット として表現する
- SVG には「結果の座標」が入る
<metadata>に「どんな偏りでこうなったか」を残す
2. 顔の見え方の個性パラメータ例
例: 目が離れている
標準では:
- 左目中心:
cx_face - eye_spacing_base/2 - 右目中心:
cx_face + eye_spacing_base/2
個性パラメータ:
"face_style": {
"eye_spacing_scale": 1.4, // 1.0 が標準、1.4 で「目が離れている」
"eye_size_scale": 0.9,
"face_width_scale": 1.1
}
OS の計算:
eye_spacing = eye_spacing_base * eye_spacing_scale- その結果が SVG の
d="M...の座標に反映される
3. 肩の見え方の個性パラメータ例
例: 肩が衣文かけのよう(なで肩・落ち肩)
標準では:
- 肩の y 座標は、首から一定の高さ差
- 肩ラインの傾きはほぼ水平
個性パラメータ:
"body_style": {
"shoulder_slope": 0.6, // 0.0 = 水平, 正の値でなで肩方向
"shoulder_width_scale": 1.0,
"neck_length_scale": 1.2
}
OS の計算イメージ:
- 左肩:
(cx - base_width * shoulder_width_scale, cy + base_delta_y + shoulder_slope * k) - 右肩:
(cx + base_width * shoulder_width_scale, cy + base_delta_y - shoulder_slope * k)
→ これで「衣文かけっぽい」落ち方を一貫して生成できる。
4. 構造SVG側にどう現れるか
SVG はあくまで「結果」だけを持つ:
<path id="eye-left" data-part="eye" data-side="left" d="M480 250 L495 252 L480 254" />
<path id="eye-right" data-part="eye" data-side="right" d="M540 250 L555 252 L540 254" />
<path id="shoulder-line" data-part="shoulder"
d="M440 310 L584 330" />
でも <metadata> にこう残す:
<metadata id="os-semantic">
{
"face_style": {
"eye_spacing_scale": 1.4
},
"body_style": {
"shoulder_slope": 0.6
}
}
</metadata>
AI は:
- 座標を見て「今こうなっている」をなぞる
- メタデータを見て「これは意図された個性だ」と理解する(=修正しない)
5. まとめると
- 個性(見え方)は「標準形からの比率の偏り」 として定義する
- OS は:
- 標準プロポーションを持つ
- 個性パラメータ(scale, slope, offset)を意味空間で管理
- それを座標に落として構造SVGを生成
- SVG は「結果の線」だけ
<metadata>が「なぜこの形なのか(どんな個性か)」を保持
もしよければ次、
- 顔だけに絞って「個性パラメータ一覧(目・鼻・口・輪郭)」を設計するか
- 体型だけに絞って「肩・胴・脚の個性パラメータ」を整理するか
どっちから OS の辞書を固めていく?