BFVでのプレイヤー名取得ツールを作った件

このエントリーをはてなブックマークに追加

【– この記事は、2020年10月に作成したツールの紹介です

 BFVと呼ばれるゲームにおいて、サーバに参加しているユーザ名を取得するツール。 OCRで名前を取得している。
 想定使用対象者は、サーバの管理者。 BAN情報を保持しておきたいという要望に応えて、作ったツール。

背景

 BFVは、プレイヤーがゲームサーバを立ち上げることができる。

 プレイマップやチケット数などを操作できるが、「BANしたプレイヤー情報を継続的に保存できない」という問題点があった。

 そんな感じで、とあるサーバ管理をしている方の相談があり、作成した。

ダウンロード・使い方

githubのReadMeを見てください。

作成の際の小話

ソフトでやっていること

  1. ゲーム画面のスクリーンショットして、画像を作成。
  2. 画像をプレイヤーに小分けにする。
  3. 小分けした画像の色調を見やすいように変える。
  4. OCR(光学的文字認識)を使って、画像から文字を読み取る。
  5. 事前に用意してたBANリストと取得したゲーム参加者一覧を見比べて、BANユーザーがいないか判定、表示

簡単に出来たらいいと思ってしまうが

 今回、OCRという画像から文字を読み取る技術を使いました。ちょっと技術分かる人は、「もっと綺麗にどうにかできないの?」とか思われるかもしれないですが、ハッキリ言って、「技術的にはできます」。
 ですが、「ゲームを開発した会社(EA)の規約や日本の法律で、絶対にやってはいけない」ですね。

例「自動的にサーバから追い出す」

 「自動的にBANリスト該当者をサーバから追い出す」という機能を付けたいとします。確かにあったら便利ですが、この場合、「マクロやボットによる操作」ということで、アウトです。

例「画像からではなく、通信データからプレイヤー名を取り出す」

 「画像からではなく、通信データから直に取り出す」の場合は、プレイヤー名が確実に綺麗に取れるので、いいと思えてきますが。

 「パケット解析をする」ということで、アウト。本当に古いゲームだと規約でグレーラインと言われている場合もあるが、絶対にやってはいけない。開発元や第三者から怒られてもしょうがない。

例「ゲームソフト自体からデータ引っこ抜く」

 今回の話には、あまり関係ないですが、念のため言及します。

 「ゲームソフト自体からデータ引っこ抜く」の考えの場合、1つはメモリから抜く方法、もう1つがゲームファイルから抜く方法が考えつくかと思うのですが。これ、2つともアウトです。というか、これをしようと思う発想自体がヤバいです。

まとめ

 そんな訳で、ツールを作りました。本当は、ゲーム制作会社が実装すべき機能であるのですが、今回は実装はないということで、しょうがなく作った感じです。

 法律・規約に注意しながら、実装・提供しましょう

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA