モリカトロン株式会社運営「エンターテインメント×AI」の最新情報をお届けするサイトです。

TAG LIST
機械学習ディープラーニングCGCGへの扉安藤幸央GANニューラルネットワーク強化学習月刊エンタメAIニュースモリカトロンAIラボインタビュー音楽三宅陽一郎QAOpenAI敵対的生成ネットワークCEDEC2019シナリオFacebookデバッグスクウェア・エニックスNVIDIADeepMind人工知能学会CEDEC2020ゲームAI映画遺伝的アルゴリズム不完全情報ゲーム深層学習ルールベースAIと倫理ビヘイビア・ツリーGoogleSIGGRAPHGDC 2019VRキャラクターAIボードゲーム畳み込みニューラルネットワークロボットグーグルプロシージャルVFXメタAIファッションマイクロソフトStyleGAN自動生成JSAI2020CNNイベントレポートモリカトロンマルチエージェントナビゲーションAI森川幸人水野勇太ガイスターCLIP自然言語処理アート河合律子toioHTN階層型タスクネットワークスポーツTensorFlowGDC SummerゲームプレイAIeSportsBLUE PROTOCOL小説DALL-EAlphaZeroカメラ環世界中島秀之懐ゲーから辿るゲームAI技術史JSAI2021研究ディープフェイクDARPAドローンAI美空ひばり手塚治虫汎用人工知能GPT-3メタデータ通しプレイOpenAI Five本間翔太CM倫理ピクサーAdobe作曲中嶋謙互Amadeus CodeMicrosoftMicrosoft Azureキャリアテストプレイeスポーツ音声認識PyTorchDQN眞鍋和子バンダイナムコスタジオシーマンUnity齊藤陽介マインクラフトお知らせAIアートサルでもわかる人工知能VAEアニメーションワークショップGenvid Technologies知識表現IGDANPCどうぶつしょうぎジェイ・コウガミ音楽ストリーミングStyleGAN2マシンラーニングクラウドコンピューティショナル・フォトグラフィー完全情報ゲーム坂本洋典釜屋憲彦藤澤仁生物学画像認識NFT長谷洋平鴫原盛之masumi toyota宮路洋一SIGGRAPH ASIA吉本幸記ソニーフェイクニュースシムピープルGPUALife人工生命オルタナティヴ・マシンサウンドスケープASBSマンガぱいどんTEZUKA2020松井俊浩Electronic ArtsマーケティングApex LegendsNinjaゲームTENTUPLAYMARVEL Future Fightタイムラプスバスキアブロックチェーン階層型強化学習WANN竹内将馬淵浩希岡島学映像セリア・ホデントUX認知科学ゲームデザインLUMINOUS ENGINELuminous Productionsパターン・ランゲージちょまどビッグデータアストロノーカ模倣学習ナラティブFPSマルコフ決定過程スタンフォード大学パラメータ設計テニスバランス調整レコメンドシステム対話型エージェント協調フィルタリング人狼知能Amazon軍事AlphaDogfight TrialsエージェントシミュレーションStarCraft IIFuture of Life InstituteIntelロボティクスLAIKARotomationドラゴンクエストライバルズ不確定ゲームDota 2モンテカルロ木探索ソーシャルゲームEmbeddingGTC2020NVIDIA MAXINE淡路滋ビデオ会議グリムノーツゴティエ・ボエダGautier Boeda階層的クラスタリングaiboJuliusSIETPRGバーチャル・ヒューマン・エージェントtoio SDK for Unityクーガー田中章愛石井敦銭起揚茂谷保伯MinecraftGDMC成沢理恵MITメディアラボ著作権マジック・リープMagic Leap OneMagendaノンファンジブルトークンDDSPサッカー里井大輝KaggleバスケットボールAssassin’s Creed OriginsSea of ThievesGEMS COMPANYmonoAI technologyアバター初音ミクOculus転移学習テストBaldur's Gate 3Candy Crush SagaSIGGRAPH ASIA 2020デバッギングBigGANMaterialGANリップシンキングRNNUbisoftReBeLUbisoft La Forge自動運転車VolvoRival Prakウォッチドッグス レギオンユービーアイソフト北尾まどかHALO将棋メタルギアソリッドVFSMナップサック問題汎用言語モデルSpotifyMITReplica StudioamuseChitrakar巡回セールスマン問題ジョルダン曲線5GMuZeroクラウドゲーミングRival Peak和田洋一リアリティ番組Stadiaジョンソン裕子MILEs対話エンジンインタラクティブ・ストリーミング斎藤由多加インタラクティブ・メディアリトル・コンピュータ・ピープルシーマン人工知能研究所Ludoゴブレット・ゴブラーズTransformerSIGGRAPH 2019ArtEmis絵画ARGPT-2GROVERFAIRAIりんなチート検出オンラインカジノアップルRealFlowiPhoneシミュレーションDeep FluidsMeInGameAIGraphブレイン・コンピュータ・インタフェースBCILearning from Video予期知能ウェイポイントユクスキュルパス検索カント哲学ドラゴンクエストエージェントアーキテクチャPAIROCTOPATH TRAVELER西木康智OCTOPATH TRAVELER 大陸の覇者アルスエレクトロニカ2019StyleCLIPDeNAStyleRig逆転オセロニア奥村エルネスト純いただきストリート齋藤精一大森田不可止高橋智隆ロボユニザナック泉幸典仁井谷正充ロボコレ2019ぎゅわんぶらあ自己中心派Azure Machine Learning意思決定モデル脱出ゲームHybrid Reward ArchitectureウロチョロスSuper Phoenix理化学研究所Project Malmo教育TextWorldProject PaidiaProject LookoutWatch ForBingLEFT ALIVE長谷川誠ジミ・ヘンドリックスBaby Xカート・コバーンロバート・ダウニー・Jr.エイミー・ワインハウスMagentaYouTubeダフト・パンクSFGlenn MarshallThe Age of A.I.Story2HallucinationレコメンデーションJukeboxGTC2021CycleGANテンセントSIFTDCGANMOBADANNCE人事ハーバード大学研修デューク大学mynet.aiローグライクゲームNetHack人工音声NeurIPS 2021はこだて未来大学プレイ動画ヒップホップサイレント映画NBA環境音現代アートエージェント粒子群最適化法進化差分法群知能下川大樹ウィル・ライト高津芳希シムシティ大石真史BEiTレベルデザインDETRSporeデノイズ画像処理CPUGMAITRPGウィザードリィAI Dungeon西川善司サムライスピリッツゼビウスストリートファイター栗原聡山野辺一記大里飛鳥13フェイズ構造手塚眞不気味の谷Oculus Quest生体情報写真照明山崎陽斗立木創太スパーシャルAIGameGANパックマンソサエティ5.0SIGGRAPH 2020DIB-R3D広告

【CEDEC2020】柔軟な自動化を実現したLUMINOUS ENGINEはどのように進化したのか

2020.9.17ゲーム

【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:吉本幸記

RELATED ARTICLE関連記事

【CEDEC2020】メタAIを発展させるパターン・ランゲージからデザインパターンへの応用

2020.9.18ゲーム

【CEDEC2020】メタAIを発展させるパターン・ランゲージからデザインパター...

【JSAI2021】JRPG特有のお遣いクエストを自動生成できるAI技術への第一歩

2021.6.21ゲーム

【JSAI2021】JRPG特有のお遣いクエストを自動生成できるAI技術への第一...

モリカトロンとAIが切り開くゲーム開発のフロンティア:森川幸人氏インタビュー

2019.4.23ゲーム

モリカトロンとAIが切り開くゲーム開発のフロンティア:森川幸人氏インタビュー

RANKING注目の記事はこちら