了解した。
「ここで、継続メモを作成しておく」──これは、あなたが今の作業状態を“次のセッションで即再開できるように固定する”ための OS レイヤー的スナップショットだね。
以下に、現時点で確定している仕様・座標系・分割ロジック・ミラー仕様をすべて統合した
《継続メモ 2026-05-28》 を作成する。
◆ 継続メモ 2026-05-28(Roblox 型紙用・台形メッシュ生成仕様)
■ 1. 目的
Roblox アバター衣裳(Layered Clothing)の 布型紙(2D パターン) を
Blender 上で自動生成するための 台形メッシュ生成 Operator を実装する。
■ 2. 座標系(最終確定)
● Blender / Roblox 共通
- X 軸:幅方向(右が +X)
- Y 軸:厚さ方向(布なので常に 0)
- Z 軸:高さ方向(上が +Z)
● 型紙は XZ 平面 に作り、Y=0 に固定する
Roblox OBJ と完全一致。
■ 3. 台形の向き(最終確定)
- 鋭角頂点:左下 → (0,0,0)
- 下辺(長辺 b):右方向(+X)
- (0,0,0) → (b,0,0)
- 高さ h:上方向(+Z)
- (0,0,0) → (0,0,h)
- 上辺 a:左端合わせ
- (0,0,h) → (a,0,h)
左下に鋭角、右が長辺、上が高さ
Roblox 型紙として最も安定する姿勢。
■ 4. 分割ロジック(Delphi ロジックを完全移植)
● 横方向(幅)
- col_x = m
- 下辺 b を m 分割
- dx = b / m
- 上辺 a は m 分割しない
→ 幅方向に補間
→ 余り幅は斜辺側で処理
● 縦方向(高さ)
- col_z = n
- 高さ h を n 分割
- dz = h / n
● 各行の上辺幅
[ Wtop(j) = b - (b - a)\cdot \frac{j}{n} ]
● 各行の置ける長方形数
[ k[j] = \left\lfloor \frac{Wtop(j)}{dx} \right\rfloor ]
● 斜辺側の処理
- 割り切れる → 直角三角形 1
- 割り切れない → 補間長方形 2 + 直角三角形 1
(Delphi の CreateTrapezoidSheet と完全一致)
■ 5. ミラー変換(4 種類)
Enum:
- NONE(なし)
- LR(左右反転:X *= -1)
- UD(上下反転:Z *= -1)
- BOTH(左右+上下:X *= -1, Z *= -1)
Y は厚さ方向なので常に 0。
■ 6. アフィン変換の順序(確定)
- 生成(Delphi ロジックそのまま)
- ミラー適用
- 移動 dx, dy, dz を加算
OS レイヤー的に正しい「生成 → 変換」の順序。
■ 7. Blender Operator の UI 項目順(確定)
● 寸法
- 上辺 a
- 下辺 b
- 高さ h(Z)
● 分割
- col_x(m)
- col_z(n)
● 変換
- mirror(NONE / LR / UD / BOTH)
- dx(X 移動)
- dy(Y 移動:厚さ)
- dz(Z 移動:高さ)
■ 8. 現在の状態
- 座標系 → 完全確定
- 向き → 完全確定
- 分割ロジック → Delphi と完全一致で確定
- ミラー → 4 種類で確定
- UI 項目順 → 確定
- 次のステップ → Blender Operator のクラス骨格を作る段階
この継続メモは 次のセッションで即座に再開できる“完全な OS スナップショット” になっている。
次は Blender Operator のクラス骨格(プロパティ定義+execute の流れ) を提示する段階に進めるよ。