もちポケ記録

ポケモンで遊んでいます。最近は対戦画面読み上げアプリを開発しています。また、下手の横好きでパーティ構築など書きます。

対戦画面読み上げの舞台裏 アイデア編

ここしばらく、ポケモン対戦の画面読み上げアプリを開発しています。たまには開発中のエモい話も記録しておこうと思います。

この記事では初版 (ver. 0.1.0) がリリースされる1ヶ月前、プロトタイプを作っていた頃までの話をしたいと思います。ポケモン対戦における情報保障の考え方は、この頃に考えていたことが今でもベースとなっています。

ゲームアクセシビリティへの興味

この開発は、ゲームアクセシビリティを研究するチームである Invisible Gaming Labo (以下、IGL) との出会いがきっかけでした。

2022年夏、本業の技術者としてつながりがあったIGLメンバーaknmさんから「全盲ポケモンファンのポケモン対戦を支援するAlexaスキルを作りたい」とお誘いをいただきました。視覚が使えなくとも同じ趣味を共有するプレイヤーが存在することに大変驚きましたし、技術者としてもその支援には大きな価値を感じました。

この開発のお題は「対戦中に相手ポケモンのタイプが分からないことがあり、視覚が使えないと対戦中に調べることが難しいので、音声ベースで手早く把握したい」というものです。例を挙げると「Alexa、ミミッキュのタイプを教えて」と聞いたら「ゴースト・フェアリー」と答えてくれる感じです。まずは私がやってみるということで、開発がスタートしました。

時を同じくして、IGLがポケモン大会を開催するということで、プレイヤーとして参加させていただきました。この大会は視覚の有無による情報格差が生じないよう工夫されており、視覚の程度のことはキレイに忘れ、対戦に熱中していました。視覚が使えないプレイヤーと一緒に遊びながら「本質的な情報格差がどこにあるのか」というテーマを考えるきっかけとなりました。

ポケモン対戦に必要な情報保障の考察

こういった経験の中で、ポケモン対戦における情報保障について考えがまとまってきました。この項ではそれをレポートするとともに、結局Alexaスキルはどうなったのかという話をします。

視覚が使えないプレイヤーのプレイ環境

視覚が使えないポケモンプレイヤーは、ポケモンの鳴き声やエフェクト音を参考に盤面把握をしています。これは簡単には真似できないすごいスキルなのですが、この記事ではそれを前提とします。つまり、音による情報識別とカーソル操作が理論上可能であるものとします。*1

加えて、視覚が使えないプレイヤーは、画面をOCRで読み取り、それを音声等に変えて把握することを日常的に行っているそうです。したがって、画面上の文字情報は把握できる可能性があります。実はOCRの評価は開発中に大きく変わることになるのですが、話が逸れるので別の記事で書きます。

さて、この条件下で視覚が使えないプレイヤーが求めている情報保障は、大きく2つに分けられそうだと考えました。

画像でしか得られない情報

一つ目は、画像でしか得られない情報です。たとえば、選出画面で相手チームを把握し、それに合わせてポケモンを選出することは対戦の基本ですが、画像しか掲載されないので、視覚情報なしで把握することは不可能です。

選出画面での相手チーム表示例。ポケモンは画像で表示され、名前はわからない。

また、相手ポケモンの残りHP割合はゲージの画像から把握することになります。これも視覚なしでは得られない情報です。相手ポケモンのHP残り割合は対面の行動判断だけでなく、ゲームプランの組み立てにおいて非常に重要ですので、ぜひ把握したい情報です。なお、味方ポケモンのHPは現在値と最大値がテキストで併記されています。

相手ポケモンの残りHP表示例。ゲージの残り割合は映像でしかわからない。

画像しかない情報は、理論的にも視覚でしか得られない情報といえそうです。加えて、私自身の対戦経験をもとに評価しても、これらの情報は対戦結果を大きく左右する極めて重要な情報だと思います。確実に支援が必要だと考えました。

獲得難易度に差がある情報

もう一つは、獲得難易度に差がある情報です。一例として、対面しているポケモンのタイプが分からないとき、それを確認する手段を考えてみます。ゲーム内で確認するならば、視覚が使えるプレイヤーは「様子を見る」画面を開いて一目で確認することができます。しかし、視覚が使えないプレイヤーは少なくともこの画面をOCRで読み取る工程が必要で、把握するまでに時間がかかります。

様子を見る画面の例。ポケモンのタイプと場の状態がテキストで、能力変化がアイコンで表示されている。

また、インターネットで調べるといった一般的な行動をとるとしても、利用できる手段が限定されている分、理論値としては見えているプレイヤーよりも時間がかかることになります。

ポケモン対戦は持ち時間の制約の中で行われますので、時間がかかる行動は採用しづらくなります。視覚の有無によって使える行動に差があることはフェアではないと思います。

多くの情報はスキルでカバーできる

さて、ポケモン対戦という競技には、対戦中の画面表示を参照しなくても把握できる情報が多いという特徴があります。これは情報保障の優先度を考えるときに重要になります。

ここまでに挙げた2つの情報支援について改めて考えてみましょう。「画像でしか得られない情報」は、対戦中の画面表示以外の確認手段がなさそうです。一方「獲得難易度に差がある情報」について実例を考えてみると、多くの場合、事前にポケモンごとの特徴を覚えたり、対戦中に盤面の情報を記憶したりすれば、同じ情報に辿り着けることが分かります。先ほど挙げた対面しているポケモンのタイプの例でいうと、そもそもそのポケモンのことを事前に知っていればよいわけです。

あくまでも理論上の話ですが、「獲得難易度に差がある情報」についてはプレイヤーのスキルアップによって代替できる可能性があります。基本的には「画像でしか得られない情報」の保障のほうが優先度が高いと考えました。*2

念のためフォローしておくと、「獲得難易度に差がある情報」の保証は切り捨てられないテーマです。スキルでカバーできる範囲での情報保障の多くは、言い換えれば対戦初心者への支援でもあります。視覚が使えないプレイヤーはスキルでカバーしなければならない範囲が非常に大きいので、アクセシブルな初心者支援の存在はとても重要です。

Alexaスキル開発の顛末

当初着手していたAlexaスキル開発は、アクセシブルな手段を用いた対戦初心者支援と位置付けることができます。なんなら視覚の有無を問わず使える想定でしたので、身近にいる対戦初心者もターゲットとなる可能性がありました。

しかし、「見えないプレイヤーと一緒に対戦する」というテーマにおいて、当時の私は映像でしか得られない情報の保障こそ実現したいと考えました。そしてAlexaスキルの開発の果てに「視覚がなくてもポケモン対戦できる」というイメージを持つことができず、残念ながら興味が薄れてしまいました。

繰り返しますが、アクセシブルな初心者支援は重要なテーマです。Alexaスキルはたまたま私の興味が続かなかっただけで、実現していれば一定の価値はあると思います。クリティカルな一手とならなくても、ちょっとした改善から視野が開けていた可能性はあります。当時開発をやめてしまったことは、今振り返ると理想主義者すぎたと思います。挑戦する方はぜひ応援したいと思います。

配信活動から得たひらめき

その後ポケモンSVが発売され、支援技術の開発は進展がないまま1年以上経過しました。一方、大会を通して知り合ったIGLメンバーうとんつゆさんの配信を視聴するようになり、その繋がりで視覚が使えないプレイヤーさんと、配信のチャットでお話したりするようになりました。この交友関係は読み上げツール開発のきっかけとなる重要な要素となります。

その間の私自身の変化として、ポケモン対戦をライブ配信するようになりました。きっかけは負けを笑って流せる環境でポケモン対戦したいとか、そんな感じだったと思います。配信頻度は極めて低いですが、今も時々やっています。

ライブ配信のコンテンツを作り込む中で、他の有名プレイヤーさんの配信を拝見し、対戦内容に応じて勝手にシーンが切り替わっていることに興味をもちました。どうやら「ぱにぱにツール」を使えば同じことができるらしいということが分かり、私自身もぱにぱにツールのユーザーになりました。

2024年5月20日深夜のこと、私はポケモン対戦配信をしておりまして、そこにいらっしゃった全盲のリスナーさんから「相手チームの並びが画像だから分からないんだよね」といった趣旨のコメントをいただきました。

「あれ?ぱにぱにツールで字幕つけられたような…」と咄嗟に思いつきました。先述の通り、相手チームの並びは視覚が使えないと絶対に知り得ない情報です。これを字幕にすることは、視覚が使えないプレイヤーの支援技術に一石を投じるとすぐに確信しました。

翌日、字幕化の検証配信を行い、リスナーさんにもスクリーンリーダーを通して字幕で相手チームを把握できることを確認していただきました。*3「これが分かるだけでも全然違う」といったリスナーさんの反応から、大きな手ごたえを得たことを覚えています。配信活動を通して得られた知識が活かされた瞬間でした。

ぱにぱにツールで相手チームのポケモンに字幕をつけた例。

ゲームアクセシビリティライブ配信

余談ですが、ポケモン以外のゲームでも、ゲーム画面から抽出した情報を配信に活用する技術を開発されている方は時々いらっしゃいます。私が知る例を挙げると、マリオカート8のゲーム配信で活躍されているシェリン・バーガンディさんが、対戦結果の集計を自動化し、インフォグラフィックとして表示する技術を開発されています。

ゲームアクセシビリティライブ配信技術は意外と関連が深い気がしています。協力するとイノベーションが生まれるかもしれません。

読み上げツールの開発へ

「相手の並びを字幕化して読み取る」という技術は既に存在するアプリの組み合わせで実現できることが分かりました。これが分かっただけでも、視覚が使えないポケモンプレイヤーのチャレンジ意欲は大きく変わるはずです。

しかし、字幕を表示してOCRで読み取るという方法は無駄が多いと感じました。字幕が表示できているということは、字幕に表示するための文字情報を得るコア技術があるということです。コア技術を拝借すれば、文字情報を直接読み上げるといった直接的な支援ができるはずだと考えました。

ぱにぱにツールで使われている要素技術およびソースコードは、有料記事で公開されています。早速記事を購入し、相手チームが表示されている画面から文字情報に変換する方法を学びました。

この時期にペーパーマリオRPGが発売されたのでつまみ食いしながらでしたが、1週間後に「相手チームの並びを認識し、棒読みちゃんで読み上げる」というプロトタイプが出来上がりました。OBS Studioからの映像抽出、画像認識、棒読みちゃんとの連携など、いずれも初めての経験でしたが、ぱにぱにツールの解説記事とソースコードを参考にしたおかげで速やかに実装できたと思います。

まとめと次回予告

今回はここまでにします。ここまでの話で特に主張したかったことは次の通りです。

  • 画像でしか得られない情報の保障に注力したこと
  • ライブ配信技術がヒントになったこと

そこまでの志で書いた記事ではありませんが、アクセシビリティの研究に少しでも貢献できればこの上ない喜びです。

この後はモニターテストがスタートして、より実践的な開発が始まっていきます。ゆっくり書きますので、よろしければまた読んでいただけると嬉しいです。この記事について気になるところがあれば、X @takosavi までご連絡ください。

*1:カーソル操作は理論上可能とは書いたものの、通信対戦中は一部の操作音が消える仕様となっており、音による操作が難しくなっています。おそらく対面での対戦時に行動を悟られないための仕様であると推察しますが、視覚が使えないプレイヤーを悩ませる要因となるので複雑な心境です。

*2:基本的にはそうなのですが、実は着手優先度の考え方はそんなに単純ではないことが分かってきて、今は少し揺らいでいます。今後の記事で書くのでお楽しみに。

*3:この検証配信を行うことはリスナーさんに連絡しませんでしたが、配信に来てくださりそうなタイミングを狙ったことをこの場で白状しておきます。