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

TAG LIST
CG機械学習CGへの扉ディープラーニング安藤幸央GAN月刊エンタメAIニュース河合律子OpenAI音楽NVIDIAニューラルネットワーク強化学習三宅陽一郎吉本幸記Facebook人工知能学会自然言語処理大内孝子QA敵対的生成ネットワークGoogleGPT-3キャラクターAIスクウェア・エニックス森川幸人モリカトロンAIラボインタビュールールベースDeepMindシナリオAIと倫理グーグル映画倫理NFTDALL-E2StyleGAN自動生成デバッグゲームプレイAIメタAIロボット深層学習マイクロソフトCEDEC2019アートプロシージャルSIGGRAPH遺伝的アルゴリズムDALL-Eテキスト画像生成ビヘイビア・ツリーディープフェイクCEDEC2021CEDEC2020ゲームAIデジタルツインメタバース不完全情報ゲームVRナビゲーションAINPC畳み込みニューラルネットワークCLIPGDC 2021JSAI2022VFXGDC 2019マルチエージェントCEDEC2022ボードゲーム画像生成ファッション懐ゲーから辿るゲームAI技術史toioCNNAdobeテストプレイモリカトロンStable DiffusionUnity著作権AIアート小説鴫原盛之HTN階層型タスクネットワークJSAI2020TensorFlowBERTMicrosoftイベントレポート対話型エージェントロボティクス水野勇太アニメーションGenvid Technologiesガイスター画像生成AIStyleGAN2GTC2022教育ソニーJSAI2021スポーツ研究シムピープルマンガ汎用人工知能マーケティングGDC SummerインタビューバーチャルヒューマンブロックチェーンMidjourneyアストロノーカキャリアNVIDIA OmniverseeスポーツAmazoneSportsDQNBLUE PROTOCOLシーマンMinecraftアバターOmniverseUbisoftメタAlphaZeroTransformerGPT-2AIりんなカメラ環世界中島秀之哲学理化学研究所DARPAドローンシムシティImagenバイアスMCS-AI動的連携モデルモーションキャプチャーTEZUKA2020AI美空ひばり手塚治虫バンダイナムコ研究所スパーシャルAIElectronic ArtsメタデータLEFT 4 DEAD通しプレイOpenAI Five本間翔太CMピクサープラチナエッグイーサリアム作曲ボエダ・ゴティエビッグデータ中嶋謙互Amadeus Codeデータ分析Microsoft AzureMILEナラティブアーケードゲームOmniverse ReplicatorWCCFレコメンドシステムNVIDIA DRIVE SimWORLD CLUB Champion FootballNVIDIA Isaac Simセガ柏田知大軍事サイバーエージェント田邊雅彦トレーディングカードトレカ音声認識PyTorch眞鍋和子バンダイナムコスタジオaibo合成音声Meta齊藤陽介マインクラフトお知らせMagic Leap Oneチャットボットサルでもわかる人工知能VAE3DCGリップシンキングUbisoft La Forge自動運転車ワークショップ知識表現ウォッチドッグス レギオンIGDA秋期GTC2022どうぶつしょうぎEpic Gamesジェイ・コウガミ音楽ストリーミングMITAIロボ「迷キュー」に挑戦野々下裕子徳井直生マシンラーニング5GRival Peakクラウド対話エンジン斎藤由多加リトル・コンピュータ・ピープルコンピューティショナル・フォトグラフィーゴブレット・ゴブラーズ絵画rinnaシミュレーションデジタルヒューマン完全情報ゲーム坂本洋典釜屋憲彦ウェイポイントパス検索対談藤澤仁生物学GTC 2022画像認識SiemensStyleCLIPDeNA長谷洋平masumi toyota宮路洋一OpenSeaGDC 2022TextWorldSIGGRAPH ASIAEarth-2MagentaSFELYZA PencilGTC2021CycleGANデータマイニングNetHackはこだて未来大学キャラクターモーションフェイクニュースエージェントRPGSIGGRAPH 2022AIボイスアクターNVIDIA CanvasGPUALifeZork人工生命オルタナティヴ・マシンサウンドスケープASBS栗原聡ぱいどんテキスト生成不気味の谷ナビゲーションメッシュ松井俊浩ELYZAフルコトELYZA DIGEST3D音声合成西成活裕Apex LegendsELIZA群衆マネジメントNinjaコンピュータRPGライブビジネスアップルタウン物語新型コロナKELDIC周済涛メロディ言語清田陽司ゲームTENTUPLAYサイバネティックスMARVEL Future FightAstro人工知能史タイムラプスEgo4DAI哲学マップバスキア星新一日経イノベーション・ラボStyleGAN-XL敵対的強化学習StyleGAN3階層型強化学習GOSU Data LabGANimatorWANNGOSU Voice AssistantVoLux-GAN竹内将SenpAI.GGProjected GANMobalyticsSelf-Distilled StyleGAN馬淵浩希Cygamesニューラルレンダリング岡島学AWS SagemakerPLATO映像セリア・ホデント形態素解析frame.ioUXAWS LambdaFoodly誤字検出森山和道認知科学中川友紀子ゲームデザインSentencePieceアールティLUMINOUS ENGINELuminous ProductionsBlenderBot 3パターン・ランゲージ竹村也哉Meta AIちょまどマーク・ザッカーバーグGOAPWACULAdobe MAX 2021自動翻訳模倣学習AIライティングOmniverse AvatarAIのべりすとFPSNVIDIA RivaQuillBotマルコフ決定過程NVIDIA MegatronCopysmithNVIDIA MerlinJasperスタンフォード大学NVIDIA Metropolisパラメータ設計テニスバランス調整協調フィルタリング人狼知能テキサス大学AlphaDogfight TrialsAI Messenger VoicebotエージェントシミュレーションOpenAI CodexStarCraft IIHyperStyleMax CooperFuture of Life InstituteRendering with StyleメディアアートIntelDisney類家利直LAIKADisneyリサーチヴィトゲンシュタインRotomationGauGAN論理哲学論考GauGAN2京都芸術大学ドラゴンクエストライバルズ画像言語表現モデル不確定ゲームSIGGRAPH ASIA 2021PromptBaseDota 2モンテカルロ木探索ディズニーリサーチMitsuba2バンダイナムコネクサスソーシャルゲームEmbeddingワイツマン科学研究所ユーザーレビューGTC2020CG衣装mimicNVIDIA MAXINEVRファッションBaidu淡路滋ビデオ会議ArtflowERNIE-ViLGグリムノーツEponym古文書ゴティエ・ボエダ音声クローニング凸版印刷Gautier Boeda階層的クラスタリングGopherAI-OCR画像判定JuliusSIE鑑定ラベル付けTPRGOxia Palus大澤博隆バーチャル・ヒューマン・エージェントtoio SDK for UnityArt RecognitionSFプロトタイピングクーガー田中章愛実況パワフルサッカー石井敦銭起揚NHC 2021桃太郎電鉄茂谷保伯池田利夫桃鉄GDMC新刊案内パワサカマーベル・シネマティック・ユニバースコナミデジタルエンタテインメント成沢理恵MITメディアラボMCU岩倉宏介アベンジャーズPPOマジック・リープDigital DomainMachine Learning Project CanvasMagendaMasquerade2.0国立情報学研究所ノンファンジブルトークンDDSPフェイシャルキャプチャー石川冬樹サッカーモリカトロン開発者インタビュースパコン里井大輝Kaggle宮本茂則スーパーコンピュータバスケットボール山田暉松岡 聡Assassin’s Creed OriginsAI会話ジェネレーターTSUBAME 1.0Sea of ThievesTSUBAME 2.0GEMS COMPANYmonoAI technologyLSTMABCIモリカトロンAIソリューション富岳初音ミクOculusコード生成AISociety 5.0転移学習テストAlphaCode夏の電脳甲子園Baldur's Gate 3Codeforces座談会Candy Crush Saga自己増強型AItext-to-imageSIGGRAPH ASIA 2020COLMAPtext-to-3DADOPNVIDIA GET3DデバッギングBigGANGANverse3DDreamFusionMaterialGANRNNグランツーリスモSPORTAI絵師ReBeLグランツーリスモ・ソフィーUGCGTソフィーPGCVolvoFIAグランツーリスモチャンピオンシップStability AINovelAIRival PrakDGX A100NovelAI DiffusionVTuberユービーアイソフトWebcam VTuberモーションデータ星新一賞北尾まどかHALO市場分析ポーズ推定将棋メタルギアソリッドVフォートナイトメッシュ生成FSMメルセデス・ベンツRobloxMagic Leapナップサック問題Live NationEpyllion汎用言語モデルWeb3.0マシュー・ボールAIOpsムーアの法則SpotifyスマートコントラクトReplica StudioAWSamuseChitrakarQosmoAdobe MAX 2022巡回セールスマン問題Adobe MAXジョルダン曲線メディアAdobe ResearchMuZero政治Galacticaクラウドゲーミングがんばれ森川君2号pixiv和田洋一リアリティ番組映像解析Stadiaジョンソン裕子セキュリティMILEsNightCafe東芝デジタルソリューションズインタラクティブ・ストリーミングLuis RuizSATLYS 映像解析AIインタラクティブ・メディアポケモン3DスキャンCodexPFN 3D Scanシーマン人工知能研究所東京工業大学Ludo博報堂Preferred NetworksラップPFN 4D ScanSIGGRAPH 2019ArtEmisZ世代DreamUpAIラッパーシステムDeviantArtARWaifu DiffusionGROVERプラスリンクス ~キミと繋がる想い~元素法典FAIRSTCNovel AIチート検出Style Transfer ConversationOpen AIオンラインカジノRCPMicrosoft DesignerアップルRealFlowRinna Character PlatformイラストiPhoneCALADeep FluidsSoul Machines柿沼太一MeInGameAmeliaELSIAIGraphブレイン・コンピュータ・インタフェースバーチャルキャラクター大規模言語モデルBCIGateboxアフォーダンスLearning from VideoANIMAKPaLM-SayCan予期知能逢妻ヒカリPaLMセコムGitHub Copilotユクスキュルバーチャル警備システムCode as Policiesカント損保ジャパンCaP上原利之ドラゴンクエストエージェントアーキテクチャアッパーグラウンドPAIROCTOPATH TRAVELER西木康智OCTOPATH TRAVELER 大陸の覇者アルスエレクトロニカ2019品質保証StyleRigAutodesk逆転オセロニアBentley Systemsワールドシミュレーター奥村エルネスト純いただきストリートH100齋藤精一大森田不可止COBOL高橋智隆DGX H100ロボユニザナックDGX SuperPOD泉幸典仁井谷正充クラウドコンピューティングロボコレ2019Instant NeRFartonomousbitGANsぎゅわんぶらあ自己中心派Azure Machine Learning意思決定モデル脱出ゲームHybrid Reward Architectureコミュニティ管理ウロチョロスSuper PhoenixSNSProject Malmoオンラインゲーム気候変動Project PaidiaProject Lookoutマックス・プランク気象研究所Watch Forビョルン・スティーブンスBing気象モデルLEFT ALIVE気象シミュレーション長谷川誠ジミ・ヘンドリックス環境問題Baby Xカート・コバーンエコロジーロバート・ダウニー・Jr.エイミー・ワインハウスSDGsYouTubeダフト・パンクメモリスタGlenn MarshallThe Age of A.I.Story2Hallucination音声変換レコメンデーションJukebox松尾豊Veap JapanEAPテンセントSIFT福井千春DCGAN医療MOBADANNCEメンタルケア人事ハーバード大学Edgar Handy研修デューク大学Netflixmynet.aiローグライクゲーム東京大学東京理科大学人工音声NeurIPS 2021産業技術総合研究所リザバーコンピューティングプレイ動画ヒップホップソニーマーケティングサイレント映画もじぱNBA環境音暗号通貨現代アートFUZZLEAlteration粒子群最適化法進化差分法オープンワールド群知能下川大樹AIFAウィル・ライト高津芳希P2E大石真史BEiTStyleGAN-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 AICozmoDLSSタカラトミー山野辺一記NetEaseLOVOT大里飛鳥DynamixyzMOFLINRomiU-Netミクシィ13フェイズ構造アドベンチャーゲームユニロボットADVユニボXLandGatoAGI手塚眞DEATH STRANDINGマルチモーダルEric Johnson汎用強化学習AIデザインOculus Questコジマプロダクションロンドン芸術大学生体情報デシマエンジンGoogle BrainインディーゲームSound Control写真高橋ミレイSYNTH SUPER照明Maxim PeterKarl SimsJoshua RomoffArtnomeハイパースケープICONATE山崎陽斗深層強化学習立木創太松原仁浜中雅俊ミライ小町武田英明テスラ福井健策GameGANパックマンTesla BotNEDOTesla AI DayWikipediaソサエティ5.0SphereSIGGRAPH 2020バズグラフXaver 1000ニュースタンテキ養蜂東芝BeewiseDIB-R倉田宜典フィンテック投資韻律射影MILIZE広告韻律転移三菱UFJ信託銀行

【CEDEC2021】NPCとのインタラクティブな対話を実現するGOAPと感情生成パイプライン

2021.11.12ゲーム

【CEDEC2021】NPCとのインタラクティブな対話を実現するGOAPと感情生成パイプライン

スクウェア・エニックスのボエダ・ゴティエ氏がキャラクターAIに関する2つのセッション「キャラクターAIを成長させるためのGOAP意思決定システム」と「NPCもプランナーも開発者にも心がある!感情システムをゲーム制作に!」に登壇しました。いずれのセッションでも、プレイヤーとキャラクターAIの相互的なコミュニケーションを実現し、新たなゲームデザインの鍵となる技術が紹介されました。

GOAPをキャラクターAIに活用する

キャラクターAIの行動を制御するものとしてプランニング技術があります。目的を達成するためにアクションリストを作成し、リスト(候補)から状況に応じて選択することでキャラクターをゴールに導くというものです。そのひとつに、GOAP(Goal Oriented Action Planning)があります。特徴として、ゴールから開始しそれを達成するまでの計画を立てる、バックワードプランニングという手法を採ります。これは主にエネミーAIの戦闘時の行動制御によく使われている技術です。

スクウェア・エニックスのAIチームでは、このGOAPをアバターAI、コンパニオンAIといったキャラクターAIに活用することで、キャラクターの内面の変化を表現したり、物語の語り部として動かすことができないかというチャレンジを行っています。このセッションでは、技術デモとして進めている「WONDER」プロジェクトを通して、GOAPを活用したキャラクターの育成について、その可能性が示されました。

図1 WONDERではプレイヤーはガイド役として、キャラクターAIの成長を助ける

例えば「お腹がいっぱい」な状態になる目的を達成するために「プリンを食べる」、あるいは「りんごを食べる」という選択肢があり、それぞれ、プリンを食べるためには「プリンを作る」、プリンを作るために「レシピを読む」というプラン、りんごを食べるために「リンゴを取りに行く」というプランを立てます。

キャラクターAIは周囲の状況により自分で判断して行動するわけですが、プレイヤーはガイド役としてキャラクターAIのその選択が正しいか否か答えを与えて、育てていきます。WONDERでは、GOAPだけでなく次のような技術を実装し、キャラクターAIを成長させることを目指します。

  1. スマートオブジェクト:アイテムが持つ情報からアクションを生成する
  2. ラーニングコンポーネント(ユーティリティベース):キャラクターAIに行動を学習させる
  3. 知識の継承システム:意識モデルをさらに深める
図2 GOAPはバックワードプランニングでゴールからプランニングする

スマートオブジェクト

WONDERでは、キャラクターがアクションを選択するとき、キャラクターが目的を達成するためにフローを考えるとき、キャラクターが会話するために話題を探すとき、キャラクターが未知のアイテムと出会うときに、スマートオブジェクトが使われています。

スマートオブジェクトに対して、サイズ、耐久度、重さ、形、持ち方、回復値、タグ情報などのパラメーターを持たせ、それぞれの値により、その状態で実行可能なアクションリストを生成します。例えば、図3では「リンゴ」に対して「食べる」「踏む」「投げる」「持ち上げる」「蹴る」というアクションが生成されました。

図3 スマートオブジェクト(リンゴのアクションリスト)

ラーニング

プレイヤーはキャラクターAIの行動を褒めたり叱ったりすることによって、アイテムをどのように使うかをキャラクターAIに伝えます。キャラクターAIはそれを自分の記憶領域に記憶することで学習します。学習の結果、それ以降の行動が変化します。

キャラクターAIはどのようにアイテムを使えばいいか知りません。知識(経験)によってアクションを選択(推測)しますが、それが正しいアクションとは限りません。例えば、図4では「ゴムボール」のアクションとして「蹴る」が一番高い確率となっています。ところがキャラクターAIが「投げる」を選択し、プレイヤーから褒められると、投げるを選択する確率が高くなります。このように学習をしていきます。

図4 キャラクターAIは経験によって行動を学習する

プレイヤーの評価と確率の関係は、実行したアクションが褒められた場合に+20%、叱られた場合に-20%、どちらでもない場合は特に変更なし、となります。最終的に正規化を行い、アクションリストに反映します。

知識の継承

今回の肝と言えるのが、この知識の継承システムです。これは未知のアイテムをどのように使用すればいいのかを記憶にある使用済みアイテムから推測するというものです。使用済みアイテムと未知アイテムについて「形状」「持ち手」「持つ場所」を比較し、スコアを出します。既存のアイテムのうち一番スコアが高いものが未知のアイテムと最も似ていることになり、そのアクション選択確率を未知のアイテムに継承します。

例えば図5では、未知のアイテムに対し、緑の瓶が100%ですので、緑の瓶のアクション選択確率を継承します。未知のアイテムのアクション確率にそれぞれ緑の瓶のアクション確率を加えて正規化して、継承は完了です。

図5(1/2)最も似ているアイテムのアクション確率を未知のアイテムに継承する
図5(2/2)最も似ているアイテムのアクション確率を未知のアイテムに継承する

また、上記の技術に加え、物語の中でキャラクターAIが自然に振る舞えるよう、WONDERではGOAPが拡張されています。

GOAPの拡張

キャラクターAIの振る舞いをより自然に見せるために、GOAPを拡張し、複数の事前条件、動的な編集処理に対応できるようにします。例えば、「お腹がいっぱい」という目的を達成するために「リンゴを食べる」というプランがあります。この時に「リンゴを食べる」というアクションの事後条件を「お腹がいっぱい」とすると、事前条件は「リンゴを持つ」になります。同時に、「リンゴを持つ」は次のアクション(=リンゴを取りに行く)の事後条件となります。そして「リンゴを取りに行く」の事前条件は「リンゴがある」です。

図6 アクションにおける事前条件と事後条件

WONDERでは次のようにプランニングをしていきます。例えば次の図7では、キャラクターのお腹はペコペコです。リンゴを食べるにはどうすればいいかをキャラクターAIは考えます。シーンの中にはいくつかのアイテムがあるし、木までは行けるはずだし、色々な可能性があります。

目的(=お腹がいっぱい)を達成するために「リンゴを食べる」、その事前条件である「リンゴを持つ」を達成するためにリンゴを取りに行くアクションを選択します。しかし、リンゴは木の上にあり、「リンゴが地面の上にある」という条件を達成する必要があります。そこから連想して「リンゴが落ちる」という特別なアクションが生成されます。そして、「リンゴが落ちる」の事前条件(=木が揺れる)を達成するために「木を揺らす」アクションを行います。すると、「お腹がいっぱい」という目的を達成することができます。このように、GOAPの拡張により複雑な計画を立てることが可能です。

図7「お腹がいっぱい」というゴールに至るアクション

さらに、このGOAPの拡張によってもっと正確なゲームステートの定義ができるようになります。変数としてインタラクション、アイテム、キャラクターを用いて、プランニングを実行する前に現在のステートの定義を行います。アイテムでインタラクションをマスターしたプレイヤーがいて、お腹がいっぱい、性格は協調性、気分はルンルン気分、というように具体的に今のゲームステートを定義し、その情報をGOAPが利用するという形です。これは、GOAPの実行が遅くなるという欠点もありますが、多くの利点があります。

1つにプランの選択です。GOAPを実行後、複数のプランが存在した場合に一番コストの低いプランを選択します。図8の例では、「プリンを食べる」「プリンを作る」「プリンのレシピを読む」というアクションのコストは「6」で2位と設定されています。それに対し、「リンゴを食べる」「リンゴを取りに行く」のコストは「5」で1位、より低いコストのプランが選択されるという具合です。

図8 低いコストのプランを選択

さらに、問題解決におけるキャラクターの心理状態を表すためにGOAPの各アクションは動的なコスト計算関数を持ちます。例えば、キャラクターは「プリンが好き」で「脚が痛い(疲れた)」状態であれば、「プリンを食べる」ほうが順位が上がります。疲れたからリンゴを取りに行くのはちょっと面倒なアクションになる、つまり、それによってコストが上がります。

図9 キャラクターの心理状態をコスト計算に加味する

このように拡張することでGOAPの技術をエネミーAI以外、他の多くのケースに広く使用することができるということになります。

感情生成パイプラインでNPCの感情を表現する

感情生成パイプラインはCEDEC2019でも、その成果が発表されています。感情生成パイプラインによって、NPCをより意識的に、表現的に、より生き生きと表現することが可能となります。CEDEC2021では、その感情生成パイプラインのWONDERプロジェクトへの導入事例が紹介されました。

WONDERの理念は「神は賽を振らない」こと。つまりAIを使ったゲームデザインは、すべての意思決定は可能な限り自然で、意味があり、エージェントの成長を可能にするものでなければならないということです。そのため、感情や気分を表現したり、個性を表現する感情パイプラインを持つことはプロジェクトにとって自然な選択だったのです。

まず、ここで用いる「感情」「気分」「性格」の定義は次のとおりです。それぞれ、セリフや表情、アニメーションの変化につながります。

  1. 感情:短期的な影響を受け、時間とともに急速に変化するもの[ex. 喜び、苦痛、恐怖]
  2. 気分:長期的な影響を受け、ゆっくりとスムーズに変化するもの[ex. 活力的であったり、落ち込んでいる、落胆的気分]
  3. 性格:時間経過で変化しない、エージェントの個性を定義するもの[ex. 好奇心、内気、怠惰]

感情モジュール「inspired OCCモデル」

感情生成パイプラインの感情モジュール(OCCモデル)では24の感情がサポートされていますが、WONDERで用いる「inspired OCCモデル」はそのうちの上部、10の感情をサポートするものです。

図10(1/2)OCCモデルとinspired OCCモデル
図10(2/2)OCCモデルとinspired OCCモデル

ゲームイベントを分析し、それがエージェントにとって良いものか良くないものかを判断します。例えばボールを当てられたら「消極的なイベント」、美味しいケーキを食べたら「積極的なイベント」というように判別し、それによって感情を生成していきます。「ボールが当たったせいで窓が割れた」や「雨のせいで服装が濡れた」といったイベントの結果から想起する感情(期待、恐れ、喜び、悲しみ)、イベントに対するエージェントのアクション(自己=自尊心、羞恥心、他のエージェント=称賛、非称賛)、オブジェクトの見た目に対する感情(好き、嫌い)など、最終的に10個の感情をサポートしています。

例えばプレイヤーがバットでボールを打った場合、それを見ているエージェントにとっては、プレイヤーが成功したのでうれしいという積極的なイベントとなり、プレイヤーに対して称賛という感情を生成します。あるいは、そのボールのせいで窓が割れた場合、消極的なイベントとなってしまい悲しみなどネガティブな感情を生成します。このように、イベントに応じて感情が生成されていくというわけです。

こうした感情を性格や気分とブレンドして、アニメーションや会話で表現します。このモデルの適用性は高く、作りたい体験にそれぞれ適用することが可能です。イベントから予想できるなら、期待や恐れという感情を生成することができます。未知のアイテムに対するフラグとして「慣れた見た目なのか不慣れな見た目なのか」を立てたり、プレイヤーや他のエージェントとのインタラクションに対する関連性を鍵にしたり、感情を追加することも可能です。

具体的には、感情はゲームイベントによって、3つのパラメーター(種類、期間、強度)で定義されます。たとえば図11では、種類が「EAT_FOOD」(エージェントのアクション)で、強度の計算式は食べているアイテムの好き嫌いによって変わります。もし嫌いな食べ物だった場合などでネガティブな値になると消極的なイベントと判断されます。

図11 感情の定義

アイテムの「好き/嫌い」については、感情が最初に生成されるときに行われます。例えばエージェントがフェンスに触れて感電した場合に悲しみという感情が生成され、その際「フェンス」というアイテムにネガティブなアフェクトを追加されます。つまり、次にフェンスを見ると嫌な感情になるというわけです。ちなみに、アフェクトは「強度」と「記憶に残る時間」の2つのパラメーターを持ち、値によっては”時間が経つと悪い経験を忘れていく”といった表現も可能です。

気分モジュール「PAD」

気分モジュールとしてはPADモデルが使われています。P(Pleasure)は快、どれほど良い気持ちか、A(Arousal)は興奮、感情がどれほど激しいのか、D(Dominance)は自分の感情をどれだけコントロールできるかを3次元の空間で表します。

この空間の中に感情モジュールで定義された感情が配置されているというイメージです。赤で示すポイントがデフォルトの気分で、最初は真ん中にありますが、感情が生成されるときに移動しています。パラメーターには「感情」「強度」「時間」があり、強度の値が高いと移動するスピードが速くなります。

図12(1/2)PADモデル
図12(2/2)PADモデル

これは気分によって有効なゴールや可能なアクションが異なるなど、意思決定に影響を与えることができ、ベースとなるボディアニメーションのバリエーション変化も可能です。また、気分によって音声を変化させることも可能です。この部分はTsugi合同会社と協力して進めた部分で、PADの値によって音声が変化します。

図13 PADによる音声の調整

ただ、PADモデルは3次元空間のため膨大な表現のバリエーションがあることが利点ですが、デバッグとバランスが難しいという弱点もあり、WONDERではP(Pleasure)とD(Dominance)の2次元空間を採用しています。

図14 WONDERにおけるPAD

性格モジュール

性格モジュールはユーティリティパラメーター(怠惰、好奇心、正直、従順など)で構成される、非常にシンプルなモデルです。ベースとなるボディアニメーションやアクションなどのバリエーションを使ったり、話し方で表現します。気分と同様に、性格によって有効なゴールや可能なアクションを変えることができます。

重要なのは「どこに表現するか」「何に影響を与えるか」を設定することです。例えば、WONDERでは8つの性格パラメーター「明るさ」「自立心」「情熱」「プライド」「ロジカル」「モラル」「やさしさ」「協調性」を用いています。そして、性格はアニメーション、話し方、意思決定に影響を及ぼします。

ただ、アニメーションに関しては、8つの性格パラメーター×4つの気分+ベースで33のアニメーションを作成することになってしまうため、4つの性格(わんぱくこぞう、ワルガキ、おくびょうもの、マジメくん)を作り、×4つの気分+ベースで17のアニメーションを作成しています。

図15 性格モジュールのパラメーター

デバッグツールとして「気分ヒートマップ」や「性格履歴」「感情履歴」、あるいは「感情全体情報」を用いて、細かな調整も可能となっているとのことです。

これまでのプレイヤーとキャラクターのコミュニケーションは、プレイヤーからキャラクターへの一方向のものでしたが、今回ご紹介した技術が実装してキャラクターの内面を作り込むことで、プレイヤーとキャラクターの間の相互的なコミュニケーションが少しずつ実現されています。新たなゲーム性をもたらす鍵として注目の高まる分野です。

Writer:大内孝子

RELATED ARTICLE関連記事

【GDC 2019】ソーシャルゲームのバランス調整に遺伝的アルゴリズムを応用する

2019.4.17ゲーム

【GDC 2019】ソーシャルゲームのバランス調整に遺伝的アルゴリズムを応用する

「森川幸人の未公開ゲーム案」置き手紙としての仕様書:第1回 長い前置きと『ミーム』

2021.8.03ゲーム

「森川幸人の未公開ゲーム案」置き手紙としての仕様書:第1回 長い前置きと『ミーム...

【GDCSummer】多様なプレイスタイルを学習し、FPSを人間のようにテストプレイするAIの育て方

2020.9.23ゲーム

【GDCSummer】多様なプレイスタイルを学習し、FPSを人間のようにテストプ...

RANKING注目の記事はこちら