Search

【CEDEC2020】柔軟な自動化を実現したLUMINOUS ENGINEはどのように進化したのか - モリカトロン株式会社

日本のゲーム業界関係者が集うカンファレンスCEDECの2020年大会において、9月2日、「オープンワールドを、自然に意思を持って埋める。 LUMINOUS ENGINEのプロシージャルへの取り組み」というセッションが開催されました。この記事では、「ミクロからマクロまで」「拡張、応用しやすく」「毎回同じ結果」「結果をリアルタイムに確認」という目標を掲げて改良されたLUMINOUS ENGINEの概要を、セッションの内容に即してまとめていきます。

描画の単位となるプロシージャルの作成

スクウェア・エニックスの完全子会社である株式会社Luminous Productionsが開発するゲームエンジンLUMINOUS ENGINEにおけるゲームワールドの描画は、アーティストが直接ペイントするのではなく、プロシージャルと呼ばれる描画処理の単位を作成した上で進められます。

プロシージャルは、描画のパターンや塗りむらを定めたノイズマスクと土の地面や花畑のような描画対象を定めた地形テクスチャを合成して作成されます。このプロシージャルをゲームワールドに配置してくことによって、草原や森といったゲーム環境を作成してくのです。森や草花を表現しているプロシージャルは、「プロシージャル植生」と呼ばれます。

プロシージャル植生を使って木や森を表現する時に重要となるのが、描画の密度です。現実の自然では木が密集している所が森になるように、描画の密度によって木から森の描画に移行させる必要があります。こうした描画密度を測る単位がポイントマスクです。具体的には、木の根元に一定範囲の矩形を設定して、その矩形の密集度で描画密度を測定します。木のポイントマスクが多数重なり合うような場所は、森となるのです。森においては、木の根元に落ち葉を描画したり、ブラー(ぼかし処理)を設定したりして鬱蒼とした雰囲気を作り上げます。

「たんぽぽが咲く花畑の一部に白いコスモスを置きたい」というようなプロシージャル植生の一部を変更する時に活用されるのが、下記の図のように複数のプロシージャル植生が組み合わさった「ネットワーク」です。ネットワークにふくまれたプロシージャル植生の設定を変更したり、新規のプロシージャル植生を追加したりすることによって、部分的な描画変更が容易に実行できます。

プロシージャル植生の上に岩や建造物といったアセットを配置した場合、アセットにプロシージャル植生の描画属性が継承されます。例えば、草原の上に岩を配置した場合、岩に草原のマテリアルが継承された結果、岩の上面に草が生えるというリアルな表現が可能となります。また、「岩のまわりに小石を配置」というようなアセットに特有な特別処理を付加することで、描画のリアリティがさらに増します。

以上のようなプロシージャル植生を描画の基本単位とすることによって、LUMINOUS ENGINEは少ない作業手順でリアリティのあるゲームワールドを表現することができるのです。

柔軟に調整できるレベルデザイン

前節でまとめたプロシージャル植生は、ゲームのレベルの上に配置されて初めてゲームワールドが作られます。レベルが作成されるまでには、「プロシージャル定義「レベル上にゲームオブジェクトとして配置」「パラメータ編集」「出力ファイル更新」という手順が実行されます。

レベル上にゲームオブジェクトを配置するコマンドには、地形を上げ下げしたり削ったりする「Sculpt(スクラプト)」、プロシージャル植生を塗っていく「Paint(ペイント)」、道や川といった曲線的なオブジェクトを配置する「Curve(カーブ)」の3つがあります。また、出力ファイル更新は専用サーバで定期的に実行され、複数のレベルデザイナーの作業が矛盾なく出力に反映されるようにコンフリクト回避のチェックも行われます。

レベルに配置した(プロシージャル植生の複合体である)ネットワークの一部の設定を変更するためには、Exposeパラメータを編集します。このパラメータは、レベルデザイナーがネットワークの設定の一部を直接編集できるように「外出し」されたものです。同パラメータがあることによって、ネットワークを新規作成することなく、柔軟に設定を変更できるのです。

レベルにはしばしば似たような設定のネットワークが多数配置されることがあります。このように類似したネットワーク群を効率的に編集するために導入されたのが、レイヤーデータとメタデータという概念です。レイヤーデータとは、ネットワーク群の共通点をひとつのネットワークとしてまとめたものです。メタデータとは、レイヤーデータでまとめることができなかったネットワークごとに固有な設定をExposeパラメータとして外出ししたものです。こうしたメタデータの設定変更はレイヤーデータ全体に反映されるので、効率的なレベル編集が可能となります。

以上のようなレベルデザインが可能なLUMINOUS ENGINEの利点は、プロシージャル植生の作成を担当しているグラフィックアーティストに追加の業務を依頼することなく、レベルデザイナーが単独でグラフィックを調整しながらレベルを作れるところにあると言えるでしょう。

シンプルを目指した内部処理

リアルな自然を表現できるLUMINOUS ENGINEは、ソフトウェアエンジニアリングの観点に立てば、さまざまな処理を実行するプログラムの集合体と見ることができます。同ゲームエンジンの内部処理をせんじ詰めれば、プログラムに何らかの値やオブジェクトを渡す「入力」、入力に対して何らかのプログラムを実行する「演算」、演算結果を返す「出力」、そして入力・演算・出力の間を流れる「データ」から構成されていると言えます。構成要素のうち「入力」「演算」「出力」が多様であるほど、豊かな表現が可能となります。こうしたなか、この3つの構成要素の間を流れている「データ」をシンプルにすれば、同ゲームエンジンの処理全体がシンプルになります。

LUMINOUS ENGINE内を流れるデータは、現状では「マスク」と「ポイントクラウド」の2種類のみとシンプルなものとなっています。マスクとは、何らかの座標データを処理に渡す時のデータ構造のことです。マスクは、プロシージャル植生をペイントしたり、地形をスクラプトしたりする時に使われています。ポイントクラウドは、何らかのインデックスデータ(順番が設定されたデータ群)を処理に渡す時に使われるデータ構造です。ポイントクラウドの使用例として、川を描くときに使われるカーブの編集があります。川の曲線を設定する場合、内部的にはベジェ曲線を描画しているのですが、この曲線を設定するには4つの座標のセットにして渡しているのです。

LUMINOUS ENGINE内で生じるデータ演算は、マスクとポイントクラウドの演算で表現できます。こうしたデータ演算の基本ルールは、「主となる入力データと出力データのデータの種類は一致する」というシンプルなものです。例えば、主となる入力データがマスクの場合、出力データもマスクとなります。

以上の基本ルールにもとづいて、マスク同士の演算ではマスクデータが出力され、ポイントクラウド同士の演算ではポイントクラウドデータが出力されます。そして、主たる入力データがポイントクラウド、従となる入力データがマスクの場合は、出力は主たる入力データと同じポイントクラウドとなります。例外は、主たる入力データがマスク、従となる入力データがポイントクラウドの時です。このデータ演算は禁止されています。というのも、マスクからは正確なインデックスデータを生成できないからです。

データ演算のなかには、「岩アセットを配置してから、草のプロシージャル植生を岩の上に置く」といった処理の順序が重要となるものがあります。LUMINOUS ENGINEでは、こうしたデータ演算の順序を「Phase(フェーズ)」という概念を導入して実行しています。具体的には岩アセットの配置を「Phase1」、岩アセットの上に草のプロシージャル植生を配置する処理を「Phase2」と設定したうえで、Phaseの番号順に演算を実行していくのです。

以上に解説した描画の基本単位であるプロシージャル、プロシージャルを配置するレベルデザイン、そして内部処理に共通していることは、「作業や処理をシンプルにしながらも多様な出力を得られるようにする」設計思想です。この設計思想を徹底することによって、「ミクロからマクロまで」「拡張、応用しやすく」「毎回同じ結果」「結果をリアルタイムに確認」というLUMINOUS ENGINEの当初の改良目標は達成されたと言えるでしょう。

Writer:吉本幸記

Let's block ads! (Why?)



"どのように" - Google ニュース
September 17, 2020 at 09:01AM
https://ift.tt/33Cf4uE

【CEDEC2020】柔軟な自動化を実現したLUMINOUS ENGINEはどのように進化したのか - モリカトロン株式会社
"どのように" - Google ニュース
https://ift.tt/39CBPzR
Shoes Man Tutorial
Pos News Update
Meme Update
Korean Entertainment News
Japan News Update

Bagikan Berita Ini

Related Posts :

0 Response to "【CEDEC2020】柔軟な自動化を実現したLUMINOUS ENGINEはどのように進化したのか - モリカトロン株式会社"

Post a Comment

Powered by Blogger.