ニュース

学習型AI、全自動運転で「マリオカート64」のルイージサーキットを完全走破 エンジニアが冬休みを使い実験

AIがマリカー界に進出。

advertisement

 AIの進歩はとどまるところを知らない。GoogleのDeepMindによって生み出されたコンピュータ囲碁プログラムAlphaGOは進化を続けており、2016年にはストラテジーゲーム『StarCraft II』内でも研究が始まったことが告知されている。そして最近ではそのDeepMindのフレームワークを担っている人工知能のライブラリ「TensorFlow」が注目を集めている。そんなTensorFlowを使い、NINTENDO 64にて発売され爆発的なヒットを記録した『マリオカート64』内で実験を始める男が現れた。

 今回、実験をおこなったのはカナダのEコマース企業「Shopify」で働くエンジニアKevin Hughes氏。氏は冬季の休みを使って機械学習の勉強をしたいと思い立ち、TensorFlowを使った新たな実験を始めた。それが『マリオカート64』内で動く運転AIプログラムの作成だ。

 Hughes氏はまず、AIに基本的な動作を覚えさせるために、Xboxコントローラーの入力にあわせて『マリオカート64』上のスクリーンショットを記録するプログラムを生成。エミュレーター上で動く『マリオカート64』をプレイしている最中に入力をおこなえば、画面の状況と入力をひも付けて学習するという仕組みだ。Hughes氏はこのプログラムのために何度も『マリオカート64』をプレイし、AIに画面と入力の組み合わせを学習させていく。このAIはデータベースを構築していった。

advertisement

 さまざまな手段でAIを訓練させていく上でHughes氏は「訓練したAIをどのようにゲーム上で動かすか」という根本的な課題を解決しなければならなかった。まず「Python-uinput」と呼ばれるモジュールを試したがこれはエミュレーター「mupen64plus」との相性が悪く断念。しかし同エミュレーター内にあるプラグイン「mupen64plus-input-sdl」の構造を把握した氏は、今回のプログラムに合わせてプラグインを自分自身で作ってしまった。幾度もの試行錯誤を繰り返しながら、氏は最終的に、AIのプログラムをエミュレーター内にアウトプットすることに成功した。

 ついにベースとなるAIを作り上げた氏は、「ルイージサーキット」にてマリオを使い、AIの運用を始める。しかし、AIは曲がることをしようとせず、かたくなに直進を続けた。原因を探ったところ、2つの問題が確認できた。1つ目は、スクリーンショットがたびたびゲーム画面ではなくPCのデスクトップを映していたこと。2つ目は、『マリオカート64』の、カーブを曲がる時のアニメーションのぎこちなさが問題を発生させていることだ。最近のレースゲームはコーナーに差しかかった際には滑らかなカーブを描くが、マリオカート64』では、「ドリフト」を使用しなければキャラクターはぎこちなく曲がる。つまるところ、マリオが曲がっている状態であるか否かをAIが識別できていなかったということだ。この2つの問題に修正を加え、再びHughes氏は『マリオカート64』をプレイしAIに動きを学習させていった。そしてついに『マリオカート64』上で全自動走行をおこなうAIが誕生した。

 映像をみると、ほぼ全ての動作がAIの学習によって生まれたコードでおこなわれているが、キャラやコースを選ぶメニュー画面と、急旋回が必要な部分なトンネル近辺でのみ、マニュアルでのコードの修正がおこなわれている。Hughes氏は「問題が生まれた部分のコードを上書きした」と述べており、おそらくこういった部分が修正されているのだろう。そうして最終的にAIによって操縦されたマリオはコースを3周走りきる。3周ともタイムが異なるのは興味深い結果だといえるだろう。

 もっともビギナー向けのコース「ルイージサーキット」だけでなく、「マリオサーキット」にも適応させられることが確認されており、Hughes氏は「データさえ集まれば『マリオカート64』内ならばどんなコースでも全自動で走らせることができるだろう」と自信を見せている。

 ゲーム内での全自動運転といえば、『Grand Theft Auto V』でも運転AIの研究が続けられている。TensorFlowと同様にGoogleのオープンソースを使用したものから、Modder達が独自に開発しているものまで、さまざまなAI開発がおこなわれている。同じコースを周回し続ける『マリオカート64』のAIは『Grand Theft Auto V』のものほど大規模ではないものの、1人のエンジニアが短期間で運転AIを生み出すことができるのは興味深い。今回作られたAIプログラムは「TensorKart」と名付けられ、GitHubで公開されているので、ソースの内部に興味があるかたはチェックしてみてもいいだろう。

advertisement

関連リンク

Copyright (C) AUTOMATON. All Rights Reserved.

記事ランキング

  1. ザリガニが約3000匹いた池の水を、全部抜いてみたら…… 思わず腰が抜ける興味深い結果に「本当にすごい」「見ていて爽快」
  2. ズカズカ家に入ってきたぼっちの子猫→妙になれなれしいので、風呂に入れてみると…… 思わず腰を抜かす事態に「たまらんw」「この子は賢い」
  3. 「タダでもいいレベル」 ハードオフで1100円で売られていた“まさかのジャンク品”→修理すると…… 執念の復活劇に「すごすぎる」
  4. フォークに“毛糸”を巻き付けていくと…… 冬にピッタリなアイテムが完成 「とってもかわいい!」と200万再生【海外】
  5. 毛糸でフリルをたくさん編んでいくと…… ため息がもれるほどかわいい“まるで天使”なアイテムに「一目惚れしてしまいました」「うちの子に作りたい!」
  6. 餓死寸前でうなり声を上げていた野犬を保護→“6年後の姿”が大きな話題に! さらに2年後の現在を飼い主に聞いた
  7. 「申し訳なく思っております」 ミスド「個体差ディグダ」が空前の大ヒットも…… 運営が“謝罪”した理由
  8. 「懐かしい」 ハードオフで“30年前のPC”を購入→Windows 95をインストールしたら“驚きの結果”に!
  9. 鮮魚スーパーで特価品になっていたイセエビを連れ帰り、水槽に入れたら…… 想定外の結果と2日後の光景に「泣けます」「おもしろすぎ」
  10. 「釣れすぎ注意」 消波ブロック際に“カツオを巻いた仕掛け”を落としたら…… 驚きの結果に「これはオモロい!!」「こんなにとは」