本命の曲面 — ポッドの殻と脚の装甲は、なぜ球ではだめなのか【タチコマで学ぶBlender #4】

Ember 編集部 ・ 2026-09-05 ・ 約10分 ・ 3dcg

左右を見比べてください。どちらも幅 1.9 m、高さ 2.56 m の「青い卵」ですが、左は 肩が張って天面が平ら で、右は どこまでも丸い 。左が Astra のポッド、右は第2回のブロックアウトで置いたような楕円体です。 タチコマのポッドは「卵」ではなく「丸めた圧力容器」です。この違いを出せるかどうかが、モデリングの初級と中級の境目で、この回が連載の山場です。Astra はこれを 数式で 、人間は サブディビジョンサーフェス で作ります。

1. 球でだめな理由: 曲率が一様すぎる 球は、どこを取っても同じ曲がり方をしています。ところが現実の外装は、 平らな面と、丸い角 でできています。缶詰、スマートフォン、車のボンネット、飛行機の胴体。「平らに近い面が、角で急に丸くなる」。この「急に」の度合いを、数学では超楕円体(superellipsoid)の 指数 で表します。指数が 1 なら球(楕円体)、0 に近づくほど箱に近づきます。 Astra のポッドは、まさにこれです。 緯度 t と経度 p を受け取って表面の1点を返す関数で、指数が 0.85(水平方向)と 0.72(垂直方向) 。この 0.72 が「天面が平ら」を、0.85 が「肩が張る」を作っています。Astra のコメントにも "flatter crown and fuller sides than an egg" と書いてあります。 AIは「卵ではない」ことを言葉で理解し、それを指数2つに翻訳した わけです。 そしてこの関数で、緯度32分割×経度96分割の格子点を全部計算して、頂点として Blender に流し込んでいます。 from pydata は「頂点の座標のリストと、面のつなぎ方のリストを渡すと、メッシュができる」という Blender の API です。つまり Astra は、Blender のモデリング機能を 使っていません 。座標を自分で計算して、結果だけを Blender に置いています。 2. 人間はどう作るか: サブディビジョンサーフェス 人間は普通、こんな数式は使いません。代わりに使うのが サブディビジョンサーフェス (Subdivision Surface、略してサブディブ)です。 考え方はこうです。 1. まず 角ばった、少ない頂点の形 を作る(これを「ケージ」と呼びます) 2. サブディビジョンサーフェス・モディファイアをかけると、ケージが 滑らかに丸められる 3. 丸みが強すぎる場所には、ケージにエッジ(辺)を足して 締める 。エッジが密なところは硬く、疎なところは丸くなる ポッドの場合の実手順は、 1. Shift+A → 立方体。スケールを X 0.95, Y 1.03, Z 1.28 に(ポッドの半径と同じ) 2. モディファイア → サブディビジョンサーフェス 、ビューポートのレベル 2。これで立方体が「丸っこい箱」になる。すでに右の楕円体より左のポッドに近い 3. Tab でエディットモードへ。 Ctrl+R (ループカット)で、天面の少し下に水平の辺を1本足す。辺を足した場所の丸みが減って、天面が平らに近づく 4. 同様に側面にも縦に1〜2本ループカットを足して、肩の張りを調整する 5. 見た目を確かめながら、ループカットの位置を G で動かす ポイントは手順3〜4で、<strong 「辺を足す=そこを硬くする」</strong という感覚です。サブディブのモデリングは、この感覚をつかむのに数日、自在に使えるようになるのに数週間かかります。Astra の指数 0.72 と 0.85 は、人間がループカットを動かしながら目で決めるものを、数値で一発で決めたことに相当します。 どちらが良いかは目的によります。数式は 同じ形をあとで正確に再現・微調整できる (Astra はハッチの縁のリブや灯火の位置を、同じ関数で計算して殻にぴったり載せています)。サブディブは 目で見ながら好きに歪められる 。プロの現場ではサブディブが主流ですが、工業製品のように「数式で定義できる面」はスクリプトや CAD 的なやり方のほうが正確です。 3. 殻を「切る」: ハッチ、ドア、下部ボウル ポッドは1枚の殻ではなく、 4枚 に分かれています。上部ハッチ、前面と側面の装甲、後部ドア、下部ボウル。 同じ関数を、緯度・経度の 範囲だけ変えて 4回呼んでいます。しかも境界には 0.006 ラジアンほどの 隙間 をわざと空けている。この隙間が、レンダーでは黒い パネルライン として見えます(第1回のヒーロー画像の、ポッドを一周する細い線)。 人間なら、 1. サブディブで作った1枚のポッドを、エディットモードで ナイフ (K)や バイセクト で切り分ける 2. 切った面をそれぞれ 別オブジェクトに分離 (P → 選択物) 3. 境界の縁に ソリディファイ (厚み)モディファイアで 0.045 m の厚みをつける。すると殻の断面に厚みが見え、パネルラインが「溝」になる Astra も同じソリディファイを使っています。 material offset = 1 が地味に効いていて、殻の 内側だけ黒い材質 になります。第1回の「ハッチ開放」画像で、ポッドの内壁が青ではなく暗いのはこのためです。人間がやるなら、ソリディファイの「マテリアルオフセット」欄に 1 を入れる。同じです。 4. 脚の装甲: ロフト 脚の上腿・下腿の青い装甲は、ポッドとは別のやり方で作られています。 spindle は「始点から終点までの間に、位置 t と半径 r の組で 断面 を並べて、それをつないで面を張る」関数です。断面リストを読むと、膝の近く(t=0.14)で半径 0.36 と最も太く、足首(t=1)で 0.094 と細い。 膝が太く足首が細い、しずく型 の装甲です。最後の .86 は断面を少し扁平にする係数。 そして断面32角形の粗い筒に サブディビジョンサーフェス をかけて滑らかにしています。ここは Astra も人間と同じモディファイアを使っています。 人間の手順は、いわゆる ロフト です。 1. 円柱を追加し、エディットモードで Ctrl+R で輪切りの辺を7本足す 2. 各輪を Alt+クリック で選び、S で半径を断面リストどおりに変える(0.11 → 0.29 → 0.36 → …) 3. サブディブ・モディファイアで滑らかにする 慣れれば1本10分。上腿・下腿×4脚+前腕×2+胸パッドで11本、2時間弱です。 5. トポロジー: AIが手を抜いている場所 ここで、AIの弱点を1つ正直に書きます。 人間のプロが曲面を作るとき、 トポロジー (頂点と面のつながり方)に神経を使います。四角形の面が流れるように並び、動かす関節の周りには輪が集まる。これが「良いトポロジー」で、変形させたときに面が破綻しないためのものです。 Astra のポッドは 32×96 の 格子 です。北極と南極に頂点が集中し、面は四角形ですが流れは考えていない。 from pydata で座標を流し込んだだけなので当然です。脚のロフトも断面の輪をつないだだけ。 このモデルは 関節が変形しない (脚は装甲ごと回転し、装甲そのものは曲がらない)ので、これで問題は起きません。しかし、もし「装甲が凹むアニメーション」や「布のような変形」を入れたいなら、この格子では破綻します。人間がサブディブで作るときに手順3〜4でループカットの位置を悩むのは、実は 見た目のためだけでなく、後で変形させるための布石 でもある。ここは現時点のAIが自動ではやらない、判断の領域です。 6. 今回の工数 部品 Astra 人間 ポッドの殻(形を決める) 指数2つ + pod point 8行 サブディブ+ループカットの試行錯誤 1〜3時間 殻を4枚に切る・厚み・パネルライン shell を4回 ナイフ・分離・ソリディファイ 1時間 ハッチ裏のリブ6本(殻の輪郭に沿う) 同じ関数で座標計算 殻の内側をなぞるカーブ 1時間 脚の装甲×8、前腕×2、胸パッド spindle 11回 ロフト 1本10分 ≒ 2時間 合計 関数2つ、呼び出し約20行 5〜7時間 ここは第3回のボルトと違って、 人間のほうが時間だけでなく技能も要る 部分です。サブディブの「辺を足すと硬くなる」感覚は、練習でしか身につきません。Astra は代わりに数式を使って、その練習期間をスキップしました。ただし数式が書けるのは「言葉で形を説明できる面」だけで、生き物の顔のような面は、AIでも人間でもサブディブかスカルプト(粘土のように削る)が要ります。 今回の道具箱 ① サブディビジョンサーフェス — 粗いケージを滑らかに丸める。曲面モデリングの主役。 ② ループカット(Ctrl+R) — ケージに辺を足す。足したところは硬くなる。曲面の形は「どこに辺があるか」で決まる。 ③ ソリディファイ — 面に厚みをつける。殻の断面、パネルラインの溝、内側だけ別の材質。 ④ ロフト — 断面の輪を並べてつなぐ。脚、腕、首のような「絞りのある筒」。 ⑤ トポロジー — 頂点と面の流れ。変形させるなら気を使う。変形させないなら格子でも成立する(Astra はそう割り切った)。 次回は質感です。17種類のマテリアルを、写真や画像を1枚も使わずに作る方法。