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

TAG LIST
CG機械学習ディープラーニングCGへの扉安藤幸央GAN月刊エンタメAIニュース河合律子ニューラルネットワークOpenAINVIDIA強化学習三宅陽一郎音楽FacebookQAスクウェア・エニックス森川幸人モリカトロンAIラボインタビュー敵対的生成ネットワークDeepMindルールベースキャラクターAIシナリオGPT-3自然言語処理NFTGoogleグーグル自動生成映画デバッグCEDEC2019吉本幸記StyleGANプロシージャル人工知能学会遺伝的アルゴリズムメタAI深層学習マイクロソフトアートビヘイビア・ツリーCEDEC2021大内孝子CEDEC2020ゲームAISIGGRAPH不完全情報ゲームゲームプレイAIVRナビゲーションAI畳み込みニューラルネットワークDALL-ECLIPロボットAIと倫理ディープフェイクGDC 2021VFXメタバースGDC 2019マルチエージェントボードゲームNPCCNNデジタルツインモリカトロンUnityAIアートファッションHTN階層型タスクネットワークDALL-E2JSAI2020TensorFlowMicrosoftイベントレポートテストプレイ水野勇太小説アニメーションガイスターStyleGAN2懐ゲーから辿るゲームAI技術史toioソニーJSAI2021スポーツ研究シムピープル汎用人工知能GDC Summerバーチャルヒューマンブロックチェーン倫理BERTAdobeアストロノーカNVIDIA Omniverseeスポーツ対話型エージェントAmazoneSportsBLUE PROTOCOLシーマンUbisoft画像生成テキスト画像生成AlphaZeroTransformerGPT-2カメラ環世界中島秀之鴫原盛之DARPAドローンシムシティAI美空ひばり手塚治虫Electronic ArtsメタデータLEFT 4 DEADインタビュー通しプレイOpenAI Five本間翔太CMピクサープラチナエッグイーサリアム作曲ビッグデータ中嶋謙互Amadeus CodeMicrosoft AzureキャリアナラティブOmniverse ReplicatorレコメンドシステムNVIDIA DRIVE SimNVIDIA Isaac Simサイバーエージェント音声認識ロボティクスPyTorchDQN眞鍋和子バンダイナムコスタジオaibo合成音声Minecraft齊藤陽介マインクラフトお知らせチャットボットアバターサルでもわかる人工知能VAEOmniverseUbisoft La Forge自動運転車ワークショップGenvid Technologiesメタ知識表現ウォッチドッグス レギオンIGDAどうぶつしょうぎEpic Gamesジェイ・コウガミ音楽ストリーミング徳井直生マシンラーニングクラウド対話エンジン斎藤由多加リトル・コンピュータ・ピープルコンピューティショナル・フォトグラフィーゴブレット・ゴブラーズ絵画AIりんなシミュレーション完全情報ゲーム坂本洋典釜屋憲彦ウェイポイントパス検索対談藤澤仁生物学GTC 2022画像認識GTC2022StyleCLIPDeNA長谷洋平masumi toyota宮路洋一OpenSeaGDC 2022教育TextWorldSIGGRAPH ASIAGTC2021CycleGANNetHackフェイクニュースエージェントAIボイスアクターNVIDIA CanvasImagenGPUALifeZork人工生命オルタナティヴ・マシンサウンドスケープMCS-AI動的連携モデルASBSマンガモーションキャプチャーぱいどんTEZUKA2020ナビゲーションメッシュ松井俊浩バンダイナムコ研究所スパーシャルAIELYZAELYZA DIGEST3D音声合成マーケティングApex LegendsELIZANinjaコンピュータRPGアップルタウン物語KELDICメロディ言語ゲームTENTUPLAYMARVEL Future FightAstroタイムラプスEgo4Dバスキア日経イノベーション・ラボ敵対的強化学習階層型強化学習GOSU Data LabWANNGOSU Voice Assistant竹内将SenpAI.GGMobalytics馬淵浩希Cygames岡島学AWS Sagemaker映像セリア・ホデント形態素解析UXAWS Lambda誤字検出認知科学ゲームデザインSentencePieceLUMINOUS ENGINELuminous Productionsパターン・ランゲージ竹村也哉ちょまどボエダ・ゴティエGOAPAdobe MAX 2021模倣学習Omniverse AvatarFPSNVIDIA Rivaマルコフ決定過程NVIDIA MegatronNVIDIA Merlinスタンフォード大学NVIDIA Metropolisパラメータ設計テニスバランス調整協調フィルタリング人狼知能テキサス大学軍事AlphaDogfight TrialsAI Messenger VoicebotエージェントシミュレーションOpenAI CodexStarCraft IIHyperStyleFuture of Life InstituteRendering with StyleIntelDisneyLAIKADisneyリサーチRotomationGauGANGauGAN2ドラゴンクエストライバルズ画像言語表現モデル不確定ゲームSIGGRAPH ASIA 2021Dota 2モンテカルロ木探索ディズニーリサーチMitsuba2ソーシャルゲームEmbeddingワイツマン科学研究所GTC2020CG衣装NVIDIA MAXINEVRファッション淡路滋ビデオ会議ArtflowグリムノーツEponymゴティエ・ボエダ音声クローニングGautier Boeda階層的クラスタリングGopherJuliusSIE鑑定TPRGOxia Palusバーチャル・ヒューマン・エージェントtoio SDK for UnityArt Recognitionクーガー田中章愛Meta石井敦銭起揚NHC 2021茂谷保伯池田利夫GDMC新刊案内マーベル・シネマティック・ユニバース成沢理恵MITメディアラボMCU著作権アベンジャーズマジック・リープDigital DomainMagic Leap OneMagendaMasquerade2.0ノンファンジブルトークンDDSPフェイシャルキャプチャーサッカーモリカトロン開発者インタビュー里井大輝Kaggle宮本茂則バスケットボール山田暉Assassin’s Creed OriginsAI会話ジェネレーターSea of ThievesGEMS COMPANYmonoAI technologyLSTMモリカトロンAIソリューション初音ミクOculusコード生成AI転移学習テストAlphaCodeBaldur's Gate 3CodeforcesCandy Crush Saga自己増強型AISIGGRAPH ASIA 2020COLMAPADOPデバッギングBigGANGANverse3DMaterialGANリップシンキングRNNグランツーリスモSPORTReBeLグランツーリスモ・ソフィーGTソフィーVolvoFIAグランツーリスモチャンピオンシップRival PrakDGX A100VTuberユービーアイソフトWebcam VTuber星新一賞北尾まどかHALO市場分析将棋メタルギアソリッドVフォートナイトFSMRobloxナップサック問題Live Nation汎用言語モデルWeb3.0AIOpsSpotifyMITスマートコントラクトReplica StudioAWSamuseChitrakarQosmo巡回セールスマン問題ジョルダン曲線メディア5GMuZero政治クラウドゲーミングRival Peakがんばれ森川君2号和田洋一リアリティ番組Stadiaジョンソン裕子MILEsNightCafeインタラクティブ・ストリーミングLuis Ruizインタラクティブ・メディアポケモンCodexシーマン人工知能研究所東京工業大学Ludo博報堂ラップSIGGRAPH 2019ArtEmisZ世代AIラッパーシステムARrinnaGROVERプラスリンクス ~キミと繋がる想い~FAIRSTCチート検出Style Transfer ConversationオンラインカジノRCPアップルRealFlowRinna Character PlatformiPhoneデジタルヒューマンDeep FluidsSoul MachinesMeInGameAmeliaAIGraphブレイン・コンピュータ・インタフェースバーチャルキャラクターBCIGateboxLearning from VideoANIMAK予期知能逢妻ヒカリセコムユクスキュルバーチャル警備システムカント損保ジャパン哲学上原利之ドラゴンクエストエージェントアーキテクチャアッパーグラウンドPAIROCTOPATH TRAVELER西木康智OCTOPATH TRAVELER 大陸の覇者Siemensアルスエレクトロニカ2019品質保証StyleRigAutodesk逆転オセロニアBentley Systemsワールドシミュレーター奥村エルネスト純いただきストリートH100齋藤精一大森田不可止COBOL高橋智隆DGX H100ロボユニザナックDGX SuperPOD泉幸典仁井谷正充クラウドコンピューティングロボコレ2019Instant NeRFartonomousbitGANsぎゅわんぶらあ自己中心派Azure Machine Learning意思決定モデル脱出ゲームHybrid Reward Architectureコミュニティ管理ウロチョロスSuper PhoenixSNS理化学研究所Project Malmoオンラインゲーム気候変動Project PaidiaEarth-2Project Lookoutマックス・プランク気象研究所Watch Forビョルン・スティーブンスBing気象モデルLEFT ALIVE気象シミュレーション長谷川誠ジミ・ヘンドリックス環境問題Baby Xカート・コバーンエコロジーロバート・ダウニー・Jr.エイミー・ワインハウスSDGsMagentaYouTubeダフト・パンクメモリスタSFGlenn MarshallELYZA PencilThe Age of A.I.Story2Hallucination音声変換レコメンデーションJukebox松尾豊Veap JapanEAPテンセントSIFT福井千春DCGAN医療MOBADANNCEメンタルケア人事ハーバード大学Edgar Handy研修デューク大学Netflixデータマイニングmynet.aiローグライクゲーム東京大学東京理科大学人工音声NeurIPS 2021産業技術総合研究所はこだて未来大学リザバーコンピューティングプレイ動画ヒップホップキャラクターモーションソニーマーケティングサイレント映画もじぱNBA環境音暗号通貨現代アートFUZZLEAlteration粒子群最適化法RPG進化差分法オープンワールド群知能下川大樹AIFAウィル・ライト高津芳希P2E大石真史SIGGRAPH 2022BEiTStyleGAN-NADAレベルデザインDETRゲームエンジンSporeUnreal Engineデノイズ南カリフォルニア大学Unity for Industry画像処理SentropyGLIDECPUDiscordAvatarCLIPSynthetic DataCALMバイアスプログラミングサム・アルトマンソースコード生成LaMDAGMAIシチズンデベロッパーSonanticTRPGGitHubCohereウィザードリィMCN-AI連携モデルマジック:ザ・ギャザリングAI DungeonUrzas.ai介護西川善司並木幸介Kikiサムライスピリッツ森寅嘉Zoetic AIゼビウスSIGGRAPH 2021ペットストリートファイター半導体Digital Dream LabsTopaz Video Enhance AICozmo栗原聡DLSSタカラトミー山野辺一記NetEaseLOVOT大里飛鳥DynamixyzMOFLINRomiU-Netミクシィ13フェイズ構造アドベンチャーゲームユニロボットADVユニボXLandGatoAGIテキスト生成手塚眞DEATH STRANDINGマルチモーダル不気味の谷Eric Johnson汎用強化学習AIOculus Questコジマプロダクション生体情報デシマエンジンインディーゲーム写真高橋ミレイ照明Maxim PeterJoshua Romoffハイパースケープ山崎陽斗深層強化学習立木創太ミライ小町テスラGameGANパックマンTesla BotTesla AI Dayソサエティ5.0SIGGRAPH 2020バズグラフニュースタンテキ東芝DIB-R倉田宜典韻律射影広告韻律転移

【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関連記事

モリカトロンAIラボ、オープニングにあたって

2019.4.17ゲーム

モリカトロンAIラボ、オープニングにあたって

AIと遊んで楽しいと感じられるゲームを考える:上原利之氏×森川幸人氏 対談

2022.3.31ゲーム

AIと遊んで楽しいと感じられるゲームを考える:上原利之氏×森川幸人氏 対談

未来は僕らの手の中に:若手ゲームAIエンジニア座談会(後編)

2020.2.07ゲーム

未来は僕らの手の中に:若手ゲームAIエンジニア座談会(後編)

RANKING注目の記事はこちら