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

TAG LIST
ディープラーニング機械学習CGCGへの扉安藤幸央GANニューラルネットワーク月刊エンタメAIニュース強化学習三宅陽一郎モリカトロンAIラボインタビュー敵対的生成ネットワーク音楽OpenAIQAスクウェア・エニックス河合律子シナリオNVIDIAデバッグCEDEC2019プロシージャルDeepMind人工知能学会FacebookキャラクターAIルールベースビヘイビア・ツリーGoogleCEDEC2020ゲームAI映画SIGGRAPH遺伝的アルゴリズム不完全情報ゲームメタAIナビゲーションAI畳み込みニューラルネットワーク深層学習マイクロソフトAIと倫理グーグルGDC 2021GDC 2019マルチエージェントVR森川幸人ボードゲーム自然言語処理ロボットStyleGAN自動生成GPT-3CNNVFXモリカトロンゲームプレイAIファッションHTN階層型タスクネットワークJSAI2020Microsoftイベントレポート水野勇太アニメーションガイスターNPCCLIPアートtoio吉本幸記JSAI2021スポーツディープフェイク汎用人工知能TensorFlowGDC SummerテストプレイeSportsBLUE PROTOCOL小説DALL-EStyleGAN2AlphaZeroカメラ環世界中島秀之懐ゲーから辿るゲームAI技術史研究DARPAドローンAI美空ひばり手塚治虫CEDEC2021メタデータ通しプレイOpenAI Five本間翔太CM倫理ピクサーAdobe作曲中嶋謙互Amadeus CodeMicrosoft Azureキャリアeスポーツ音声認識ロボティクスPyTorchDQN眞鍋和子バンダイナムコスタジオシーマンUnity齊藤陽介マインクラフトお知らせAIアートサルでもわかる人工知能VAEUbisoftUbisoft La ForgeワークショップGenvid Technologies知識表現ウォッチドッグス レギオンIGDAどうぶつしょうぎジェイ・コウガミ音楽ストリーミングマシンラーニングクラウドコンピューティショナル・フォトグラフィーGPT-2完全情報ゲーム坂本洋典釜屋憲彦ウェイポイントパス検索藤澤仁生物学画像認識DeNANFT長谷洋平鴫原盛之masumi toyota宮路洋一SIGGRAPH ASIAソニーCycleGANフェイクニュースシムピープルGPUALife人工生命オルタナティヴ・マシンサウンドスケープASBSマンガぱいどんTEZUKA2020ナビゲーションメッシュ松井俊浩スパーシャルAIElectronic ArtsマーケティングApex LegendsNinjaゲームTENTUPLAYMARVEL Future Fightタイムラプスバスキアブロックチェーン階層型強化学習WANN竹内将馬淵浩希岡島学映像セリア・ホデントUX認知科学ゲームデザインLUMINOUS ENGINELuminous Productionsパターン・ランゲージちょまどビッグデータアストロノーカ模倣学習ナラティブFPSマルコフ決定過程スタンフォード大学パラメータ設計テニスバランス調整レコメンドシステム対話型エージェント協調フィルタリング人狼知能Amazon軍事AlphaDogfight TrialsエージェントシミュレーションStarCraft IIFuture of Life InstituteIntelLAIKARotomationドラゴンクエストライバルズ不確定ゲーム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リップシンキングRNNReBeL自動運転車VolvoRival Prakユービーアイソフト北尾まどかHALO将棋メタルギアソリッドVFSMナップサック問題汎用言語モデルSpotifyMITReplica StudioamuseChitrakar巡回セールスマン問題ジョルダン曲線5GMuZeroクラウドゲーミングRival Peak和田洋一リアリティ番組Stadiaジョンソン裕子MILEs対話エンジンインタラクティブ・ストリーミング斎藤由多加インタラクティブ・メディアリトル・コンピュータ・ピープルシーマン人工知能研究所Ludoゴブレット・ゴブラーズTransformerSIGGRAPH 2019ArtEmis絵画ARGROVERFAIRAIりんなチート検出オンラインカジノアップルRealFlowiPhoneシミュレーションDeep FluidsMeInGameAIGraphブレイン・コンピュータ・インタフェースBCILearning from Video予期知能ユクスキュルカント哲学ドラゴンクエストエージェントアーキテクチャPAIROCTOPATH TRAVELER西木康智OCTOPATH TRAVELER 大陸の覇者アルスエレクトロニカ2019StyleCLIPStyleRig逆転オセロニア奥村エルネスト純いただきストリート齋藤精一大森田不可止高橋智隆ロボユニザナック泉幸典仁井谷正充ロボコレ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レコメンデーションJukeboxGTC2021テンセントSIFTDCGANMOBADANNCE人事ハーバード大学研修デューク大学mynet.aiローグライクゲームNetHack人工音声NeurIPS 2021はこだて未来大学プレイ動画ヒップホップサイレント映画NBA環境音現代アートエージェント粒子群最適化法進化差分法群知能下川大樹ウィル・ライト高津芳希シムシティ大石真史BEiTレベルデザインDETRSporeAIボイスアクターデノイズ南カリフォルニア大学画像処理NVIDIA CanvasSentropyCPUDiscordZorkCALMプログラミングソースコード生成GMAIシチズンデベロッパーTRPGGitHubウィザードリィMCN-AI連携モデルAI DungeonMCS-AI動的連携モデル西川善司並木幸介サムライスピリッツ森寅嘉ゼビウスSIGGRAPH 2021ストリートファイター半導体Topaz Video Enhance AI栗原聡DLSS山野辺一記NetEase大里飛鳥DynamixyzモーションキャプチャーU-Net13フェイズ構造アドベンチャーゲームADVXLandAGI手塚眞DEATH STRANDING不気味の谷Eric JohnsonOculus Questコジマプロダクション生体情報デシマエンジンインディーゲーム写真高橋ミレイ照明Maxim PeterJoshua Romoffハイパースケープ山崎陽斗深層強化学習立木創太バンダイナムコ研究所ミライ小町テスラGameGANELYZAパックマンTesla BotTesla AI Dayソサエティ5.0ELYZA DIGESTSIGGRAPH 2020バズグラフニュースタンテキ東芝DIB-R倉田宜典3D音声合成韻律射影広告韻律転移

【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.10.05ゲーム

【CEDEC2020】AIによるデバッグの自動化はどこまで進んでいるのか?

【JSAI2020】ゲーム開発からシナリオ制作まで、AI同士が協調する未来へ向けて

2020.6.22ゲーム

【JSAI2020】ゲーム開発からシナリオ制作まで、AI同士が協調する未来へ向け...

【GDC 2021】NPCの高度なインタラクションを可能とした『ウォッチドッグス レギオン』のグループビヘイビア

2021.8.17ゲーム

【GDC 2021】NPCの高度なインタラクションを可能とした『ウォッチドッグス...

RANKING注目の記事はこちら