僕の考えた夢の声ツール(案)

ここ数日非想天則ツール界隈で騒がれている声ツールについて、改善案を考えてみた。

前提:
非使用者になんら負担を負わせず、なおかつ野良熱帯でも声ツールが使用できる形の中で最もデメリットが少ない方法を目指す。

まず、声ツールには3つの動作タイプを設ける。
* 無制限モード
* 制限付き熱帯許可モード
* 使用者同士限定モード

無制限モードの使用条件として
* サーバーに登録済みの音声パックを使用していること
を必須とし、それ以外の音声パック使用時は自動で使用者同士限定モードで動作する。

制限付き熱帯許可モードでは以下の設定が強制される
* 開始Xフレームは音が鳴らない設定をON
* 特定種類の行動で鳴る音は全て同じ音声にする設定をON
* モーション値が変わっても現在鳴っている音声が終了するまで次の音声は鳴らない設定をON

これで、一般ユーザーはサーバーから得た承認済みの公平な音声パックであるか
公平性を強制される設定かでならば野良熱帯でも使用可能で
なおかつ、一般ユーザーに不利益は一切無い形を維持できる。

次に、上記の実現方法について。

使用者同士限定モードの実現方法:
非想天則が対戦相手に接続した事を確認したら、声ツール自体が非想天則のポートに向けて非想天則にとっては無効だが声ツールにとっては意味のあるパケットを送信する。
このパケットをrawソケット(パケットキャプチャー用ソケット)で監視し、受信した場合のみ声ツールとして動作する。
非想天則にとっては無効な通信なのでそのまま破棄されて問題はおこらず、ポート開放と言った余分な手順なしで相互通信を行う事が可能。

声サーバー:
AIManagerと同じような仕組みで動作するサーバーを用意し、そこに自由に登録できる形とする。

登録済み音声パックと判別する方法:
サーバーに登録する際に全音声ファイルに対して、ハッシュ関数を使った手形を作成して記録したものを送付する。
声ツールはその手形を参照し、実際に使用するファイルに対しても同じ事を行って検証、合致した場合のみ認証済みと判断する。
また、このチェックはサーバーから手形を取得するところまで含めて定期的に行い
サーバーサイドで不正が発覚し削除された場合や、実行中にファイルが変更された場合でも早い段階で検地し動作しなくなるようにする。

不正な音声パックを排除する方法:
基本的にユーザー任せ。
具体的には、音声パックに削除申請ボタンを設置し、同IPからのでは無い削除申請が規定回数を超えたらその音声パックを削除する。
削除された場合、声ツールは定期的にサーバーに確認に来ているので、一定時間で動作を停止する。
荒し行為により正常な音声パックまで削除される可能性、もしくは大量に登録し削除を追いつかなくする行為が予想されるが
後者はIP規制、前者は良識に任せるものとする。


これだけやれば大体の問題は解決すると思うのだが、どうよ?