撃沈した

やる気ではなく想定漏れで。

Rawソケットによる非想天則のポートただ乗りというのは
非想天則が立っているならばポートは開いているのだから送信自体は可能なことを利用して
非想天則に向けて無害な通信を行い、それをパケットキャプチャー経由で受信し通信することで
ポートを開けることなくお互いの存在を知る事が出来る、というもの。

だがこの話はクラ専の存在をすっかり考慮に入れていなかったわけで
クラ専はポートが開いていない=どうあってもクラ専の人は受信できない、というオチ。
一応非想天則の動作に介入すれば出来るのだが、それはAIと同じ理由により却下。

なので、素直にサーバー経由でなんとかすることに。
こうしてまた奇抜すぎて使い所がないコードが手元に増えたのであった、まる。

宣言

非公開ブログでも効果はあるのかは知らない。

* 非想天則のポートただ乗り&Rawソケット方式の実装実験

当初の予定通りこれで。
OSごとの挙動差が大きいからできればWin7とVistaでも試したいのだが
もってないのでXPだけ動いたら満足する事にする。

職業病の進行度合い

自分は職業プログラマーで、同時に自称解析屋でもあります。
なので、電子機器上で動くものは内部でどのように実装されているかをボンヤリとではあっても常に考えながら使っています。

そのせいか、一時期は作品に集中できなかったり、作品の良さとは関係の無いところのボロが気になってしまったりと楽しめなくなった事もあるのですが
それも時と共に変わるもので、今やそういったことは完全に無意識になり、集中できなかったり気になることは無くなって楽しめるように。

いや、今でも他の人から見るとそれで楽しいのか?という面も多いようですが
単純に楽しみ方が一つ増えたような扱いなので別に問題なし。

職業病で楽しめなくなっただとか、趣味を仕事にしたら楽しめなくなっただとか
そういった気持ちは導入時にかかる一時的なコストで、そこさえ抜ければ別に変わらないに違いない。

そんなしょうも無いことを職場で考えてブログまで書いちゃっている阿呆なのでした。

土日の予定

久しぶりに開発の宣言でもして見ますかね。

* 非想天則のポートただ乗り&Rawソケット方式の実装実験
* AIを元にした音声ツールの作成
* VoiceManagerの作成

たぶん一番上が終わったら上々だと思う。
おそらくやる気続かないだろうし。

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

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

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

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

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

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

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

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

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

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

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

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


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