頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


iOSアプリ「わざタイプ相性表」ver1.0.6が審査通過

iOSアプリ「わざタイプ相性表」というポケモンGOでわざとタイプの相性を調べるアプリのアップデート版の申請が通過した。
実は結構ほったらかしで久々にポケモンのデータを追加した。
フーパ(ときはなたれしすがた)まである。
表示した例↓

わざタイプ相性表のスクショ


おまけ1
申請時にデータを追加しただけなのに
Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing
での違反でリジェクトされてしまった。
例のトラッキング許可うんぬんの話だ。アプリは無料でAdMobの広告を表示しているのでそれ相応のデータを収集する、とApp Store Connectで入力したのにアプリが全く対応していなかったのだ。

App Tracking Transparency | Apple Developer Documentation
iOS14でエンジニアがすべきIDFA対応 - Qiita
↑この辺りを参考に修正して申請したら通過した。


おまけ2
今回は申請してすぐセルフリジェクト、その後再度申請してリジェクト、さらに修正して申請→通過、という流れだったんだけど、ずっとバージョンの番号は1.0.6でやってた。
知ってる人には当たり前なんだろうが、実は今までリジェクトされたら番号を変えて申請してた。
でも試しに同じ番号でarchiveしてuploadするとApp Store Connectで

App Store Connectの画面

↑このように別物として表示されてた。あー、別に番号変える必要なかったんだな、と気付いた次第。


iPhoneのLiDARスキャナで撮影したものをボクセル化するiOSアプリVoxel Drafterをリリース

Voxel Drafterの概要画像

iPhone 12 Proなどに搭載されているLiDARスキャナを使用し、撮影したものの形状を取り込み、ボクセル化するiOSアプリをリリースしました。
↓アプリはこちら。
Voxel Drafter

ボクセル化したオブジェクト、以降ボクセルオブジェクトとしますが、このボクセルオブジェクトを作成するのにLiDARスキャナを使わずにobjファイルや画像をインポートする方法もあります。

作成したボクセルオブジェクトをマインクラフトで作成するためにドラフトモード(断面図を表示します)やmcfunctionファイルを出力するモードもあります。
またobjファイルで出力もできますのでBlenderなどの3Dエディターで編集も可能です。

説明動画をいくつか作ったのでどうぞ見てください。

Voxel Drafterでカメラを使ってボクセルオブジェクトを作成する方法


Voxel Drafterでボクセルオブジェクトを作成する方法


Voxel DrafterのData outputモードの使い方


Voxel DrafterのDraftモードを使ってマインクラフトで建築する方法




iOSアプリ、ポケモンGO用「わざタイプ相性表」をリリース

pokegochart_iconR.png
わざタイプ相性表

ポケモンGOに登場するポケモンたちの、わざとポケモンのタイプの相性を調べるアプリです。
レイドバトルでレイドボスに有効なわざを確認したり、GOバトルリーグで「XXXが出てきた時、どのポケモンに交代すれば有利だったのか?」など復習できます。
ポケモンGOで実装されていないポケモンのデータはありません。随時追加していきますので反映されるまで時間がかかります。
このアプリはポケモンGOの一ファンが作成したもので、公式なものではありません。


スクリーンショット

↑アップしたアプリの説明文、スクショがこんな感じ。

アプリ名に「ポケモンGO」という文字列を入れられないのはAppleの規約に従ってる。実際入ってるのがApp Storeには並んでいるのだが、これは審査する人によるんだろう。前のアプリ(個体値カメラ)で「for ポケモンGO」の文字列を入れて申請しリジェクトされてるので、再度やったら何されるかわからない(アカウント剥奪が怖い)ので、今回は大人しく最初からタイトルには「for ポケモンGO」は入れてない。けどアプリ内での表示やlaunch screenには入れてる。


一昨日の夕方に申請し、今朝4時頃に審査開始、通過してた。このアプリは日本語版のみなので審査の時間ってどうなるのかと思ってたがいつも通り朝起きたら審査が終わってた、というパターンだった。


申請直前の段階で最新のデータを入れたにもかかわらず、今朝いきなりポケモンGOにメガシンカが実装され、近所のジムでメガカメックスがレイドに登場してた、、、なるべく早くデータ更新版を申請せねば。


今回のアプリ、当初はGOバトルリーグでリアルタイムで対戦してる時に使えるように、相手のポケモンや自分のチームのポケモンの交代を音声でできるように開発してた。
ところがiOSで使える本家の音声認識(SFSpeechRecognizer等による)はポケモンの名前を聞かせてもそれに近い日本語を探すようになっていた。
なので「カイリキー!」と言っても「怪力」という文字列が返ってくるのだ。
それでは「怪力」だったら「カイリキー」と変換するようにやってみようと、自分の発声で返ってきた単語を片っ端からリストアップし、

変換例

↑こんな感じで変換を実装していたが、、、あまりにもキリがない。音声だけでポケモンを特定するのは無理筋だな、と思い撤退。
ポケモンの選択は普通にキーボードで手入力とし、対戦後に復習したい時に使えるような感じにまとめた。


可能なら英語版も、と思ったもののポケモン名やわざの名称を得られる信頼できそうなサイトが見つからず結局日本語版のみになった。


アプリはportraitでもlandscapeでも可能で、レイアウト切り替えやアニメーション時の移動などはほぼAutoLayoutの制約を書き直してる。だいぶ自分の中では使い慣れてきたなあ、と感じてきたが時代はSwiftUIですか、そうですか、、、


iOSアプリ「個体値カメラ」をリリースしました(ポケモンGO用)

個体値カメラのアイコン
個体値カメラ
↑リリースしました。

このアプリを使うには
ポケモンGOアプリが入っているiOSデバイスと
このアプリを入れた別のiOSデバイス
の2台が必要です。



↑このようにポケモンGOアプリで個体値を表すグラフを表示させ、それをこのアプリのカメラを通して見るとARっぽく個体値(%)を表示します。
当アプリの画面をタップすると画像を保存します。



↑保存した画像はこのようにまとめて見ることができます。


※権利に配慮し動画内ではポケモンGOアプリの画面にはボカシを入れていますが、アプリではそのまま表示されます


ARKitの画像トラッキングにおける画像平面の初期姿勢

ARKitの画像トラッキング(ARImageTrackingConfigurationを使うやつね)で対象の画像を見つけた場合に得られるARAnchorオブジェクト。それをanchorとするとanchor.transformでその位置・姿勢を得ることができる。

これをつかってごにょごにょ(※1)する時なんかにあれ?と思ったのはこのtransformがmatrix_identity_float4x4の状態にはこの平面はx-z平面にある、ということ。
x-y平面にあるものと思ってコード書いててなんかうまくいかねえ?となり気付いたんだが。
ちなみにMDLMeshのnewPlane(withDimensions:segments:geometryType:allocator:)で作成する平面はx-y平面に作成される。うー、なんかややこしいのう。


※1 ↓こういうのをやってたのです。





Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.