#オーバーウォッチのマッチング長すぎん....?
Overwatchというゲームが僕は大好きですが,ここ最近異様にマッチングが長いです
10分越えなんてざらです
マッチング長いし洗濯でもしてるか...
なんてことすると,いつの間にか強制退出くらってます
##ということでマッチングしたらスマホに通知をもらおう
まず,おおまかな仕組みはこんな感じです
ミソはマッチの検出とお知らせ方法です
##マッチ検出
おばっちはマッチが始まるとかっこいいBGMと相手味方のメンバーが表示されます
おばっちから直接データをいただくことはできないので(カプセル化させているので)
このBGMか画面の違いを取得することでマッチ検出を行おうと思います
###BGM
音声認識使おうか?
でもcloud speechは無料で一時間までしか使えんしなぁ
やめた
###画面遷移
マッチ後の画面学習させてYOLOかなんかで認識しようかなぁ
でも学習させるのめんどいし(マッチング画面はマップによって異なる)
認識率が心配....
ん?
マップによらず共通なのはマッチ前の画面の文字だけだよな?
[検索中....]←これ
これ認識させて検出できなかったらマッチ始まったってことでいいんじゃね?
##マッチ検出実装
文字の認識にはOCRを使いました
画像から文字を取り出してくれます
C# OCRとググれば先人たちが輝かしいソースを残してくれているのでこれを使いましょう
Microsoft.VisualBasic.Interaction.AppActivate("Overwatch");
SendKeys.SendWait("{PRTSC}");
#ここに先人のコードを入れる→pageという名の変数で帰ってくる
if(page.GetText().Contains("検索中")) {
処理
}
####追記
microsoft OCRなるものを最近知りましたので
そちらを使ったものに近日中に編集します
##お知らせ方法
IFTTTです
iPhoneで受け取ろうと思います
1.スマホでiftttのアプリを入れましょう
2.Webhooksからurlで送信できるトリガーを取得しましょう
3.スマホの通知を選択しましょう
4.取得したurlを使ってプログラムを編集しましょう
DateTime dt = DateTime.Now;
string result = dt.ToString("yyyy/MM/dd HH:mm:ss");
string lnk = "https://maker.ifttt.com/trigger/match/with/key/#########/?value1=" + result;
System.Diagnostics.Process.Start(lnk);
こんな感じです
日時を含めているのはtwitterでもつぶやこうと思ったので
同じ内容の送信をブロックする機能の対策として追加してます
今のところ
検出の誤作動は,ないです
100発100中です
おかげさまでお風呂に入りながらでも,ダッシュで駆けつけることができるようになりました
###おしまい
###追記
なんかぐぐったらDiscordの機能かなんかで同じようなのあって草
ちなみにコードは大事なとこ以外かなり端折ってます
###追記2
端折った内容の1部を説明しておきます(半年以上前の制作物なので記憶違いがある場合があるので悪しからず)
開発環境はvisual studio 2017 expressで
wpfアプリケーションとなっております
適当なボタンイベントを登録して
イベントの動作として上記のプログラムが実装されています
tessarct-ocrは学習データが必要です
このアプリケーションの場合は実行ファイルと同じ階層に学習データを配置する必要があります。
itfffに関してはurlを持ってくるだけなのでそこまで難しくは無いです。また参考にできる記事も多々あります
以上。