モリカトロン株式会社運営「エンターテインメント×AI」の最新情報をお届けするサイトです。
- TAG LIST
- CGCGへの扉安藤幸央機械学習ディープラーニング月刊エンタメAIニュース河合律子GANOpenAI音楽NVIDIA吉本幸記ニューラルネットワーク強化学習Google生成系AI三宅陽一郎QA人工知能学会GPT-3Stable Diffusion自然言語処理グーグルDeepMindFacebook森川幸人シナリオ大内孝子マイクロソフトChatGPT敵対的生成ネットワークルールベースアート映画キャラクターAIスクウェア・エニックスモリカトロンAIラボインタビューAIと倫理SIGGRAPHゲームプレイAI大規模言語モデル倫理デバッグNFTDALL-E2StyleGANプロシージャル遺伝的アルゴリズムモリカトロン著作権画像生成自動生成テストプレイメタAI画像生成AINPCテキスト画像生成ロボット深層学習ファッションCEDEC2019ディープフェイクVFXMidjourneyデジタルツインボードゲームDALL-ECLIPビヘイビア・ツリーCEDEC2021LLMCEDEC2020ゲームAIメタバース不完全情報ゲームVRナビゲーションAI畳み込みニューラルネットワークGDC 2021マンガJSAI2022AdobeNVIDIA OmniverseGDC 2019マルチエージェントCEDEC2022AIアート小説Stability AI懐ゲーから辿るゲームAI技術史toioジェネレーティブAIスポーツCNNBERT作曲MicrosoftUnityMinecraftアニメーションOmniverseメタJSAI2023鴫原盛之HTN階層型タスクネットワークソニー栗原聡手塚治虫汎用人工知能JSAI2020GTC2023TensorFlowインタビューバーチャルヒューマンイベントレポート対話型エージェントAmazonロボティクスDQNMeta水野勇太アバター3DCGUbisoftGenvid TechnologiesガイスターStyleGAN2デジタルヒューマンGTC2022教育音楽生成AIJSAI2021研究シムピープルMCS-AI動的連携モデルモーションキャプチャーElectronic ArtsNeRFマーケティングメタデータGDC SummerブロックチェーンCMMicrosoft Azureアストロノーカキャリア模倣学習eスポーツスタンフォード大学アーケードゲームテニスサイバーエージェントトレーディングカード音声認識メディアアートeSportsBLUE PROTOCOLシーマンaibo合成音声チャットボットAWS徳井直生斎藤由多加AlphaZeroTransformerGPT-2rinnaAIりんなカメラ環世界中島秀之PaLM哲学ベリサーブPlayable!理化学研究所SIGGRAPH ASIASFNetflix東京大学はこだて未来大学現代アートエージェントDARPAドローンシムシティImagenZorkバイアスプロンプトGPT-4ASBSアドベンチャーゲームTEZUKA2020CEDEC2023AI美空ひばりテキスト生成マルチモーダルバンダイナムコ研究所スパーシャルAI3DLEFT 4 DEADイーロン・マスク通しプレイOpenAI FiveStable Diffusion XL本間翔太CygamesAudio2Faceピクサープラチナエッグイーサリアムボエダ・ゴティエビッグデータ中嶋謙互Amadeus Codeデータ分析MILEナラティブNVIDIA RivaOmniverse ReplicatorWCCFレコメンドシステムNVIDIA DRIVE SimWORLD CLUB Champion FootballNVIDIA Isaac Simセガ柏田知大軍事田邊雅彦トレカMax CooperGPT類家利直PyTorchChatGPT4眞鍋和子バンダイナムコスタジオ大澤博隆SFプロトタイピング齊藤陽介マインクラフトお知らせMagic Leap OneTencentバスケットボールサルでもわかる人工知能text-to-3DVAEDreamFusionブラック・ジャックリップシンキングUbisoft La Forge自動運転車ワークショップ知識表現ウォッチドッグス レギオンIGDA秋期GTC2022市場分析どうぶつしょうぎEpic GamesRobloxジェイ・コウガミ音楽ストリーミングMITAIロボ「迷キュー」に挑戦野々下裕子マシンラーニング5GMuZeroRival Peakpixivクラウド対話エンジン3Dスキャンリトル・コンピュータ・ピープルCodexシーマン人工知能研究所コンピューティショナル・フォトグラフィーPreferred Networksゴブレット・ゴブラーズ絵画ARMicrosoft DesignerイラストシミュレーションSoul Machines柿沼太一完全情報ゲームELSI坂本洋典釜屋憲彦ウェイポイントパス検索対談藤澤仁生物学GTC 2022画像認識GPT-3.5ハリウッドSiemensストライキStyleCLIPDeNA長谷洋平クラウドコンピューティングmasumi toyotaIBM宮路洋一OpenSeaGDC 2022SNSGen-1TextWorldEarth-2BingMagenta音声生成AIELYZA PencilScenarioSIGGRAPH2023テキスト画像生成AI松尾豊AIピカソGTC2021AI素材.comCycleGANテンセントAIQVE ONEデータマイニングNetHackBardキャラクターモーションControlNetNBAフェイクニュースRPG法律SIGGRAPH 2022世界モデルレベルデザインAIボイスアクターNVIDIA CanvasGPUALife人工生命オルタナティヴ・マシンサウンドスケープLaMDATRPGマジック:ザ・ギャザリングAI Dungeonぱいどん手塚眞不気味の谷ナビゲーションメッシュインディーゲーム高橋ミレイ深層強化学習松原仁松井俊浩武田英明ELYZAフルコトNEDOELYZA DIGEST建築音声合成広告西成活裕Apex LegendsELIZA群衆マネジメントライブポートレイトNinjaコンピュータRPGライブビジネスWonder Studioアップルタウン物語新型コロナ土木KELDIC周済涛BIMメロディ言語清田陽司インフラゲームTENTUPLAYサイバネティックスMARVEL Future FightAstro人工知能史Amazon BedrockタイムラプスEgo4DAI哲学マップバスキア星新一X.AI日経イノベーション・ラボStyleGAN-XLX Corp.敵対的強化学習StyleGAN3Twitter階層型強化学習GOSU Data LabGANimatorXホールディングスWANNGOSU Voice AssistantVoLux-GANMagi竹内将SenpAI.GGProjected GANMobalyticsSelf-Distilled StyleGANSDXL馬淵浩希ニューラルレンダリングRTFKT岡島学AWS SagemakerPLATONIKE映像セリア・ホデント形態素解析frame.ioClone XUXAWS LambdaFoodly村上隆誤字検出森山和道認知科学中川友紀子Digital MarkゲームデザインSentencePieceアールティSnapchatLUMINOUS ENGINEクリエイターコミュニティLuminous ProductionsBlenderBot 3バーチャルペットパターン・ランゲージ竹村也哉Meta AINVIDIA NeMo Serviceちょまどマーク・ザッカーバーグヴァネッサ・ローザGOAPWACULVanessa A RosaAdobe MAX 2021陶芸自動翻訳Play.ht音声AIAIライティングLiDAROmniverse AvatarAIのべりすとPolycamFPSQuillBotdeforumマルコフ決定過程NVIDIA MegatronCopysmith動画生成AINVIDIA MerlinJasperハーベストNVIDIA MetropolisForGamesパラメータ設計ゲームマーケットバランス調整岡野翔太協調フィルタリング郡山喜彦人狼知能テキサス大学ジェフリー・ヒントンGoogle I/O 2023AlphaDogfight TrialsAI Messenger VoicebotGoogle I/OエージェントシミュレーションOpenAI Codex武蔵野美術大学StarCraft IIHyperStyleBingAIFuture of Life InstituteRendering with StyleIntelDisneyFireflyLAIKADisneyリサーチヴィトゲンシュタインPhotoshopRotomationGauGAN論理哲学論考LightroomGauGAN2京都芸術大学Canvaドラゴンクエストライバルズ画像言語表現モデル不確定ゲームSIGGRAPH ASIA 2021PromptBaseBOOTHDota 2モンテカルロ木探索ディズニーリサーチpixivFANBOXMitsuba2バンダイナムコネクサス虎の穴ソーシャルゲームEmbeddingワイツマン科学研究所ユーザーレビューFantiaGTC2020CG衣装mimicとらのあなNVIDIA MAXINEVRファッションBaidu集英社淡路滋ビデオ会議ArtflowERNIE-ViLG少年ジャンプ+グリムノーツEponym古文書ComicCopilotゴティエ・ボエダ音声クローニング凸版印刷コミコパGautier Boeda階層的クラスタリングGopherAI-OCRゲームマスター画像判定Inowrld AIJuliusSIE鑑定ラベル付けMODTPRGOxia PalusGhostwriterバーチャル・ヒューマン・エージェントtoio SDK for UnityArt RecognitionSkyrimクーガー田中章愛実況パワフルサッカースカイリム石井敦銭起揚NHC 2021桃太郎電鉄RPGツクールMZ茂谷保伯池田利夫桃鉄ChatGPT_APIMZGDMC新刊案内パワサカダンジョンズ&ドラゴンズマーベル・シネマティック・ユニバースコナミデジタルエンタテインメントOracle RPG成沢理恵MITメディアラボMCU岩倉宏介深津貴之アベンジャーズPPOxVASynthマジック・リープDigital DomainMachine Learning Project CanvasLaser-NVMagendaMasquerade2.0国立情報学研究所ノンファンジブルトークンDDSPフェイシャルキャプチャー石川冬樹MERFサッカーモリカトロン開発者インタビュースパコンAlibaba里井大輝Kaggle宮本茂則スーパーコンピュータVQRF山田暉松岡 聡nvdiffrecAssassin’s Creed OriginsAI会話ジェネレーターTSUBAME 1.0NeRFMeshingSea of ThievesTSUBAME 2.0LERFGEMS COMPANYmonoAI technologyLSTMABCIマスタリングモリカトロンAIソリューション富岳TikTok初音ミクOculusコード生成AISociety 5.0リアム・ギャラガー転移学習テストAlphaCode夏の電脳甲子園グライムスBaldur's Gate 3Codeforces座談会BoomyCandy Crush Saga自己増強型AItext-to-imageジョン・レジェンドSIGGRAPH ASIA 2020COLMAPザ・ウィークエンドADOPNVIDIA GET3DドレイクデバッギングBigGANGANverse3DTEZUKA2023MaterialGANRNNグランツーリスモSPORTAI絵師エッジワークスReBeLグランツーリスモ・ソフィーUGC日本音楽作家団体協議会GTソフィーPGCFCAVolvoFIAグランツーリスモチャンピオンシップVoiceboxNovelAIさくらインターネットRival PrakDGX A100NovelAI DiffusionVTuberぷよぷよユービーアイソフトWebcam VTuberモーションデータ立教大学星新一賞大阪公立大学北尾まどかHALOポーズ推定TCG将棋メタルギアソリッドVフォートナイトメッシュ生成KLabFSMメルセデス・ベンツQRコードMagic Leap囲碁ナップサック問題Live NationEpyllionデンソー汎用言語モデルWeb3.0マシュー・ボールデンソーウェーブAIOpsムーアの法則原昌宏Spotifyスマートコントラクト日本機械学会Replica Studioロボティクス・メカトロニクス講演会amuseChitrakarQosmoAdobe MAX 2022トヨタ自動車巡回セールスマン問題Adobe MAXかんばん方式ジョルダン曲線メディアAdobe Research村井源政治Galacticaプロット生成クラウドゲーミングがんばれ森川君2号オムロン サイニックエックス和田洋一リアリティ番組映像解析FastGANStadiaジョンソン裕子セキュリティ4コママンガMILEsNightCafe東芝デジタルソリューションズ電気通信大学インタラクティブ・ストリーミングLuis RuizSATLYS 映像解析AI稲葉通将インタラクティブ・メディアポケモン橋本敦史PFN 3D ScanElevenLabs東京工業大学HeyGenLudo博報堂After EffectsラップPFN 4D Scan絵本SIGGRAPH 2019ArtEmisZ世代DreamUp出版AIラッパーシステムDeviantArtAmmaar ReshiWaifu DiffusionStoriesGROVERプラスリンクス ~キミと繋がる想い~元素法典StoryBirdFAIRSTCNovel AIVersedチート検出Style Transfer ConversationOpen AIProlificDreamerオンラインカジノRCPUnity SentisアップルRealFlowRinna Character PlatformUnity MuseiPhoneCALACaleb WardDeep Fluids宮田龍MeInGameAmelia清河幸子AIGraphブレイン・コンピュータ・インタフェースバーチャルキャラクター西中美和BCIGateboxアフォーダンス安野貴博Learning from VideoANIMAKPaLM-SayCan斧田小夜予期知能逢妻ヒカリ宮本道人セコムGitHub CopilotLLaMA 2ユクスキュルバーチャル警備システムCode as PoliciesLLaMAカント損保ジャパンCaPHugging FaceCM3leon上原利之Stable DoodleドラゴンクエストエージェントアーキテクチャアッパーグラウンドコリジョンチェックT2I-AdapterPAIROCTOPATH TRAVELERxAI西木康智OCTOPATH TRAVELER 大陸の覇者山口情報芸術センター[YCAM]アルスエレクトロニカ2019品質保証YCAM日本マネジメント総合研究所StyleRigAutodeskアンラーニング・ランゲージVoyager逆転オセロニアBentley Systemsカイル・マクドナルドLily Hughes-Robinsonワールドシミュレーターローレン・リー・マッカーシーColossal Cave Adventure奥村エルネスト純いただきストリートH100鎖国[Walled Garden]プロジェクトAdventureGPT齋藤精一大森田不可止COBOLSIGGRAPH ASIA 2022リリー・ヒューズ=ロビンソン高橋智隆DGX H100VToonifyBabyAGIロボユニザナックDGX SuperPODControlVAEGPT-3.5 Turbo泉幸典仁井谷正充変分オートエンコーダーカーリングロボコレ2019Instant NeRFフォトグラメトリウィンブルドンartonomous回帰型ニューラルネットワークbitGANsDeepJoin戦術分析ぎゅわんぶらあ自己中心派Azure Machine LearningAzure OpenAI Serviceパフォーマンス測定意思決定モデル脱出ゲームDeepLIoTHybrid Reward Architectureコミュニティ管理DeepL WriteProFitXウロチョロスSuper PhoenixWatsonxProject MalmoオンラインゲームAthletica気候変動コーチングProject Paidiaシンギュラリティ北見工業大学Project Lookoutマックス・プランク気象研究所レイ・カーツワイル北見カーリングホールWatch Forビョルン・スティーブンスヴァーナー・ヴィンジ画像解析気象モデルRunway ResearchじりつくんLEFT ALIVE気象シミュレーションMake-A-VideoNTT Sportict長谷川誠ジミ・ヘンドリックス環境問題PhenakiAIカメラBaby Xカート・コバーンエコロジーDreamixSTADIUM TUBEロバート・ダウニー・Jr.エイミー・ワインハウスSDGsText-to-ImageモデルPixelllot S3ソフトバンクYouTubeダフト・パンクメモリスタAIスマートコーチGlenn MarshallThe Age of A.I.Story2Hallucination音声変換LatitudeレコメンデーションJukeboxDreamboothVeap Japanヤン・ルカンEAPneoAIPerfusionSIFT福井千春DreamIconニューラル物理学DCGAN医療mign毛髪MOBADANNCEメンタルケアstudiffuse荒牧英治人事ハーバード大学Edgar HandyAndreessen Horowitz中ザワヒデキ研修デューク大学大屋雄裕QA Tech Night中川裕志mynet.aiローグライクゲーム松木晋祐Adreeseen Horowitz東京理科大学下田純也NVIDIA Avatar Cloud Engine人工音声NeurIPS 2021産業技術総合研究所桑野範久Replica StudiosリザバーコンピューティングSmart NPCsプレイ動画ヒップホップ対話型AIモデルRoblox Studio詩ソニーマーケティングPromethean AIサイレント映画もじぱnote音源分離環境音暗号通貨note AIアシスタントMusiioFUZZLEKetchupEndelAlterationAI Newsユニバーサルミュージック粒子群最適化法Art Selfie進化差分法オープンワールドArt TransferSonar群知能下川大樹AIFAPet PortraitsSonar+Dウィル・ライト高津芳希P2EBlob OperaWeb3大石真史クリムトDolby AtmosBEiTStyleGAN-NADASonar Music FestivalDETRゲームエンジンDreamerV3ライゾマティクスSporeUnreal Engineクリティックネットワーク真鍋大度デノイズ南カリフォルニア大学Unity for Industryアクターネットワーク花井裕也画像処理DMLabRitchie HawtinSentropyGLIDEControl SuiteErica SynthCPUDiscordAvatarCLIPAtari 100kUfuk Barış MutluSynthetic DataAtari 200MJapanese InstructBLIP AlphaCALMYann LeCun日本新聞協会プログラミングサム・アルトマン鈴木雅大AIいらすとやソースコード生成コンセプトアートAI PicassoGMAIシチズンデベロッパーSonanticColie WertzEmposyGitHubCohereリドリー・スコットAIタレントウィザードリィMCN-AI連携モデル絵コンテAIタレントエージェンシーUrzas.aiストーリーボードmodi.ai介護大阪大学BitSummit西川善司並木幸介KikiBlenderBitSummit Let’s Go!!サムライスピリッツ森寅嘉Zoetic AIRed RamゼビウスSIGGRAPH 2021ペットマーダーミステリーストリートファイター半導体Digital Dream LabsPaLM APIデジタルレプリカTopaz Video Enhance AICozmoMakerSuiteGOT7DLSSタカラトミーSkebsynthesia山野辺一記NetEaseLOVOTDreambooth-Stable-DiffusionHumanRF大里飛鳥DynamixyzMOFLINゲーム背景Actors-HQRomiGoogle EarthSAG-AFTRAU-NetミクシィGEPPETTO AIWGA13フェイズ構造ユニロボットStable Diffusion web UIチャーリー・ブルッカーADVユニボPoint-EXLandGatoアパレル岡野原大輔AGIAI model自己教師あり学習DEATH STRANDINGAI ModelsIn-Context Learning(ICL)Eric Johnson汎用強化学習AIZMO.AILoRAデザインMOBBY’SファインチューニングOculus Questコジマプロダクションロンドン芸術大学モビーディックグランツーリスモ生体情報デシマエンジンGoogle Brainダイビング量子コンピュータSound Controlアウトドアqubit写真SYNTH SUPERAIスキャニングIBM Quantum System 2照明Maxim PeterKarl Sims自動採寸北野宏明Joshua RomoffArtnome3DLOOKダリオ・ヒルハイパースケープICONATESizerジェン・スン・フアン山崎陽斗ワコールHuggingFace立木創太スニーカーStable Audio浜中雅俊UNSTREET宗教ミライ小町Newelse仏教テスラ福井健策CheckGoodsコカ・コーラGameGAN二次流通食品パックマンTesla Bot中古市場Coca‑Cola Y3000 Zero SugarTesla AI DayWikipediaDupe KillerCopilot Copyright Commitmentソサエティ5.0Sphere偽ブランドテラバースSIGGRAPH 2020バズグラフXaver 1000配信京都大学ニュースタンテキ養蜂立福寛東芝Beewiseソニー・ピクチャーズ アニメーション音声解析DIB-R倉田宜典フィンテック感情分析投資Fosters+Partners韻律射影MILIZEZaha Hadid Architects韻律転移三菱UFJ信託銀行
【CEDEC2019】1キロ四方のマップを舞台に地形表現の工夫で新しいゲーム体験を作る
アートとデザインの違いとは何でしょうか。アートがクリエイターの自己表現なら、デザインは顧客の課題を解決する行為です。ゲーム開発も同様で、さまざまな課題の解決が幾重にも内包されています。ゲームデザイナーの課題がユーザーに新しいゲーム体験を提供することなら、ゲームプログラマーの課題はゲームデザイナーのアイディアに形を与えること。ハードウェアの制約上で最大限の体験ができるように、さまざまなアイディアが盛り込まれます。
9月4日から9月6日までパシフィコ横浜で開催されたCEDEC2019でも、ゲームAIを用いたさまざまな「課題の解決」事例が共有されました。今回は、その中からスクウェア・エニックスの長谷川誠氏による「『LEFT ALIVE』における地形表現とナビゲーションAI」の講演内容をレポートします。長谷川氏は1キロ四方の広大なマップ上で敵兵を移動させる上で用いた、さまざまな地形表現の工夫について説明しました。
ゲームデザイン側で提示された要求の数々
『LEFT ALIVE』は同社のSFシミュレーションゲーム『フロントミッション』シリーズと世界観を共有するサバイバルアクションゲームです。ゲームのコアメカニクスは三人称視点の3Dカバーシューティングで、プレイヤーは3人の主人公を操りながら、人型兵器・ヴァンツァーや敵兵と対峙していきます。物量に勝る敵兵に正面から突撃するのではなく、さまざまな選択を行いながら、いかに生き延びるかを考えていく、かけひきの要素が高い点が特徴です。
本作を開発するにあたり、ゲームデザイナー側から提示された課題は「3Dカバーシューティングができること」「1キロ四方のマップ上で、敵兵が端から端までプレイヤーを探索できること」「マップ上のどこでも戦闘ができること」でした。単に敵兵が移動・射撃を行うだけでなく、カバー(遮蔽物)を活用した攻撃や、ドア・梯子・窓をくぐったり、壁やカバーをジャンプで乗り越えたりするなど、プレイヤーと同じ行為ができる必要もありました。
こうした仕様を実現するナビゲーションAIを作成するには、通常のナビゲーション(ナビ)メッシュだけでは力不足でした。マップの端から端まで長大なパス検索を行うと、検索負荷が高くなりすぎるからです。敵兵に扉や梯子などを用いた特殊アクションを行わせるには、ジャンプリンクによるメッシュ外の移動も必要になります。適切なカバー位置をとるための検索機能なども必要でしょう。なにより重要なのは、地形表現に関する膨大なデータを自動生成することです。
そこで長谷川氏は上記の課題を解決するために、地形表現に工夫をこらすことにしました。通常のナビメッシュに加えて、マップ上にさまざまな情報を埋め込むためのウェイポイントを埋め込んだのは、その一つです。大まかなエリアを区分するために追加された、上位層グラフも大きな役割を果たしました。これらをベースに遮蔽物のリストや、LOF(Line of Fire)などの情報を自動生成するための仕組みが整えられていきました。
ナビメッシュ
多くの3Dゲームと同様に、本作でもベースとなるのがナビメッシュによる地形表現です。実際の作成にはUnreal Engine 4や数々のタイトルで採用事例があるrecast navigationが採用されました。これを用いてプレイヤーの初期配置から地続きのポリゴンに対して通行可能なフラグを立てていきます。もっとも、これだけではビルの屋上など、直接移動することができない場所にもメッシュが引かれてしまうため、特定のメッシュを削除するための対応も行われています。
ウェイポイントと接続グラフ
ウェイポイントはゲーム上で必要な情報を埋め込んでおく場所のことです。ウェイポイントに格納される情報は「XYZ位置」「ウェイポイントが設置されたナビメッシュのポリゴンID」「LOF」「射撃カバーリスト」など多種多様です。離れたウェイポイント同士を結合するために用いられる、ジャンプリンクの起点にもなります。このように本作においてウェイポイントは、ナビメッシュと共に地形表現の基本となりました。
ウェイポイントはナビメッシュ上に自動配置したうえで(後述する上位層グラフのベースになるため、ある程度の密度感が必要となります)、ランダムに間引いていきます。ただし、マップ上には「ウェイポイントグラフが切断されるポイント」など、絶対に間引いてはいけないポイントも存在します。これらを自動検知し、保存するアルゴリズムをふまえた結果、最大でマップあたり189,080個のウェイポイントを64,286個まで削除することに成功しました。
LOF(Line of Fire)
間引き後のウェイポイントはLOFを自動生成する際の基本情報にもなりました。LOFとは個々のウェイポイントにおける射線情報のことで、ポイント位置から円周上にレイキャストを飛ばし、深度を計算することで求められます。こうして計算されたLOFは各々のウェイポイントに埋め込まれ、敵兵の射撃などに活用されます。LOFがなければ敵兵は移動の度に、周囲にレイキャストを飛ばして射線を確認する必要があるため、処理の高速化が可能になるのです。
なお、本作では一つのウェイポイントに対して立ち姿勢・しゃがみ姿勢で二種類のLOFが収納されています。これにより、立ち姿勢ではLOF内でも、しゃがみ姿勢ではLOF外となるポイントが発生します(こうしたポイントはカバーに有効な場所となります)。これ以外に建物の端でも、キャラクターが建物に隠れた状態と身を乗り出した状態で、二種類のLOFが収納されています。
カバー(遮蔽物)
カバーは3Dカバーシューティングという、本作のゲーム体験に大きく寄与する地形表現です。作成にはナビメッシュ上で隣り合うポリゴンがない、立体構造物のエッジ部分が使用されます。各ポリゴンのエッジ部分にあたる直線から垂直方向に基準点をずらしながらレイキャストを横に打っていき、高さが基準値以内ならカバーに使用可能な地形として、リスト化される仕組みです。なお、LOFと同じくカバーにも高低二種類が存在します。
もっともカバーに適した場所は、マップ上の自キャラの位置によってリアルタイムに変化していきます。そのため本作ではマップ上の全カバー箇所をリスト化したうえで、各々のウェイポイントに対して、その位置に適したカバーのリスト情報が格納されています。自キャラが特定のウェイポイントに到達すると、その地点に対して有効なカバーリストの一覧が周囲の敵兵に共有されます。敵兵はその情報にあわせて、適切なカバー位置に移動するのです。
これ以外にマップ上には、ナビメッシュが直接つながっていない場所でも、特別なアクションを介して移動できるポイントがあります。遮蔽物を乗り越えて進む、ハシゴを上り下りする、扉を開けて建物に入るなどです。こうした移動を可能にするため、ウェイポイント間の接続が行われました。これにより本作ではナビメッシュが途切れていても、ウェイポイント間で接続されていれば、どこへでも敵兵が到達できるようにしています。
ウェイポイントを元とした上位層グラフ
講演中で長谷川氏が「もっとも強調したいところ」と力を入れて解説したのが、ウェイポイントをもとにした上位層グラフの作り方です。上位層グラフとは、ウェイポイントをベースに作成された、より広範囲なエリアのまとまりのことです。敵兵の移動時にナビメッシュと併用することで、長距離の移動でも高速にパス検索が可能になります。
もっとも、単純にマップをエリア分割するだけでは、建物や地形の形状にそぐわない上位層グラフが作成されてしまいます。そこで本作では、地形(建物や道路など)の広さに応じて上位層グラフを作成するアルゴリズムが採用されました。
ベースとなるのは間引き前のウェイポイント情報です。各々のウェイポイントで地形の境界線(内壁など)からの距離を設定し、もっとも遠い地点(=つまり中央)にラベルをつけます。その後、隣り合ったウェイポイントに同じラベルをつけていき、これを別のラベルがついたウェイポイントと接触するまで繰り返します。これにより地形に応じた上位層のノードが作成されるというわけです。その後、ノードの統合や分割を行い、サイズを整えていきます。
こうした方式にともない、最大64286個のウェイポイントがあるマップで、上位層グラフのノード数を2174個にまで削減することに成功。遠距離の移動問題が解決されました。具体的には「上位層グラフでパス検索を行い、大まかな移動ルートを策定した上で、全ノードのウェイポイントを結合し、目的地に移動する」という手順を踏んで、敵兵が移動していきます。なお、移動ルートの策定にはウェイポイントをベースとしたベジェ曲線が応用されています。
ただし、敵兵がドアをあける、梯子を昇降するなど、移動の途中で特定のアクションが発生する場合もあります。この場合は、アクションが上位層グラフ上をまたぐものか、ウェイポイント上のものかで切り分け、個別の対応がなされています(扉・梯子などは上位層グラフで、遮蔽物をまたぐなどはウェイポイント)。なお、これを可能にするためにも、ドア・はしご・窓は、上位層グラフの境界にあたるノードに作られる必要があると補足されました。
追加の要望にもとづいて加わった、動的な地形評価
さて、このように、すべての地形表現が完成したことで、一件落着……というわけにはいきませんでした。開発中にゲームデザイナー側から新たな課題が提示されたからです。いずれもゲーム体験に直結する部分で、ナビゲーションAIの改良なしには実現し得ないものでした。なお、こうした(ゲームデザイナー側の無茶ぶりともいえる)追加課題に対して、プログラマー側がどこまで対応できるかが、おもしろいゲームを作る鍵となることは、言うまでもありません。
第一の課題としてあげられたのが「敵兵に良い感じで罠を踏ませたい」でした。本作では自キャラが仕掛ける罠が、数に勝る敵に退治する上で、重要な要素を担っています。しかし開発段階では、敵兵が罠に近寄らないという問題が発生しました。通常プレイヤーは物陰など、敵兵から見えない場所で罠を仕掛けて、待ち構えます。しかし敵兵のアルゴリズムが「プレイヤーを見失った位置に対して攻撃する」ものだったため、罠に接近しないまま時間切れになってしまったのです。
そこで「自キャラ&敵兵間の適度な距離に『前線』を用意する」アイディアが採用されました。戦闘中にプレイヤーを見失うと、敵兵が前線まで移動するように設定します。また罠が設置されると、この前線がプレイヤー側に寄るようにもしておきます。こうしたロジックの組み合わせで、プレイヤーが罠を仕掛けて待っていると、やがて敵兵が歩いてきて罠が発動する、という一連の体験が可能になったのです。
もっとも、この前線を地形に即したものにする必要がありました。また、敵兵は不均一に分布しているため、そもそも線を引くのが難しいという問題もありました。そのため前線は敵兵を高温、自キャラを低温の熱源として、上位層グラフ上でインフルエンスマップを作ることで設定されています。また、ある程度プレイヤーに向かって敵兵の集団が直進してくるように、温度差が急な地点を前線とするように調整されています。
挟み撃ち・敵兵の出現……上位層グラフが活躍
「ゲーム中、ヴァンツァーに自キャラを挟み撃ちさせたい」という課題も上がりました。単純にパス検索をして移動するだけでは、複数のヴァンツァーが数珠つなぎになりがちで、自キャラを包囲する状況を再現できません。そこで、ヴァンツァーが通行するパス上にカウンターを設置し、上位層グラフをまたいだパス検索を行うように、検索時の重み付けが工夫されました。これにより、自然に挟み撃ちの状況を再現することができました。
他に「マップ上の適切な位置で敵兵を出現させたい」という要望もありました。本作ではマップ上に事前配置されている敵兵は限られており、自キャラの場所に応じて、敵兵が自動的に出現する仕組みをとっています。しかし、敵兵をランダムに出現させるだけでは、自キャラの地点に敵兵が到達するまでの時間がバラバラになりがちな問題が発生しました。壁やフェンスなどで、大きく迂回して近づかなければならない場所に出現してしまうことが避けられないからです。
ここでも解決に貢献したのが上位層グラフの存在でした。はじめに自キャラの移動に際して、上位層グラフ上で距離マップを動的に作成します。次に上位層ノードをまたぐ回数を自キャラまでの距離とみなして、移動経路的に遠い場所を自動的に排除します。その上で、残った場所の中から敵兵をランダムで出現させるというわけです。
ゲームAIとゲームデザインはコインの裏表
これ以外にも長谷川氏は、上位層グラフ上にさまざまな情報を埋め込むことで、ナビゲーションAIに貢献したと語りました。ビルの「階」の認識、ある上位層ノードから、どの上位層ノードを攻撃できるかのリスト、自キャラが立てこもる建物の出入り口情報などです。
最初はパス検索を効率化するために作成した上位層グラフでしたが、思いがけずさまざまな活用ができました。同じようなゲームを開発されている方であれば、検討する価値はあると思います(長谷川氏)
このように本セッションはゲームデザイナー側からの要望に対して、ゲームAIプログラマー側がどのように課題を解決していくかという、見本のような内容になりました。逆に開発中、ゲームAIの見地から新しいアイディアを提供していったことも多かったといいます。また、各々の地形表現の作成で自動化を推進したことも、クオリティの向上に貢献できたと補足しました。これらの作業をレベルデザイナーが手作業でやっていては、非常に時間がかかってしまい、現実的ではないからです。
ポイントはゲーム開発でゲームAIは単独で存在せず、ゲームデザインとの関係性の中で生かされるということです。このことはまた、将来的にゲームAIとゲームデザインを仲介する、ゲームAIデザイナーという新しい役職の誕生を予言しているのかもしれません。
CEDEC2019 AI関連セッションレポート
AIりんなのボイストレーニングが示す、情動的で人間的な機械学習とは?
人工知能が敵キャラを育てる! ディープラーニングを使った次世代のゲームAI開発
Writer:小野憲史