ウンcodeプログラマの日常

CentOS・MacOSぶっ殺すマン PC中毒・プログラマ エロゲ・ギャルゲなどの制作もしています。最近はVRやAR技術ばかりやってます

SurfaceGoを買ったぜぇ!最高だぜぇ!!

なんか勢いでSurfaceGoを購入してしまったのでレビューしちゃいます。

スペックシート

以下のものは上位モデルのものです。

CPU GPU RAM ストレージ OS 液晶解像度 ポート類
PentiumGold 4415Y HD Graphic 615 8GB SSD128GB Windows10Home S mode 1800 x 1200 USBTypeC Surfaceコネクタ 3.5mmジャック

ちなみに下位モデルではRAMが4GBになるほかに、ストレージがSSDより遅いeMMCの64GBになります。特別な理由が無い限り上位モデルを選ぶべきかと思います。
以下ベンチマーク関連です。

Passmark

CrystalDiskMark

ちょっとNVMeなSSDにしては遅いですね。

案外快適なPentiumGoldプロセッサ

SurfaceGoの購入を考えている中で一番気になったのがCPU
Pentiumというと今ではローエンドCPUというイメージですよね。
最近では4コアCPUが一般的になっていますが、こちらは2コア4スレッド しかも第七世代です。さらにターボブーストも無い。正直そんなに期待はしていませんでした。
が、良い意味で期待は裏切られました。
起動して一通りソフトを入れたりしていましたが、AtomやN系統のCeleronPentiumのような遅さを全然感じませんでした。おそらくストレージやソフト面で支えているんだと思います。なので単純にCPU性能を求められるような操作ではCPUの非力さを実感します。(ですが、十分ストレスにならない程度ですし、Atom Z8700に比べたらめちゃ速いです。)
Atomとかを搭載したPCってOffice作業やらWebブラウジングでも少々引っかかったりしますが、SurfaceGoではそれが全然無いんです。

10inchi機のくせに使いやすいキーボードとトラックパッド


(レビューに使ったSurfaceGoはUS版なのでキーボードはUS版です。日本で売られるSurfaceGoはJISキーボードです。)
10inchiぐらいの端末になってくるとキーボードってお世辞にも使いやすいとは言いにくくないですか?
あとキー配列が変だったり...(USキーボードを無理矢理JISっぽくしたりね)
ですが、Goのキーボードはかなり良いです。普通にブラインドタッチが出来ます。
少し不満点を言うなら「`」キー、JIS配列でいう半角/全角キーが小さいことです。
これはアメリカ人なら感じないのかもしれませんが、日本人だと無い半角/全角キーの代わりに「Alt」+「`」でIMEのON/OFFをするので小さいと少し使いづらいですね。

トラックパッドに至っては驚異的です。
よくこの本体サイズでこのサイズを用意できたなっていう感じですね。
使いやすさも今までのSurfacePro並です。Macerが使ってもストレスは無いかと。

でもちょっと気になる点があります。
それはキーの押し心地です。
キーストロークもしっかりあり、使いやすいキーなのですが押し心地が...なんというか...懐かしい...
なんと表現すればいいか分かんないのですが、昔のメンブレン式キーボード?それに似た押し心地が最初にきて、その後がパンタグラフの感触です。
自分は嫌いじゃないし逆にくせになっていますが、人によっては苦手かもしれません。

USB TypeC

SurfaceGoでは従来のSurfaceでは必ず搭載されていたUSB TypeAが廃止され、USBポートはTypeCが一つのみとなっています。
そしてこのTypeCポートは充電に対応しています。充電に関する挙動は後に記述します。
このUSB TypeCですが、AltModeとしてDP出力に対応していますのでよくあるTypeCから映像出力ポートに変換するアダプタが使えますし、充電機能やUSBハブ機能を搭載したTypeC接続の液晶に繋げばケーブル一本でデスクトップのように使うことも出来ます。

二系統選べる充電

SurfaceGoでは従来のSurfaceに搭載されているSurfaceコネクタ経由とUSB TypeCポート経由の充電に対応してます。
純正品のアダプタとしてSurfaceコネクタを搭載した30Wの充電器が付属していました。
Surfaceコネクタは昔のMacBookProやMacBookAirのように磁石で簡単にくっつき外すのも簡単なのでとても使いやすいですが、専用コネクタであるためどこでも充電したりするのが難しいです。
SurfaceGoではTypeCでの充電に対応しているので外出先で汎用のTypeCコネクタの充電器やモバイルバッテリーを使うことが出来るので、非常にモバイル性が上がっています。
学生や外回りをするビジネスマン、ノマドワーカーには嬉しい機能だとおもいます。

また、SurfaceGoのTypeC充電は制限がかなり緩いです。大抵のノートPCはUSB PDかつ最低何Wからと決まっている物(自分のTinkPadE480は30W以上から)が殆どですが、SurfaceGoでは下限はなく、しかもUSB PDにアダプタが対応している必要はありません。
自分が試したところUSB 5V 1Aでの充電(市販のスマホ向け充電器+TypeAtoCケーブル使用)でも充電が可能と言うことが分かりました。つまり、普通に売られているTypeA出力のスマートフォンタブレット向けモバイルバッテリを使えることが分かります。
ですが充電速度を考えると、極力USB PDに対応したモバイルバッテリーを使った方が良さそうです。
スマートフォンも最近はUSB PDに対応した物が出てきているので、買い換えるのも良いかもしれませんよ?
自分は既にUSB PDに対応したモバイルバッテリーは3つほど所有しています。
ちなみに上限は30W(20V 1.5Aもしくは15V 2A)なので専用充電器とは充電能力は同じですね。

驚異的なバッテリの持ち

SurfaceGoですが驚異的にバッテリーが持ちます。
ブラウザーで映画を見ながらなら普通に6時間ほどもちました。
少々負荷がかかりっぱなしになる作業も2時間ほど経っても半分以上、60%以上持っていました。
iPadなどと比較するとやはりバッテリの持ちは低いかもしれませんが、Windowsタブレットとしては驚異的です。

格安機とは言わせない!Surfaceのアイデンティティーを持つハイコストパフォマンス機

Surfaceといえば綺麗な液晶、ペン入力、WindowsHello顔認証、キックスタンド、マグネシウムボディですよね。
SurfaceGoでは値段が圧倒的にSurfaceProから低いのにその全てを受け継いでいます。

格安機と呼ばれるWindowsPCでは大抵がFullHDもなくキーボードは打ちにくくペン入力や顔認証は当たり前ですがありません。そして、筐体はプラスチックで安っぽいことが殆どです。
前にDellの6万ほどの格安機を買ったのですが液晶は大変見にくくキーボードも打ちにくいしトラックパッドに関しては毎回ストレスを感じさせる物でした。
特定用途にしか使わないと自分は割り切って使っていましたが、もしこれを親からPC入門用に渡されていたらPCが嫌いになっていたかもしれません。

買うべき?

約一週間SurfaceGoを使ってみて、Webブラウジングからちょっとしたアプリケーションのコーディングなどもしてみましたが、ストレスは殆ど感じませんでした。ちなみにこのブログも今SurfaceGoで書いています。
正直メイン機として使うのは無理ですが外出時に鞄にさっと入る大きさとCPU性能、電池性能はサブ機としては全然ありです。
また、大学生の方や特に初めてPCをもつお子さんに買うのも凄く良いと思います。
やっぱり始めて使うPCがキーボードやトラックパッドが使いにくかったり画面が見にくいと、スマホの方が良い・PCはクソとなっちゃうと思うんですよね。

と、ここまではSurfaceGo最高だよ!と書いてきましたが最後にお一つ辛口なコメントを添えておきます。

日本で売られる個人向けSurfaceGoには必ずOfficeがバンドルされて価格が2万ほど高くなっています。学生でないかつ会社で買えないかつOfficeをよく使う方には関係ないと思いますが、それ以外の方には安さが売りのSurfaceGoが二万も高くされるクソ仕様な他ありません。学生の方でも教育機関版を学生協から買えるか分かりませんし、Officeが無駄になるケースは多いと思います。
自分もOfficeを五台まで使えるOffice365 Businessを契約しているので、Officeバンドルの日本版はもったいないと思いUS版を輸入しました。

なんでMicrosoftJapanはOffice非搭載版を売ってくれないのか...まじでMSJP意味分からん。 ふぁっきゅーMSJP(´・ω・`)

MirageSoloをゲッツしたので色々見てみた(1)

受験勉強やら委託で作っているゲームの制作に時間を取られ、前のOculusGoの投稿から結構時間が空いてしまった...
今回は ようてん さんからMirageSoloを頂いたので!いろいろチェックしたことを複数回に分けて、まとめていきます。

MirageSoloのおさらい

概要

プラットフォーム タイプ ラッキング ストア メーカー 販売価格
Daydream(Google) 一体型VR 6DoF(コントローラーは3DoF) GooglePlay Lenovo 64GB

MirageSoloはGoogleが出しているVRプラットフォームDaydreamに対応したVR専用機で、PCレスの一体型で本体内蔵のカメラセンサーを利用した位置トラッキングに対応しています。
(Googleではこのように内蔵センサーで位置トラッキングする技術をWorldSenseと読んでいます。)

スペック

OS SoC ストレージ 外部端子 スピーカー
DaydreamOS SD835 64GB TypeC/microSD/3.5mm 非搭載(イヤホン必須)

AndroidVR専用にカスタマイズしたDaydreamOSを搭載。
SoCには一世代前のハイエンドSoCが使われています。 外部端子は豊富で、内蔵スピーカーは非搭載。なので使用するにはイヤホンなりヘッドフォンが必要です。
個人的には本体から長いイヤホンのコードを垂らしながら使うより内蔵スピーカーで簡単に使いたかったなぁ...

ディスプレイスペック

ディスプレイ種類 ディスプレイ解像度 フレームレート
液晶 2560×1440 75Hz

VRHMDでかなり重要なディスプレイ、MirageSoloには解像度2560×1440(WQHD) 75Hz工藤の液晶が使われています。
スマホVRや格安一体型VRHMDでは大抵1920×1080(FullHD)のディスプレイなので、それと比べるとめちゃ良いです。

競合機種と比べながら使ってみる

競合機種としては同じくスタンドアロンなOculusGoとPCVRとしてはお手軽なものに分類されるWindowsMR HMDを比較していきます。

概要

\ プラットフォーム タイプ ラッキング ストア メーカー 販売価格
MirageSolo Daydream(Google) 一体型VR 6DoF(コントローラーは3DoF) GooglePlay Lenovo 64GB
OculusGo Oculus 一体型VR 3DoF OculusStore Oculus ¥23800
WinMR HMD WindowsMR PCVR 6DoF MicrosoftStore Acerなど ¥39600

スペック

\ OS SoC ストレージ 外部端子 スピーカー
MirageSolo DaydreamOS SD835 64GB TypeC/microSD/3.5mm 非搭載(イヤホン必須)
OculusGo カスタマイズAndroid SD821 32/64GB microUSB/3.5mm 搭載
WinMR HMD Windows10(PC) (PC) (PC) HDMI/USB TypeA/3.5mm 非搭載(イヤホン必須)

ディスプレイスペック

\ ディスプレイ種類 ディスプレイ解像度 フレームレート
MirageSolo 液晶 2560×1440 75Hz
OculusGo 液晶 2560×1440 72Hz
WinMR HMD 液晶(Acer) 2880×1440 90Hz

※WindowsMR HMDは色々なメーカーで作られているので必ずしも上記仕様ではありません。
ざっと表で比較してみましたが、各ハードウェアの仕様は値段(WindowsMRはPCも含めての値段)の上下と一致しています。
なので、OculusGo < MirageSolo < WindowsMR HMD と言う形でハードウェアのスペックとしては上下関係があります。
それでは実際に被って検証していきます。
今回HMDを被っている写真を撮るために祖母に協力してもらいました(^_^)

まず、個人的に付け心地で一番快適だったのはOculusGoです。
なんと言ってもコードが無いし、とても軽い。(OculusGo:468g / MirageSolo:645g)
しかし、撮影の際におばあちゃんから付け心地の意見を聞いたところOculusGoはあまり付け心地が良くなかったようです。
一番付け心地が良くて見やすかったのはMirageSoloで、理由は付けていても頬が痛くならなく、レンズとの距離の調整が出来て見やすく出来たことのようだ。

(写真のスイッチを押しながらで調整できる)

(かなり調整が効く)

自分の場合VRHMDに慣れてしまっているので頬が痛いとかを特に意識したことは無かったのでこういう意見は新鮮だった。
MirageSoloと近い固定方式を採用するAcerのWinMR HMDも付け心地が良かったようだ。ただ体験をしてもらった際に周りを見回すのに夢中でケーブルに引っかかりそうになっていた。ここら辺はやはりPCレス・ケーブルレスで使えるMirgeSoloやOculusGoは強い。

次はコントローラーやコンテンツについて、その次は開発環境などについて語っていく...予定...

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

前回の続きです

Oculusの開発者登録をする

OculusGOを開発者モードにするには使っているアカウント(OculusもしくはFacebook)で開発者登録が必要です。

OculusDeveloperCenter

OculusDeveloperCenterに入ったらまずはFacebookアカウントかOculusアカウントでサインインします。
そしたら、画面上にあるManageを選択します。
f:id:MogamiTsuchikawa:20180511171231p:plain そうするとストアでの表示名を聞かれるのでお好きなお名前を。問題が起こるとコワイのでアルファベットのみで付けると良いでしょう
f:id:MogamiTsuchikawa:20180511171410p:plain
登録が完了するとこんな画面が出てきます。
f:id:MogamiTsuchikawa:20180511171518p:plain
これで開発者登録は完了です。

OculusGOを開発者モードにする。

スマートフォンにインストールしたOculusアプリを開きます。
f:id:MogamiTsuchikawa:20180511172123j:plain
設定を開きます。

f:id:MogamiTsuchikawa:20180511172204j:plainf:id:MogamiTsuchikawa:20180511172230j:plain

その他の設定を開いて開発者モードを選択します。

f:id:MogamiTsuchikawa:20180511172338j:plainf:id:MogamiTsuchikawa:20180511172402j:plain

はい!これでOculusの設定は完了!

OculusGOのドライバーをインストールする

OculusGOにアプリを送ったり削除したりをPCから操作するためのadbドライバーをインストールします。
この操作はWindowsのみで必要のようです。
まずはOculus公式サイトからドライバーをダウンロードします。
OculusGO adb driver
ダウンロードしたzipファイルを適当な場所に解凍します。
解凍できたら中に入っているandroid_winusb.infを右クリックしてインストールをクリックします。
f:id:MogamiTsuchikawa:20180512114617p:plain
インストールが完了したら、Windowsを一度再起動することをお勧めします。

Unityでアプリを実行する

Unityに戻ります。
いよいよアプリケーションを動かします。
もうビルドすれば動くのですが、動いても何か物がないと自分が回転したり出来ているかもわからないので、適当にcubeなどを設置します。
cubeはGameObject--3D Object--Cubeと選択することで追加が出来ます。
f:id:MogamiTsuchikawa:20180512115350p:plain

Cubeが設置できるとこんな感じになります。
f:id:MogamiTsuchikawa:20180512115428p:plain

File--SaveSceneを選択して保存します。
それが出来たら、OculusGOとPCがUSBケーブルでつながっていることを確認してFile--Build&Runを選択し実行します。
開始したらOculusGOをかぶりましょう。おそらくUSBデバックの許可についてのダイアログが出ているので許可してください。これでPC側のビルドがしっかりと成功すればアプリが実行されるはずです。

最後に

どうでしたか?
VRアプリケーションの開発と言っても普通のスマホアプリ開発とほぼ同じでそれ以外に特に難しいことはありません。
だからOculusGOのアプリを作ろうぜ☆
何か質問等あったら気軽にTwitterの方に聞いてもらってOKです。このブログのコメントでもかまいません。

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

BitCoin:3QsNSLWHxFHa3Bs2VfD17PGJz7TTgE6p15

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

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(VRゲーム作り始めました)

前から、Unityを使ってちょくちょくOculusやWindowsMR向けのVRアプリを遊び程度に作っていたが、WindowsMRの一般発売も始まり、いよいよ一般消費者にPCVRが広まる時代になってきたことを感じたので、販売できるレベルの内容の濃いVRゲームを開発することにした。

まだ、名前も決まっていないが、FPSな感じのシナリオゲームになる予定。今、シナリオも結構決まってきている。

FPSとか聞いて、BattlefieldCall of Dutyとかみたいな、オッサンだらけで泥だらけになりながら戦うゲームとか思うかもしれないがぜんぜん違う。メインキャラクタの半分は女性だし、舞台は海だ。(でも主人公は男です。)

詳しい内容は煮詰まり次第、タイトルや公開予定を含めホームページで公開予定。

 

宣伝?的なものは書いたので

ウンcodeな話を始める(´・ω・`)

今回のVRゲームはとOculusとWindowsMR向けなどに出すことを計画しているので、最初からマルチプラットフォームな設計にすることにした。そこで、障害になりそうな、各プラットフォームのメーカーが出しているSDKを極力使わないこととした。

UnityにはUnityEngine.XRというのがあり、OculusならヘッドトラッキングやOculusTouchなど必要なことの殆どがこれから利用できる。問題は公式資料(内容薄い&English)ぐらいしか参考になるものがないことだが。

 

とりあえず、開発一日目。ここまで作ってみた。(ゲーム内容のヒントになるものだらけw)


自作VRゲーム試作中 OculusTouchでMk45を動かす(2)

 

とりあえず、右手OculusTouchを用いてMk45 5inchi砲を撃つのだが、結構てこづった。

OculusTouchの座標を取得しようと

InputTracking.GetLocalPosition(XRNode.RightHand)

を利用したが、動作が変で、不思議に思い

同じ座標なはずの

GameObject.Find("Main Camera").transform.position

InputTracking.GetLocalPosition(XRNode.Head)

を比べたら、全然値が違うので、もしかしたら基準点が違うのかなとか思い、HMDの位置からの相対座標でOculusTouchとMk45を連動させることにした。

transform.position = GameObject.Find("Main Camera").transform.position + InputTracking.GetLocalPosition(XRNode.RightHand)- InputTracking.GetLocalPosition(XRNode.Head);

↑こんな感じに

この程度なら、コード一切書かなくてもSDK等を利用することでできてしまうが、今回はあえて、全てコーディングすることにした。後々、色々いじれるように。

明日は左手の実装と敵とか出して当たり判定ぐらいつけようと思う。それをしながらVR内での有効なUIを模索していく。あとMk45の射撃に爆炎をつけたりしようと思う。