ぷよぷよの対戦動画を解析し,ぷよ譜(棋譜)を自動生成するプログラムを作っているので紹介します.まだ実用できる段階ではなく道半ばですが,ひと段落したので記事にしておきます.
ぷよ譜の認識・生成プログラムは過去にも例があります.しかし,連鎖・キャラクターなどのエフェクトに対応した画像認識を備え,ファジー含めた全手順の認識を試みた例は初めてではないかと思います.
認識サンプル
live さんの動画(
https://www.youtube.com/watch?v=MV6yKInShCA )をお借りして,手順を生成したサンプルが以下のスプレッドシートです.全て 1P 側の手順です.
https://docs.google.com/spreadsheets/d/1kFmE7RKEiqGKzOXpTobKSJ6evZa3RwjyWj1HGKSDC4Q/edit#gid=0
次項で述べるように,いくつかのマッチで認識に失敗しています.特に,確定していないファジーは適当な置き方になっていますのでご注意ください.この認識結果を手順研究などに利用するのは現状では難しいと思います.
課題
まだ不完全な部分があるため,認識に失敗しているぷよ譜も多くあります.
判明している範囲では,たとえば:
- 13 段目に落ちたおじゃまぷよが関与する手順に失敗する
- 1 度に落下したおじゃまぷよが複数回にわけて認識される
- 画面上部での高速な操作がまれに認識できない
- 背景によってマッチ終了が認識できない
- 確定していないファジーが適当な置き方になる(確定したら問題なくなる)
などの問題があります.
生成したぷよ譜ひとつひとつ確認していくのは手間なので概算になりますが,おそらく 5~10% 程度の試合で認識に失敗しているようです.
今後について
ここまで実装するのに半年もかかってしまったので一旦休憩します.認識精度が向上すれば,プレイヤーの統計をとったり,リアルタイムに連鎖解析を表示させたりすることができるようになると思うのでご期待ください.個人的には AI を作りたいです.