2016年5月22日

Google VR - Daydreamまとめ

daydream.png

2016.05.18、Google I/O 2016初日のkeynoteでGoogle VRの新たなプラットフォームとしてDaydreamが発表されました。2016 fallにローンチされるまでまだ開発途中でこれからの話やヴェールに隠されたままの話がありますが、誤解を招く様な書き方をしてるニュースサイトがいっぱいあるのでそれがもう少しマシになるといいな、ということでわかっていること、推測できることをがんばってまとめてみました。

と言いながらきっと不適切な表現や間違ったことをかいてしまっていると思いますので、質問や指摘等は気軽にいただけると喜びます。


○公式サイト以上の情報はあまりない

Google公式:Daydream
https://vr.google.com/daydream/
開発者向けGoogle公式:Google VR
https://developers.google.com/vr/

・上記のサイトの構造が示す通り、Google VR取り組みの1つに属します。
・Daydream Readyと言われる、 ある条件を満たしたAndroidスマートフォンを母艦とします。SoC, Sensors, displayが要件として挙げられております。

MediaTek's Next-Gen SoCs To Support Google's Daydream
http://www.androidheadlines.com/2016/05/mediateks-next-gen-socs-support-googles-daydream.html

MediaTekがDaydream ReadyのSoCを、と発表してるので「現行SoCはDaydream Readyではない」と想像でき、現時点ではせいぜいSnapdragon820をターゲットにしている可能性があります。
また、後で述べますがNexus 6P+N Preview3が比較的残念だったのでSnapdragon810機はDaydream Readyではない可能性もあると思っています。

・向き(モーション)の取得、クリック可能なタッチパネル、App Button、Home Buttonの2つのボタンを持った専用コントローラに対応します。

こちらはすでにGoogle VR SDK(DaydreamとCardboardがSDK上の扱いとしては一緒になりました)として公開されていますので、そのAPIドキュメントから能力が分かります。

Google VR SDK for Unity -
GvrController
https://developers.google.com/vr/unity/reference/class/gvr-controller#properties
Google VR SDK for Android(NDK) -
Controller
https://developers.google.com/vr/android/reference/com/google/vr/sdk/controller/Controller#fields

上記2つを確認するに、Quaternionのorientation、タッチパッドのタッチ操作、タッチパッドのクリック(ClickButtonと名前がついています)、AppButtonのクリックが取得できます。UnityだけなぜかVector3のGyroとAccelがとれます。
結論として、ポジショントラッキングには対応していません。

・HMDは専用のものを開発中

というニュアンスの発表でしたが、これはIPDやレンズ距離、装着性をある程度担保した、そして1stローンチの多くのDaydream readyスマートフォンの外観差をカバーできるだけのCardboard互換機であることが想像がつきます。

なぜなら特別な+αの機能はなく、レンダリングもヘッドトラッキングのためのセンサも「Daydreadm readyスマートフォンの中で全て扱う」と発表されているのですから。

Unreal Engine 4, VR and Daydream - Google I/O
https://www.youtube.com/watch?v=CEoDS__sfWA

あなたがある程度のフリークならこのUE4のDaydream紹介公式動画を見た瞬間、「なんだ、Cardboardか」と少しがっかり(安心)したはずです。

Homido
http://www.homido.com/

homido.jpg

これですね。

・Daydream向けHomeアプリの刷新

現状のCardboardアプリもHomeっぽい動きはしていますし、刷新後もおそらくCardboardで使えるんじゃないですかね。Play・Youtube・StreetView・PhotoアプリのVR対応が予定されています。


○Unity 5

あなたのDAYDREAM(空想)を現実に
http://blogs.unity3d.com/jp/2016/05/19/make-your-daydreams-a-reality/

公式にfor Unity SDK同時追従してもらってる割には手抜きかなぁ、もう少し技術的な情報を付加しておいてくれてもいいのよ?という感想は置いといてですね。

・すでにCardboard SDK for Unityをベースに、Google VR SDK for UnityとしてDaydreamとCardboard両方に対応するバージョンアップが発表同日に公開されています。

Google VR SDK for Unity
https://developers.google.com/vr/unity/

・UnityとしてのNative対応(前述のSDKのようなpluginを追加することなく、の意です)は今夏に予定されている。
・また、関連して期待されているVulkan対応はEarly Accessを3Qには予定されているとのことです。この話がProライセンス持ちユーザ限定のclosed betaなのか、現在のUnity5.4のようなopen betaなのかは現時点ではわかりません。


○Unreal Engine 4

アンリアル エンジン 4 が GOOGLE VR プラットフォーム "DAYDREAM" をサポート
https://www.unrealengine.com/ja/blog/unreal-engine-supports-google-daydream-vr

こちらは動画から開発途中、現時点でのいくつかの情報が読み取れます。HomidoにNexus 6Pが刺さっています、現ver.のコントローラは(エミュレータアプリの画像とは違って)細く、少し厚みがあることがわかります。

Let's Enjoy Unreal Engine:UE4 Google VR Daydreamアプリをサクっと試してみた ※追記あり
http://unrealengine.hatenablog.com/entry/2016/05/20/223329

更新履歴のリークがありましたが、公式にはすでに対応が終わっており、UE4のソースリポジトリにアクセスする権限が必要ですが4.12のbranchからソースビルドするとさっくりと使える模様です。

Google VR and Daydream Devices
https://docs.unrealengine.com/latest/INT/Platforms/GoogleVR/Daydream/index.html

UEの公式ドキュメントを見るとNDKまわりの設定が必要とありますので、おそらくGoogle VR SDK(NDK版)をベースにしていると思われます。

mobile向けUEの話ではsimple HMDという名前で樽型歪みとヘッドトラッキングのみ対応していたものが、drift correctionの入ったCardboard/Daydream対応のGoogle VRベースになったということだと思われます。(互換性セッティング用QRコード読み取り画面へのギアマークも入ってますし。)

iOS対応とかSpatial Audio(立体定位音響)対応はどうなんですかね?


○Nexus 6P+N Preview3による開発環境とサンプルアプリ

こちらについてもCardboard SDKとAndroidのOS Previewについて慣れている方なら、タオソフトウェアさんのタオバイザーblogのエントリを読めば一通りわかってしまって以上!という感じですが...。

タオバイザー:Google I/O 2016 で発表されたDaydreamのデモアプリを触ってみた。
http://taovisor.com/news/android-n-daydream-development-kit/

セットアップ上の注意点なども(英語の公式もがんばってるのですが)丁寧に記載されており、ありがたいエントリです。

・VRサービス設定まわりはN Preview 3以降(N5Xとかでもおそらく出るだけは出る)、IFとして動作するのはNexus 6P限定です。
・コントローラエミュレータアプリはManifestとしてはmin19(Android4.4以降)で緩めの制限なのですが、arm64-v8aのバイナリしか入ってないのでARM 64bit石の機種限定の模様です。Nexus5X, Nexus6P, Galaxy6Sで動作することを確認しています。


○試した感想

以下、実際にCardboard 2015とN6PとN5Xで試した際の画面キャプチャを中心としたツイートを雑に並べておきます。
やってる最中は「あー」「なるほどー」「腕疲れるなー」みたいにたるい感じの独り言をつぶやいており、ぶっちゃけあまり感動していなかったことをムダ情報としてお伝えしておきます。

○2016.05.26追記

Qualcommの中の人がSnapdragon820でどうがんばったとか、砂820の自慢話してます。2ページ目も読むのをお忘れずに。(EE Times日本語版は省略して適当翻訳で情報量がかなり減ってますので差分は原文で補完するのをオススメします。)

Google's Daydream is Silicon Reality | EE Times
http://www.eetimes.com/author.asp?section_id=36&doc_id=1329737

2016年5月17日

ViveでSDユニティちゃんを無限に投げて掃いてみた

こりん(@k0rin)さんのフレームシンセシス Unity+HTC Vive開発メモに「また、SteamVR/Extrasに、コントローラでオブジェクトを投げるSteamVR_TestThrowというサンプルがあります。」と紹介されていたサンプルがおもしろかったので、RagdollなSDユニティちゃんをひたすら投げられるデモを作ってみました。

SDユニティちゃんのRagdoll化については以下のページを参考にしました。(というかそのまんまですね)

[Unity]SDユニティちゃんにラグドールを入れて人形っぽくする
http://notargs.com/blog/?p=588

Rigidbodyに直velocityではうまくいかなかったのでAddForce作戦に変えたあたりは以下のLeapmotionでつまんで投げる以下のページを参考にしました。

Grabbing and Throwing Small Objects, Ragdoll Style
http://blog.leapmotion.com/grabbing-and-throwing-small-objects-ragdoll-style/

RagdollThrower
https://github.com/leapmotion/RagdollThrower

GTX970機だと20体も出すと90fpsは保てなくなりますが、Timewarpまわりがきちんとしているのか、fpsが落ちても酔いを感じるほど画面が乱れるまでにはさらにもう20体、という感じの境界線でした。

2016年5月14日

Steam VR(Viveのホームアプリ)の全天球背景をローカルで追加する

Steam VR(HTC Viveのホームアプリ)の全天球背景は、Steam VRアプリのワークショップとしてアップロード公開・ダウンロード利用が可能です。

https://steamcommunity.com/app/250820/workshop/

workshop1.png

ベースステーションやコントローラのスキンもダウンロードの上、変更が可能ですが、全天球背景画像はローカルで追加することもできます。

Viveホームから設定→ヘッドセット内→デスクトップのフォルダを開く を選択します。

HMDをかぶったままだとなんのこっちゃ、という操作ですが、デスクトップ上で「Program Files (x86)\Steam\steamapps\common\SteamVR\resources\backgrounds」あたりのパスでエクスプローラが開いていると思います。

workshop2.png

ここに、2:1のEquirectangler画像とサムネイルを追加すると、Viveホームの背景として設定できるようになります。

THETA S等の撮影データであればそのまま放り込めばOKです。
CGも...ということで、MikuMikuDomeMasterでMMDから画像を出力して設定してみます。

※サムネイルの仕様は400x300ぽいですが、2:1画像が元なので400x200に縮小したものを_thumbnailというファイル名を追加して置いておくのが楽そうです。

ステレオ立体視空間内に無限遠ではないモノラルEquiを配置すると見た目は少し違和感があります、せっかくのViveで変な酔い方をするのもアレなので、大人しく遠景Equi画像を準備する方がよいかもしれません。

2016年5月12日

IO2016まで1週間待てばいい話だけどAndroidVRについて戯言

踊らにゃそんそんとは言うけれど。

続きを読む "IO2016まで1週間待てばいい話だけどAndroidVRについて戯言"

2016年5月10日

#JVRS の質問ハッシュタグが興味深かったので

勝手に妄想デマカセ回答してみる

続きを読む "#JVRS の質問ハッシュタグが興味深かったので"

2016年5月 9日

Oculus Rift CV1がうちにやってきた

Oculus Rift CV1を買ったのでチラ裏しておきます。とくに目新しい情報はないですが。

続きを読む "Oculus Rift CV1がうちにやってきた"

2016年5月 2日

加工したTHETA写真にGフォトでPhotoSphere表示にするためのGPanoメタデータを追加する

知名度が上がってきたのか、THETAをお見せすると「あー知ってるー」「ぐるり写真が撮れる奴」みたいな第一声が増えてきた気がします。

theta360.comなどでも良いのですが、できればサイズは維持したいし、アルバム共有が便利なのでGフォトにあげられないかなぁと思っていたのですがそういえば無加工なTHETA写真はブラウザでぐりぐりできることに気付きました。

なんかメタデータが足りてないに違いない。

公式:ストリートビュー Photo Sphere XMP メタデータ
https://developers.google.com/streetview/spherical-metadata?hl=ja#_1

なるほど、しかし手動は面倒だ。

【PhotoSphere話】球体パノラマ写真PhotoSphereファイルの作り方
http://www.katabe.jp/modules/blogpc/index.php?page=detail&bid=118

ExifToolとpyExifToolGUIを使えばGPanoメタデータのコピペができるらしい。

が、2ツールのバージョン相性なのかうまくファイルが出力されなかったので、以下のサイトを参考に、ExifToolのexe単体でbatファイルを生成したらうまくいきました。

How to add mandatory Photo Sphere meta data to an equirectangular image
http://www.panotwins.de/technical/how-to-add-mandatory-photo-sphere-meta-data-to-an-equirectangular-image/

↑のページの「3. ExifTool via command-line」のところに書かれている文字列のexeのパスをなおして、拡張子*.batで保存してGPanoメタデータを付加したいjpgをドラッグアンドドロップすると生成されます。

めでたしめでたし。

2016年4月25日

HTC Viveがうちにやってきて1週間

HTC Viveがうちにやってきたの続き。1週間経ったのでもう少し書く。

続きを読む "HTC Viveがうちにやってきて1週間"

2016年4月19日

HTC Viveがうちにやってきた

HTC Viveを買ったのでレポというか日記というかいくらかチラシの裏にメモを残しておきます。

続きを読む "HTC Viveがうちにやってきた"

2016年4月11日

やりたいこと探し

仕事してて一番キライなことは「もっと楽でおいしいやり方があるのにそうなってない」こと、というのは長らく自分の中でまとまってたんですが、それをひっくり返して一番スキなこと、とかやりたいこと、みたいなのがよくわからんなーというここんところだったのですが。

今日酔っぱらってる時に「何やりたいの?」って聞かれて

よ「流行りものですかねー」
よ「ああでも最新の技術で最先端で遊びたいとかではなくて」
よ「もう少し世間並のWebを扱えるようにしたいとかさせたいとか」
よ「今○○の仕事、弊社真心パワーで伸びてますけどそのうちWebっぽい□□になるんじゃないかと」

とかgdgdしゃべってたんですが、「一部のスペシャリストしかできなかったものをそうでもない人がやるようになる」というフレーズがふとしっくりきたので、忘れないうちにメモっておくことにします。

2016年3月29日

年度末の感想 #新人プログラマ応援

新人をおそらくコテンパンにしてしまっている話というエントリを書いたが、年度末なのでこの話を〆ておこう。

結局のところ直接一緒にやった仕事はほぼ無かった。僕自身の今年度は余ったおっさん同士でなんか隙間仕事するかー、みたいなのが多かった。ほぼ放置しといてボロクソに書くのはどうかと思うが、逆に言えば指導した僕がイマイチだったということだ。

前回のもよく読み返すとアレなフレーズがいっぱい混ざっているので、今回も深く考えずにチラ裏に書いて冷蔵庫のドアに張っておこう。

続きを読む "年度末の感想 #新人プログラマ応援"

2016年3月27日

Android版ロマサガ2起動時の認証エラーは時間放置で回復の模様

romasaga2-android-boot-error.png

2016.03.24にAndroid/iOS/PS Vita同時発売となったロマンシング サガ2ですが、起動時に認証エラーで起動しなくなってちょっと涙目だったので情報をまとめておきます。

【認証エラー経緯と回復手段】
・アプリ起動時に認証があるのはAndroidだけ
・インターネット接続環境でないとエラーとなる模様
・それとは別に、短時間に一定回数(詳細不明)以上、起動時の認証エラーを繰り返すと、その後しばらくの間認証エラーが連続するようになる
・時間回復の模様で、Twitterでは10分程度という情報あり
・私は再起動x2、15分程度で回復せず、情報を見つけた後30分弱の放置で回復を確認

以下、蛇足

続きを読む "Android版ロマサガ2起動時の認証エラーは時間放置で回復の模様"

2016年3月 9日

アニュビスの仮面の対応機種についてなるほど、と思ったついでにスマホVRは千円二千円じゃねーよ、の話

最初に結論として「限られたコストでやるのにはしょうがない話なので誰も悪くない、ハイスペックのスマホ買おう」で。

http://anyubis.com/

アニュビスの仮面、そこまでスペックが絡む仕組みではないと理解していたのですがやたらと機種に関する試験で苦労している話を聞いており、本日、1stロット予約購入者(?)に対して動作確認依頼が来ました。

サイトに機種一覧が記載されていて(2016.03.09時現在)、なるほど、と思いました。

<対応機種> 【iOS】iPhone5s,iPhone6,iPhone6s,iPhone6puls,iPhone6spuls 【Android】Nexus5, Nexus 6,Galaxy Note 4, Galaxy Note S6/S6 Edge, Xperia Z3, Xperia Z4, Xperia Z5, (随時追加予定)

・"6puls"とか"Note S6/S6 Edge"みたいな機種名typoはおいといて
・iPhone 5と5c、iPod Touchが対象外のようだ
・AndroidはPlayストアで機種限公開(全機種チェックはずし+特定機種許可)してる

ということで、(低価格Androidデバイスに多い)ジャイロまわりが不足している機種と、どうやら低スペック端末を切っていることが分かります。

CPUについてはiPhone側はiPhone5sがA7の初出なのでそれ以前がカット、iPhone5 SEが出たらまぁ余裕として、Android側はNexus 5(Snapdragon800)・Z3(Snapdragon801)が入ってるので600/601あたりが境界線ぽいですね。

つまり、昨今のスマホでBarrel Distortion無しの単眼でも60fpsを維持するにはふつうの作り方の3Dコンテンツではこのあたりが必要ってことで、3年前のスマホでCardboardつけて「わーくるくるYoutubeたのしー」とか言ってる人は当たってないだけで、すでに腐った生牡蠣喰ってると言えんじゃないですかね。(Nexus 5も2013.11とかですが)


僕はCardboard大好きですが、流石に千円二千円で済む世界が来てるわけじゃないよ、「高級なスマホ10万円」は無視するなよ、って思ってます。(カジュアルHMD組はそのへんあえてビジネス上無視していて、ちょっとタチが悪い印象)
比較で言うとS6 edgeが中古4,5万で買えて、ポイント込み10k円あたりでGear VRが買えるのが今のVRのコスパフォ最高峰じゃないですかね?

続きを読む "アニュビスの仮面の対応機種についてなるほど、と思ったついでにスマホVRは千円二千円じゃねーよ、の話"

2016年3月 5日

Dカップの巨乳

ITに限らず技術・規格に関する話において、コンテキストによっては真だし、相対的な話の場合にはまったく間違っていないんだけど絶対的な表現として違和感が発生してその後の読解コストが跳ね上がる微妙な表現のことを俺ルールで「Dカップの巨乳」と呼ぶのはどうでしょうか

2016年2月21日

#OcuFes Final #VRまつり メモ

OcuFes Final 次からはJapan VR Festに改名します
http://www.ocufes.jp/2016/02/2674/

普通の話はTLに流したので少し偏った感じの感想を。
・2日目の話を追記。(2016.02.22)
・Tweet済み写真埋め込み追記。(2016.02.25)

続きを読む "#OcuFes Final #VRまつり メモ"

Archives(記事一覧はこちら)