第9章では、写真から現実の物体を3Dにする技術として、フォトグラメトリ、NeRF、3D Gaussian Splattingを見ました。 どれも「実在する物を撮影して復元する」技術です。 この章では一歩進んで、テキストや1枚の画像から、まだ存在しない物体の3Dモデルを作る3D生成AIを扱います。
画像生成AIは2022年ごろから急速に実用化しました。それに比べると、3D生成は数年遅れて進んできた分野です。 なぜ遅れたのかを押さえると、研究の系譜を4つの世代に整理できます。 章の後半では、商用サービスとオープンモデルの選び方、評価の方法、生成物を実務で使うときの課題、ライセンスの注意点を順に見ていきます。
なぜ3D生成は画像生成より難しいのか
理由1: 学習データが桁違いに少ない
画像生成モデルは、Web上の画像とテキストの組を数十億件規模で集めて学習するのが一般的とされます。 3Dモデルはそうはいきません。人が手でモデリングした3Dアセットは、画像に比べて圧倒的に数が少ないからです。 代表的なデータセットの規模を並べると、差がはっきりします。
| データセット | 公開 | 規模 | 主な出どころ |
|---|---|---|---|
| ShapeNetCore | 2015 | 約5.1万物体・55クラス | WordNet体系で整理した3D CADモデル |
| Objaverse 1.0 | 2022 | 約81.8万物体・約2.1万クラス | Sketchfab(配布可能なCCライセンスのもの) |
| Objaverse-XL | 2023 | 約1,020万物体 | GitHub約56%、Thingiverse約35%、Sketchfab約8%ほか |
最大のObjaverse-XLでも約1,000万件です。しかもその半分以上はGitHubのリポジトリから拾い集めたファイルで、質にはばらつきがあります。 データが少ないという制約に対して、研究者たちは二つの方向で答えを探しました。 一つは、画像生成で学習済みの2D拡散モデルの知識を借りる方向です。もう一つは、少ないデータでも学習が回るよう3D表現そのものを工夫する方向です。
理由2: 出力の「形式」が決まっていない
画像なら出力は「画素の格子」と決まっています。一方、第1章で見たように、3Dの表現はメッシュ、点群、ボクセル、SDF、NeRF、3D Gaussianなどいくつもあります。 ニューラルネットワークで扱いやすい表現(ボクセルや陰関数)と、ゲームエンジンやglTFがそのまま受け取れる表現(ポリゴンメッシュ)が一致しません。 そのため3D生成の研究は「どの表現で生成し、どうやってメッシュに戻すか」をめぐる試行錯誤の歴史でもあります。
3D生成の4つの世代
2022年以降の3D生成は、大きく4つの世代に分けて考えると見通しがよくなります。 これとは別に、メッシュの三角形を言語モデルのように1つずつ並べる「自己回帰メッシュ生成」という系統も並行して進んでいます。
graph LR D["2D画像拡散"] --> S["第1世代 SDS<br/>DreamFusion"] D --> Z["Zero-1-to-3"] Z --> ZP["Zero123++<br/>6視点タイル"] ZP --> IM["第2世代<br/>InstantMesh"] L["第3世代 LRM<br/>triplane"] --> IM L --> T["第4世代 TRELLIS<br/>SLAT"] T --> T2["TRELLIS.2<br/>O-Voxel"] L --> H["Hunyuan3D 2.0<br/>DiT+Paint"] MG["MeshGPT"] --> MA["MeshAnything"] MA --> B["BPT"] style S fill:#475569,stroke:#334155,color:#fff style IM fill:#3b82f6,stroke:#1d4ed8,color:#fff style L fill:#0d9488,stroke:#0f766e,color:#fff style T2 fill:#8b5cf6,stroke:#6d28d9,color:#fff style H fill:#8b5cf6,stroke:#6d28d9,color:#fff style B fill:#f97316,stroke:#ea580c,color:#fff
DreamFusion(SDS)
2D拡散モデルを先生役にしてNeRFを最適化。3D学習データなしでテキストから3Dを作った
Zero-1-to-3
1枚の画像とカメラの相対移動から、別視点の画像を生成する拡散モデル
LRM / MeshGPT
LRMは1枚画像から約5秒でtriplaneを出すfeed-forward型。MeshGPTは三角形列を自己回帰で生成
InstantMesh
Zero123++の多視点画像を再構成モデルでメッシュ化。10秒以内で生成
TRELLIS
Microsoftの3Dネイティブ潜在モデル。SLATからRF・3DGS・メッシュへデコード
Hunyuan3D 2.0
Tencentの形状DiT+テクスチャPaintの2段構成。2.1(2025-06)がオープン重みの最後
TRELLIS.2
4BパラメータのO-Voxelモデル。MITライセンスでPBR付きGLBを出力
Meshy 7.1 / Tripo P2.0
商用サービスは超高解像度とクアッドメッシュ、局所編集で競う段階へ
第1世代: SDS — 2D拡散モデルを先生にする
2022年9月にGoogleの研究者らが発表したDreamFusionは、3Dの学習データを一切使わずにテキストから3Dを作りました。 使ったのは、学習済みのテキスト→画像拡散モデル(Imagen)だけです。拡散モデル自体には手を加えていません。
手順はこうです。まずランダムに初期化したNeRF(第9章)を用意し、ランダムな角度からレンダリングします。 その画像にノイズを足し、拡散モデルに「このノイズを取り除くとしたら、どんな画像になるか」を予測させます。 拡散モデルの予測と実際に足したノイズのずれを勾配としてNeRFに戻し、NeRFのパラメータを少しずつ動かします。 これを何度も繰り返すと、どの角度から見ても「プロンプトらしい画像」に見えるNeRFができあがります。 この損失をSDS(Score Distillation Sampling)と呼びます。2D拡散モデルの知識を3Dへ「蒸留」するイメージです。
SDSには二つの弱点がありました。一つは遅さです。物体を1つ作るたびに最適化ループを最後まで回すので、数秒では終わりません。 もう一つはJanus問題です。2D拡散モデルは一度に1視点しか見ないため、ほかの視点との整合を確かめられません。 その結果、どの角度から見ても正面の顔を描こうとして、後頭部にも顔がある「多面の顔」ができてしまいます。 名前は前後に二つの顔を持つローマ神話の神ヤヌスに由来します。MVDreamは、複数視点の画像を同時に生成する拡散モデルをSDSの先生役に使い、この問題を和らげました。
第2世代: マルチビュー拡散+再構成
第2世代の発想は、「一貫した多視点画像を先に作り、それを3Dに戻す」二段構えです。 2023年3月のZero-1-to-3は、1枚の画像と相対的なカメラの移動量を条件に、別の視点から見た画像を生成する拡散モデルでした。 合成データで学習しても、実写や絵画にまで汎化した点が注目されました。
ただ、1視点ずつ生成すると視点間で細部が食い違います。 そこでZero123++は、6つの視点を3×2のタイル状に並べた1枚の画像として、まとめて生成する方式を採りました。 1枚の画像の中で6視点が同時に生成されるので、視点間の整合が取りやすくなります。 仰角は下向き30°と上向き20°を交互に、方位角は30°から60°刻みで回り込む配置です。
2024年のInstantMeshは、Zero123++で作った多視点画像を、次に説明するLRM系の再構成モデルに入れてメッシュ化します。 全体で10秒以内に収まり、SDSの「遅さ」と「Janus問題」を同時に緩和しました。 ただし、多視点画像が食い違っていれば、その食い違いがそのまま3Dの形の崩れになるという弱点があります。
第3世代: LRM — 最適化ループをなくす
2023年11月のLRM(Large Reconstruction Model)は、考え方を大きく変えました。 SDSは物体ごとに最適化を回しましたが、LRMは大量のデータで一度だけ学習し、推論は1回の順伝播で済ませるfeed-forward型です。 1枚の画像から約5秒で3Dを出力します。
仕組みは、Webエンジニアにもなじみのある「エンコーダ+Transformer」です。 画像をDINO(ViT-B/16)でエンコードし、約5億パラメータのTransformerがその特徴をtriplaneというNeRFの一種に変換します。 triplaneは、3つの直交する平面に特徴を並べ、空間の点を3平面に投影して特徴を足し合わせる表現です。 N³個のボクセルを持つ代わりにN²×3の平面で済むので、Transformerが一度に出力できるサイズに収まります。 学習にはObjaverseの3Dアセット73万件とMVImgNetの動画22万本、合わせて約100万物体を使いました。
LRMの意義は、「データとパラメータを増やすほど良くなる」というスケーリングの発想を3Dに持ち込んだことです。 ここで3D生成は、言語モデルや画像モデルと同じ土俵に乗りました。
第4世代: 3Dネイティブ潜在 — 3Dのまま拡散する
第4世代は、画像生成でおなじみの「潜在空間で拡散モデルを動かす」方式を、3Dの潜在表現に対して直接行います。 2D画像を経由しないので、視点間の食い違いが原理的に起きにくい方式です。2026年時点の主力はこの世代です。
TRELLIS: SLATと2段のrectified flow
Microsoftが2024年12月に発表したTRELLISの中心は、SLAT(Structured LATent)という潜在表現です。 SLATは、64³の疎な3Dグリッドのうち物体の表面付近にあるボクセル(平均約2万個)だけに特徴ベクトルを載せたものです。 特徴の作り方に工夫があります。物体をランダムな視点からレンダリングし、画像の視覚基盤モデルDINOv2で特徴を抽出します。 各ボクセルが投影される画像の特徴を平均すれば、専用の3Dエンコーダを一から学習しなくても、見た目と形の情報を持つ3D特徴が手に入ります。
生成は2段階で行います。まず1段目のrectified flow Transformerが「どのボクセルに物体があるか」という粗い占有構造を作ります。 次に2段目のTransformerが、そのアクティブなボクセルそれぞれに潜在ベクトルを生成します。 rectified flowは、ノイズからデータへの経路をまっすぐにする拡散モデルの一種と考えてください。
もう一つの特徴がデコーダを3種類持つことです。同じSLATから、radiance field、3D Gaussians、メッシュのいずれにもデコードできます。 章の冒頭で見た「出力表現が決まらない」という問題に、「潜在は共通にして、出口だけ用途に応じて替える」という形で答えたわけです。 学習データはObjaverse-XLなどから精選した約50万アセット、モデルは最大20億パラメータです。
TRELLIS.2: O-VoxelとPBR出力
2025年12月のTRELLIS.2は、パラメータを約40億に増やし、表現をO-Voxelに置き換えました。 O-Voxelは「field-free」な疎ボクセル構造で、SDFのような等値面フィールドを経由しません。 等値面方式は「内側と外側」を前提にするため、葉っぱの板ポリゴンのような開いた面や、非多様体、内部構造を苦手とします。 O-Voxelはこれらと鋭いエッジ、PBRマテリアル(base color、roughness、metallic、opacity)を直接表せると主張しています。
解像度は512³から1536³まで選べ、H100で512³なら約3秒、1024³で約17秒、1536³で約60秒です。 出力はPBR付きのGLBですが、既定ではOPAQUEで書き出されるので、半透明を使うにはalphaを手動でつなぐ必要があります。 ライセンスはモデル・コードともMITです。
Hunyuan3D 2.0: 形と質感を分ける2段構成
Tencentが2025年1月に公開したHunyuan3D 2.0は、形状とテクスチャを別々のモデルで作ります。
- Hunyuan3D-ShapeVAE: メッシュ表面から点をサンプルし(辺や角に多めに取る重要度サンプリング)、最大3072個の潜在トークン列に圧縮します。デコーダはSDFを予測し、marching cubesでメッシュにします
- Hunyuan3D-DiT: 入力画像をDINOv2 Giantで符号化し、flow matchingの拡散TransformerでShapeVAEの潜在を生成します
- Hunyuan3D-Paint: 入力画像から影やハイライトを取り除く「Delighting」をかけたうえで、法線マップなどを条件に多視点画像を生成し、UVへベイクします。見えない部分は補間で埋めます
形とテクスチャの難しさを分けたことで、手作りのメッシュにPaintだけを使ってテクスチャを付ける使い方もできます。 2025年6月の2.1ではPBRテクスチャに対応し、学習コードも公開されました。 形状・テクスチャ生成の本体としては、2.1がオープン重みで公開された最後の版です。 2025年9月発表の3.0以降はTencentのプラットフォームやAPIを通じたサービスとして提供されています(制御付き生成のOmniとパーツ分割のPartは2025年9月にオープン重みで出ています)。
別系統: 自己回帰メッシュ生成
ここまでの世代は、最終的にSDFなどからmarching cubesでメッシュを取り出すものが中心でした。 この方法で作ったメッシュは、細かい三角形がびっしり並んだ「三角形スープ」になりがちです。 第3章で見たように、人が作るメッシュは形に沿ったエッジループを持ち、面数も少なく整っています。この差を埋めようとするのが自己回帰メッシュ生成です。
- MeshGPT(2023): メッシュを「三角形の列」とみなし、decoder-only Transformerで次の三角形を1つずつ予測します。LLMが次のトークンを予測するのと同じ発想です。アーティスト製メッシュらしいコンパクトさと鋭いエッジが出ます
- MeshAnything(2024): 既存の3D形状を入力に、それに合う「アーティストが作ったようなメッシュ」を生成します。密な抽出法に比べて面数を数百分の一に減らし、精度は同等に保つと報告しています
- BPT(2024): 座標をブロック単位のインデックスに変え、周辺の面をパッチにまとめることで、トークン列を約75%短くしました。これで8,000面を超えるメッシュを扱えるようになりました
この系統の課題は、トークン列の長さが面数に比例することです。LLMでトークナイザの設計が性能を左右するのと同じで、メッシュをどう短く符号化するかが上限を決めます。 そのため「形は拡散モデルで作り、整ったトポロジーへの作り直しは自己回帰モデルに任せる」という分業が現実的な落としどころになりつつあります。
4世代+1系統の比較
| 方式 | 代表 | 速度の目安 | 強み | 弱み |
|---|---|---|---|---|
| SDS(最適化型) | DreamFusion | 物体ごとに長い最適化 | 3D学習データが不要 | 遅い、Janus問題、色の過飽和 |
| マルチビュー拡散+再構成 | Zero123++ → InstantMesh | 10秒以内 | 2D拡散の豊富な知識を使える | 視点間の食い違いが3Dの崩れになる |
| LRM(feed-forward) | LRM | 約5秒 | 最適化ループ不要、スケールする | triplaneの解像度に上限 |
| 3Dネイティブ潜在 | TRELLIS.2、Hunyuan3D 2.1 | 数秒〜1分 | 視点間で整合、PBRまで出せる | 大きなGPUが必要 |
| 自己回帰メッシュ | MeshGPT、BPT | 面数に比例 | 人が作ったようなトポロジー | 扱える面数に上限 |
商用サービスとオープンモデル
商用サービス: 「形が出る」から「現場で使える」へ
2026年の商用サービスは、形が出るかどうかではなく、出てきたモデルをそのまま現場で使えるかどうかで競っています。
- Meshy: 2026年8月にMeshy 7、9月にMeshy 7.1を投入しました。7.1のUltra 4Kモードは4096³ボクセルで、簡略化前で最大8,000万三角形まで出し、縫い目や鱗までメッシュの形状として表現します。2026年9月末にはARR(年間経常収益)1億ドル突破を発表しました(自社発表の数字です)
- Tripo(VAST): 2026年9月のTripo P2.0で「業界初のネイティブ・クアッドメッシュ生成」をうたいました。クアッドは最大2.5万面で、一部領域だけ作り直すMesh Editも備えます。ただ、実装の詳細は公開されておらず、「四角形を含むファイルを出す」ことと「クアッドのトポロジーをネイティブに生成する」ことは別だ、という専門誌の指摘もあります
- Rodin(Hyper3D): 2026年3月のRodin Gen-2 Editで、手持ちの3Dモデルをアップロードし、範囲をボックスで選んでテキストで部分編集できるようにしました。1月の更新ではパーツの自動分解「BANG」も加えています
Webエンジニアにとって一番手軽なのは、こうしたサービスのAPIです。Meshyの場合、まず形状だけのPreviewを作り、そのタスクIDを渡してテクスチャを付けるRefineを呼ぶ2段階になっています。
# 1) Preview(形状のみ)。返ってくる result がタスクID
curl -X POST https://api.meshy.ai/openapi/v2/text-to-3d \
-H "Authorization: Bearer $MESHY_API_KEY" -H "Content-Type: application/json" \
-d '{"mode":"preview","prompt":"a wooden treasure chest","should_remesh":true,"target_polycount":30000,"target_formats":["glb"]}'
# 2) Refine(PBRテクスチャを付与)
curl -X POST https://api.meshy.ai/openapi/v2/text-to-3d \
-H "Authorization: Bearer $MESHY_API_KEY" -H "Content-Type: application/json" \
-d '{"mode":"refine","preview_task_id":"<task_id>","enable_pbr":true}'
# 3) 状態をポーリングし、SUCCEEDED になったら model_urls.glb を取得
curl https://api.meshy.ai/openapi/v2/text-to-3d/<task_id> \
-H "Authorization: Bearer $MESHY_API_KEY"生成は非同期なので、ジョブを投げてポーリングする(またはストリームで待つ)形になります。 取得したGLBは、第8章で扱ったThree.jsのGLTFLoaderやmodel-viewerでそのまま表示できます。 TripoもAPIのv3を公開しており、ベースURLが変わり、v2で1つだったタスク用エンドポイントが機能ごとに分かれました。v2とv3は並行して使えますが、ネット上のサンプルは古いv2形式が多く、モデル指定のパラメータ名も資料によって表記が揺れているので、公式の最新リファレンスで確認してください。
オープンモデルとGPU要件
オープンモデルは手元で動かせますが、必要なGPUメモリが大きい点に注意が必要です。
| モデル | 規模 | GPU要件 | 速度 | ライセンス |
|---|---|---|---|---|
| TRELLIS.2(Microsoft) | 4Bパラメータ | NVIDIA 24GB以上、Linuxでのみテスト | H100で512³約3秒、1536³約60秒 | MIT |
| Hunyuan3D 2.1(Tencent) | 形状3.3B+Paint 2B | 形状約10GB、テクスチャ約21GB、両方で約29GB | — | Tencent Hunyuan Community(地域・MAU制限) |
| Stable Fast 3D(Stability AI) | — | — | 約0.5秒 | Community License(年商100万ドル以下は商用可) |
24GB以上のGPUは、Macや一般的なゲーミングPCではまず手が届きません。 試すだけなら、Hugging Face SpacesにあるTRELLIS.2やHunyuan3D-2.1のデモか、商用APIを使うのが現実的です。
生成3Dをどう評価するか
3D生成の評価は、画像生成の評価以上に難しい問題です。よく使われる指標は、大きく3種類に分かれます。
- 形の正確さ: Chamfer Distanceは、2つの点群の各点から相手側の最も近い点までの距離を平均し、双方向で足したものです。F-scoreは、しきい値d以内に正解の点がある生成点の割合(適合率)と、しきい値d以内に生成点がある正解点の割合(再現率)の調和平均です。どちらも正解の3Dモデルが必要です
- プロンプトとの整合: CLIP scoreは、生成物をレンダリングした画像とプロンプト(テキストや入力画像)をCLIPで埋め込み、どれだけ近いかを測ります。正解の3Dがなくても使えるので、TRELLISやHunyuan3D 2.0の論文でも使われています
- 人間の好み: Hugging Faceの3D Arenaは、2つのモデルの出力を並べて人に投票してもらい、チェスのようなEloレーティングで順位を付けます
生成物を実務で使うときの課題
生成された3Dモデルは、ブラウザで眺めるだけなら十分きれいです。ところがゲームや映像の制作パイプラインに入れようとすると、第3〜5章で見た「中身」の問題が一気に表に出ます。
| 課題 | 何が起きるか | 対策の方向 |
|---|---|---|
| 三角形スープ・面数過多 | marching cubes由来の密な三角形で、エッジが形に沿わない。編集も軽量化も難しい | リメッシュ、自己回帰メッシュ生成、Tripo P2.0などのクアッド生成 |
| UV | 多視点画像をUVへベイクするため、隠れた部分は補間頼み。自動UVは断片的になりがち | 生成後にUVを展開し直してテクスチャを再ベイク |
| ベイクされた照明 | 入力画像の影やハイライトが色として焼き込まれ、別の照明下で不自然になる | Hunyuan3D-PaintのDelighting、PBRマテリアル出力 |
| リトポ | アニメーションさせるには関節まわりのエッジループが必要 | 手作業のリトポ、Smart Meshなどの自動リトポ |
| リギング | 骨やウェイトがない「1つの塊」として出てくる | Meshy・Tripoの自動リギング、パーツ分割(Rodin BANG) |
2026年時点では、背景の小物やプロトタイプのような「静止物」なら生成物をほぼそのまま使えます。 一方、主役キャラクターのように動かして近くで見せるアセットは、人の手での仕上げが前提です。 商用サービスが局所編集やクアッド生成、自動リギングに力を入れているのは、まさにこの仕上げの工程を縮めるためです。
ライセンス: モデル・出力・学習データは別の層
3D生成AIを製品に組み込むときは、技術よりライセンスで選択肢が絞られることが少なくありません。
| モデル / サービス | ライセンス | 注意点 |
|---|---|---|
| TRELLIS / TRELLIS.2 | MIT | 寛容。ただしnvdiffrastなど依存ライブラリは各自のライセンス |
| Hunyuan3D 2.0 / 2.1 | Tencent Hunyuan 3D Community License | EU・英国・韓国は適用地域外。前月MAU100万超は別途許諾。出力を他のAIモデルの改善に使うことは禁止 |
| Stable Fast 3D | Stability AI Community License | 年商100万ドル以下は商用可。超えるとEnterprise契約が必要 |
| Meshy | プラン別の利用規約 | 無料プランの出力はCC BY 4.0(クレジット表記で商用可)。Proは非公開・フル商用 |
日本はHunyuan3D 2.xの適用地域に含まれますが、EUや英国のユーザーにも提供するサービスでは使えません。 さらに見落としやすいのが学習データの層です。Objaverse-XLはデータセット全体としてはODC-Byですが、個々の物体は元のライセンスに従います。 Objaverse 1.0にはCC BY-NC(非商用)やCC BY-SAの物体が混ざっており、Polycam由来のデータは学術・非商用に限られます。
まとめと次章への橋渡し
3D生成AIは、データの少なさと表現の不定さという二つの制約から出発しました。 SDSは2D拡散の知識を借りて、マルチビュー拡散は多視点画像を経由して、LRMはfeed-forward化で、3Dネイティブ潜在は3Dのまま拡散することで、それぞれ制約に答えてきました。 2026年の焦点は「形が出るか」から、トポロジー、UV、PBR、リギングといった、この連載の第3〜5章で扱った「中身」の品質へ移っています。
最終章の第11章では、EC・ゲーム・映画・デジタルツインでの活用事例に加え、物体単体ではなく世界全体を生成するワールドモデルや、MCPでBlenderを操作するAIなど、2026年の最前線を見ていきます。
主な参考資料
- DreamFusion: Text-to-3D using 2D Diffusion
- LRM: Large Reconstruction Model for Single Image to 3D
- Structured 3D Latents for Scalable and Versatile 3D Generation(TRELLIS)
- microsoft/TRELLIS.2
- Hunyuan3D 2.0
- 3D Arena
理解度チェック
3D生成AIの4つの世代を、登場した順に並べてください。
矢印ボタンで正しい順序に並べ替えてください