ページ

2014/08/21

[lib]Vuforiaのサンプルを動かした

ARってのがある。
カメラで撮影した画像の上にキャラクターが出てくる、くらいのイメージしか無かったのだが、とにかく楽しそうだったのでやってみたいと思いつつ、早数年。
今は私もNexus7を持っているので、カメラがある。
じゃあ、そろそろやってみようか。

 

調べてすぐ出てきたのが、QualcommのVuforiaだった。
そう、あのQualcommだ。
なんであそこが?という気がしなくも無いが、ともかく自由に使えるものを提供していただけるのはありがたい。

今回の分類はAndroidにしたけど、べつにプラットフォームはAndroidだけではなく、iOSにも対応している。
そして、Unityというやつとも連携している。
3Dのゲームエンジンらしい。
そういえば、ゲームを始めるときに出てきてたなあ。

 

それはともかく、Vuforia(びゅふぉりあ?)のサンプルを動かしてみた。
https://developer.vuforia.com/resources/sample-apps/features
ここにapkファイルがあるので、インストールしてサンプルを動かしてみた。

「Image Targets」は、砂利や木のチップだけがA4くらいのPDF1ページずつに入っているファイルが提供されていて、それをカメラで見ると、その上にヤカンが3Dで表示される。
ただそれだけといえばそれだけなのだが、普通に表示されるのが非常に面白い。

私は液晶モニタに表示させた画面をNexus7で見たんだけど、スマホってこんなに性能がいいんだね。
久しぶりに会った親戚の子供が大学生くらいになっていた気分だ。

また、Vuforiaがすごいと思ったのは、その追従性だ。
下の画像は木のチップで、その中央に紫のヤカンが表示されるようになっている。
スクロールしたらどうなるんだろう?と思って動かしていくと、追従していくのだな。
そして、こんな画像がほとんど見えなくなっていても、ここら辺に中心がある、と認識しているのか、そこら辺に画像を出している。

image

 

こういうのを見ると、昔は自分にそういう技術が無くて悔しく、「もう使わない」みたいなことを思ったんだけど、私も歳を取って丸くなったのか、素直に「すごいものは使わせてもらおう」と思えるようになってきた。
なんでもできる(はず)という可能性の限界に気付いただけかもしれないが、肩の力が抜けてきた、と思うことにしよう。


いつもはNFCくらいしかやらないから、「NFCでなにしよー」みたいな煮詰まった考え方をしてしまうし、NFCでわからないことがあって検索しても、なんか自分の「わからん」記事しか出てこなくて、世の中でNFCをやってるのは自分だけなんじゃ無かろうか、みたいな怖い考えになってしまうことが良くある("NFC"で検索しても、私の記事は出てこないが。。)。

その点、ARとかVuforiaだといろんな人が扱ってるし、サンプルも多い。
つまり、仲間が多い。
そうなると、雪だるま式に仲間も増えやすくなり、使い勝手がよくなったり、「これも無償なの?」というライブラリが出てきたりする。
うらやましい限りだ。

と書いてはみたが、もしNFCがARと同じくらい人気だったら私が手を出したかというと・・・やらなかっただろう。
まあ、そういう性格なのだから、仕方が無い。
世の中にはいろいろな人がいて成り立つんだな、と思う瞬間であった。

2014/08/17

[nfc]HCEが求めるのは、NDEFではなく

夏休みの宿題パート2と言うことで、ISO/IEC 7816-4を眺めている。
宿題の提出には間に合わないなー、ということで、感想文提出だけにしておこう。

 

以前、AndroidのHCEで、NDEFを返すようなアプリを作ったことがある。
中身はあまり理解していないが、NDEFを読み取る場合はだいたいこういうアクセスのされ方をする、という手順があるので、それを想定してレスポンスを返すだけの作りだ。
簡単と言えば、簡単。

しかし、HCEに皆が求めているのはNDEFではなく、セキュアなカード独自のやり方だろう。
そうなると、NFC Forumのドキュメントだけでは足りないので、ISO/IEC 7816-4を読んで対応していくことになるだろう。
コマンドに当たるINSが39個あるが全部対応するのか?とか、一般的なやり方はあるのか?みたいなことは、ドキュメントよりもノウハウになるんじゃなかろうか。

いろいろ考えていくと、面倒ですな。
でも、自分がR/W側も含めて全部やるし、HCEのみでカードの提供はしないとかであれば、ごくごく限定のアクセスだけにしてしまえるので簡単かもしれない(セキュリティ的なところは置いておくとして)。
まあ、HCEの期待の仲には、既存のカード決済をスマホなどに移動させるというのもあるんだろうが、そういうのはそういう人に任せて。。。

そんなわけで、HCEやる、というのは、システム含めてやらないと意味が無いなと思いました。

[android]Emulatorが立ち上がらんときは、Use Host GPUをチェックするとよいかもしれん

久しぶりに、Androidのエミュレータを使うことになった。
というのも、AndroidアプリをGoogle Playにアップするためにはスクリーンショットが必要なんだけど、「電話」っていうサイズのスクリーンショットがあるからだ。
うちにはNexus7しかないため、これはきっとエミュレータで実行して撮れ、ってことなのだろうと解釈している。

 

まず最初につまずいたのは、選択するAPIバージョン。
バージョンが上の方なら何でもいいじゃろう、と思い、4.4Wを選択。
今ならわかるのだけど、Wは"Wear"のW。
立ち上がったのはいいけど、ホーム画面は出てこないしアイコンは出てこないし、なんじゃこりゃ、と思って調べてわかった次第だ。

 

その次につまずいたのが、表題。
4.4.2で作ったのだけど、立ち上げても"android"のアニメーションが始まらない。
うちのマシンは遅いから、と放置していたが、さすがに5分も動かんのはおかしい。
logcatを見ると、SurfaceFlingerが「フレームバッファがない」みたいなことを言っている。
これはうちのPCが貧弱なせいか?

そう思って調べると、Stackoverflowにあった。
http://stackoverflow.com/questions/21845358/android-emulator-cant-be-started
"Use Host GPU"にチェックを入れたら?とあったので、設定を変更しなおすと、アニメーションが出た。
そういうことなんですか。。。

 

さて、最後かどうかわからないが、まだつまずいている。
またしてもNFCを使うアプリなんだけど、onCreate()でNFCを使用できるかどうかチェックしているので、エミュレータだとまったく起動できない・・・。
チェックを外せばいいんだけど、それってスクリーンショットの偽造になるのでは?

そしてもう1つ・・・。
4.4.2でGPUを使う設定にしているとDDMSでスクリーンショットが撮れないらしい。
https://code.google.com/p/android/issues/detail?id=62284

まあ、単なるスクリーンショットだから画面キャプチャでいいんだけどね。


そんなこんなして、Google Playにアプリ置きました。
https://play.google.com/store/apps/details?id=com.blogpost.hiro99ma.flfmt

Formatと書いているが、やってるのはQuick Formatみたいなものだ。
とりあえず、MIFARE Ultralight系だったら40ブロックまでは0x00で埋めようとしているし、FeliCa Lite系だったら13ブロックまでは0x00で埋めようとしている。

それはよいのだが、アプリをインストールするときに「特に権限不要」と出てきた。
いやいや、NFCの権限はいるんですけど・・・。
アプリ情報を見ると、ちゃんと「許可」欄には出てきている。
うーん、そんなものなのか?

[nfc]ISO/IEC 7816-4とJIS X6320-4

AndroidのHCE(Host-based Card Emulation)は、アプリケーションからするとISO/IEC 7816-4という分類になっている。
勉強不足なところを言いたくはないが、ISO/IEC 14443とか7816とかのことは、かなり不勉強なことを自覚している。
正直なところ、よくわかってない、といっても過言ではなかろう。

反省して、ISO/IEC 7816の和訳でもしてみようかと思ったが・・・そもそも、無料で手に入りそうな気配がない。
ネットで検索して、それっぽい感じがするサイトのHTMLを保存して実家で翻訳していた。
・・・・なぜ保存してかと言うと、実家ではブロードバンドが通らない地域だからだ。WiMAXも山を越えると入らないので、そろそろ手数料がかかっても解約を考えているくらいだし、光はおろかADSLも届かず。
携帯電話は一応入るけど、私がテザリングできる契約にないし。
ぐちぐちぐちぐち・・・・

ともかく、ISO/IEC 7816-4っぽいサイトをダウンロードして実家で訳していたのだが、最初の方で挫折した。
英和辞典がないのだ。
もうちょっと訳せると思ったんだけどね-。

その途中でふっと思い出したのだが、JIS規格は国際標準規格を取り込んでいるものも多い。
まあ、日本工業規格なんだから、当たり前といえば当たり前なんだろうが。
7816も取り込まれているんじゃなかろうか、というよりも、取り込まれているはず!

検索できる環境に戻ってきて調べると、JIS X6320-4がそれっぽい。
それがわかったので少し読んでみたが・・・難解だ。
いや、難解なのはまだ良いとしても、私が「っぽいサイト」といっていたところの内容と違う・・・。
内容が違うというか、構成が異なるため、たぶんこれが原本に近いだろうとは思うものの確信を得ることができない。
JISを疑いたくはないのだが、この職業はすべてを疑うのが定め。

 

2014/08/16

[無駄話]LINE Creatorのステータス変更時に

image

8月3日に審査待ちになり、8月15日に審査中になった。
それはよいのだけど、ステータス変更の時ってメール来なかったっけ?
お盆だからかなぁ。