ウンcodeプログラマの日常

ハイパーウンコードプログラマ 最近はVRやAR技術ばかりやってます

Oculus Go の開発をやってみる(前編)

OculusGoの開発環境構築で色々つまずいたので、まとめておきます。
開発環境はWindows10 + Unityで構築します。
2018/5/10現在、これで行けることを確認済み

Oculus Go基礎知識

スタンドアローン(動作時にスマホやPCがいらない)
GearVRのアプリケーションの大半が動く 安い(32GBタイプは23000JPYほど。送料込みで注文して3日ほどで届く) OS: Android Nのカスタム(7.0か7.1かはよくわからない。そのうち追記します。) SoC:SnapDragon821 (二世代前のハイエンドSoC)
ROM:32GBor64GB

Unityのセットアップ

Unityのインストール自体は難しいものではありません。
OculusGOはAndroidがベースのOSで動いているのでインストールの際にAndroidを開発する項目にチェックしてインストールすれば良いです。
Androidのオプションを付けてもAndroidSDKJava DK(以後JDK)は自分で入れる必要があります。

AndroidSDKのインストール

AndroidSDKAndroidStudioをインストールと一緒にインストールされますが、最近のバージョンではUnity側で上手く設定できないのであえて古いバージョンのAndroidSDKを落とします。
ここから落としました。
AndroidSDKoffline
今回はバージョン25.2.5を選択しました。調べてみると26あたりから新しいやつになっているみたいで。古いバージョンですがマネージャーとかが古いだけなのでAndroid8など最新のandroidOSのSDKも使えます。
ダウンロードと解凍が終わったら任意のフォルダーに移動させます。自分はDドライブ直下に置きました。
フォルダーの中を見るとtoolsフォルダーがあるはずです。その中のandroid.batを右クリックして管理者として実行をクリックしてください。 管理者権限の確認画面が出てくるのではいを選択。 そうするとAndroidSDKの設定画面が現れます。
f:id:MogamiTsuchikawa:20180510173126p:plain Android 7.0 と7.1を選択してインストールします
f:id:MogamiTsuchikawa:20180510173303p:plain Accept Lisenceを選択してインストールを開始します。 終わったらAndroidSDK Managerには用はないので閉じます。

JDKのインストール

JDK ですが最新版の10だと動かなかったので8をインストールしていきます。
JDK 8 昔から思うんですけど、Java関連のソフトのダウンロード画面ってわかりにくい気がするんですよね。一番上に同意のRadioButtonがあってそれを押さないとダウンロード出来ないという。所見だと結構わからなくて
Windows x64のリンク押してもダウンロード出来ない!?」
とかなりません?自分だけかな?

Unityの本体の設定をしていく

ではunityを起動します。最初にライセンス認証とかありますが、そんなに難しくないので割愛。
プロジェクトを新規作成していきます。適当に名前を決めましょう。
f:id:MogamiTsuchikawa:20180510172403p:plain
androidのビルドの設定をしていきます。
EditのなかのPreferenceをクリックします。
f:id:MogamiTsuchikawa:20180510174208p:plain ExternalToolの中のSDK,JDKBrowseボタンを押して、先ほど置いたandroidSDKJDKの位置を選択します。JDKは標準ではCドライブのProgramFilesフォルダー内にあるはずです。
f:id:MogamiTsuchikawa:20180510174123p:plain ちなみにここの設定画面で通常使うエディタの設定が出来ます。自分はVisualStudioCodeを使っています。Windowsユーザーなら標準はVisualStudioになっているはずです。Codeの方が軽く使いやすいのでお勧めです。

プロジェクトの設定をしていく

最初にプロジェクトのターゲットプラットフォームをAndroidに変更します。 標準ではPC(Windows,MacOS,Linux)向けになっています
File--BuildSettings...を選択します。
f:id:MogamiTsuchikawa:20180510182234p:plain
そうするとBuildSettings画面が出るのでAndroidを選択してSwitchPlatformを押してAndroidに変更します。
f:id:MogamiTsuchikawa:20180510182328p:plain
変更が完了するとunityアイコンがAndroidの方に表示されます。
f:id:MogamiTsuchikawa:20180510182439p:plain

続いて、Player設定の方を変更していきます。 Edit--ProjectSetting--Playerを選択します。
f:id:MogamiTsuchikawa:20180510174648p:plain
Player設定画面が右端に表示されます(今までのようにウインドウでは表示されません。)
OtherSettingを選択し以下の部分を変更していきます。

PackageName : デフォルトの状態だとunityに怒られるので適当に変更します。自分はmogami.soft.comとかにしてみました
MinimumAPI Level : OculusGOはAndroidNなのでAndroid7(API level24)にします。 ちなみにここまでの作業はUnityの普通のandroidアプリを作る際と同じ手順です。

最後にPlayer設定の一番下にあるXR Settingsを弄ります。 まずはVirtual Reality Supportedチェックボックスにチェックを入れます。
そうするとVirtual Reality SDKsというボックスが出るので、+ボタンを押してOculusを選択します。
f:id:MogamiTsuchikawa:20180510184545p:plain
これでVR対応化完了です。めちゃ簡単ですね。

後編ではOculusGOのデベロッパーモードの仕方やデベロッパー登録、ADBドライバのインストールを紹介していきます。

後編はこちら

投げ銭よろしくお願いします!!

BitCoin:3QsNSLWHxFHa3Bs2VfD17PGJz7TTgE6p15

MonaCoin:M9yBDmLNg8f19EsE63349iUuniivDdkqm6
頂いた投げ銭は開発資金の足しにしたりします!

WindowsMRをまとめてみる

案外いろいろと種類があるWindowsMRについてまとめました。

①WindowsMRは三つに分けられる

WindowsMRというとARグラスとTVで報道されてしまうHoloLensを思い浮かべる方が多いと思います。他にも、ほぼVRと言っていいAcerDELLなど多くのPCメーカーが販売するPC向けWindowsMRヘッドマウントディスプレイ(以後WinMR HMD)もある。また、ほとんどの方があるけど多分全然使わない機能として「MixedRealityビュワー」というものもある。 「MixedRealityビュワー」は他の二つのWinMRと違い、専用の機器を必要としないので手軽に使える機能だ(しかし、説明動画を見るとすぐわかる通り、Windowsタブレットのアウトカメラを使うようにされた機能なので普通のノートPCだときついかな?)簡単に説明するとARカメラみたいなもの。

②まだ開発者版なHoloLens

発売してから結構時間が経っているが、HoloLensはまだ開発者版で改良型なども出ていない。 よくHoloLensはTVでARグラスと呼ばれているが、同じくARグラスであるGoogleGlassとは全然違う。(そういえばGoogleGlassプロジェクトどうなったんだろう?)GoogleGlassは使用者の視界にアプリケーションなどの映像を重ねるものだが、HoloLensでは使用者が見ている空間を認識し、あたかもそこに物があるように映像を重ねる。似ているように見えて全然違うのである。 自分は今度の4月のマイクロソフトの発表会「Build」にてAIなどを活用できるように専用の機能も搭載した改良型HoloLensが出るのではないかと期待している。

③最もお手軽なPCVRであるWinMR HMD

スマホVRなどと比べ圧倒的投入感と操作性を持つPCVR(PCを使ったVR)は2016年12月に発売されたOculusRiftから一般ユーザーが買える物になったが、当初は超高スペックPC+10万円の機材というかなり高額なものだった。 だが、最近は低価格かつセットアップの簡単なWindowsMR HMDの登場とグラフィックボードの進化により以前に比べだいぶ初期投資額が少なくなってきている。(WindowsMR HMDは5万円台の物からある)

(1)WindowsMR HMDとそれ以外のPCVRの比較

WindowsMRとそれ以外の主要PCVRを表にまとめてみた WindowsMR HMDが他のPCVRと大きく違うところは部屋にセンサーなどを設置する必要がない点である。スマホVRなどとは違いPCVRでは自分の立ち位置・傾き具合・コントローラーの位置を検出出来るようになっている。そのためにOculusRiftやHTC viveでは部屋にセンサーを設置する。だがWindowsMRではHMD本体に空間認識が可能な特殊なカメラがついているので外部にセンサーを設置する必要がなくなっている。そのため、センサーの設置の手間が省け、簡単に使うことが出来る(センサーの設置というと簡単に聞こえるかもしれないが、OculusではPCからUSBのコードを引かなければいけないし、viveでは高いところに設置&AC電源というかなり場所を選ぶので結構難しい。)その反面、向いている方向の逆側など本体のセンサーから死角になる位置ではコントローラの位置を検出できない。(が、ほぼ実用の面では問題ないと思う) また、WindowsMR HMDGeForceRadeonなどのグラフィックカードを搭載しないノートPCで使うことも出来る。

が、それは半分詐欺!

(2)WindowsMRが動作する環境

WindowsMRはUltraとノーマルの二つの動作モードがある。 よく、WindowsMRの宣伝で言われているintel内蔵グラフィックで動くのはノーマルなモードである。ノーマルなモードでは基本、VR空間内で大画面で普通の2Dアプリケーションを使うような事しかできない。つまり、仮想的な大画面でWebブラウジングをしたり動画鑑賞をするといった事は出来るが、VRゲームなどは出来ない。VRゲームなどをするにはUltraモードでやる必要がある。また、フレームレートは60Hzなので人によっては、酔う可能性が高い。(自分は酔った) Ultraモードはノーマルなモードで出来ることに加えてWindowsStoreにあるVRゲームやSteamで配信されているHTCvive向けのゲームをすることが出来る。さらにフレームレートは他のPCVRと同じ90Hzで使うことが出来る。その代わりGTX960やRX460といったある程度の性能のグラフィックボードが必要だ。また、Steamで配信されているゲームなどは他のPCVRの推奨グラフィックボードであるGTX1060で普通に動作するように作られているので、WindowsMRHMDでもそのようなゲームをする際はGTX1060などの高性能のグラフィックボードがないと動作は厳しい。 ノーマルとUltraで必要なスペックをまとめるとこうなる。(簡易的なので、動くかどうかは実際にPCでMixedRealityポータルを起動して判定して欲しい)    

Unityでandroidアプリを作る上での準備

学生LT関連で訪れた方向けの記事です。

 

非常に簡単にしか説明しません。基本言っていないところはデフォルトでOkということ。

 

*必要なもの

Unity

android SDK

Java JDK

開発者モードのandroid端末

 

ここ見ればソフトのセットアップわかります

qiita.com

 

では開発者モードのAndroid端末の用意の仕方を書きます。

 

まず、Android端末を用意します。

設定アプリを開き項目の一番下の「端末情報」をタップします。

その中から「ビルド番号」というものを探します。

ASUS機は「ソフトウェア情報」の中に「ビルド番号」がある)

「ビルド番号」を見つけたら、「ビルド番号」を10回タップします。

そうすると、「開発者オプションが有効になりました!」と出ますので、そこで設定の一覧に戻ります。そうすると「端末情報」の上に「開発者向けオプション」がでます。

「開発者向けオプション」をタップし、中にある「USBデバッグ」をONにします。

これでスマホ側の準備は完了です。

UnityをセットアップしたPCとUSBでつないだ状態でUnity側でBuildAndRunをするとスマホ側でUSBデバッグをするが良いか?というようなダイアログが出てくるのでOKしましょう。

これで準備は完了です。

 

今日のウンcode(WindowsMRの現状についてまとめてみる)

新しく書き直した物があります。

mogamitsuchikawa.hatenablog.jp

 

 

今月 10/17に配信が始まったWindows10FallCreatersUpdateで正式に始まったWindowsMR。

そんな始まったばかりのWindowsMRについてまとめてみる。

 

1.WindowsMR自体はHoloLensから始まっている。

HoloLensから始まっているので実はWindowsMR自体は結構前からある。

だが、HoloLensもDeveloperエディションなので、まだ正式リリースとは言えない。なので、今回のAcerHMDなどが製品第一号という感じになるだろう。

2.Mixed Reality??いやVRだろ?

WindowsMRのMRはMixedReality(複合現実)の略だ。

複合現実とは簡単に言うと強いAR(笑)

イメージで言うと、ARは現実に仮想を重ねる

MRは現実に仮想を溶け込ませる。

ポケモンGOはARだろう。ポケモンGOはただカメラの映像の上にポケモンを重ねている。もしカメラが物で塞がっていてもポケモンは画面に出続ける。

もし、ポケモンがまるで地面の上にいるように見えて、木の後ろに行ったら見えなくなるのなら、それはMRだと思う。いわゆる電脳コイルや最近やったSAOの劇場版の世界のデバイスのようなもの。

で、今回発売されたWindowsMRヘッドセット(以下WinMRHMD)はMRとはいえない気がする。AcerのパンフレットではガッツリMRと書いてあるが、現実空間が見えない時点でVRというしかないように思う。デバイスの構成的にもガッツリOculusやViveのようなものなので、言い逃れは難しい。

ちょっとMRと名乗るのは詐欺感がある(笑)

3.低スペックPCでも動く

WinMRの魅力はその敷居の低さ。Intel内蔵グラフィックでも動くというだけでなく、WinMRHMD自体の価格も安い(Acerの物で6万)

少し前ならOculusやViveなどのPC VRをやるには10万のヘッドセットに高性能なゲーミングPC(最低15万くらいのもの)が必要だった。

ここまで聞くと、Microsoftやるじゃん!とか思うかもしれないが、実は違う。世間一般が思うVRソフトをやるにはWindowsMR Ultraな環境が必要になる。

WindowsMRではマシンの性能により二段階のエディションがある。

 WindowsMR Intel内蔵グラフィックで動く 画面は60FPS

 WindowsMR Ultra GTX965MやGTX960以上で動く 90FPS 

WindowsMRにおいてサポートするのはWindowsStore上のUWPアプリのみと考えたほうがいい。リッチなグラフィックを使うMR対応UWPやSteamVRは基本WindowsUltraでなければ使えない。使えたとしてもフレームレートが安定せず確実に酔って、気分が悪くなる。VRにおいては90FPSを下回ると基本酔うと考えたほうがいい。ゲーマーなどはこういうフレームレートの低下にはある程度耐性があるが、一般人にはない。自分も90FPSを少しでも下回ると結構酔ったw

4.SteamVR対応

PCVRにおいて二台陣営の一つと言えるSteamVRが利用できる。すでにAcerHMDを使っている人はドライバーを当てることで使えるらしい。(追記)SteamにてWindowsMixedRealityForSteamVRが配信開始になりましたので、今はそちらが利用できます。

あとで試してみようと思う。SteamVR対応によって、コンテンツ不足による普及の障害にはならなそう(逆に言えばUWPのコンテンツが増えなさそう)

5.結構挙動がまだ怪しい&開発者を舐めている

まだ、始まったばかりということで仕方がないのだろうが、ハンドコントローラーに関しては動作が結構怪しい。通信にBlueToothを利用しているということも有り、いろいろなデバイスがある環境では、結構荒ぶるらしいw

でもDeveloperエディション時代に比べれば結構安定している。WindowsMRが原因でブルースクリーンが呼び出されることもないw

自分はDeveloperEditionを買ってその頃からWindowsMR開発に触れているが、DeveloperEditionにはハンドコントローラーがついていなかった。きっと後から単体発売するだろうと思っていたが、そういうこともなく、気づいたらハンドコントローラー付きの製品版が発売されていた。意味がわからん。Developer版は開発者に製品版をかうユーザーが出る前に対応したソフトをつくるためにあるものなのに、なんで製品版の方が早く出るのだろうか?

渋々、ハンドコントローラー(多分単体なら二万くらい)のために製品版(六万)を買った。意味がわからない。

ガチでなんとかしてくださいよ。マイクロソフトさん。本当に(´・ω・`)

携帯乗り換えどうしよう(格安SIM→AU)

自分は中学生まではDocomoユーザーだったが、高校生を期に親に頼みMVNO(いわゆる格安SIM)のDMMモバイルに乗り換えた。ほとんど電話を使わないがデータ通信は良くする(主にテザリング)ので、Docomoのプランは微妙だった。そこで、始まって間もないDMMモバイルの5GBプランを契約した。その後月日は流れ、途中で8GBプランに変更、そしてWimax2+を契約してからは主なデータ通信であったテザリングがなくなったことで月2GB以内に収まるようになった。ここ最近ではDMMモバイルのデータ通信残量は繰越システムにより15GBほどになっている。非常にもったいない。

また来年からは大学生になるため、親からは名義を移し自分の名義で自分でお金をやりくりして支払わなければならない。携帯電話の契約の名義を自分に移すには格安SIMでは対応していないようで、どうやら大手に一度戻らなければならなそうだ(自分は昔から携帯を持っていたので、今では珍しい090から始まるユーザーであるため極力、今の電話番号を失いたくない)

そこで、AUのぴったりプランに乗り換えようか迷っている。

AUを選んだのは以下の理由だ

DOCOMO並みの通信の高品質さ

父親AUなので家族割できる

WiMaxAU系列なので、割引発生。

DOCOMO嫌い

Galaxy S8が使ってみたい (今のメイン端末ZenFoneARが不安定なので)

 

あとは、最大限値下げできるように契約する店舗を探すのみ。AUショップやオンラインはあまり値引かれないらしい。家電量販店が値引きが効きやすいらしい。もう少し調べてから、店頭に足を運ぼうと思う。