2016年12月 2日

BT-300メモ #bt300

EPSON MOVERI BT-300が発売になったので、メモを残しておきます。前回はBT-200メモというのを書いてました。

総論:いい意味でも悪い意味でもカタログスペック以外あまりお変わりない印象です。

<オススメ手順>
0. Android開発環境が構築されているPCを準備する。
1. BT-300の設定からビルド番号7回タップで開発者オプションを表示させ、adbを有効にする。
2. Vysorを入れ、以下入力操作をVysor経由で行う。
3. 提供元不明のアプリインストール許可設定を有効にし、WiFiを設定し、ブラウザを起動する。
4. "amazon.co.jp/getamazon"を入力し、Amazonアプリ完全版をインストールする。
5. nicoid(ニコニコ動画プレイヤー)をインストールし、ハーフ(通常のディスプレイで見ると横につぶれている)のside by side動画を探し、3Dで閲覧する。

ハーフのside by side MMD動画の作成方法は、MMM 1日目 物理演算結果を固定したいこのあたりに書きましたが、「つちのこparallax.pyで左右カメラ+MMMによる物理焼き込み+AviUtlでの合成」で特に3年前からとくに変わっていないとおもわれます。

6. Amazonビデオアプリをインストールし、プライムビデオを寝ながら見る。

TODO
・BLE・全天球動画の動作確認
・Cardboard SDKをいじって樽型歪み補正無しでBT-300に提供できるか確認

2016年10月31日

DroidKaigi 2017のCFPを読んでトレンドをおさえた気になってみたい

が出揃ってきて、一通り読んでみています。読んでるだけで面白い。

DroidKaigi 2017 プログラム応募状況
https://docs.google.com/spreadsheets/d/1k4bpUjpAyiJfTCJCFc9y48FYQAujZfCA_fxsmN2M4LI/

104個目まで読んだ感想

・何しゃべるか分からんの結構ある
・「それ以上でもそれ以下でも無い」組がやはり面白そう
・テーマかぶってそうなのは対決とかしてほしい。
・"CFP"というテイストだとこのぐらいが妥当かな、とも思うけど"企画"級に練られてそうなの見たい。


※以下、備忘録メモ。中身は無い。

続きを読む "DroidKaigi 2017のCFPを読んでトレンドをおさえた気になってみたい"

2016年10月25日

Android History 2016

android-history-2016.png

毎年恒例のやつを更新しました。

Android History 2016
http://www.slideshare.net/youten_redo/android-history-2016

以下、年表元データ。

続きを読む "Android History 2016"

2016年7月 2日

Telepathy Walkerがやってきた

KICKSTARTERで事前予約していたTelepathy Walkerが届きました。
https://www.kickstarter.com/projects/telepathy/walker-eyewear-for-entertaining-and-smart-walk

$299のHacker Editionは多分adbが通るAndroidだろうと思ってbackしましたが期待通りのものが来ました。わーい。
電源を入れてUSBで接続すると、adb devicesがすでに効いてましたので、Vysorで一通り普通のAndroidっぷりを確認します。

Hacker EditionとConsumer Editionの差分は以下のForumの話が今の所一番わかりやすいです

Telepathy Developer Forum:電源が入ると普通のandroidの画面で何もできません
https://forum.support-telepathy.com/discussion/9/%E9%9B%BB%E6%BA%90%E3%81%8C%E5%85%A5%E3%82%8B%E3%81%A8%E6%99%AE%E9%80%9A%E3%81%AEandroid%E3%81%AE%E7%94%BB%E9%9D%A2%E3%81%A7%E4%BD%95%E3%82%82%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93

公式サイトをたどっていくと、Consumer Edtion向けのチュートリアル動画があり、目の左右設定(上下が反転する)などの方法が確認できます。

Google GlassとTelepathy WalkerとBT-200を同時につけておおむね満足しました。他の使い方はまたあとで考えることにします。

2016.07.03追記
Consumerの方でもadb通るらしいです。

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月12日

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

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

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

2015年10月20日

Android History 2015

毎年恒例のやつを更新しました。Android 8歳おめ!

Android History 2015
http://www.slideshare.net/youten_redo/20151020-android-history


以下、年表元データ更新版。

続きを読む "Android History 2015"

2015年10月12日

ポエム

とあるお客様のあんまりITと直結しない、とある順調なビジネスがあって、+αを試すために、それなりにIT化したい、というお話の手伝いをすることになった。

シンプルに、そして速やかにという要望のもと、今後しばらくは弊社もお客様も困らない要件とアーキテクチャを提案し、快諾していただいた。今後の戦略もあり、10月始めという期の切り替わりもうまく作用したのか、それなりに優秀と言われるメンバが集まった。

残念ながら好き勝手に考えてもらって実力を試すような余裕はないため、リスキーでピーキーな技術は選択せず、具体的な方針を順番に提案していく。


AndroidはminSdkVersion=21でUIは労力をかけず、開発拠点が離れるのでテストコードはきちんと頼む、コードレビューベースでコミュニケーションをとりたい、と。

サーバはいくつかのモデルが読み書きできるRESTful APIを頼む、もちろん認証での権限違いも最低限は欲しい、と。

デザインはMaterial Designベースだが、今後iOS対応も考慮して両方に使えるテイストで、と。


ごくごくよくある感じのスマホセントリックで、将来を見据えたクラウドシステムと、少しのハード方面な要素を含んだそのシステムの開発方針を説明したところ、次々と期待を裏切る要望と予想を超える作業見積もりが集まった。


Android Studioを使ったことがないAndroidチーム。

RESTfulを知らない、jspを採用したサーバチーム。

Material Design未経験のデザインチーム。


メンバの誰ともSORACOMの話も雑談できない、所属する部門名に入ったIoTの文字はもしかしてInternet of Thingsの略ではないのではないのだろうか?
僕は本当に2015年3Qのソフトウェアの会社に所属しているのだろうか?

2015年8月 8日

#C88 TechBooster本にスマートフォン向けのVR開発入門について書きました

c88-android-m-thumb.png

C88 3日目(2015/8/16)東A39a TechBooster
https://techbooster.github.io/c88/

上記のC88てくぶ本、「Android Masters! ダンジョンにAndroidの最新情報を求めるのは間違っているだろうか」の、「第7章 Unity 5.1で入門するVRアプリ開発」というタイトルの章を担当しました。
私の章の内容はニッチですがCardboard SDK for UnityとGear VR+Unityに関するVRコンテンツ開発の入門向け、現時点ではオンリーワンなものになっていると思います、VRに興味のある方はぜひ。
興味のない人も他の章や本をひっくるめ、大変魅力的なものに仕上がっていますので、購入したついでに私の章も読んでくれるとよろこびます:)

イカ、書き出しのチラ見せと目次です。

c88-android-m-7.png

【目次】
1 はじめに
1-1 VRのR(Reality)と本章で扱う範囲について
1-2 想定読者について

2 VRとスマートフォンの関係
2-1 手持ちのスマートフォンで始めよう
2-2 具体的な機種とコンテンツの選び方について
2-3 よりハイエンドなデバイスと、その価格について

3 スマートフォン向けVRデバイスの紹介
3-1 Google Cardboard
3-2 ハコスコ
3-3 Oculus Gear VR

4 VRと3Dとコンテンツ開発手法
4-1 VRコンテンツは3Dで、3DならUnityで
4-2 Cardboard SDK for Unityのメリット
4-3 コラム つくってみるメリット

5 VRアプリ開発環境の構築
5-1 手順のおおまかな流れ
5-2 Android SDKとインストール
5-3 Unityのインストールとバージョン
5-4 Cardboard SDK for Unityのダウンロード

6 Cardboard向け、VRアプリのHello, World
6-1 新規Unityプロジェクトの作成
6-2 Cardboard SDK for Unityのインポート
6-3 プレビューの再生
6-4 Androidプラットフォーム向けの設定
6-5 ビルドとインストールと実機での実行

7 PONGアプリをCardboard向けに対応させる
7-1 新規プロジェクトとPONG unitypackageのインポート
7-2 Androidプラットフォーム向けの設定
7-3 Cardboard SDKの適用
7-4 VRらしい自機制御スクリプト

8 PONGアプリをハコスコ向けに対応させる

9 PONGアプリをGear VR向けに対応させる
9-1 新規プロジェクトとVirtual Reality Supportedチェックボックス
9-2 Osigファイル(Oculus Signature File)の準備
9-3 Gear VR Service開発者モードの有効化

10 おわりに

<よもやま>
・Unity 5.1.1p3で書き始めて、何度かのUnityのアップデートと戦いつつ、最終的には5.1.2p2でUnityのクラッシュと鉢合わせしました。
・入稿後にCardboard SDK for Unityがv0.5からv.0.5.1になって、よりにもよってunitypackageの数が変わってしまいました。
・紙版では間に合っていませんが、ダウンロードカードの付属する電子書籍版ではUnity 5.1.2p3とCardboard SDK v0.5.1の差分に対応しています。

2015年6月21日

Unity 5.1とGoogle Cardboard SDK for Unity v5.0を試す

タイトルと関係ありませんが突然の宣伝です。てくぶことTechBoosterがC88も当選されたとのことでおめでとうございます、youtenはC87ではやたらと後ろ向きな記事を書きましたが今回はCardboard SDKの話を中心にGear VRまで含めたスマホ向けVRの話を書こうと考えております。(無事に掲載されるかはさておいて)これを読んだAndroid開発者がVRの波動に目覚めて突然開発したくなるような記事にしたいと思います。全裸で。

さて本題に戻りまして、Unity 5.1が出たのでCardboard SDKがおかしなことにならないかを確認してみます。VR的にはUnity 5.1の目玉はVRのNative対応で、その中身はOculus Rift/Gear VR向けなOculusなSDKが組み込まれただけ、という認識なのですがちょっと自信ないです。

Unity 5.1.0p1 2015.06.12
https://unity3d.com/jp/unity/qa/patch-releases

Google Developers:Getting Started with Unity for Android
https://developers.google.com/cardboard/unity/get-started

イカ、作業メモ

u51-01.png
Unity 5.1を起動します。いきなりログインを求められましたがWork Offlineでも良さそうです。
New Projectを作成します。

u51-03.png
CardboardSDKForUnity_v5.0.unitypackageをimportします。"API Update Required"ダイアログが出ますが気にせずI Made a Backup. Go Ahead!を選択します。

Cardboard/DemoScene/DemoSceneを開きます。おもむろに再生します。いつものDemo Sceneが動作します。
u51-04.png

別名のMainというシーンで保存。Build Settingsを開いてAndroidにSwitch Platform。Add CurrentでMain.unityを追加、Development Buildチェックをonに。
Player Settingsを開いて、Company Nameを変更、Resolution and Presentation->OrientationをLandscape Leftに、Other Settings->Bundle Identifierを独自パッケージ名に変更。
Build Settingsに戻ってBuild And Runを選択。U51HelloCB.apkあたりの適当な名前をつけてSave。

v4.10からv5.0の差分を確認しておきます。
https://developers.google.com/cardboard/unity/release-notes

抜粋して紹介。
・iOSサポート。
・C++でヘッドトラッキングと樽型歪み補正を実装、JavaベースのコードはLegacyフォルダに移動。
・Cardboard.csとVRDeviceというクラスでリファクタ、Android, iOS, Unityエディタ上で同様に扱えるよ。
・新しいイベントtilt(横向きに傾ける、BackやExitの意)、trigger(Cardboard v2のトリガーが引かれた状態、タップと同義のはず)に対応
・Cardboard.SDK.BackButtonExitsApp「BACKボタンでアプリ終了」は廃止。
・Cardboard.SDK.IsInCardboard「今Cardboardにスマホが入っているのか」(おそらくmagnet判定だったのでCardboard v2の変更に伴って)は廃止。
・残念ながらDevelopment Build チェックまだは必要?(5.0.0f4で試した限りは、と書かれている。5.1.0p1では大丈夫な気配?)
・Multi-threaded renderingは今はまだサポートされていない。
・細かいですがDemoSceneの真下に出るMenuのVR ModeというButtonのEvent実行先がCardboard.ToggleVRModeからTeleport.ToggleVRModeにお引っ越しされてました。Cubeを消して下のメニューを使い回す際にはご注意ください。

Cardboard/Scripts/Cardboard.csに以下の様なメソッドを追加してやれば代用が効きます。
public void ToggleVRMode() {
VRModeEnabled = !vrModeEnabled;
}

u52-05.png
ちまちま他のこともしてみましたが、Cardboard SDK for Unity v5.0を使う分にはさしあたってUnity 5.1で困らなそうです。

そういえば、今日Cardboard v2触ったんですが適当にGalaxy S6突っ込んだらぜんぜん像が結べなくて3Dに見えなくて苦労しました。QRコードによるProfile調整必須です、Nexus5/Galaxy S6あたりにあわせてあるとダメです。DIVE pluginモノはN6とかiPhone 6plusならちょうどいいんじゃないのかな...。

つまり今後というか現時点ですでにCardboard互換品には例のQRコードが必須ということです。...Googleさん、もう少しアナウンスというか啓蒙がんばった方がいいと思うよ。

2015年6月 8日

PMCA その1

別にお金を払いたくないわけでも3D-Unity(VR)で商用活動がしたいわけでもないのですが、自分で書いたライセンスを自分で守らない人とか、法律も作者の気持ちでどうにかなると思ってる人のことを想うとつらい気持ちになります。Figmyがぶっこみましたね。CC-BYのpmdが欲しい病を長く患っている自分にも少しだけ気持ちは分かりますが、ああなってはおしまいだと思います。

前置きはさておいて、PMCAというパーツPMDからモデルを組み立てるツールがありまして、ちょっと前に存在を知っていたのですが今更試してみることにします。

PMCAv0.0.6について
http://matosus304.blog106.fc2.com/blog-entry-215.html
りどみ.txtを読むとPMCA自体はPDとあるので生成pmdにライセンス制限はかからないことになります。(というかデフォルト設定でAuthorがmato氏のLicense PDという文字列が固定になってしまうのは良いのでしょうか...)

PMCAv0.0.6r10aWindows版
https://bowlroll.net/file/3714

Python実行環境同梱版をダウンロードして、zipを展開してrun.batで起動します。
pmca-01.png
pmca-02.png
適当にポチポチと選択してpmdを出力します。
ちょーかんたんお手軽1分でpmdができました。

pmca-03.png
ちょっとだけテクスチャの色合いだけいじってMMDに持っていきます。

pmca-05.png
なるほど。

Unityに持っていきます。

pmca-06.png
なるほど。

Carboard SDKを適当に放り込んでスマホに持っていきます。

pmca-07.png
なるほど。

これで色々な点が概ねいいんじゃないでしょうか。

2015年6月 3日

延命措置

体調不良につき...という拙作の適当アプリがあります。

用途はPlay側の説明を見ていただくとして、このアプリは2011.08.02に更新して約4年それっきりという、(普段の言動に対して)紺屋の白袴どころか紺屋の全裸みたいな案件です。

逆に言うとminSdkVersion="4"で作ったものが4年間完全放置でここまでもったAndroidよくできてんなという気分なのですが、Galaxy S6(5.0.2)でMENUキーのエミュレートがされなくなってついに死亡が確認されました。

ぶっちゃけ自分用アプリなのでちょっとぐらいおかしな動きをしてもいいだろう、と互換性に注力する気はないのですが、意外と気に入らない点が多くて単純な移植しかしていないにも関わらずイマイチ要素が満載のものになりました。今は寝かせてます。

<移植作業>
・Eclipse → Android Studio
・minSdkVersion 4(1.6) → 15(4.0.3)+AppCompat v7 22.1.1
・Activity → AppCompatActivity
・PreferenceActivity → PreferenceActivity(AppCompatDelegateではない)
・Launcher iconの新規起こし。(某ジェネレータのmipmap-フォルダに配置したが、minSdkVersion15だとダメっぽい?おとなしくdrawableに移動した方が無難そう。)
・AppCompatにしたがって無印とv21のthemeを作成、primary, primary dark, accent, button, navigation barあたりのcolorを設定。
・同じ仕組みでButtonのtext colorが変えられないので、ここを参考にWidget.Holo.Light.ButtonとWidget.Material.Light.Buttonをparentに指定したstyleを用意する。
・setHomeButtonEnabled(true)とかsetDisplayHomeAsUpEnabled(true)とかActionBarまわりを調整。スクロールするほどコンテンツないしToolBarは見送り。
・xml drawableはいったん全部捨て、一部primary colorを適用。

<どうにかしたい>
・WQHD端末なせいかフォントサイズが少し小さい気がする。
・マージンがアンバランス、全体的に足りない。これでもLinearLayoutに透明dividerは入れている。
・ボーダなしSpinnerと今の配置の相性が悪い。
・Spinnerのrowに複数行+自動改行が必要なものを入れるのがダメ。iOSのドリルダウンNavigation Controllerのような他ページでいい気がする。


M来たってのにLollipop時代の話と戦えてない感じです。もっとリハビリしないと話になりませんな。

2015年5月25日

【MMD】360度パノラマステレオ動画で嫁を召喚してみた【Gear VR】

mmm.png

(2016.03.18追記)現状はCaeru氏作成のMMEの最新版を使うのがお手軽となっております。視差が前方限定には変わりはありませんが、こちらのエントリを参照ください→【MMD】MikuMikuDomeMasterでGear VR/Cardboard向けステレオ天球動画を出力する

MMDで全天球動画が作れるのを以前見かけて試そうと思っていたのですが、2回出して合成すればGear VRでなんとなくステレオで見られます。これはいいものだ。

【MME】360度パノラマ画像を作る
http://seiga.nicovideo.jp/seiga/im3844921

Panorama360.png

「Panorama360」を使用。カメラの位置を無視して、エフェクトの位置情報が使われている模様なので、以下の様にxyzいじってみます。xは左目が-0.03右目が0.03にしてみたがそもそもMMMの1.00はUnityみたいに1.00m保証は無い気がします。
x 0.03 y 10.0 z -15.0

※後述の追記時にはx 0.1(左目用は-0.1)y 13.0 z -12.0程度にしました。センターバイアスでモーションを同心円で収まる範囲にして、モーション範囲を中央に寄せてしまうのが勝利のカギの模様です。

以前書いたMMMの物理演算固定手順を守りつつ、左目用aviと右目用aviを出力してみます。

2160x1080 60fps
UtVideo YUV420 BT.709 (ULH0) DMO
mousou-L.avi
mousou-R.avi

kongou.png
開始位置が奥すぎたのでめっちゃ艤装に殴られまくりの動画になりました。目には優しく無いですが透明人間になった気分はそれはそれで面白かったです。

試しに1000フレーム程度でやってみて概ねうまくいきましたが、つんでれんこではビットレートがどうしても常識的な範囲に収まってしまう模様です。昔お世話になったx264guiExに久しぶりに頼ることにします。

aviutl-x264gui.png

AviUtlでMP4(H.264)にエンコードするためのインストールと設定方法
http://memorva.jp/internet/pc/soft_aviutl_mp4_h264_encode.php

2560x2560でやってみたらWin8.1でもGalaxy S6でも再生できない動画になりました。
2160x2160でProfileはHigh@5.1にしたら再生できました。サイズではなくてProfileの問題かも。

bt.png

実際に見てみるとかなり良い感じなのですが、2160x2160でも解像度がちょっと足りない(ボケた)感じになってしまいます。どこまで上げるのが妥当なのかは何度か試す必要がありそうです。(GearVRの公式doc的には推奨2048x2048@60fpsらしいです。ただの画質設定の話かも...)

続きを読む "【MMD】360度パノラマステレオ動画で嫁を召喚してみた【Gear VR】"

2015年5月24日

【Gear VR】自前のosigを追加して再sign

前述の通りosigまわりにあまり特殊な署名ガードはかかっていなそうだなと思っていたのですが、すかさんが自前osig追加再Signをやってたので自分もやってみました。

続きを読む "【Gear VR】自前のosigを追加して再sign"

2015年5月 8日

Gear VRで野良アプリエコシステムの妄想

メモ。

○osigファイル

Gear VR向け開発用ビルドには、osigファイルをapk(Androidアプリ本体)ファイルに含める必要があります。
osigファイルは(Smartphone側母艦の)Device Idから生成します。apkは実体はzipアーカイブですが、展開してみるとそのまま変換も何もなしに含まれているのでセキュアななんたらというのはない模様。

⇒第1の結論:開発者グループでosigファイルアップローダを作ってしまえば概ね良いと思います(そしてそれぐらいまではOculus/Samsung側も把握している)

○VR Jam用global sign

VR Jam向けapk生成Webサービスがある模様ですが、こちらでできたapkに「マスタosig」みたいなものは入っていませんでした。AndroidManifest.xmlにもそれらしい記載はなかったため、こちらは署名で見ている気がします。
つまりVR Jamが終わったら向こうの好きなタイミングでWebサービスも証明書もclose/expireできるということでおそらく長生きはしないと思っています。

○apkのrepackageとresign

Androidのapkの実体がzipなことは前述しましたが、その一意性も署名されているだけなので以下のアプリやライブラリの示すとおり、apkのビルドというのはAndroidアプリ内で実施が可能です。

AIDE- IDE for Android Java C++
https://play.google.com/store/apps/details?id=com.aide.ui
JavaIDEdroid
https://code.google.com/p/java-ide-droid/

(知りませんでしたが)どうやらadb devicesでとれるDevice Idはアプリからもとれるらしいので

SideloadVR DeviceID
https://play.google.com/store/apps/details?id=com.skyworxx.sideloadvrdeviceid

結論として以下の仕組みをもったGear VR野良apkマーケットアプリをつくることができそう、というのが現時点での見解です。

・osigファイルをローカルで生成/またはDevice Idからユーザに生成してもらう。
・apkをダウンロードする。
・apk(zip)を展開してosigファイルを追加してre-signする。
・3rd-partyアプリとしてインストールする。
・Oculus Homeには当然含まれないので、独自Homeアプリを作る。PackageManagerからAndroidManifest.xml中のmeta-data vr_onlyあたりを見る。

⇒第2の結論:ここまでやるのは面倒なのでOculus/Samsung側の様子を見るとして、「自分のosigが正しく入ったapk群を、Gear VRを外さずに切り替えられる独自ランチャーアプリ」あたりから着手すべき?