Voxel Plugin
頼むだけでVoxel Plugin 2の手続き型地形を作る。なだらかな丘、山、洞窟、浮遊島、ペイントした地表、散布した木々、マインクラフト風のブロック状の世界まで。
Voxel Plugin 2は、Unreal Engine向けの手続き型の地形システムだ。地面をグラフと図形で記述すると、エディタ上でリアルタイムに地形を構築する。ハイトマップのランドスケープでは作れない洞窟、オーバーハング、宙に浮く岩も作れる。
Voxel Plugin 拡張機能を使うと、Ultimate Engine CoPilotがそれらの構成を作ってくれる。なだらかな丘、もっと高い山、洞窟、浮遊島を頼むだけだ。
AIはVoxel World、グラフ、スタンプを作る。地表をペイントし、木を散布し、結果を確認する。
Voxel Plugin 2.0p8、Unreal Engine 5.6と5.7でテストしている。このページの地形の画像は5.7のものだ。
ここでの「ボクセル」の意味
「ボクセル」は、Voxel Pluginが地形を保存する方式のことで、見た目のことではない。デフォルトでは地形は滑らかだ。プラグインは密度値のグリッドを保持し、その中を通る滑らかな表面を描く。
マインクラフトのような立方体を期待していたなら、それは頼めば変えられる設定だ。ブロック状の地形を参照。
AIのどの回答にも、次の4つの言葉が出てくる:
- Voxel World。 地形を描くアクター。レベルに1つあり、それ自体は地形を作らない。
- スタンプ。 Worldが描く指示で、アクターとしてレベルに配置する。スタンプは「これをここに追加する」と指示する。対象はグラフ、球、ハイトマップ、メッシュ、スプラインのいずれか。
- グラフ。 地形を作るノードネットワーク。たとえばノイズをOutput Heightノードにつなぐ。多数のスタンプが同じグラフを実行できる。
- レイヤーとレイヤースタック。 何がどこに、どの順で書き込まれるかを決める。これで世界を段階的に作れる。
ハイトスタンプは1地点につき高さを1つ与える。速いが、オーバーハングはできない。ボリュームスタンプは3D形状で、洞窟、アーチ、浮遊する岩を作れる。
必要なもの
- Voxel Plugin 2(プロジェクトにインストールして有効化したもの)。
- Voxel Plugin 拡張機能をオンにしたUltimate Engine CoPilot。
- 空とライトがあるレベル。新しいレベルにはどちらもないため、用意するまで地形は黒く描かれる。同じプロンプトで「空、太陽、フォグ」を頼めばよい。
Voxel Pluginがなくても、この拡張機能が害を及ぼすことはない。Voxelのツールはどれも、何をインストールすべきかを伝える1つのメッセージで応答する。
セットアップの1ステップはVoxelの担当で、こちらのものではない。 Voxelはエンジンに小さなシェーダーフックを追加し、ペイントした地表がマテリアルを描けるようにする。適用するまでは、地形には自分のマテリアルではなく、Voxelのデフォルトのグリッドが表示される。
適用にはVoxel自身のツールを使い、Voxelのセットアップガイドに従う。これはエンジンのシェーダーファイルを編集するため、そのエンジンを使うすべてのプロジェクトが、次に開くときにシェーダーを再コンパイルする。
AIに「Voxelのステータスを確認して」と頼むと、フックが適用済みかどうかを教えてくれる。
オンにする

- 検索。 設定 > 拡張機能 を開き、「voxel」を検索する。
- LOADED。 拡張機能が動いていると、カードに LOADED と表示される。
- スイッチ。 オンにする。初期状態ではオフになっている。
そのあと、AIに「Voxelのステータスを確認して」と頼む。Voxel Pluginが見つかったか、レベルに何があるか、シェーダーフックが適用済みかを報告する。
プロンプトから地形を作る
設定ではなく、見た目を伝える。このプロンプトで次の画像の地形ができた:

Create a Voxel terrain with rolling hills and make it look good with a sky,
sun and fog. Put everything in /Game/VoxelDemo.
AIはVoxel World、丘用のハイトグラフ、それを使うスタンプ、草の地表、そして空、太陽、雲、フォグを作った。返ってきた結果はこちら:

- 地形。 ビューポートにリアルタイムで描かれる。
- 要約。 何を作ったか、何を測ったか、頼まれていないのに何を追加したかを伝える。ここでは雲と草のマテリアルだった。マテリアルがないと、地形はVoxelのデフォルトのグリッドで描かれるためだ。
- アセット。 指定したフォルダに保存される。グラフ、草のマテリアル、レベル。
形を変える
変更は普通の言葉で頼む。
Make the hills taller and more rugged, with fine detail on the peaks.
AIはハイトグラフを編集する。今回の実行では、ベースのノイズを変更し、オクターブを追加し、山頂だけに作用する2つ目のノイズを追加した。ビューポートは同じカメラで、変更前(左)と変更後(右):

グラフは普通のVoxelグラフだ。Content Browserから開けば、AIが作ったものを確認したり変更したりできる。

- Advanced Noise 2D。 丘を作るノイズ。振幅、フィーチャースケール、オクターブを持つ。
- Output Height。 地形が読み取るノード。高さの範囲があるので、高い山頂が切れずに済む。
- Make Box 2D From Radius。 グラフが対象とするエリア。
スタンプごとにグラフを調整したいときは、パラメーターを頼む: 「高さとフィーチャーのサイズのパラメーターを追加して、スタンプごとに調整できるようにして。」
こうすれば、同じグラフでも、ある場所ではなだらかな草地、別の場所では高い山頂を作れる。値のないパラメーターは0になるため、AIは必ず各パラメーターに初期値を与える。
ペイント、散布、くり抜き
ペイントと散布は、地形を「場所」らしく見せる工程だ。
Paint the terrain with the textured materials from the Voxel examples: cliff
rock on the steep slopes and muddy leaves on the flatter ground.
Scatter trees across the hills, thicker on the flatter ground, using the three
sample trees from the PCG plugin.

AIはグラフを通してペイントするので、急な斜面には岩、平らな地面には葉が載る。木は、メッシュを地形の表面に置く散布グラフから来る。
ペイントは、見た目だけでなく、地形を複数の点でサンプリングして、そこにどの地表があるかを読み戻して確認する。
ハイトスタンプにできない部分は、ボリュームスタンプが担当する。
Add a floating rock island above the valley.

Carve a cave into the tallest mountain.

島は、岩のメッシュを地形として使うスタンプだ。
洞窟は、山から引き算する重なり合った球のスタンプで作る。入り口、トンネル、空洞の部屋だ。壁は滑らかで、球が交わる部分は少し波打つ。
ブロック状の地形
「この地形をブロック状にして」と頼むと、同じスタンプが段のある立方体として描かれる。左は滑らかな地形、右は変更後の同じカメラだ:

AIは3つのことをする。blockiness(ブロック度)の値を作り、Worldがそれを指すように設定し、ブロック状にしたい各スタンプにその値を設定する。最初の2つだけでは何も変わらない。
値が1なら完全な立方体、0なら滑らか、その間の値は部分的にスナップする。立方体の1辺はボクセル1つ分で、デフォルトのボクセルサイズでは1 mだ。
立方体の面は、まだ滑らかにシェーディングされている。角の立った面にするにはマテリアルでフラットノーマルが必要で、これはマテリアル側で自分で設定する。
頼めること
- 「なだらかな丘と、空、太陽、フォグのあるVoxel地形を作って。」
- 「丘をもっと高く、ごつごつさせて。」
- 「東に山脈用の2つ目のスタンプを追加して。高さは独自にして。」
- 「これらの点に沿って川を追加して」(スプラインスタンプが、渡した点に沿う)。
- 「このハイトマップテクスチャを地形として使って。」
- 「この岩のメッシュをスタンプとして使って。」
- 「平らな地面には草、急な斜面には岩を置いて。」
- 「丘全体に木を散布して。」
- 「この木と岩を地面に置いて。」エディタにはボクセル地形用のコリジョンがないため、通常のライントレースは当たらない。AIは地面の位置を地形そのものに問い合わせる。
- 「なぜ何も描画されないの?」AIはVoxelのログを読む。Voxelはグラフやスタンプの多くのエラーをそこにしか報告しないからだ。
こうした依頼の裏で、この拡張機能には23個のツールがある:
- ステータスとアセット。 Voxelの確認、アセットの一覧、グラフ、レイヤー、レイヤースタック、メガマテリアル、サーフェスタイプ、ハイトマップ、メッシュアセットの作成と編集。
- World。 作成、読み取り、ナビゲーションやコリジョンを含む設定の変更。
- スタンプ。 スタンプの種類の一覧、そしてあらゆる種類のスタンプの追加、読み取り、変更。
- グラフ。 ノードの種類の一覧、グラフの読み取り、ノードの追加、接続、設定、削除、そしてパラメーターの追加。
- アクター。 散布アクターとスカルプトアクターの追加、読み取り、変更。
- 地面クエリ。 各点での高さ、傾斜、地表の読み取りと、地形上へのアクターの配置。
- メッセージ。 Voxelが記録したログの読み取り。
ヒント
- 見た目を伝えて、フォルダ名を指定する。 「すべてを/Game/VoxelDemoに置いて」と頼むと、グラフ、マテリアル、サーフェスがまとまる。
- 1メッセージにつき1ステップ。 まず地形、次に形、次にペイント、最後に木。結果がそれぞれ見えるし、直前のステップだけを取り消せる。
- 最初のプロンプトで空とライトを頼む。 それがないと地形は黒く描かれる。
- サンプルのサーフェスを使う。 Voxel自身のサンプルコンテンツには、テクスチャ付きのマテリアルが用意されている。上のようにプロンプトで名前を指定する。
- レベルを保存する。 AIは作成したグラフとマテリアルを保存するが、スタンプはレベルの中にあるため、閉じる前にAIにレベルの保存を頼むか、Ctrl+Sを押す。
- 要約の「知っておくべきこと」を読む。 島がフレームの外にある、など、AIがビューポートで確認できなかったことが書かれている。
制限
- インタラクティブなスカルプトと、保存されたスカルプトデータには対応していない。
- VoxelのPCGノードは追加して接続できるが、Voxel Worldに対するPCGの完全な実行は試していない。
- ランタイムでの編集とマルチプレイヤーには対応していない。
- World自身の設定を超えるナビメッシュとコリジョンインボーカーには対応していない。
- Voxelのマテリアルエディタとファンクションライブラリのグラフには対応していない。それらには汎用のプロパティツールを使う。
- ペイントした地表がある地形にはVoxelのシェーダーフックが必要で、Voxelのグラフは、Voxelが提供するノードの種類からしか作れない。その種類はAIが調べてくれる。
- AIがVoxelをプロジェクトにリンクすることはない。アップデートでVoxelが何かの名前を変えた場合、ツールは推測せずに、見つからないフィールドの名前を示す。
権限
読み取りは自由だ。ステータスの確認、グラフの読み取り、地形のサンプリングは、確認を求めない。変更は、ほかのすべてのツールと同じように、Ask Before Edit または Auto Edit の設定に従う。
仕組み
- プラグイン同士はリンクしない。 拡張機能はリフレクションだけでVoxel Pluginにアクセスする。そのため、Ultimate Engine CoPilotはVoxelがインストールされていてもいなくても同じようにビルドされ動作し、拡張機能は同じ設計のVoxelバージョン間で動き続ける。
- どこでも同時に。 ツールはCoPilotのチャット、Claude CodeやCursorのような外部MCPクライアント、そしてコーディングエージェントで使える。MCP連携を参照。
- 変更はリアルタイムで見える。 AIが編集するのに合わせてVoxelが地形を更新し、グラフはVoxel自身のエディタで開く。