Giter Club home page Giter Club logo

goiv_jp's Introduction

GoIV 🇯🇵

GoIV 🇯🇵 は,海外のオープンソースで開発されている便利な個体値計算アプリを改造して,日本語版の Pokémon GO でも利用できるようにしています.

本家の開発元は,コチラ.活発に意見交換・開発がされていて,Pokémon GO のアップデートや新しい機種への対応も早いです.

GoIV 🇯🇵 のインストールやセットアップなど詳細については コチラ をご参照ください.

免責事項

このアプリを利用することによる,Pokémon GO アカウントの停止,個人情報等の漏洩,その他スマートフォン端末およびインターネット上や実生活上および人間関係上等のトラブル損害発生について,開発者はいっさいの責任を負いません.

動作対応環境

Android 6 以降のシステムとそれに搭載される Noto Sans フォントの認識に対応しています.

特徴

個体値の自動表示

Pokémon GO のゲームアプリからシームレスに個体値を調べることができるので,捕まえたポケモンの個体値をその場で素早く知ることができます.

さらに quick IV preview 機能を利用すると,Pokémon GO のゲームアプリで個々のポケモンを表示した直後に自動で個体値を計算して表示することができます.

ポケモンボックスがいっぱいだけど個体値がわかるまでは次のポケモンを捕まえられないとか,個体値を調べるのは時間がかかるので家に帰ってからまとめてでないと,といったプレイスタイルから解放され,コミュニティ・デイで短時間に「厳選」する際にも威力を発揮します.

高速な個体値表示

日本語の認識を最適化しているため,高速に個体値を表示します.

クリップボードに個体値をコピー

調べた個体値を自動でクリップボードにコピーできるので,ポケモンのニックネームに個体値を含めたいときや,他のアプリと結果を共有するときに便利です.また,クリップボードにコピーする内容をいろいろカスタマイズできます.

ネットに全く接続しない

インターネットを利用しないので,Pokémon GO アカウントも利用しませんし,ナイアンテックのサーバーに接続することもありません.また,個人的な情報を勝手に送信することもないでしょう.そして広告も表示しません.

その他

  • リーダー評価を自動で認識して個体値計算に反映する
  • シミュレーターでポケモンの進化や強化を事前に把握してほしのすなやアメのムダ使いを防ぐ
  • 名前を変更したポケモンの個体値も計算可能

ライセンス

本家開発元と同じく GPL 3.0 です.

更新履歴

コチラ をごらんされたし.

Special Thanks

GoIV Project

goiv_jp's People

Contributors

nahojjjen avatar blaisorblade avatar udnp avatar thearaks avatar farkam135 avatar oskomonzon avatar melvynezi avatar pperle avatar martini1 avatar andrewmcquerry avatar sarav avatar eremiell avatar nightmadness avatar harkin avatar remiscan avatar cfchen avatar danysk avatar marclandis avatar mcajben avatar jehy avatar dreckiger-dan avatar eccenux avatar ruinascimento avatar crd avatar voltaek avatar jaap-jan avatar oliverlj avatar hlplulustg avatar foxfirex avatar tripsixes avatar

Stargazers

takezou avatar izuno4t avatar

Watchers

 avatar  avatar

Forkers

nantan

goiv_jp's Issues

日本語だとイーブイの進化形ポケモンに対する認識が失敗する

PokemonNameCorrector#getPossiblePokemon() の次の箇所で判定が行われれいるが,
日本語だと if 文が true になってないっぽい.

//3. check correction for Eevee’s Evolution using it's Pokemon Type
if (guess.pokemon == null && candytext.toLowerCase().contains(pokeInfoCalculator.get(132).name.toLowerCase())) {

OCR optimization

I've worked on OCR optimization for GoIV_JP(as known as unofficial GoIV for Japanese),
because it needed not only to be replaced with OCR trained data for Japanese, but also to be improved OCR accuracy and performance, like following.

Left: GoIV_JP v0.0.8 v.s. Right: v0.0.7

quick_iv-pr974-vs-v510

Now I'm trying to optimize official GoIV, with same ways I had done for GoIV_JP.

Actually, I'm not an expert on OCR, tesseract-ocr or tess-two.
So I wish I would discuss and get more advice, questions, and know-how for this issue.

Until it has enough accuracy and performance to be replaced to current official GoIV,
I'll commit it to my ocr-improvement branch in this GoIV_JP repo.
So please check that branch's history if it is interesting.
https://github.com/udnp/GoIV_JP/tree/ocr-improvement

CP や HP の値の認識に失敗したときは Scan correction dialog を表示する

現状 v4.1.2 の時点では,
設定で [Expanded appraisal opened by default] が有効で,
且つ [Enable scan correction dialog] が無効になっていると,
CP や HP の値の認識に失敗したときでも Scan correction dialog が表示される.

CP や HP の値の認識に失敗したときは Scan correction dialog を表示して欲しい.

判別結果にポケモンの図鑑番号も表示したい/Pokedex number view in scan result

判別結果にポケモンの図鑑番号も表示したい.

自分が所有するポケモン一覧から図鑑番号で絞り込みを行いたいので,
Go IV で図鑑番号が簡単にわかるとうれしい.
いちいち web サイトなどで調べる手間を省きたい.

It is useful to be displayed the pokedex number in a scan result.

If GoIV display the pokedex number simply and quickly in a scan result,
we can filter some pokemons in our pokemon list by this number,
without switching and visiting other web site.

ニックネームに変更した「テッカニン」を識別できない

GoIV の内部データで進化系列が「ツチニン」->「テッカニン」-> 「ヌケニン」となっているが,
PoGo では現状「テッカニン」から「ヌケニン」に進化させる手段がなく,
識別の際に scan する PoGo の画面上では「テッカニン」に進化ボタンすなわち進化に必要なアメの数が表示されないことが原因と思われる.

ゲーム内で Noto フォント以外のフォントが使われると認識できない

Android M からのシステム標準フォントである Noto フォントを利用しない環境では,
OCR の認識が機能しない.

OCR の学習データが Noto フォントでしか作成されてなかったので,
ある意味当然といえばそうなんだけど...

最近の Xperia など国内の機種では Noto フォントを利用しない,
そもそも Noto フォントをシステムに入れていない,
といった環境が想像以上にあるようなので,
深刻な問題.

Pokémon GO のゲームアプリが起動しているときに GoIV を開始すると Pokémon GO のゲームアプリが固まる

既に Pokémon GO のゲームアプリが起動している状況で,
GoIV の [Start] ボタンで GoIV の cast 機能を開始すると,
または GoIV を [PAUSE] 状態から [START] 状態に変更すると,
Pokémon GO のゲームアプリが固まることがある.

Android の cast 設定で GoIV との接続を解除すると問題は発生しなくなるもよう.

判別結果のポケモンを訂正するときに進化元のアローラのすがたをリストから選択するとアプリが落ちる

例えば,ポケモン「アローラのすがたのベトベトン」に対して,
訂正ダイアログで「アローラのすがたのベトベター」を進化系列リストから選択すると,
次の exception で落ちる.

06-27 09:12:19.951 14642-14642/nagoya.sawdagger.pogoiv.nointernet.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: nagoya.sawdagger.pogoiv.nointernet.debug, PID: 14642
    java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
        at java.util.ArrayList.get(ArrayList.java:411)
        at com.kamron.pogoiv.Pokefly.initPokemonSpinnerIfNeeded(Pokefly.java:1632)
        at com.kamron.pogoiv.Pokefly.populateAdvancedInformation(Pokefly.java:1442)
        at com.kamron.pogoiv.Pokefly.populateResultsBox(Pokefly.java:1282)
        at com.kamron.pogoiv.Pokefly.checkIv(Pokefly.java:1053)
        at com.kamron.pogoiv.Pokefly_ViewBinding$12.doClick(Pokefly_ViewBinding.java:226)
        at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
        at android.view.View.performClick(View.java:5685)
        at android.view.View$PerformClick.run(View.java:22481)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:241)
        at android.app.ActivityThread.main(ActivityThread.java:6274)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

開発メンバー募集

本家の GoIV を CJK 言語に対応させて Google Playstore でも CJK 言語に対応した GoIV を配信できたらと活動していますが,
英語とその他欧州言語のいわゆる Latin 言語系の開発メンバーや関係者に圧されがちなので,
一緒に開発してくれるメンバーを募集します.

なお趣味開発の範囲で活動してますので,報酬はありません.
その上で参加に際する必要な条件はありませんが,
次の点で得意なものがあり開発を一緒に (あるいは私よりも) ひっぱってくださる方や,
これらのことを OSS の活動を通してゼロからでも身につけたい方の参加を歓迎します.

年齢および性別は問いませんが,
ポケモンGoで遊ぶのが好きな方なら自分で動くものを作る楽しさが実感できてより楽しいでしょう.

  • 英語
  • 日本語
  • **語
  • スペイン語
  • Android アプリの開発および翻訳
  • Java
  • Git
  • OCR/tesseract-ocr/tess-two
  • OpenCV(画像処理)
  • テスト
  • 自動化
  • 90年代の日本のバンド音楽

興味のある方は,この issue に github の id でご記入ください.

ニックネームに変更した「タマンタ」を識別できない

「タマンタ(Mantyke)」の evolutionCandyCost の値が更新されていなかった.

--- a/app/src/main/res/values/integers.xml
+++ b/app/src/main/res/values/integers.xml
@@ -2446,7 +2446,7 @@
  <item>-1</item> <!--Carnivine-->
  <item>50</item> <!--Finneon-->
  <item>-1</item> <!--Lumineon-->
- <item>-1</item> <!--Mantyke-->
+ <item>50</item> <!--Mantyke-->
  <item>50</item> <!--Snover-->
  <item>-1</item> <!--Abomasnow-->
  <item>-1</item> <!--Weavile-->

個体値の判別結果に,種族値を合わせた値も表示したい

種族値がわかるとポケモン全体の強さのポジションがわかってバトルを有利に行なえる.
現状,種族値は覚えてなければネットでその都度調べている.

clipboard にコピーする値として種族値を合わせた値をセットするものが既に提供されてるので,
それを利用すれば実現はできそう.

UI をどうするかのほうが課題.

「カラカラ」の識別に失敗する

名前を変更していない (名前が『カラカラ』のままの) 「カラカラ」の識別に失敗する.

java.text.Normalizer..normalize() を適用したポケモン名の文字列が,
「カラカラ」の進化先である「ガラガラ」の文字列も カラカラ になるため,
そちらに誤識別されてしまう.

ひらがな入力でもポケモン名の auto complete をしてほしい

OCR の結果が正しくない場合にポケモン名を編集する text box では,
入力に対して auto complete が提供される.

日本語でもカタカナが入力された時点で auto complete が提供されるが,
IME ではひらがなを入力してカタカナに変換する順になるので,
最初にひらがなを入力した時点で auto complete が提供されると,
ポケモン名をひらがなからカタカナにいちいち変換する手間が省ける.

なおアルファベットでは大文字小文字区別なく auto complete が提供される.

「ニドラン♂」の認識に必ず失敗する。

OcrHelper#getPokemonNameFromImg()OcrHelper#getPokemonNameFromImg() 内に、
「ニドラン」を示す英語名がハードコードされている。
これを日本語名に変更すると、認識できるようになる。

HP 値の認識に失敗する

HP 値が80 代の値の場合によく失敗する.
ログに出すと 83 と誤認識しているようだ.

数字の認識は次にある方法で英語の OCR データで行わせている.
#2 (comment)

リーダーの評価セリフが Android システムアクションバーの領域で隠れてしまい認識できない

ユーザーの環境で発生している問題.

ゲーム側がフルスクリーン (Immersive mode) で表示されているときに,
GoIV の activity が overlay で表示されるとフルスクリーンが解除され,
Android システムの back ボタンとかが配置されるエリアが表示されることで,
ゲーム側の最下部で表示されていたリーダーの評価セリフがそのエリアで隠されてしまい,
リーダーの評価セリフを認識できなくなる問題.

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.