Giter Site home page Giter Site logo

seed1482 / umaumacruisekr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from amate/umaumacruise

0.0 0.0 0.0 2.48 MB

このソフトは、自動でDMM版ウマ娘のウィンドウから、イベント選択肢の効果を知るために作られました

C++ 99.56% C 0.44%

umaumacruisekr's Introduction

ウマウマクルーズ

■はじめに

このソフトは、自動でDMM版ウマ娘のウィンドウから、イベント選択肢の効果を知るために作られました

■動作環境

・Windows10 home 64bit バージョン 20H2
※64bit版でしか動作しません

※注意
UmaUmaCruise.exeが置かれるフォルダまでのパスにunicodeが含まれていると強制終了します
例:
C:\🐎🐎Cruise\UmaUmaCruise.exe
->unicode(絵文字🐎が含まれるので)ダメ
C:\UmaUmaCruise\UmaUmaCruise.exe
-> OK!
日本語なら多分大丈夫ですが、難しい漢字が含まれていると強制終了する可能性があります

■使い方

起動した後に、[スタート]ボタンを押せば、自動的にDMM版ウマ娘のウィンドウを探し出し、イベント画面ならば選択肢の効果を表示します

予め、コンボボックスから育成ウマ娘を選択していないと、育成ウマ娘のイベントが表示されないので注意
[能力詳細]ボタンから[ウマ娘詳細]を表示すると、自動的に育成ウマ娘が選択されます

・URA予想機能について

短距離: 1/4

と表示されるとき、
"1"は実際にその距離で出場した回数
"4"は現在の日付以降に予約されているレースの回数
となります

■アンインストールの方法

レジストリも何もいじっていないので、UmaUmaCruiseフォルダ事削除すれば終わりです

■イベント誤認識/無認識の報告

もしイベントの誤認識を報告される場合は、本体の"スクリーンショット"機能を使って保存される画像を送ってもらえると助かります(できれば選択肢も写っているシーンで)
スクリーンショットは"UmaUmaCruise/screenshot" フォルダに保存されます

■免責

作者は、このソフトによって生じた如何なる損害にも、
修正や更新も、責任を負わないこととします。
使用にあたっては、自己責任でお願いします。

何かあればメールフォームか、githubのissuesにお願いします。

■使用ライブラリ・素材

library

icon

■How to build

ビルドには、Visual Studio 2019が必要です

$(SolutionDir)は、UmaCruise.sln があるフォルダのことです

・opencvの準備
https://github.com/opencv/opencv/releases
上記リンク先から opencv-4.x.x-vc14_vc15.exe をダウンロードして、適当なディレクトリにファイルを解凍してください

$(SolutionDir)opencv\x64\lib に
opencv_world451.lib
opencv_world451d.lib

$(SolutionDir)opencv\include に
opencv2 フォルダが存在する状態にしてください

・tesseractの準備
https://qiita.com/lilac0011/items/9fe6e061c3a036689a36
基本上記の記事通りで、vcpkgから導入します

vcpkg install tesseract:x64-windows-static

一部コマンドを変更して x64-windows-static と指定してください
vcpkg installが終了すると
vcpkg.exeがあるフォルダ\installed\x64-windows-static フォルダ以下に、libやincludeディレクトリが生成されているはずです

x64-windows-staticフォルダをコピーして $(SolutionDir) へペースト
コピペしたフォルダ名を "tesseract" へ変更すれば完了です
$(SolutionDir)tesseract\lib に各種ライブラリが入ってるかどうかを確認してください

・boostの準備
boost::log filesystem timer を使っているので、それぞれビルドが必要です
-Boostライブラリのビルド方法
https://boostjp.github.io/howtobuild.html
上記URLを参考にビルドしてください

コマンドライン

b2.exe install --prefix=lib64 toolset=msvc-14.2 runtime-link=static address-model=64 --with-filesystem --with-date_time --with-timer --with-log

ビルドが終了すると boostフォルダ\lib64\lib にライブラリが生成されているはずです
UmaCruiseプロパティページの VC++ ディレクトリにパスを設定します インクルードディレクトリに
boostフォルダ\lib64\include\boost-1_xx
ライブラリディレクトリに
boostフォルダ\lib64\lib
を追加してください

・WTLの準備
https://sourceforge.net/projects/wtl/files/latest/download
上記URLからファイルをダウンロードして、適当なフォルダに解凍してください
boostの時と同じように VC++ディレクトリのインクルードディレクトリに
WTL10のフォルダ\Include
のパスを追加してください

インクルードディレクトリやライブラリディレクトリはDebug/Releaseそれぞれ設定してください

以上で、ビルドの前準備は完了です
あとはビルドが正常に終わることを祈りましょう

■イベント選択肢データ(UmaMusumeLibrary.json)について

‎Gamerch様運営の"ウマ娘攻略wiki"からイベントデータを加工して、自動生成しています
URL:https://gamerch.com/umamusume/

■著作権表示

Copyright (C) 2021 amate

一連のソースコードを、個人的な利用以外に使用することを禁止します

■開発支援

https://www.kiigo.jp/disp/CSfGoodsPage_001.jsp?GOODS_NO=9

■更新履歴

v1.5
・[add] レース一覧をウィンドウ化するオプションを追加
・[add] レース一覧でレース予約機能を追加 (レースをCtrl+クリック or 右クリックメニューから"レース予約を切り替え")
・[add] 出場レースの距離からURAファイナルズの距離を推定する機能を追加
・[add] 設定に、"現在の日付が予約レースの開催日になったときに、音とウィンドウの振動で通知する"機能の追加
・[add] 設定で、"UmaMusumeLibrary.jsonの更新確認"実行時にエラー発生した時、詳細なログを記録するようにした(info.logに記録されます)
・[add] メインウィンドウのタイトルバーにソフトのバージョンを表記するようにした
・[fix] プレビューウィンドウに画像をドロップした時に、画像ファイルをロックしないようにした
・[fix] 現在の日付が巻き戻ることがあるのを修正
・[change] サポートカードからイベント検索する時の優先度を R->SR->SSR から SSR->SR->R へ変更
・[change] TextRecognizerで、イベント選択肢は、画像を2倍化するように変更
・[change] TextRecognizerで、育成ウマ娘名は、文字色抜き出しを利用するように変更
・[change] TextRecognizerで、現在の日付は、文字色抜き出しと2倍化を利用するように変更
・[add] TextRecognizerで、レース詳細からレース距離を抜き出す機能を追加
・[add] TextRecognizerで、イベント名とイベント選択肢に'?'が含まれていた場合、'?(全角)'も候補に追加するようにした
・[change] _IsEventNameIconで kBlueBackgroundThresholdの閾値を変更(緩い方へ)
・[change] kMinWhiteTextRatioThresholdの閾値を変更(緩い方へ)
・[change] RaceDataLibrary.json の "スプリンターズステークス"と"フェブラリーステークス"の表記修正
・[fix] UmaMusumeLibrary.json の "レース入賞"を"レース入着"に変更
・[fix] UmaMusumeLibrary.json でメジロマックイーンの"エキサイティングお嬢様"のイベントが抜けていたのを修正
・[add] About画面でのdebugで、kCurrentTurnBoundsと右Winキー押しながらのOCRでは、文字色抜き出し化を行うようにした

v1.4
・[fix] 古いOSで起動に失敗するバグを多分修正(テストできないので直ったかどうかは分からない) #23
・[fix] 高DPI環境でスクリーンショットの取り込み範囲がずれるのを修正 #20
・[change] About画面でのdebugでのTextFromImageをAsync化した
・[change] 選択肢/効果エディットボックスの更新はイベント名変更時のみとした
・[change] 更新間隔に処理時間も含めるようにした
・[fix] "修正"ボタンで変更した選択肢効果の改行に\r\nが入るのを\nだけが入るようにした
・[add] Async用にTesseractWrapperにGetOCRFunctionを追加(キャッシュ化したTessBaseAPIを返す)
・[change] UmaMusumeLibraryRevision.jsonに入ってた"メインストーリーイベント"をUmaMusumeLibraryMainStory.jsonへ移動させた
(本体更新時UmaMusumeLibraryRevision.jsonの上書き対策)
・[change] TextRecognizerでイベント名関連の処理をAsync化した(CPUに余裕があれば処理速度が倍ほど早くなった)
・[fix] "ウマ娘詳細"画面で、"ナイスネイチャ"が認識されなかったのを修正
・[change] 現在の日付も白背景か確認するようにした
・[fix] グラスワンダー:「譲れないこと」の選択肢が逆なのを修正 #21
・[fix] ナイスネイチャの"初詣"イベントが抜けていたのを修正
・[add] readme.md に How to buildを追加
・[fix] 一部イベントの認識改善

v1.3
・古いCPUでスタートを押すと強制終了するバグを修正(tesseractを適切にビルドするようにした)
・イベント検索で、選択肢のテキストからも検索を行うようにした
・イベント名のアイコン検出で、サポートカードイベントでもアイコン検出を行っていたのを修正
・About画面でのdebugで 左エディットに1倍、右エディットに2倍リサイズ時の結果を表示するようにした
・About画面でのdebugで、kEventNameBoundsの時アイコン検出を行うようにした
・About画面でのdebugで、Altキーを押しながらのOCRは2倍拡大処理をスキップするようにした
・About画面でのdebugで、Direct指定が機能していなかったのを修正
・About画面でのdebugで、kEventNameIconBounds時はOCRではなく、アイコン検出を行うようにした
・~.json系をUmaLibraryフォルダへ移動させた
・ctrlを押しながらスクリーンショットボタンを押した場合、プレビュー画像からIRを行うようにした(デバッグ用)
・自動検出時に OnEventNameChangedが呼ばれていたのを修正(イベント名エディットボックスにフォーカスがある時のみ処理を行うようにした)
・windows7で起動に失敗するのをおそらく修正(環境がないのでテストできない)
・ウマ娘名検出をTestBoundsが白背景の時に限定(CPU負荷対策)
・イベント名の検出を "4 グレースケール反転 + 2倍"に限定(CPU負荷対策)
・イベント名の検出のために、イベント選択肢の検出を追加("5 黒背景白文字(グレー閾値) + 2倍")
・現在の日付検出を cutImage と thresImage に限定(CPU負荷対策)
・イベント名のアイコン検出でcv::thresholdに大津二値化からkEventNameIconThreshold指定のTHRES_BINARYへ変更
・リリースビルドではwarning以上のログのみ出力するようにした
・初回起動時に設定画面でOKを押しても設定が保存されないバグを修正


v1.2
・readme.mdとAbout画面にイベントデータの取得元の出典を追加
・std::ifstreamなどにwstringを渡すようにした
・高DPI環境で動作しないのを修正 #5
・UmaUmaCruise.exeが置かれるフォルダまでのパスにunicodeが含まれていると警告ダイアログを表示するようにした
->readme.mdに詳細を記載
・ptess->Initに tessdataフォルダへのパスを渡すようにした #5
・起動時に::SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED);を実行するようにした
->高DPI対応
・根岸ステークス/Sの表記ゆれを修正 #1

v1.1
・[add] 設定に"プレビューウィンドウの更新をトレーニング画面で止める"オプションを追加
・[add] レース一覧にレース場のカラムを追加
・[fix] レース一覧更新時にちらつくのを修正
・[fix] 起動時にイベント名の検索が機能していなかったのを修正
・[fix] 特定のイベント名の選択肢が出てこなかったのを修正

v1.0
・公開

umaumacruisekr's People

Contributors

amate avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.