盤面画像解析と大規模言語モデルを用いたリアルタイムオセロ実況
学部4年次の卒業研究では、実物のオセロを遊んでいる最中に、まるで隣にいる友人のように実況コメントをしてくれるAIシステムを制作しました。以下の動画が、本システムのプロトタイプになります。
この研究で目指したのは、強い手を教えてくれるAIや、正確に盤面を解説してくれるAIではありません。プレイヤー同士の間に入り、場を少し盛り上げたり、会話のきっかけを生んだりする「ムードメーカー」としてのAIです。
USBカメラで実物のオセロ盤を認識し、新しい手が置かれたことを検出すると、LLMがその局面に応じた実況コメントを生成します。生成されたコメントは音声で再生され、プレイヤーはAIの実況を聞きながらゲームを進めます。
制作したプロトタイプを用いたデザイン探索では、参加した学生6人全員からシステムに対して肯定的な評価を得ました。そして、感情・思考・コミュニケーションの面に対して間接的にポジティブな影響があったことを確認しました。
本記事では、この研究に取り組んだ背景、制作したシステム、実装上の工夫、実際に体験してもらって見えたことについて詳しく紹介します。
目次
制作の背景
AIが隣から口を挟んできたら面白いのではないか
このプロジェクトは、「ボードゲームで遊んでいるときに、AIが隣から口を挟んできたら面白いのではないだろうか」という発想から始まりました。
ゲームをしているとき、必ずしも勝つことや上達することだけが目的ではありません。友人と雑談しながら遊んだり、なんとなく場が盛り上がったりすることも、遊びの大切な要素です。
特にボードゲームでは、ゲームそのものの面白さに加えて、一緒にテーブルを囲む人との会話や空気感が体験をつくっています。そこで私は、AIを「正解を教えてくれるコーチ」としてではなく、場に参加して雰囲気をつくる「ムードメーカー」のような存在として設計できないかと考えました。
観客向けの実況を、プレイヤー自身の体験に応用する
その具体的な形として考えたのが、プレイヤー自身に向けて実況を行うAIです。
実況は本来、スポーツ中継やゲーム配信のように、観客に向けて行われるものです。試合の状況を伝えたり、盛り上がるポイントを言語化したりすることで、観戦体験を豊かにする役割を持っています。
一方で、実際にプレイしている本人たちに対して実況が行われる場面は、あまり多くありません。しかし、自分たちが遊んでいるゲームにも実況がついたら、プレイ中の感情や会話は少し変わるのではないかと考えました。
たとえば、「今の手は攻めたね」「ここからどうなるんだろう」「じわじわ流れが変わってきた」といった一言があるだけで、プレイヤーがより楽しめるようになるかもしれません。AIのコメントが正確な解説でなくても、それが話題のきっかけになったり、場の空気を少し動かしたりする可能性があります。
そこで本研究では、実況を観客向けのものとしてだけではなく、プレイヤー自身の体験を変えるものとして捉え直しました。
GUIではなく、実物のボードゲームを対象にした理由
この体験を検討するうえで、画面上のゲームではなく、実物のボードゲームを対象にしました。
GUI上のゲームでは、操作や情報提示が画面内に集約されます。一方で、実物のボードゲームでは、プレイヤー同士が同じテーブルを囲み、石を置く手の動きや相手の反応を共有しながら遊びます。
TUIは、操作効率の面で必ずしもGUIより優れているとは限りません。しかし、楽しさや興味を引く力、協働参加を促す力といった体験的な側面では強みがあります。
今回評価したかったのは、AIによってプレイが効率化されるかどうかではなく、AI実況という新しい存在が場に入ることで、プレイヤーの感情や会話、関係性がどう変わるのかです。そのため、実物を囲んで遊ぶテーブルトップ型のボードゲームの方が、体験の変化を観察しやすいと考えました。
なぜオセロを選んだのか
題材には、実物のオセロを選びました。オセロは多くの人にとって親しみがあり、ルールも比較的わかりやすいゲームです。囲碁・チェス・将棋のように高度な専門知識がなくても、誰でも気軽に遊ぶことができます。
また、囲碁・チェス・将棋ほどゲームの構造が複雑ではないため、システムの制作負担を抑えやすいと考えました。今回の研究では、強いゲームAIを作ることよりも、AI実況によってプレイヤーの体験がどう変化するのかを評価することを重視しています。そのため、オセロはゲームの複雑さによってシステムの実装に時間を取られることなく、体験価値の検討に集中しやすいオセロは適した題材でした。
さらに、オセロは石を置く、挟む、ひっくり返すという変化が視覚的にわかりやすく、一手ごとに状況が変化します。そのため、AIがコメントを挟むタイミングを作りやすく、プレイヤーが「今の一手に対して実況された」と感じやすい点も、この研究に向いていると考えました。
LLMで、小規模な試合や個人の遊びにも実況を届ける
自然言語処理の分野では、囲碁やチェスのように大規模な棋譜や解説データがあるゲームに比べて、オセロ実況はあまり題材にされてきませんでした。オセロ実況に特化した大規模なデータセットを用意することも簡単ではありません。そこで本研究では、オセロ実況用のデータセットを新たに作るのではなく、事前に学習されたLLMを利用して実況コメントを生成しました。
これにより、実況は大きな大会だけのものではなく、草野球のような小規模な試合や、詰将棋のような個人の遊びにも広がっていくかもしれません。本研究は、そうした未来に向けて、目の前のテーブルで起きている身近な遊びにも、AIによって実況という演出を加えられるのではないかと考えた試みです。
制作したシステム
システムの概要
制作したシステムは、実物のオセロ盤をカメラで認識し、プレイヤーの着手を検出したうえで、LLMがその局面に応じた実況コメントを生成し、音声として再生するものです。
大きく分けると、システムは以下の流れで動作します。
- USBカメラで実物のオセロ盤を撮影する
- 盤面状態を認識し、黒石・白石・空きマスを判定する
- プレイヤーの着手を検出する
- 着手前後の盤面情報から合法手や評価値を計算する
- 局面に応じたプロンプトをLLMへ送信する
- 生成された実況コメントを音声で再生する
このように、画像解析、ゲーム状態の分析、LLMによるコメント生成、音声再生を組み合わせることで、実物のオセロを遊びながらAI実況を聞ける体験を制作しました。
盤面の認識と着手検出
実物のボードゲームを対象にするため、まずUSBカメラでオセロ盤を撮影し、取得した映像から盤面の四隅を指定します。その情報をもとに盤面を正方形に補正し、8×8のマスに分割します。各マスの色や明度をもとに、黒石・白石・空きマスを判定しました。
また、実物のボードゲームでは、プレイヤーの手が盤面上に入るため、石を置いている途中の状態を誤って認識してしまう可能性があります。そこで、肌色抽出による手検出を行い、手が盤面上にある間は盤面状態の確定を一時的に止めるようにしました。
さらに、オセロでは1回の着手につき石が1枚増えるというルールがあります。この性質を利用し、手の出入りの前後に石の総数が1枚増えていた場合のみ、新しい手が打たれたと判断します。これにより、「手を伸ばしただけ」「置こうとしてやめた」といった動作と、実際の着手を区別しました。
LLMに送信するプロンプトの工夫
LLMに送信するプロンプトでは、単に盤面を説明させるのではなく、場を盛り上げる実況者のようなコメント生成するに指示しました。
本システムでは、合法手や評価値を内部情報として扱っていますが、それらをそのままプレイヤーに提示することは目的にしていません。「この手が正解です」「次はここに置くべきです」といった助言になりすぎると、プレイヤーの判断を直接誘導してしまうためです。
そこで、評価値は参考情報として与えつつも、コメント本文には具体的な数値を含めないように指示しました。AIには局面をある程度理解させながらも、出力は分析ではなく、感情的な実況として聞こえるように調整しています。
また、通常手・パス・終局で専用のプロンプトを用意し、それぞれの場面に合ったコメントを生成できるようにしました。通常手では一手へのリアクション、パスでは手番の変化、終局では勝敗を踏まえた締めくくりを意識しています。
さらに、序盤・中盤・終盤によってコメントの内容のトーンも変えました。序盤では断定を避けて期待感を出し、中盤では攻防の盛り上がりを、終盤では勝敗に向かう緊張感を強めるような表現にしています。
このように、「正確な解説」よりも「対局を盛り上げること」を重視して、プロンプトを設計しました。
プレイヤー向けGUIと管理者向けGUI
システムには、管理者向けGUIとプレイヤー向けGUIを用意しました。
管理者向けGUIでは、盤面の認識結果、ログ、LLMへの入力、生成結果、評価値の推移などを確認できます。これは、実験中にシステムが正しく動いているかを確認するための画面です。以下の画像が管理者向けGUIになります。
一方で、プレイヤー向けGUIには、内部の評価値や解析情報は表示しません。プレイヤーに見せるのは、「生成中」「コメント再生中」「次の手を打ってください」といった状態表示と、生成されたコメントのみです。
LLMによるコメント生成には、数秒程度のラグが発生します。そのため、何も表示されないままだと、プレイヤーはシステムが止まっているように感じてしまいます。そこで、生成中であることを明示し、システムがしっかりと動いていることをプレイヤーに伝えられるようなUIを作成しました。以下の画像がプレイヤー向けGUIになります。
実況生成のタイミングをどう設計したか
開発の初期段階では、次に打たれる可能性のあるすべての手に対して、あらかじめコメントを生成しておく「先読みモード」を制作していました。これは、実際に手が置かれた瞬間に、すでに用意されたコメントをすぐ再生できるようにするためです。以下の図が「先読みモード」の概観です。
しかし、実際に比較してみると、先読みモードは生成にかかる負担が大きいことがわかりました。
先読みモードでは、総コメント手数が530手、コメント総文字数が21,971文字となり、生成にかかった総時間は878.922秒でした。一方で、手が置かれてからその手に対するコメントを生成する「着手後モード」では、総コメント手数は60手、コメント総文字数は2,490文字、生成にかかった総時間は286.254秒でした。
1手あたりの平均文字数はどちらも約41.5文字でしたが、先読みモードでは生成される文字数が約9倍になり、生成にかかる総時間も約3倍になっていました。
この結果から、あらかじめ全候補手のコメントを生成しておくよりも、実際に手が置かれてから、その一手に対してコメントを生成する方が、システム全体として扱いやすいと判断しました。
そのため最終的には、手が置かれてから実況を生成する「着手後モード」を採用しました。コメント再生までに数秒の待ち時間は発生しますが、生成するコメントを必要な一手に絞ることで、無駄な生成を減らし、よりシンプルな構成で体験を成立させることを重視しました。
実際に体験してもらって見えたこと
どのように体験してもらったか
制作したシステムの体験価値や課題を探るため、6名の学生に実際に体験してもらうデザイン探索を実施しました。参加者には二人一組でオセロをプレイしてもらい、まずシステムなしで1ゲーム、その後システムありで1ゲームを行いました。
システムありの条件では、一手ごとにAIが生成した実況コメントを再生し、参加者にはそのコメントを聞いてから次の手を打ってもらいました。プレイ後には、ゲーム体験の変化、コメントの印象、生成までの待ち時間、本システムがあった方が良いかどうかについて、半構造化インタビューを行いました。
なお、この調査はシステムの効果を厳密に測定するものではなく、AI実況がプレイ体験にどのような変化をもたらすのかを探索するための初期的な取り組みとして実施しました。
体験してもらって得られた反応
全体として、参加者からは好意的な反応が多く得られました。「楽しかった」「面白かった」「二人だけでやるより良い」といった意見があり、AIの実況がプレイ体験を良い方向に変化させていることがわかりました。
感情面では、「褒められたい」「怒られそう」といった発言がプレイ中に見られました。AIのコメントが、単なる情報ではなく、プレイヤーの期待感や緊張感を引き出していたのだと思います。また、「応援されている感じがした」という意見もあり、AIの発話がオセロで遊ぶときの精神的な支えとして受け取られる場面もありました。
思考面では、「一手一手にフィードバックがあることが新鮮だった」「絶妙なヒントになった」「しっかり考えるきっかけになった」といった意見がありました。コメントがプレイヤーの意思決定を直接誘導するというよりも、自分の着手を振り返ったり、「次はどう打とうか」と深く考えたりするきっかけになっていました。
コミュニケーション面では、「沈黙が埋まった」「AIにツッコむことで二人のコミュニケーションが良くなった」といった意見がありました。AIのコメントが話題のきっかけになり、プレイヤー同士の会話を促していた点は、このシステムらしい効果だったと感じています。
一方で、課題も見えてきました。たとえば、自分の考えていたことをAIに言語化されることで「ネタバレ」のように感じる参加者もいました。また、コメント生成までには平均して5〜6秒程度の待ち時間があり、「少し長い」と感じる人もいれば、「考える時間になる」と前向きに受け止める人もいました。
利用意向については、参加者6名全員が「システムはあったほうが良い」と回答しました。ただし、友人との練習やカジュアルな対局では良い一方で、真剣勝負ではない方が良いという意見もありました。使う場面や目的に応じて、AIの話し方や介入の強さを変えられると、より自然な体験になると感じました。
デザイン探索を通して考えたこと
今回のデザイン探索を通して、AI実況は単なる情報提示ではなく、プレイの場そのものに影響を与える存在になり得ると感じました。
印象的だったのは、AIのコメントが感情・思考・コミュニケーションの3つの側面に作用していたことです。コメントによって期待感や緊張感が生まれ、自分の手を振り返るきっかけになり、さらにAIへのツッコミを通じてプレイヤー同士の会話も生まれていました。
一方で、AIがどの程度まで踏み込んでコメントするべきかは、今後の重要な課題だと感じました。コメントが深く踏み込みすぎると「ネタバレ」になりますが、それによって相手が危ない状況に気づいて対応することで、ゲームが盛り上がる場合もあります。つまり、ネタバレは単純に悪いものではなく、AIの介入の強さや表現をどう設計するかの問題だと考えています。
また、コメント生成までの待ち時間も、プレイスタイルによって受け取られ方が異なります。テンポよく遊びたい人にとっては長く感じられる一方で、じっくり考えたい人にとっては自然な間として受け取られる場合もありました。
さらに、コメントの正確性についても考えさせられました。実際、不自然な表現や少しズレたコメントが、プレイヤーのツッコミや会話を生む場面もありました。
もちろん、局面から大きく外れたコメントは避ける必要があります。しかし、多少の不完全さがあっても、それが感情の動きや会話のきっかけになるのであれば、ムードメーカーとしてのAIには一定の意味があるのではないかと考えています。
この研究から見えた可能性と今後の展望
AIがムードを変える可能性
この研究を通して、AIは単に正しい情報を提示するだけでなく、人と人の間に入り、場の雰囲気を変える存在にもなり得ると感じました。
今回制作したシステムは、オセロの最善手を教えるためのAIではありません。むしろ、一手ごとにコメントすることで、プレイヤーが少し緊張したり、自分の手を振り返ったり、相手と会話するきっかけが生まれたりするAIです。
特に印象的だったのは、コメントの正確さだけが体験価値を決めるわけではないということです。もちろん、局面から大きく外れたコメントは避ける必要があります。しかし、少し不自然な言い回しや違和感のあるコメントが、かえってプレイヤーのツッコミや会話を生む場面もありました。
この経験から、AIを「解説者」や「コーチ」としてだけでなく、場を盛り上げる「ムードメーカー」として設計する可能性を感じました。
今後取り組みたいこと
一方で、この研究はまだ探索的な段階です。参加者の人数や属性は限られており、インタビューもメモベースで行ったため、得られた結果をそのまま一般化することはできません。
今後は、より多様な参加者に体験してもらい、AI実況が感情・思考・コミュニケーションに与える影響を、定性的にも定量的にも検証していきたいです。
また、AIの話し方や介入の強さを切り替えられるようにすることも重要だと感じました。たとえば、友人同士で楽しく遊ぶときは少し賑やかに、真剣勝負では控えめに、初心者向けには少しヒントを多めにするなど、遊ぶ状況に応じてAIの関わり方を変えられると、より自然な体験になると考えています。
さらに、コメント生成までの待ち時間や、同じ表現の繰り返し、専門的すぎる表現なども改善していきたい点です。AIがどの程度まで踏み込むと「面白い介入」になり、どこからが「ネタバレ」や「邪魔」になるのかも、今後さらに考えていきたいです。
この研究は、完成されたプロダクトというよりも、AIが人と人の間に入ることで、遊びの体験がどう変わるのかを探る試みでした。今後も、AIを便利な道具としてだけでなく、人の体験や関係性に関わる存在として考えていきたいです。
学びと振り返り
この研究で特に印象に残っているのは、システムを作ること以上に、研究の方向性を定めることの難しさでした。
当初は、「オセロで遊んでいるときに、AIが隣から口を挟んできたら面白いのではないか」という発想から始まりました。しかし開発を進める中で、AIのコメントにはどれくらいの正確性が必要なのか、盛り上げ役として振る舞うべきなのか、それとも少しアドバイスをする存在にするべきなのか、かなり悩みました。
中間発表や途中で体験してもらった際には、「感情的なアドバイザーとしても面白そう」という意見もありました。その影響もあり、一時期は、プレイヤーが石を置こうとした瞬間に「えー、そこ!?」のように反応する機能も検討していました。この機能であれば、「隣から友人のように口を挟んでくる」という発想と、「プレイヤーに少し助言するアドバイザー」という役割を両立できるのではないかと考えたためです。しかし、その方向に広げるほど、当初目指していた「実況」や「盛り上げ役」としての役割が少しずつ曖昧になっていきました。最終的には、AIが一手ごとにコメントする体験に絞ることで、研究の軸を整理しました。
結果的には、追加機能を増やすよりも、AIが一手ごとにコメントするというシンプルな体験に絞り、実際に遊んでもらうことを優先しました。そのことで、「場を盛り上げるムードメーカー」という方向性が明確になったと思います。
振り返ると、仮説的なコンセプトから始まった研究では、早い段階で最小限の体験を作り、実際にユーザーに触ってもらうことが重要だったと感じています。完成度を上げることや機能を増やすことに時間を使いすぎる前に、まず体験してもらい、その反応から方向性を絞るべきだったというのが、この研究から得た大きな学びです。
関連リンク
本プロジェクトのGitHubページです。システムのディレクトリ構成、実装内容、今後の改善点などはREADMEにまとめています。コードや構成に興味を持っていただけた方は、こちらもご覧ください。