週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

ゲームの“自動生成”技術がすごいことになっている

2023年07月10日 07時00分更新

広大なマップがあっという間に完成

 では実際に使ってみましょう。Unreal Engine 5.2を開いて、PCGのデモンストレーションマップを選択します。もともといくつかのシンプルな地形データと、それを動かすためのパラメーターが入っています。「植物のサイズ」「倒木の本数」などの項目があるので、数値を変えると、すぐ反映されていきます。

基本となる森の構成物をPCGで変化させられるデモ用マップ。森は15個あまりのアセットで構成されているが、PCGで簡単に、しかも複雑な構成が生み出せる。1枚目の右側にあるのがパラメータ。変更すると、森の構成を一瞬で切り替えられる

 仕組みとしては乱数を数字でコントロールしているもの。Stable Diffusionのような画像生成AIでたとえれば、プロンプトがあらかじめプログラムされていて、パラメーターを調整すると生成結果が変わるというイメージですね。ただ、生成AIのような学習の仕組みはなく、あらかじめすべての手続きを決めておく必要があります。

 これを使ってどのくらいのものができるのか。先ほどEpic Gamesが出していたデモのデータをすべて組み込んだマップを読み込んでみましょう。さすがに速いマシンでないと読み込みにめちゃめちゃ時間がかかりますが……。

「Electric Dream」の実行画面。とにかく森の情報量の多さに圧倒される。ドローンで移動して回れるようになっている

 「再生」ボタンを押した瞬間にアルゴリズム上で計算が始まって、超自然的な空間が作られます。ただ空間内を歩いていくだけでもすごさが伝わるのではないかと思います。「ゲームエンジンでこんなことができるのか」と。

 そしてマップ上にプロシージャル生成のサンプルオブジェクトを置いてやると、ポンと地形が変わります。位置をずらしてやると、座標位置に合わせて形状が勝手に変わってくれる。大きさや、木の量などのパラメータを変更すると、エディター内でリアルタイムに変更されます。

サンプルのPCGのプログラムを指定エリアに配置したところ。右画面にへこうできるパラメータ一覧が表示されている

パラメータや位置やサイズをちょっと変更するだけで、リアルタイムに様々な複雑な形状が作り出せる。3つのオブジェクトは同じPCGのサンプルから作成している

 比較的単純なプログラムだけでこの広大な空間がすべてできているというのは驚きです。4つくらいのプロシージャルコンテンツを組み合わせるだけでこれだけの空間が作れてしまうわけですから。

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

この連載の記事