トレジャーハントアプリ の変更点

お名前:

#author("2018-05-28T20:20:27+09:00","default:editor","editor")
#author("2018-05-28T21:48:58+09:00;2018-05-28T20:20:27+09:00","default:editor","editor")
*これはなに? [#t397a3ef]

毎年恒例、製錬祭に併設される「トレジャーハント」のあれ。~
Webサービスはあちこちにありますけど、「画面見て、それをタイピング」って面倒くさくないですか?

なにかうまい手がないかと考えていたのですが、Wiz的イベントと違ってチャット文字列にならないので、チャットテキストから拾うことができませんでした。~
そこで思い切って、ROの画像から直接文字認識してみます。

トレジャーハントだけじゃなく、これもときどき発生する「数字計算」にも対応しています。



#divregion(お約束的な。,tstyle:h1)
本質的に、本プログラムは「単体動作する画像文字認識のプログラム」です。~
対象は「RO」に限定していませんし、そのプログラムに対してなにか働きかけることはありません。テキストエディタであれ、Webであれ、
とにかく「画面内に表示され・人間が視覚で把握できる文字列」を対象として動作し、その結果をこのアプリ上に表示するだけです。~

-「ROクライアントが普通に公開する情報(画面表示)のみ」を利用しています。~
--ROクライアントが扱う「直接プレイヤーに参照できない」情報、例えばメモリ内のデータ構造やネットワーク通信にはアクセスしていません。
-処理結果は、本アプリ上で表示するだけです。
--「ROクライアントに対してなんらかの操作を行う」ことはありません。
--キャラクターの動作等にも影響を与えることはありません。

以上から、「Gunghoのいう不正ツール」にはあたらないと主張します。
#enddivregion

*百聞は一見に如かず。 [#wb4d2200]

起動するじゃろ。~
&ref(ROTR_1.png,nolink,起動画面);

「OCR位置」タブで「移動」「サイズ変更」を選ぶじゃろ。~
&ref(ROTR_2.png,nolink,認識位置設定画面);

PC全体画面の左上あたりに「グレーの半透明ウィンドウ」ができるから、それを「移動」&「サイズ変更」して、ROクライアントの「認識したい位置」に重ねるじゃろ。~
#これは最初に一度やったら「ロック」して、もう動かさなくていいぞ。~
&ref(ROTR_3.png,nolink,こんな感じでもやっと重ねて。);
&ref(winset.png,nolink,トレジャーハントでは2行分しっかり。);

そしたらアプリの「暗号解読」画面で「読取」すれば、答え一発じゃ!~
&ref(ROTR_4.png,nolink,ドーン!);

**で、OCRは精度問題もあるので。 [#lf4a276a]

-読み取り範囲は「少し大きめに余白とる」感じにするのがいいです。
-読み取り失敗しても、何度か「読取」すると拾えたりすることもあります。
--汚れやつぶれに対応するために、内部的に OCR前の画像に多少の変動を与えるようにしているためです。
-アプリのテキスト表示部分は、直接入力・編集できます。~
入力後「修正」ボタンを押せば、画像読み取りせずにテキストエリアの入力値から直接解析します。~
(Webアプリでよくあるものと同じ感覚で使える、ってことです)


*ダウンロード [#kc260144]
本プログラムのOCRには、Windows標準でサポートされている Windows.Media.Ocr を利用しています。~
これはCPUによってライブラリが異なるため、それに合わせたモジュールが必要です。
-64bit版
--[[ROTR_015.zip>http://tomose.dynalias.net/RO/?plugin=attach&pcmd=open&file=ROTR_105.zip&refer=%A5%C8%A5%EC%A5%B8%A5%E3%A1%BC%A5%CF%A5%F3%A5%C8%A5%A2%A5%D7%A5%EA]]

32bit版は現状対応していません。
//-32bit用ライブラリ(動作未確認)
//--上記共通ライブラリに含まれている OCR.dll をこちらのものに置き換えてください
//--[[OCR.dll>http://tomose.dynalias.net/RO/index.php?plugin=attach&pcmd=open&file=OCR.dll&refer=%A5%C8%A5%EC%A5%B8%A5%E3%A1%BC%A5%CF%A5%F3%A5%C8%A5%A2%A5%D7%A5%EA]]

**Ver1.05での変更点 [#ld9f8744]
-認識に失敗した場合に、内部的に数回リトライする仕組みを組み込みました。これにより、ユーザが「認識失敗/No match.」を見る確率が低下しています。
-「ぬふあうえ」アルゴリズムにおいて、OCR結果に「ゅ」のような小さい文字が含まれている場合に、それを「ゆ」のような大きな文字と同じように解釈するメカニズムの追加。
-「ぬふあうえ」アルゴリズムにおいて、2行目以降のガイダンスに含まれている「ぬふあうえ」を認識してしまった場合にもそれを(ある程度)破棄できるように変更。
-地図座標の最大値を設定することで、その範囲を飛び出してしまうような判定結果を「失敗」として扱う処理追加。
--Optionタグ内にサイズ指定があるので、任意に設定してください。~
2018年度の場合400x400 にしておけばよいです。

**Ver1.04での変更点 [#bbf46a05]
-OCRエンジンの初期化におけるエラー処理の強化
-新規インストール時、mapdataディレクトリの作成に失敗していた点の修正
-OCR判定の順番変更。猫顔文字・ローマ数字を優先するようにしました。
--これは暫定仕様です。

**Ver1.03での変更点 [#ze7e029a]
-2018年度トレジャーハント用の「猫顔」暗号用のプラグイン追加。
-ROの表示に合わせて、OCR処理のカスタマイズ実施

**Ver1.02での変更点 [#a4599730]
-CA連携機能実装
--CA==ChatAnalyzerについては[[こちら>ChatAnalyzer]]。
**Ver1.01 での変更点 [#aa67ef5a]
-OCRした結果や四則演算結果を、クリップボードに出力するオプションを追加しました。
--これによって例えば「スタンプラリーでの計算」に対して『ROTRの認識ボタンを押す』→『ROクライアントの入力エリアにカーソルを合わせて Shift+Insert』で回答できます。


----
ご意見などがあれば。
#comment2(below)