ITmedia ガジェット 過去記事一覧
検索
ニュース

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

AIがマリカー界に進出。

advertisement
AUTOMATON


AI マリオカート

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

AI マリオカート

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

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

AI マリオカート

 さまざまな手段で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』内ならばどんなコースでも全自動で走らせることができるだろう」と自信を見せている。

AI マリオカート

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

関連リンク

Copyright (C) AUTOMATON. All Rights Reserved.

ページトップに戻る