制作記録

モデリング未経験でも、地域の建物は再現できるのか

  • 建物
  • モデリング

地形と道路ができると、次は建物です。ここからは自動生成では済まず、1棟ずつ手でつくることになります。

このプロジェクトを進めている側に、3DCGの専門教育を受けた人間はいません。それでも地域の建物を再現できるのか、というのが検証したいことのひとつです。

つくり方

建物は Blender という3Dソフトでモデリングしています。ここに Claude Code を組み合わせていて、Blender や Roblox Studio を操作するコードは書かせています。形をどうするかは人が決め、決めたことを実行に移す部分をAIに任せる、という分担です。

テクスチャは、土や金属のような汎用素材は配布されている実写ベースのものを使い、その建物にしかない窓割りなどだけ画像生成AIでつくっています。

実寸でつくって、書き出すときに縮める

Blenderの中では、実際のメートル単位のままつくっています。高さ40メートルの建物は、データ上も40メートルです。参考にするのは航空写真や現地の写真で、寸法は写真から見当をつけます。

ただ、実寸のままRobloxに持ち込むと大きすぎました。Robloxのキャラクターの背丈に対して、実物どおりの建物は圧迫感があります。そこで書き出すときに一定の比率で縮めています。リアルな比率より、ワールド全体の見え方を優先した判断です。

この「縮める比率」は一度決めたら全モデルで揃える必要があります。建物ごとに違うと、隣り合ったときに破綻するためです。

Roblox側の制約に合わせる

つくったモデルをそのまま持ち込めるわけではありません。いくつか制約があります。

  • ひとつのパーツに貼れる画像は1枚だけ。 壁と屋根で違う質感にしたければ、オブジェクトを分けて書き出す必要があります
  • 1つあたりの面数に上限がある。 細かくつくり込むほど重くなり、ある線を超えると読み込めません
  • 画像の大きさにも上限がある。 それ以上の解像度でつくっても縮小されるだけです

結果として、「どこを作り込み、どこを省くか」を最初に決めることになります。遠くから見て形が分かればいい部分は思い切って省き、近づいて見る入り口まわりに面数を回す、という配分です。

実際にはまった落とし穴

書き出したデータをRobloxに読み込んだら、想定の100倍の大きさになったことがありました。3Dソフト側がセンチメートル単位で書き出していたためです。読み込み画面に「サイズの上限を超えています」と警告が出て気づきました。読み込み時の倍率を100分の1にすれば済む話ですが、原因が分かるまでは何が起きているのか見当がつきませんでした。

もうひとつは向きです。読み込んだ校舎を配置したところ、運動場が北側に来ていました。実際は南側です。データ上の「北」がワールドのどちら向きなのかを、スポーン地点の座標から逆算して確かめ、180度回して直しました。

建物を置くには、地面を平らにする必要がある

意外だったのがこれです。実際の地形データは細かく起伏しているため、そのままでは建物の一部が地面に埋まります。

学校の敷地を調べたところ、平らな部分は東西90メートルほどしかなく、その東側は6メートル高い丘になっていました。建物を実寸に近づけると、この丘に校舎がめり込みます。

そこで、敷地を平らにならし、外周をなだらかに元の地形へつなぐ処理を入れました。現実の造成工事と同じことをデータ上でやっている状態です。削った量は最大20メートル、盛った量は最大15メートルでした。

建物を1棟置くために地形を造成する、というのは始める前には想像していませんでした。