ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-03-23上級

Antigravity × Unity: AI駆動3Dモデル・テクスチャ生成パイプライン実践

Antigravity IDEのAIエージェントを活用し、Unity向け3Dモデルとテクスチャを効率的に生成するパイプラインを構築。プロシージャル生成、PBRワークフロー、バッチ処理を実装。

antigravity435unity33d-model2texture2proceduralpbrpipeline4

取り組みの背景

ゲーム開発やVRコンテンツ制作において、3Dモデルやテクスチャの製作は最も時間がかかるプロセスです。従来のアーティスト駆動のワークフローでは、一つのアセットに数日から数週間かかることも珍しくありません。

Antigravity IDEとUnityを組み合わせることで、AI駆動の3Dアセット生成パイプラインを構築できます。Antigravityのインテリジェントなコード提案機能を活用すれば、C#スクリプトでプロシージャル生成を自動化し、計算シェーダーでテクスチャを動的に生成し、PBRマテリアルワークフローを最適化することができます。

このガイドでは、実践的なパイプライン構築方法をお伝えします。個々のモデルやテクスチャの手作業を数分単位に短縮し、クリエイティブな部分に時間を使える環境を実現しましょう。


Antigravityによるプロシージャルメッシュ生成

Antigravityは、自然言語で記述した意図からC#コードを自動生成します。これを活用して、ランタイムでメッシュを生成するスクリプトを効率的に作成できます。

AIが生成する基本的なメッシュ生成スクリプト

「立方体のメッシュを動的に生成して、頂点をノイズで変形させるC#スクリプトを書いて」と指示するだけで、Antigravityは必要なコードを提案します。

using UnityEngine;
 
public class ProceduralMeshGenerator : MonoBehaviour
{
    public float noiseScale = 1.0f;
    public float noiseStrength = 0.5f;
 
    public Mesh GenerateNoisyMesh(int gridSize, float gridSpacing)
    {
        // 頂点配列と三角形配列を作成
        Vector3[] vertices = new Vector3[gridSize * gridSize];
        int[] triangles = new int[(gridSize - 1) * (gridSize - 1) * 6];
        Vector2[] uvs = new Vector2[gridSize * gridSize];
 
        // 頂点生成とノイズ適用
        for (int y = 0; y < gridSize; y++)
        {
            for (int x = 0; x < gridSize; x++)
            {
                int index = y * gridSize + x;
                float posX = x * gridSpacing;
                float posZ = y * gridSpacing;
 
                // Perlin ノイズで垂直方向の変形を生成
                float noiseValue = Mathf.PerlinNoise(
                    posX * noiseScale,
                    posZ * noiseScale
                ) * noiseStrength;
 
                vertices[index] = new Vector3(posX, noiseValue, posZ);
                uvs[index] = new Vector2((float)x / gridSize, (float)y / gridSize);
            }
        }
 
        // 三角形インデックス生成
        int triangleIndex = 0;
        for (int y = 0; y < gridSize - 1; y++)
        {
            for (int x = 0; x < gridSize - 1; x++)
            {
                int topLeft = y * gridSize + x;
                int topRight = topLeft + 1;
                int bottomLeft = topLeft + gridSize;
                int bottomRight = bottomLeft + 1;
 
                triangles[triangleIndex++] = topLeft;
                triangles[triangleIndex++] = bottomLeft;
                triangles[triangleIndex++] = topRight;
 
                triangles[triangleIndex++] = topRight;
                triangles[triangleIndex++] = bottomLeft;
                triangles[triangleIndex++] = bottomRight;
            }
        }
 
        Mesh mesh = new Mesh();
        mesh.vertices = vertices;
        mesh.triangles = triangles;
        mesh.uv = uvs;
        mesh.RecalculateNormals();
        mesh.RecalculateBounds();
 
        return mesh;
    }
}

実行結果: gridSize=50、gridSpacing=0.5fで実行すると、ノイズで波打つ50×50グリッドのメッシュが生成されます。これはテレインジェネレータやプロシージャルガーデン生成の基礎になります。

パラメトリック3D形状の自動生成

Antigravityに「球体、円柱、円錐を作成するパラメトリッククラスを書いて。生成する頂点数と品質を調整できるようにして」と指示すれば、複雑な形状生成も瞬時に実装できます。

AI生成コードを活用することで、アーティストはAntigravityのコード補完を使いながら数秒でパラメトリックモデルを調整。制御パネルから値を変更するだけで無限のバリエーションを生成できるようになります。


テクスチャ生成パイプライン

3Dモデルの見た目を左右するテクスチャ生成は、Antigravityの計算シェーダー生成機能で自動化できます。

計算シェーダーを用いたプロシージャルテクスチャ生成

Antigravityに「2DのノイズベースのテクスチャをCompute Shaderで生成するスクリプトを書いて。Perlin NoiseとFractal Brownian Motionを使って」と指示すると、以下のようなコードが生成されます。

using UnityEngine;
 
public class ProceduralTextureGenerator : MonoBehaviour
{
    public RenderTexture targetTexture;
    public ComputeShader textureComputeShader;
    public int textureSize = 1024;
    public float scale = 10f;
    public float amplitude = 1f;
 
    private int kernelHandle;
 
    void Start()
    {
        targetTexture = new RenderTexture(
            textureSize, textureSize, 0, RenderTextureFormat.ARGB32
        );
        targetTexture.enableRandomWrite = true;
        targetTexture.Create();
 
        kernelHandle = textureComputeShader.FindKernel("GenerateNoise");
    }
 
    public void GenerateTexture()
    {
        // シェーダー変数を設定
        textureComputeShader.SetInt("_TextureSize", textureSize);
        textureComputeShader.SetFloat("_Scale", scale);
        textureComputeShader.SetFloat("_Amplitude", amplitude);
        textureComputeShader.SetTexture(kernelHandle, "_OutputTexture", targetTexture);
 
        // スレッドグループ数を計算・実行
        int threadGroupsX = (textureSize + 15) / 16;
        int threadGroupsY = (textureSize + 15) / 16;
        textureComputeShader.Dispatch(kernelHandle, threadGroupsX, threadGroupsY, 1);
    }
}

Compute Shaderの核 (GenerateNoise カーネル):

#pragma kernel GenerateNoise
 
RWTexture2D<float4> _OutputTexture;
int _TextureSize;
float _Scale;
float _Amplitude;
 
// Perlin Noise互換の疑似乱数関数
float noise(float2 p)
{
    return frac(sin(dot(p, float2(12.9898, 78.233))) * 43758.5453);
}
 
[numthreads(16, 16, 1)]
void GenerateNoise(uint3 id : SV_DispatchThreadID)
{
    if (id.x >= _TextureSize || id.y >= _TextureSize)
        return;
 
    float2 uv = float2(id.xy) / _TextureSize;
    float value = 0.0;
 
    // Fractal Brownian Motion
    for (int i = 0; i < 4; i++)
    {
        value += noise(uv * _Scale * pow(2.0, i)) / pow(2.0, i);
    }
 
    value *= _Amplitude;
    _OutputTexture[id.xy] = float4(value, value, value, 1.0);
}

期待される出力: テクスチャサイズ1024×1024のクラウド状ノイズテクスチャが生成されます。これは法線マップ、ラフネスマップ、メタリックマップの基礎として使用できます。


PBRマテリアルワークフロー自動化

Physical Based Rendering (PBR)は現代的なリアルタイムグラフィックスの標準です。Antigravityを活用して、複数のテクスチャセット(アルベド、ノーマルマップ、メタリック、ラフネス)を自動的に生成・統合できます。

マテリアル管理スクリプトの自動生成

「複数のテクスチャからPBRマテリアルを作成し、メタリック・ラフネス値を自動設定するEditorスクリプトを書いて」という指示でAntigravityが生成します。

このスクリプトは以下の機能を持ちます:

  • テクスチャの自動検出とマテリアルへの割り当て
  • チャンネルパッキング(メタリックとラフネスを同じテクスチャに詰め込む)
  • バッチ処理による複数マテリアルの一括作成
  • 命名規則の統一化

Antigravityのコード補完により、新しいテクスチャフォーマットが導入されても数分で対応スクリプトを更新できます。


バッチ処理とアセット管理

大量の3Dアセットを効率的に処理するには、自動化されたバッチ処理システムが必須です。

EditorWindowツールによる一括インポート・エクスポート

Antigravityに「Unityの EditorWindow を作成して、フォルダ内の全てのFBXファイルをインポートし、PBRマテリアルを自動生成するツールを書いて」と指示します。

このツールは:

  • ドラッグ&ドロップでフォルダ指定
  • 自動命名規則の適用(modelName_LOD0, modelName_LOD1 など)
  • LOD(Level of Detail)自動生成
  • インポート設定の一括適用
  • 処理進捗をプログレスバーで表示

こうしたツールをAntigravityで生成すれば、アーティストはUIボタン一つで数百のモデルを処理できるようになります。

ネーミング規則と組織化

Antigravityは生成したコードに対して、以下のような命名規則自動チェッカーも提案します:

assets/models/[Category]/[ModelName]/
├── Model_Albedo.png
├── Model_Normal.png
├── Model_Metallic.png
├── Model_Roughness.png
├── Model.fbx
└── Model.mat

AI駆動のスクリプトにより、このフォルダ構造を自動検証し、不足しているテクスチャやミスネーミングを警告できます。


外部AI生成ツールとの統合

3Dモデル生成AI(Meshy、Tripo3D、Stability AI等)のAPIレスポンスをUnity向けアセットに変換するスクリプトも、Antigravityで生成できます。

Meshyインポートスクリプトの自動生成

「Meshy APIで生成された3DモデルのOBJファイルをダウンロードし、Unityにインポートするスクリプトを書いて」という指示で、Antigravityが以下を生成:

  • REST APIの呼び出しと非同期処理
  • ファイルのダウンロードと解析
  • Unityのメッシュ、マテリアル変換
  • エラーハンドリングとリトライロジック

このスクリプトにより、テキストプロンプト→3Dモデル→Unity統合が完全に自動化されます。

複数AI基盤のマルチプラットフォーム対応

Antigravityに「Meshy、Tripo3D、Stability AI の3つのAPIに対応したAbstractインターフェースを書いて。各APIの異なるレスポンス形式を統一的に処理して」と指示すれば、拡張可能なアーキテクチャが自動生成されます。

新しいAI生成ツールが登場しても、実装者はインターフェースを実装するだけで統合できるようになります。


まとめ

Antigravity IDEのAIエージェント機能は、3D開発における時間集約的なタスクを劇的に短縮します。

  • プロシージャル生成: 自然言語でメッシュ、テクスチャを定義すれば、Antigravityが最適化コードを提案
  • 計算シェーダー: リアルタイムテクスチャ生成で、アセットパイプラインの柔軟性が向上
  • PBRワークフロー: 複数テクスチャの自動統合で、手作業を最小化
  • バッチ処理: EditorWindowツール自動生成で、大量アセットも数クリックで処理
  • 外部AI連携: テキストプロンプト→3Dモデルまでのエンドツーエンド自動化

あなたのチームがこのパイプラインを導入すれば、クリエイティブにさらに多くの時間を割くことができます。Antigravity IDEで、AIと人間が協働する新しい3D開発の時代を始めましょう。

シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

連携・プラグイン2026-03-23
Antigravity × Unity: デザインアセット制作ワークフロー
Antigravity IDEを活用したUnityデザインアセット制作の完全ワークフロー。3Dモデル用スクリプト自動生成、テクスチャ管理、アセットバンドル最適化まで実践解説。
アプリ開発2026-03-29
Antigravity×Unity/Flutter連携エラー解決法 — SDK設定からビルドエラーまで
Unity と Flutter から Antigravity API を連携するときの SDK 設定、認証、ビルドエラーを完全解決。iOS/Android 両プラットフォーム対応。
アプリ開発2026-07-18
「Compose ファースト」の後で、View の画面をどの順に移すか — 画面数ではなく変更頻度で決める
Google が Android 開発を Compose ファーストと表明しました。View ベースの画面をどの順で移すかを、画面数ではなく git の変更履歴から決める判断軸と、実際に動かしたスコアリングスクリプトをまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →