職人技

世の中機械化の時代です。高度な技術を持った職人は年々数を減らし、最近ではいよいよAI化の流れも加速しています。

さて、TAS制作においても自動化、AIの活用は可能なのでしょうか?個人的には、使いどころを考えればできなくもない、という程度だと思っています。少なくとも現状の技術では。

 

全探索の闇

実際のところ、1フレームごとに考えうるすべての入力を虱潰しに調べていけば、そのうち「完全無欠な」TASが出来上がるはずです。さて、この全探索にかかる時間的コストはどのぐらいになるのでしょうか?軽く計算してみましょう。

たとえば、GCの1人用ゲームのTASを、全探索で制作することを考えてみます。GCのコントローラーには、ABXYZとStart、十字キーの10個のボタン、2本のスティック、LRトリガーがあります。ボタン類は、1個につき押しているか、押していないかの2通りの入力パターンがあります。スティックは1本につき、X軸、Y軸とも256段階の入力が可能なため、2562 = 65536通りの入力が可能です。LRトリガーは、256段階のアナログ入力と、カチッとなるまで押しているかどうかのデジタル入力があるため、1個あたり257通りの入力が可能です。よって、1個のGCコンで1Fに可能な入力の総数は、210 * 655362 * 2572 = 290486574011908096 通りとなります。1秒に1回追記できる、つまり1秒に1個の入力を検証できると仮定すると、全部検証するのに 9204964066 年かかることになります。最初の1F目の検証が終わるより前に太陽の寿命(残り約50億年)が尽き、地球は消えてなくなってしまっています。これではとても全探索はできませんね。

参考: Masterjun's SNES Super Mario World "ends input early" in 01:33.26

マリオワールドのクッパ戦を、全探索でクリアするTASです。最初の1Fは約5分半で、次の1Fは2日で、その次は3年目には終わりますが、4F目の探索が終わるのは1491年後です。入力パターンの少ないSNESですら、現実的な時間では探索出来ないという例です。

 

機械学習の限界

全探索は非現実的であることは容易に想像できます。では、今流行りのAIを使って機械学習させれば、人間よりもはるかに高度なTASを生み出せるのでしょうか?これには次の困難が付きまといます。

  • 何世代学習すれば十分に高度な操作を得られるのか
  • 何をもって学習結果の優劣をつけるのか(評価関数の実装の難しさ)
  • 大局的な利益を優先して局所的な損失を受け入れるという判断を正確にできるのか(TASでは非常によくある問題です)

実際に機械学習によってTASを制作するという試みは行われていますが、いずれも人間の下手なプレイの域を出ないものです。これではとてもTAS制作には役に立ちません。

結局のところ

機械(コンピューター)のいいところは、決められた作業を高速に反復実行できるという点にあります。つまり、このコンピューターの長所を生かせる場面では、全探索による自動化、AIによる学習が有効です。もっともわかりやすい例が、いわゆる乱数調整でしょう。あるいは、最適な動作が数学的に計算可能であれば、わざわざ人が入力せずとも機械に丸投げすることができます。かの有名な風のタクトのSuper Swimも、目的地さえ入力してしまえばあとはbotが勝手に作ってくれます。ほかにも多くのゲームで同様の事例があります。要は適材適所ってことですね。全探索についても、ある程度入力の候補をあらかじめ絞ることができるなら、現実的な時間でそこそこの量を探索出来ます。

 

結論

人間ってすごい!!