モリカトロン株式会社運営「エンターテインメント×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信託銀行
大森田不可止氏が語る『いただきストリート』に実装されたキャラクターAI:懐ゲーから辿るゲームAI技術史vol.3
『いただきストリート』とは?
1991年にアスキーから発売されたファミリーコンピュータ用ソフトで、『ドラゴンクエスト』シリーズでもおなじみの堀井雄二氏が考案したボードゲームです。サイコロを振って出た目の数だけマス目を進みながら、店や株を購入して資産を増やし、マップごとに設定された目標金額まで一番早く資産を増やし、スタート地点に戻ったプレイヤーが勝利となります。最大4人まで同時プレイが可能で、プレイヤーが4人に満たない場合はCPUキャラが参戦します。
マップ上のあちこちにある店を購入すると、以後他のプレイヤーが止まるたびに「買い物料」を、つまりお金をもらうことができます。逆に、他のプレイヤーが保有する店に止まった場合は、相手プレイヤーにお金を支払うことになります。
購入した店は、さらに増資をすることによって店の価値が上がり、他のプレイヤーが止まったときに支払ったり、店を売却する際の金額をアップさせることも可能です。また、銀行でエリア株を購入しておくと、そのエリアにある店を増資するなどの方法で株を値上がりさせることで、さらに儲けることができます。
続編のスーパーファミコン用ソフト、『いただきストリート2』からはエニックスが発売元となり、現在もシリーズ作品がスクウェア・エニックスから発売されています。
『いただきストリート』(以下、『いたスト』)に登場するCPUキャラは全部で7人。リスクを極力避ける堅実なプレイスタイルが持ち味のキャラクターもいれば、勝利のためならありとあらゆる手段を使う攻撃型のキャラクターもいるなど、それぞれ性格が異なるので1人で遊んでも十分に楽しめるのが特長です。
今年3月で、ちょうど発売30周年を迎えた『いたスト』では、キャラクターごとに異なる個性を出すために、どのようにしてAIを作っていたのでしょうか? 本作のプログラマー、大森田不可止氏にお話を伺いました。




非力なハードでも動かせる、対数を利用したAIプログラムを開発
——本日はよろしくお願いいたします。まずは大森田さんが『いたスト』の開発に参加することになったきっかけから教えていただけますか?
大森田不可止氏(以下、大森田):ゲームスタジオの遠藤(雅伸)さんから「プログラマーを探しているんだけど、ゲームスタジオでは受けられないので、受けてくれないか?」と紹介されたのがきっかけです。
——『いたスト』の主な開発スタッフは、大森田さんのほかにどなたがいらっしゃいましたか?
大森田:プロデューサーは、当時『ファミコン通信』の編集長だった塩崎剛三さんです。サブのスタッフにはYanaKen(柳澤健二)さんと、キャラメル・ママの社長で『ドラゴンボール』の亀仙人のモデルになった松本常男さんがいました。企画は堀井さん、イラストは荒井清和さんで、サウンドはゲヱセン上野(利幸)さんですね。プログラマーは私1人でしたが、最後にピンチヒッターとして遠藤さんにも手伝っていただきました。
——開発中は、アスキーのオフィスに出掛けてプログラムを作っていたのですか?
大森田:基本的には自宅作業でしたが、だんだん忙しくなってきてからはアスキーに席を用意していただきました。ちょうど薗部(博之)さんと机を並べながら仕事をしていましたね。
——PCや開発機材は、どのようなものを使っていたのでしょうか?
大森田:ファミコン用ソフトなので、大規模な開発機材などは必要ありませんでした。当時はPC-9801でプログラムを書いてからコンパイルして、ROMに焼いてチェックしながら作っていたと思います。
——当時であれば、すでにファミコンソフト開発用のICE(In-Circuit Emulator)はあったと思いますが、ICEは使わなかったんですね。
大森田:ICEはなかったのですが、途中でRAMにデータを転送すると動かせる、ROMの代わりとしてRAMが使える環境ができましたので、それからは作業効率がアップしたように思います。
——『いたスト』に登場するCPUキャラは全部で7人いて、それぞれ性格が違っているようですね。個々の性格や設定は誰が決めたのでしょうか?
大森田:私が決めました。荒井さんがデザインしたキャラクターはすごく立っていたので、「こういう姿をしているから、こんな性格だろうな」と絵を見て想像しながら作りました。例えば、ゲームの中に「5倍買い」(※)というルールがあるのですが、これは普通の人はなかなかチャレンジしないんですよ。そこで、「水沢けいこ」というイケイケ風のお姉さんキャラに、無理矢理「5倍買い」をするプログラムを入れたりもしていました。要するに、CPUがチュートリアルの役割を果たせるようにしたんですね。
※「5倍買い」:自分以外のプレイヤーが保有する店に止まったときに、お店の5倍の金額を払って店を買収する行為。主に、特定のプレイヤーが同一エリアの店の独占を阻止する際に用いられる。


——開発がスタートしてから、ゲームが完成するまでにどのぐらいの時間が掛かりましたか?
大森田:開発期間がとにかく長くて、約3年掛かりました。私以外のスタッフはみんな仲良しで、塩崎さんが毎週土曜日の夜に、みんなを集めて企画会議を開きながら作っていましたが、堀井さんが中心になって作っていたように思います。堀井さんの頭の中には、最初から完成形が描けていたようで、「ここはどうしますか?」とか「あれはどうしますか?」と相談すると、翌週には「こういうふうに作って」と仕様を完成させて持ってきてくれましたね。
——CPUキャラのAI、思考ルーチンも、最後は堀井さんがチェックしてオーケーを出したのでしょうか?
大森田:そうですね。実際に遊んでいただいて、特に文句などは出ませんでしたから、これはオーケーだろうなと思って作りました。当時はまだ誰もAIのことが分からず、「AIって、どうやって作ればいいの?」という時代でしたので、『いたスト』のAIは私や堀井さんが以前にやっていた『モノポリー』の研究を土台にして作ってあります。
——そもそも、堀井さんが『いたスト』を企画したきかっけは、『モノポリー』にインスパイアされたところが大きかったわけですよね?
大森田:はい。『いたスト』にはアメリカ大陸のマップが登場するのですが、最初の完成したマップがまさにアメリカ大陸でした。そこから開発がなかなか進まなくなったので、私がPC-9801のBASICで試しにゲームを作り、それを実際に遊んでもらうことを繰り返しながら開発を進めていきました。堀井さん以外のスタッフは、過去にゲームを作った経験者がほとんどいなかったので、私が作ったものを実際に見てもらいながら開発していました。
——AIのプログラムの制作期間はどのぐらいでしたか?
大森田:6か月ぐらいで作って、あとは自分で遊びながら少しずつ修正して完成させました。自分で遊んでいると、「ここをちょっと直したいな」という部分がたくさん出てきてしまうので、かなり時間が掛かってしまいましたね。
それと、個人的に一番面白かったのは、『いたスト』というゲームが本当に面白いゲームなのかどうか、分からなくなってしまった時期があったんです。ですが、ある日遊び始めたら「アレ? これって意外と面白いな」と気付いたときがあって、これで大丈夫だという自信が持てました。
自信を持つまでの間は、何度も繰り返し見ているゲーム画面なので、他人が見て本当に面白く見えるのか、あまり自信が持てなかったのですが、自分で遊んでいるうちに楽しくなったので、これでいけるなと。
——では、デバッグやテストプレイにはどのぐらいの時間を割いたのでしょうか?
大森田:デバッグはあまりやっていなかったと思います。確か、関連スタッフが遊んでいる最中に不具合いを見付けたら報告してもらって修正する形でデバッグしていたとは思いますが、あまり直した記憶がないですね。私自身もメチャクチャ長い時間遊んでいましたし、もともとナムコにいた頃から(※)、私のプログラムはバグが少ないことで定評があったので(笑)。
※筆者補足:大森田氏は、かつてナムコでMSX版『キング&バルーン』や、ファミコン版『ギャラガ』などのプログラムを担当していた。
——CPUキャラが自身の行動を決定するプログラムは、どのような仕組みになっているのでしょうか?
大森田:例えば、誰にも買われていない店がまだ残っていれば、店を買うことを優先しますが、だんだんゲームを進めていくと高額物件が出現しますので、もし高額物件が出てきた場合は、そこを通り越せる場所に進むことを優先するようになります。もし高額物件の反対方向から進んでしまうと、次のターンでそこに止まっちゃう可能性が生じますからね。
つまり、支払期待値がなるべく下がる作戦を取るようにするために、どれを優先にするのかを決める数式を用意して、その計算させてっていうのをプログラムの中でやっているわけです。

——その数式は、具体的にどのような計算をするのでしょうか?
大森田:ファミコンのCPUで計算できるのは8ビットで、しかも掛け算ができないので、とにかく計算が苦手で時間が掛かるハードなんですよ。そこで、計算を簡単にするために8ビットの対数表を持たせてあります。対数を使うと掛け算が足し算になるので、非常に簡単に計算できるようになりますし、大小関係もちゃんと維持されますので。でも、本来ならば対数を元の数値に戻さなければいけないのですが、実際は元に戻さずに大小の比較チェックだけを実行していましたから、大雑把な計算しかできないんですよね。
——ファミコンみたいな8ビットのハードでは、容量的にも制約が厳しかったのでしょうか?
大森田:ええ。容量もそれほど大きくないですし、とにかく8ビットの計算しかできないのは厳しかったです。CPUにZ80を使っていれば16ビットの加減算まではできたのですが、ファミコンのCPUに使っていたのは完全8ビットの6502だったので、もし16ビットの計算をさせようとするとクロックをたくさん使わなくてはいけないので、何とかしてそれを回避する必要がありました。確か、ファミコンは1.7 MHzで、それが60分の1秒でワンセットの処理を終了させないといけない仕様でしたから、何とかその範囲内で計算ができるように工夫するのがなかなか大変でした。
収入・支出の期待値を調整してCPUキャラの個性を作成
——CPUキャラごとの性格や特徴などはどうやって調整したのでしょうか?
大森田:基本的には、先に数式を作っておいて、後からそれを修正しながら仕上げました。一度数式を作っておけば、あとはパラメーターを変えるだけで、キャラごとの個性が出せるんです。基本はあくまで数式ですが、例えば株の売買のように計算できない部分もありますので、そういう場合は人間のプレイヤーの真似をして動くようにしてあります。
——ゲーム中に、プレイヤーの行動を見て真似をするプログラムが入っていたんですか?
大森田:いえいえ。そうではなくて、開発中に私が別の人のプレイを見て、その人と同じ買い方をさせるプログラムそのものを組んだんです。
——AIを作るときは、ついつい強くしようとし過ぎると失敗するので、より人間らしくする必要がありますよね?
大森田:普通に一番バランスのいいキャラクターを作ろうとすると、みんな行動が似てきちゃうので、何とかそれを外すようにいろいろ仕込んでいました。さっきもお話をした「けいこ」の5倍買いもその一例ですね。「いただきストリート」では、バランスの取れたプレイが一番強いハズなのですが、そこから多少外れても意外と裏目に出て強かったりする面もあるんですよ。例えば、全然関係ない株を買ったら、後でたまたま値上がりしちゃうこともありますので。
——例えば、チャンスのマス目に止まってカードを引いた場合は、完全に運の要素で資産が突然増えたり減ったりしますからね。
大森田:ええ。多少は自由度の高いプレイをするようにプログラムは組んであったと思います。みんな同じような個性になると、遊んでいて面白くないですしね。一番プレイしたのは私でしたから、私自身が遊んでいて面白くなるようにちゃんと作ってありますよ(笑)
——AIに関しては、ほかのスタッフから何か意見や改善の要望を受けたことがありましたか?
大森田:AIがどう動いているのかを誰も想像できなかったみたいで、意見はあまり出てこなかったですね。AIに関しては、私のほうでかなり自由に作っていました。
——ちなみに、大森田さんは学生時代にAIの勉強をされたことはあったのでしょうか?
大森田:それほどはやっていなかったですね。学生の頃は、ちょうど第2次AIブームでニューラルネットワークが注目されていた時期だったので、多少は関連書籍を読んではいましたが、まだまだコンピューターが非力な時代でしたから、実際に試せる環境は全然ありませんでした。
——では、当時からAIへの興味自体はあったわけですね?
大森田:そうですね。薄くではありますが勉強していました。あの時代は遺伝的プログラミングとか、成果はほとんど出なかったのですが、いろいろと実験的なプログラムが流行したので、まあ面白い時代ではあったように思います。
——ニューラルネットワークから進化したものがディープランニングになるかと思いますが、「いたスト」では対戦を繰り返すごとに強くなる、学習するAIを作っていたのでしょうか?
大森田:ちょっとだけ考えましたが、ファミコンの性能ではそこまで実装することはできなかったですね。バックアップRAMの中に、いろいろな経験を積み上げること自体は可能なのですが、容量が2キロバイト程度しかなかったので、直前の局面を記憶するだけでもう精一杯でした(笑)。でも当時としては、あのハードであれだけのものを遊べるようにできていたこと自体が大きかったと思います。
——ターボファイル(※)を使っても、学習するAI実装は無理だったのでしょうか?
大森田:そうすると、開発がすごく大変になってしまう問題が出てきますね。もしプログラムを学習型にすると、特にデバッグがメチャクチャ大変になって、完成させようと思ったら相当な労力と気合いが必要になると思います。ゲームって、たまにしか起こらないことを仕込むと、デバッグが大変になるんです。
ある知り合いの会社で作ったシミュレーションゲームで、滅多に出ないイベントを仕込んだらデバッグで一度も発生しなくて困ったことがあったそうです。「本当に機能してるのかな?」って(笑)。プログラムを作るときは、そこまで考えなければいけないので難しくなりますよね。
※ターボファイル:アスキーが発売していたファミコン用データレコーダーのこと。乾電池による駆動で、対応するタイトルのプレイデータをセーブすることができた。
——『いたスト』における、AIのプログラムで最も工夫したポイントはどこですか?
大森田:やっぱり、対数が一番のキモでしょうね。掛け算をさせたくてもできないので、対数で何とかごまかそうと……(苦笑)。
——ソフトの発売後、『いたスト』のAIのプログラムについて同業者や業界内での評判はいかがでしたか?
大森田:あまり聞いたことはないのですが、「よく考えて行動するな」とはみんな言ってくれてましたね。
——後に、大森田さんはスーパーファミコン版の『モノポリー』(※1993年にトミーから発売)でもCPUキャラのAIを作ることになりますが、『いたスト』のプログラムで得た経験がここでも生かされたのでしょうか?
大森田:はい。『いたスト』の開発には3年掛かりましたが、『モノポリー』は以前から研究していた成果もあったので3か月で完成しました(笑)。
——『いたスト』では、プレイヤーが任意のタイミングで保有する店を競売に出したり、他のプレイヤーと交渉してお店を交換することもできますよね? CPUキャラの交渉する、しないの判断は、どうやってプログラムしたのでしょうか?
大森田:基本的には、収入期待値と支払期待値というものがあって、前者はできるだけ大きく、後者はできるだけ小さくするように計算するプログラムを組んでいますので、物件の交換とかの場合は、交換する前後で期待値がどう変化するのかを見たうえで判断しているハズですね。
——終盤戦になると、負けているCPUキャラがあえて相手に有利になるように店を交換するなどの方法で、イチかバチかの勝負を仕掛けることもあるようですが、これもあらかじめプログラムしていたのでしょうか?
大森田:ええ。それもやっていたかもしれませんね。支払期待値は大きくなってしまうけど、負けているときは多少のリスクは負わなくてはいけない、というプログラムも作ってあった気がします。要は、将棋の勝負手みたいなものですよね。ただし、8ビットの対数はすごく精度が低いので、もしかしたら精度が低かったせいで、たまたまそうなった可能性も無きにしもあらずですが(苦笑)……。

——参加プレイヤーを0人に設定すると、CPUキャラだけが参加するゲームを見ながらルールを勉強することもできますよね? 企画段階から、チュートリアルも兼ねた観戦モードを用意する構想があったのでしょうか?
大森田:いいえ。プログラマーの遊びです。「あ、こんなこともできるじゃん」と思いついたので、面白いかどうかは別にして「じゃあ、やっちゃえ」と作っただけですね(笑)。
——もしかして、0人プレイはもともとデバック用に作ったものを製品版にもそのまま残したのでしょうか?
大森田:いえいえ。そこまでの発想はなかったですね。デバッグの最中は、どの道ずっと画面を見ている必要がありましたから、自分でプレイしたほうが一番しやすかったんですよ。

CPUキャラの調整以外にもあった、AIのプログラムに工夫を凝らした理由
——ゲーム開始時に、CPUキャラの強さを「強い」「普通」「弱い」などのように、プレイヤーが任意に設定できる機能を実装しようというお考えはなかったのでしょうか?
大森田:それはなかったですね。個性を付けて、ちゃんとプレイできるCPUにするだけで手一杯で、そこまでは手が回りませんでした。キャラクターは全部で7人いますから、組み合わせによっては簡単だったり、逆に難しくなったりすることはあればいいかな、と思ったぐらいですね。
『いたスト』は、サイコロの目がかなり大きく影響するゲームで、いい目が出続ければ弱いキャラでもときどき勝ってしまうこともありますので、この点でも面白くできたなとは思います。
——サイコロの出目は、CPUキャラによってバラつきなどが発生するのでしょうか?
大森田:サイコロに関してはまったくいじっていません。一番最後に振られた目のデータは保存するように作ってあるので、電源を切ってからやり直してもまた同じ目が出るようになっています。それ以外のときは、基本的にはプレイヤーが順番を待っている間に乱数を更新しているので、ボタンを押すタイミングによって目が変わってしまうのですが、プレイヤーにはそれが伝わりませんので。つまり、サイコロのズルは一切しないプログラムにしてあります。
——現役のプログラマーに向けて、『いたスト』のAIプログラムで参考にしてほしい、あるいは継承してほしい部分などはありますか?
大森田:長いこと苦労しながら作ったので、それなりに愛着はありますが、今とはハードの能力が違いすぎるので……。ファミコンは8ビットでレジスタが3個しかありませんが、今のPCはレジスタが32個もあって、64ビットの浮動小数点演算を1クロックでできますしね。
ただ、ゲームを面白くする上での工夫は、色々と入っていると思います。CPUの能力が上がっても、ゲームに関して工夫する部分は今もそれほど変わっていない気がしますので。『いたスト』は、遊んでいるうちにいろいろなことが起きるので、CPUキャラを強くするにはどうすればいいのか、なかなか一筋縄ではいかないのも面白いところですね。自分でプログラムを作っていてすごく思いました。『いたスト』みたいな昔のゲームを、今のマシンパワーでリメイクしたら、もっと面白くなりそうですよね。今の『いたスト』シリーズでも、すでにAIはかなり賢くなっているとは思いますけど。
——ゲームを面白くするポイントについて、詳しく説明していただけますか?
大森田:実は、AI以外の部分にもいろいろあるのですが、例えば画面分割しているところですね。『いたスト』では画面分割をしているけれど、ハードウェアを載せていないんですよ。普通はタイマーチップとかを載せるのですが、力ずくで画面分割をさせていますので、もしAIの処理が重くなると、画面分割がときどき乱れることがあるんですよ。
——ナルホド。AIのプログラムをうまく作らないと、別のところでも支障が出ちゃうんですね。
大森田:それから、荒井さんにイラストをお願いするときに「ファミコンは4色まで使えますよ」と私が言ってしまったせいで、荒井さんが背景とは違った色を1色使ってキャラを描いちゃったんです。でも、せっかく描いていただいたので、何とかして5色とも表示させたいなあと考えていました。
そこで、5色のうち一番面積の小さいところに、スプライトをパッチとして充てる方法を思い付きました。例えば、赤が最も面積が小さかったら、スプライトを使って赤を出すみたいな処理をするわけですね。ですので、イラストを元にしながら、どの色の面積が一番小さいのかを計算するプログラムを作ってあります(笑)。
ただし、スプライトの面積が大きくなった場合は、下の画面の色が足りなくなって、その分だけでスプライトを借りてくる形になってしまうので、マップの色がチラつくようになってしまいましたね。ただ、プレイヤーの目線は上側、つまりキャラクターの方を向くだろうから、多分気付かれないだろうなと思っていました。でも、後から何人かに気付かれちゃいましたけど……。まあファミコンの性能では、多少のところは目をつぶらないといけない面はありましたね。
——細かいところで、すごい工夫をされていたんですね。
大森田:画面分割をしているので、分割するところまでにすべての処理を終わらさないといけないので、まあ大変でした。時間はあったので、いろいろと凝った処理を作っていましたね。

——もしかしたら、『いたスト』のようなゲームはオンラインでプレイデータ集めるようにすればAIをさらに強くできるのではないでしょうか? あるいは、プレイヤーの傾向やクセに合わせて、CPUの強さを調整できるようになるかもしれないですね。
大森田:そうですね。『いたスト』であれば、オンラインの実装はそれほど難しくはなさそうですし、今どきのAIの作り方ができるかもしれないですね。CPUキャラの数が7人いてちょうどよかったとは思いますが、もっと人数を増やして個性を出してもありかなあとは思います。
『モノポリー』のときは、CPUキャラを30人ぐらい作りましたが、そのなかには実在のプレイヤーをモデルにした人が2人いて、いつもその2人は張り合う設定にプログラムしたら、ちゃんとゲーム内で競い合うように動いてくれたので面白かったですね。
取材・文/鴫原盛之
©ARMOR PROJECT/ KADOKAWA CORPORATION