ラベル android の投稿を表示しています。 すべての投稿を表示
ラベル android の投稿を表示しています。 すべての投稿を表示

2016年12月28日水曜日

ELECOM VRグラス P-VRG03 シリーズのレビュー【スマホ用 VR ゴーグル】

メガネ着用可でピント調節、レンズ間隔調節も可能な一見するとまさに理想的な VR ゴーグルなのですが、使ってみて気がついたことがあるので、まとめてみました。

※公式には、眼鏡を装着した状態での使用はできない、となっているので眼鏡によっては合わないかもしれません。

ダンボール製 VR メガネとは一線を画する雰囲気w

お値段は約3,000円。
正直、2,000円以下で同程度のスペックをもつ VR ゴーグルやメガネもあるので多少お高いと言わざるを得ません。
しかし、店頭で使い比べてみると、目の幅や視力に合わせて調節できる機能、小ぶりな眼鏡なら着用可能なスペース、しっかりとホールドされるスマホ、そして広角で歪みの少ない大型のレンズ、とやはりハコスコや Cardboard のような安価なメガネタイプとは一線を画する使いやすさを感じたので購入してみました。

なかなか充実した機能!
[クリックで拡大]
箱の中身は全部でこんな感じ。

本体と取説(ペライチ)と黒いのは遮光シート
そして特筆すべきはこの底上げ力!( ゚∀゚)

箱の約半分は底上げですw
なんでこんなことしたんでしょうか……
まだ下に何か入ってるのかと期待してしまいましたよ。

まぁ冗談はさておき、いざ実際に使い始めたところ、ある重要な欠点に気が付きました!
それは……





セットしたスマホが操作できねー(爆)





おーまいがぁー、店頭では取っ替え引っ替えしていたので気が付きませんでしたが、一度セットすると画面をタッチするすべがありません;
ハコスコのようにタッチ用の穴が開いてるわけでも、Cardboard のようにマグネット式のボタンがついてるわけでもありません。
そのため、例えば動画を見ようとした場合……
  1. ゴーグルにスマホを仮乗せ(まだ固定しない)
  2. 動画の再生ポチィー
  3. 急いでスマホを固定
  4. さらに急いでヘッドにマウント
という手順になりますナンダコレ。

これだと視点合わせで決定する機能を持つアプリしか快適に使用できません。
それ以外の点には満足しているだけに、この欠点は大きすぎます。

つまりエレコムさん的には、こいつも一緒に買っとけよ!っということなのでしょう。



オノレ ELECOM ハメヤガッタナ(泣)
まぁ買う前に気が付けって話ですね。

ちなみに上記商品、iPhone では動画の再生とか停止のコントロールくらいしかできないのでご注意ください。
android 使っててお金に余裕のある方は買ったらいいんじゃないっすかねハナホジ。

とりあえず、私は本体に穴開けてタッチできる仕組みを組み込めないか思案中ですw
もし成功したら追記します。期待しないでください。

[2017年8月8日いまさら追記]
穴あけではありませんが、android 端末であれば USB 変換アダプターを利用してマウスをつなげれば大方の問題は解決します。
USB 変換アダプターは百均でも売っているので、安価に解決したい方にはおすすめです。

↓こういうやつね。

[追記ここまで]

今回ご紹介した商品はこちら。この記事から買うやついないだろうけどな!



Cardboard やハコスコなどのビューア設定を初期状態に戻す方法

Cardboard はビューア(VR ゴーグル)の QRコードを読み込むだけで設定できるので便利なのですが、『やっぱり最初の状態に戻したい』なんてことも少なくありません。私はw

しかし困ったことにデフォルト(初期状態)に戻す方法が Cardboard には用意されていないようです。
まー、まだ Cardboard 程度なら一度消して再インストールすれば初期化できますが、YouTube アプリなどは面倒くさくてそうもいきません。

そこで初期化用のプロファイル QRコードを用意してみました。
iPhone 5系(s c SE)が対象ですが、iPhone 6 Pro でも最初に近い状態に戻りました。
android などでも利用できるかもしれません。

Unofficial Default for iPhone5

なお、目分量で初期状態を再現したものにすぎないため、完璧に初期化されるわけではないのでご注意ください。

2016年12月26日月曜日

iPhone で VR (YouTube・Cardboard )がずれる場合の対処法(android もOK)

最初 iPhone5s でこんな感じ↓に表示され、おいおいズレまくりやないかーい!と思い、色々と解決方法を探ってみました。

キツネさんがおらん……

ビューア(VR ゴーグル)で見ても映像が二重に見えてしまうという方は、以下の方法を試してみてください。

解決策その1:ビューアの QR コードを利用する

あまりにも基本的なことなので、スマホで VR やりたいとか思う人には説明不要かと思いますが、Google Cardboard の仕様に準拠しているビューアなら取説とか本体とかに設定用の QR コードがあるはずなので、そいつを YouTube やら Cardboard やらのアプリ内の設定(歯車マーク)の「ビューアを切り替える」から読み込ませることで、そのビューアに合わせた表示になってくれます。ふつうはw

こんな感じのやつネ

つーか「こんなことで解決するなら検索しねーよ」という方がほとんどでしょうからサッサと次の考えられる原因とその解決法に進みましょう。

なお、そもそも QR コードなんてない、もしくは無くした、という場合は、このページが便利です。

HYPERGRID BUSINESS の VR ヘッドセット QR コード一覧ページ

オフィシャルからアンオフィシャルな QR コードまで色々あるので、頑張っていい感じのを見つけ出せばいいと思います。
すげーたくさんあるけどがんばれ。

ちなみに、日本で最も広く利用されているであろうハコスコにはオフィシャルな QR コードはないので注意。
つーか、なんでないの?用意しとこうよ。

参考:
Cardboard やハコスコのビューア設定を初期状態に戻す方法

解決策その2:慣れるwww

いや真面目な話、これで解決する場合も多いです。
映像が二重に見えてしまうのは単に目が慣れていない(遠くを見ようとしていない)ことが原因であることも少なくありません。

とは言え、人によっては本当に合っていない場合もあるので、少し慣らしてみたけどやっぱ改善しないという方は、次の方法をお試しください。

補足:
実は冒頭のキツネさん画像も異常にズレているわけではないのです。
ビューアを通すことで↓下図のように見えるのです。


構造上、有効に利用できる画面の範囲は意外と狭く、特に iPhone5 などの画面が小さいスマホほど、この問題はより顕著になります。

解決策その3:自分に合った QRコード(プロファイル)を作成する

正直最も確実でおすすめな方法は、これだと思います。
メーカーが用意した QR コードはあくまで、そのビューアと推奨するスマホでいい具合に見える平均的な設定を行なってくれるだけで、個人の視力や瞳の間隔やらは考慮してくれません。

全部中心で揃ってるのが理想
たとえビューアにレンズ間隔やピント調節機能が付いていても、画面表示もそれに合わせて変更されなければ最適な環境にはできないのです。


そこで、自分にあった設定を記録した QR コードを作成する必要があります。
といっても特に難しいことはありません。
PC ブラウザで下記URLにアクセスし、スマホの画面を見ながら設定するだけです。

ビューア プロフィール生成ツール(え い ご w)

このサイトでは、左右の映像の位置や画角の調整、レンズの歪みの修正などをおこなうことができ、その設定を QR コードとして出力することができます。
つまり自分用のプロファイルの QR コードが作成できます。

極端な変更例ですが、中心点や画角、歪みの修正をおこなうとこんな感じ
どちらも角に視点を合わせていますが、これだけの違いが出ます。
ただしこのプロファイルが有効なのは Google Cardboard SDK を利用して制作されたアプリのみなので注意です。(まぁたいていのアプリはこれ使ってます)

ビューア プロフィール生成ツールの使い方

一見難しそうですが、やってみると簡単です。英語わからなくたってOKです。

1.まずは PC ブラウザでページにアクセス!

スマホじゃだめだよ PC だよ。え?PC ない?m9(^Д^)プギャー

2.今度はスマホでそのページにある QR コード読んでページにアクセス!

なんとこれだけで PC 側で設定変更するとスマホ側で表示の変化を即確認できるようになります!
※スマホを横向きにすると、表示を確認できるようになります。
※早ければ1秒程度で反映されますが、遅い時は数十秒かかります。

なお、もしかしたらこの時にスマホの PPI を入れろとメッセージが出るかもしれません。
お手元のスマホの PPI をググって入力してください。(数値だけ入れればOK)

iPhone の PPI は以下のとおりです。
iPhone 5 326 ppi iPhone 6 326 ppi iPhone 7 326 ppi
iPhone 5c 326 ppi iPhone 6 Plus 401 ppi iPhone 7 Plus 401 ppi
iPhone 5s 326 ppi iPhone 6s 326 ppi
iPhone SE 326 ppi iPhone 6s Plus 401 ppi

3.PC ページの下の方に、色々な設定項目があるので、いい感じにいじるw

Your Company ホントはメーカー名を入れるとこだけど、作者名でも入れておけばいいと思うよ。
ちなみに未記入でも OK です。
Viewer Name ビューアの名前。っていうかプロファイルの名前。
これは分かりやすい名前を入力しておくことをおすすめします。
Primary button type ビューアにどんなタッチ操作機能がついているかを選択します。
None:タッチ操作できない
Touch:指で画面に触れられる
Indirect Touch:マウスとかコントローラでタッチ操作できる
Magnet:Cardboard のように磁石式のボタンがある
Screen to lens distance (mm) 画面とレンズの間の平均距離。
画角などにも影響するので、正確な距離を入力してもいいけど、好みで調整してもいいと思う。
Inter-lens distance (mm) レンズの間隔。ビューア側でも調節できるなら自分の瞳の間隔。
疲れやすさ酔いやすさにも影響するので超絶重要!
だいたい子供は55mmくらいからで大人は65mmという人もいる。
ビューアを覗いて調整する時は、必ず遠くを見る感覚で両目の赤い点が重なるよう調整すること。
寄り目の状態で調整しても意味ないので注意!
Screen vertical alignment ビューアにスマホが、垂直方向にどう装着されるかを選択。
Bottom:下にそろえて装着
Center:まんなかに合わせて装着
Top:上部に合わせて装着
Center を選択しがちだが、多くのビューアは Bottom で作られているぞ。
つまりこういうことだ↓


しかしできるだけ画面は大きく使いたいもの。
特に画面の小さいスマホでは、装着しにくさを犠牲にしてでも画面を最大限に利用できる Center を選択するのもあり!
Tray to lens-center distance (mm) Bottom か Top を選択すると出てくる項目。
ガイドからレンズの中心までの距離を入れるところだけど、これは実際にビューアを覗いて真正面に赤い点が来るように調整するのがベストでしょう。
Distortion coefficients レンズの歪みを調整できるよ。
これも実際にビューアを覗いて調整することをおすすめします。
できるだけ垂直線がまっすぐになるよう調整しましょう。
なお、k1、k2 ともに 0.00 には設定できないので注意!
Advanced viewer parameters クリックすると以下の詳細設定項目が開きます。
 Field-of-view angles 上下左右の視野角を調整できます。
通常 50°以上にするようですが、好みで設定していいと思います。
 Viewer contains some embedded magnets. 磁石式のボタンを搭載しているならチェックボックスを ON にします。
これはアプリに磁石の影響を受ける磁力計を使わないように指示するためです。

入力内容に問題がなければ「Generate profile」ボタンが押せるようになるので押しませう。
すると QR コードが作成されるので、ダウンロードして利用しましょう。
(一度きりではなくアプリごとに読む場合もあるので必ず保存しておきましょう)

慣れれば簡単なのですが、Google さんはもう少し手軽に個人向けな設定変更ができる仕組みを用意すべきだったのではないかと思いますね。

2016年3月7日月曜日

ANE でアプリ内課金(In App Purchase)を Flash CC (Animate CC) で導入する手順

はいはいFlashは死にましたね。そーですね。
(とか書いてる間に Adobe Animate CC になったよ)
おかげで2016年にもなるとANEの使い方すら見つけ難い始末ですよ。
あっても Flash Builder での使い方とかばっかで意味わからんワー。
ってなわけで、自分で書きます。

■ やりたいこと
AIR for android で作ったアプリに課金機能を追加してジャブジャブ課金してもらう。

■ 使ったソフト
・ Adobe Flash Professional CC 2015

■ あまり参考にしてはいけないページ
Adobe AIR 用ネイティブ拡張の使用
http://help.adobe.com/ja_JP/air/build/WS597e5dadb9cc1e0253f7d2fc1311b491071-8000.html
「ANEの使い方」などと検索するといまだに上位に出てくるけど、一部の情報が古く既に不要となった手順なども含まれているという公式マニュアルとは思えないページ。

■ 一般的な ANE の使い方手順
1)ANE ファイルを用意する
GitHub とかから落とすなりなんなりする。

2)FlashでさっきのANEを登録。
1、2、3で完了だ。


3)ActionScript でなんやかんやする。
まともなマニュアルやリファレンスが用意されてる ANE なんてこの世に存在しないけど頑張れ!

4)AIR でパブリッシュ!
おわり。
うわチョー簡単!上記公式マニュアルのクソっぷりが際立つ!

ただし、利用する ANE によっては上記以外に、なんたら-app.xml への追記なども行う必要があるぞ。
あと、ANE は AIR じゃないと使えないからパブリッシュのターゲットは AIR のやつを選ぼう。
Flash Player とのマルチプラットフォームの場合は条件付きコンパイルとか使ってコードも実行されないようにしないとダメだぞ。

■ 試してみた ANE
いずれも2016年1月時点でダウンロードしたものを使用。

・ Freshplanet の ANE-In-App-Purchase
おそらく最も利用されているであろう有名な ANE なので、当然動くものと思い実装してみるもパブリッシュ時にエラーを吐血する始末。
フォーラムでも同症状の人が質問しているが、もー3ヶ月ぐらい経ってるけど現時点でも回答なし。
自己解決はあきらめて次へ進んだ。

・ StudioPixMix の ANE-InAppPurchase
ちょっと試してみた ANE。
驚いたことにどうやらライセンスキー(パブリックキー)を設定する手段がないという ANE なので完全に使い物にならない。
これをもとに自分で作れる人向けなのか?それにしてはリファレンスまで用意してるのが謎…;

・ pozirk の AndroidInAppPurchase
Android のみ。ANE と swc のハイブリッドw

今回は消去法で pozirk の AndroidInAppPurchase を使用することに決定。
もーこの時点で不安しかない。

■ 具体的に実装手順
1)AndroidInAppPurchase のページから一式ダウンロードする。
https://github.com/pozirk/AndroidInAppPurchase
「Download ZIP」から落とせるよ。探せ。

2)必要なファイルをコピーする。
比較的親切な readme.md の指示に従い
「InAppPurchase.ane」と
「air\InAppPurchase\bin\InAppPurchase.swc」をflaファイルと同じ場所にコピー。
フォルダ構成は無視して2つともファイルだけ直に置けばOKだ。
それ以外はゴミだ捨てろ。

3)FlashでさっきのANEを登録。
上記の「1、2、3で完了だ」を2つ分やる。

4)なんたら-app.xml にアプリ内課金の権限(パーミッション)を追加。
権限の設定は「AIR for Android 設定」の「権限」タブでできるが、残念ながら課金権限のチェックボックスは用意されていない。
つまり自分で xml に追記する必要がある。
一度でもパブリッシュしていれば xml も勝手に生成されているはずなので、それを利用するが、その前に「権限」タブで「アプリケーション記述ファイルへの権限およびマニュフェストの追加を主導で管理します」にチェックを入れておかないと、毎回追記するはめになる。
ちなみにチェックを入れても権限とマニュフェスト周辺以外は引き続き更新してくれるので、毎回バージョンを書きなおすとかはしなくてもOKだ!

んで、追記する場所は <manifestAdditions> のなかということだけれど、具体的には…
<uses-permission android:name="android.permission.INTERNET"/>
とかの次でいいんじゃね?てきとーてきとー。
え?そんなのどこにもない?しるか!「権限」タブでチェック入れとけや!

んでそこに↓を追記する。
<uses-permission android:name="com.android.vending.BILLING" />
<application android:enabled="true">
<activity android:name="com.pozirk.payment.BillingActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:background="#30000000" />
</application>
あと <extensions> に <extensionID> を追加する必要があるけど、これは自動的におこなわれるはず。

5)ActionScript を書く!
ありがたいことに readme.md に例が記述されているので参考にする。

[サンプル準備中]

6)テストする
当たり前だけど Flash のプレビューとかでは Google アカウントと紐付いていないからエラーが出てテストにはならないよ。
実機でテストしませう。
ただし、開発者アカウントでインストールすると「出版社はこのアイテムを購入できません。」とかいうネイティブな日本語エラーが返ってくるだけなので、別のアカウントを使わないとテストにならない。
で、その別アカもテストユーザーとして登録しておかないと、ベータ版テストだろうと容赦なく課金されるので注意だ。
ちゃんとデベロッパーコンソールの「設定」>「アカウントの詳細」>「ライセンス テスト」でメアドを登録しておきませう。(2016年3月現在)
さすれば数時間後には効果が発揮され、テス垢で購入しようとすると「これはテスト用の注文です。課金は発生しません。」というメッセージが表示されるようになって課金テストし放題になるでござる。

7)公開する!
そして現実は甘くないことを実感するがいい!

2015年1月22日木曜日

Stencyl で Android アプリ作成のメモ

Windows 版 Stencyl 3.2 時点でのメモです。(無課金)
Android 向け以外のことも書いてます。

GUI 上で設定した日本語テキストは表示できない

あら不思議、Stencyl は Android アプリにすると、ビヘイビアの text とか list とか map なんかで入力しておいた日本語が表示されなくなります。

ただし何故かスクリプトからであれば使用できます。
つまり set [text] to [attribute] というように、スクリプト上で設定すればOK。
ビヘイビアやアクターのカスタマイズとかの画面で入力した日本語は表示されないので注意。

なお、Flash 書き出しなら、何の問題もなく出力されます。

GUI でビヘイビアのテキスト属性値を設定すと、表示できない文字がある

それは「<」「>」「”」「&」です。「&lt;」などとエンティティ化しやがった上でそのまま表示しやがります。

ただしこちらもスクリプトからであれば使用できます。
なので、スクリプト上で「replace “&lt;” with “<" in [text]」とかすれば解決はします。 また、Flash であれば問題なく表示されます。 ちなみに 1byte フォントで該当する位置にある文字は使用できないことになります。(位置はフォントによる)

フォントの「Import Font from Image」機能がへん

この問題は Stencyl 上で発生します。
なんかこの機能はまともに動作しないです。
(ワークスペースフォルダ内のファイルを直に書き換えたりしないとダメ)

show alert with title ブロックは使えるよ。

もちろん日本語は使えないがな!
ちなみにスクリプト上で「\u3042」という感じに文字コードで入力したらコンパイルが止まらなくなったゾ☆

AdMob Extension は利用できない?!

Setting にて AdMob Extension を利用可能な状態にするだけで、Compiling が中断してしまう。
英語圏では特に問題になっていないようなので、私の環境限定なのかは分かりませんが、とにかくダメになりやがります。
Stencyl 自体をクリーンインストールしなおすと直るかもしれないらしいです。
標準の Monetization 機能使えということか?!

App Name に日本語は使えない

全角が含まれていると Compiling が終わらない。
運良く終わってもアプリ名が文字化けする。

Scale Mode でスケール変更するようにしていると WebViews の位置がズレる

100%で表示されるなら問題ないと思われますが、拡大縮小されるとその分 WebViews の位置がズレます。
No Scaling にして Scale 1x、1.5x…で対応するようにすればOK。

Enable Debug Drawing が有効なのは Box2D の時だけ

この問題は Android に限りません。Flash でも発生します。
また、Collision Group で何かしらのグループの Region を ON にすると書き出し時にエラーが出ます。
さらに動的に create region したい時は、Created イベントなどで作らないと、生成されるのに反応しない region ができる。(例えば Enter Screen イベント時で作っても反応しない)

シーンでアクターのカスタマイズをすると本家の値も変更される場合がある

この問題は Stencyl 上で発生します。
List 形式の Attributes でよくなります。
本家の編集画面を開いていると回避できるような…

Attribute の Internal Name を変更したら一旦セーブしてからゲームを閉じた方がいい

この問題は Stencyl 上で発生します。
でないと null がぁーってエラー出るだけで参照できません。

アプリ終了するには、以下のスクリプトで安定か?!

Import で、
import nme.Lib;
をインポートして、必要な箇所で
#if android
nme.Lib.exit();
#end
とすればOKかな。
ほかにも
import nme.system.System;
nme.system.System.exit(1);
という案もあるようだが、こちらでは完全に終了されない様子。

「trigger event」にテキストは渡せない

この問題は Android に限りません。Flash でも発生します。
テキストの Attribute はムリなご様子。
「trigger event [text] in behavior [text] for [actor]」とかを使いませう。

2011年12月29日木曜日

キーストア(keystore)の作り方について

android アプリを配布するには、そのアプリが署名されていなければダメなので、その方法をメモ。

署名のやり方は簡単で、まず自己証明書を用意し、それを使ってアプリに署名すればいいだけのようです。

で、その自己証明書を用意するには JDK に付属している keytool というユーティリティを利用するのですが、証明書単体を作るのではなく、証明書と鍵がセットになったキーストア(keystore)を作ります。

※ちょっと上記のキーストアや鍵・証明書などに関する認識が怪しいかもしれません。
キーストアや keytool に関する詳細は↓のサイトをご覧ください。
keytool - 鍵と証明書の管理ツール

では、そのキーストアの作り方ですが、DOS窓で以下のようなコマンドを実行するだけです。
keytool -genkey -v -keystore [ファイル名] -alias [証明書の名称] -validity [有効日数]
  • -genkey 鍵のペアを生成するコマンド。 (結果的にキーストアができる)
  • -v このオプションを指定した場合、コマンドは「冗長」モードで実行され、詳細な証明書情報が出力されます。だそうですよ。とりあえず付けとけ。
  • -keystore キーストアのファイル名。拡張子は .keystore とするといいみたい。
  • -alias キーストア内での証明書の名称。
  • -validity 証明書の有効日数。android では10000以上が推奨されています。
例えばこんな感じにします。
keytool -genkey -v -keystore C:\folder\test.keystore -alias TEST -validity 10000
で、これを実行すると以下のように質問されまくります。

「キーストアのパスワードを入力してください:」
設定したいパスワードを入力します。(画面には何も書かれない)
んで Enter 。

「新規パスワードを再入力してください:」
と言われるのでもっかいいれる。

「姓名を入力してください:」
素直に入れる。

「組織単位名を入力してください。」
会社で言うところの部署とかのことらしいよ。
個人なら personal とか android とか入れときゃOK。

「組織名を入力してください。」
会社名とかサークル名とかブランド名とか入れときゃイイんじゃん?

「都市名または地域名を入力してください。」
市区町村だべ。

「州名または地方名を入力してください。」
都道府県だべ。

「この単位に該当する 2 文字の国番号を入力してください。」
日本は jp だそうです。

「{入力した内容}でよろしいですか?」
y と入力して Enter 。

「{生成してます的なこと}」
「{証明書の名称}の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください):」
然るべき入力をする。

んで完成。
ファイル名で指定した場所に .keystore ファイルが出来ているはずです。

corona でビルドするときにはビルドセットアップ画面の「Keystore :」欄に .keystore を。
「Key Alias :」欄に証明書の名称を入力すればOKです。

あらカンタン。