まわりがGOだらけなのでMirage SOLOでHDRPをデプロイするのを試す記事とか書きますというタイトルでVRアドベントカレンダーに参戦する。
------
[Depricated]
本記事は2018/12に書かれました。内容については古いものであり、2020/11現在では技術的に参考にはできないものとなっています。
ただし、スタンダロンAndroidベースのHMDでは、まだHDRPに耐えられないということは同様の状況です。(そもそもHDRPはハイエンドのPC/コンソール環境向けです)
したがいまして、本記事はジョーク記事として、仕事のあいまの息抜きなどでお楽しみください。
------
はいどーもー、さやちゃんぐbotです。
今年は人生で初めてアドベントカレンダーというものに参戦してみようと思い立ち、前回はぼっちアドベントカレンダーを書きました。
今回はOculus Rift Advent Calendar 2018に向けて書いてみたいと思います。
昨日のアドベントカレンダー記事はこちら。
それではさっそく行ってみましょう!
現在xR領域でもっとも注目されているデバイスは、間違いなく2019年に登場するOculus Quest
でしょう。コアじゃない層も含めて、多くの人々からの期待を集めています。
2019年に人類はQuestを手に入れ、ケーブルに囚われなくなり、そして6DoFの世界に引っ越す準備が整うのです。
2018年にOculus GoでHMDは遂に一般層、レイトマジョリティに広がり始めました。
この流れの次はきっと、Questが作っていくことでしょう。
VRと開発エンジンに触っている人たちの中では、気の早い人は来るべき一体型6DoFのパラダイムに向けて、すでに何かしら作り始めていると思います………そう、Mirage SOLOです!!
飛躍があるように感じられますでしょうか。そもそもGoに触る人はいても、Mirageに触る人がとても少ないですね。わたしはかなしい!
しかし、「ケーブルにとらわれずに6DoFで 動き回れる」VRを手軽に使えるのは、現状ではMirage SOLO一択です。
今のうちにこれを使って、何か作ってみましょう。
この知見は必ずやQuestへとつながることでしょう。
また、せっかくなので何か新規性のあるテーマを盛り込んでみよう、何にしよう…とネタを考えてみると、そうです!ここはUnityのpreview機能であるHDRPがぴったりです。
これはいいネタの予感がします。おそらく、Mirage SOLOでHDRPのシーンをデプロイしようとした人はそれほどいないでしょうし、一体型のVRでHDRPのような革新的なルックを実現できたらたいへん夢が広がります。
UnityでHDRPを使って背景や部屋、キャラクターをセットアップするやり方については、過去記事の↓これと、記事内でリンクされているさらにその前回の記事とかをご参照ください。
始める前からHDRPをモバイルで動かすのは困難が予想されています!
そもそもデプロイできないとか、動かしても無茶苦茶重くて耐えられないとかになりそうな予感しかしません。
つまり、うまく行かなかったらいかなかったで、それはそれでネタになるということです!!
どっちに転んでもそれでいい!*1
長い前置きを終えて、Unityで作業していきます。
HDRPのシーンに部屋とキャラを置いていきます。
お部屋のアセットは前々回あたりの記事でも使ったPBRの部屋です。
女の子のモデルキャラは、かふじパパによる日向舞夏ちゃんです。DWUと姉妹です。
マテリアルとテクスチャに丁寧に名前がつけられているので、HDRP向けにマテリアル変換した後の再設定がたいへんやりやすいです。
トゥーンルックのキャラクターをPBRに持ってくるのは困難が伴います。
今回は上のスクリーンショットの通り、Smoothnessを1.0、Thicknessを0.0でセットアップしました。
ポスプロもバリバリに効かせているので、肌がキラッキラでたいへん眩しいです!
Android向けにSwitch Platformすると、これがまたたいへん時間がかかります。
もっと軽い部屋を選んでおくべきだったか?!と、ここでやや後悔します。
そして止まらないエラー表示。ここでやられます。
どうしたもんかなーとか思いながらパッケージをアップグレードしたりしてどんどん深みにハマっていきます pic.twitter.com/8oudzJ9BMG
— さやちゃんぐbot (@songofsaya_) December 8, 2018
いいかんじにドツボです。 無理なのでは?と、ここで止めてしまいそうになります。
というかですね、そもそもAndroidプラットフォームならLWRPを選べということなんですね。
Oculus GoもMirage SOLOもOculus Questもちょっといいスナドラの上で動くAndroidです。重たいレンダリングを一体型でやるにはそもそも無理があります。というかサポートされていないのでは。*2
とは言えども、従来のルックからLWRPに乗り換える意味は薄いです。将来の開発ワークフローは複数のプラットフォーム、複数のレンダリングパイプラインに対応しやすくするためにShaderGraphに移行していく流れになろうかとは思いますが、今回の実験でLWRPに日和るつまりはまったくありません。
目指すべき地点は、UE4なのかBlender EEVEEを使ったのか、はたまたRay-MMDなのか、一目ではUnityだと見破られないところです。
RiftとVIVEでHDRPが動くことは確認しているので、どんどん試すHMDを増やしていきましょう。
Core RP、HDRP、ShaderGraphを5.2.2から5.0.0に落としてみたり、Post-processingを2.2.2から2.1.0に変えてみたりします。このあたりのバージョン選択は完全に勘です。そして当たり前のようにエラーが解消されない!
次に打つ手はライブラリキャッシュの全削除です!
パッケージのバージョンを変えてしまったりしているし、きっと一時的にpreviewの何かが残り続けているだけだからお掃除すると良いでしょう…と、消してUnityを起動し直すと、なんと動くように見えるではないですか!
…が、これで喜び勇んでビルドしようと思うと気が付くのですね。プラットフォームがPCに戻っているのです。しおしお。
このあたりからアルコールを摂取し始めて何を行ったのかよくわからなくなりますが*3、とにかくなぜかSwitch Platformが終わっていて、モデルはピンクになってしまったもののShaderGraphをひとつずつ開いて保存し直していくと、なんとシーンがそれっぽくなったではありませんか。やりました!!
勝利は目前です。ビルドしましょう!!
あああああ!
ああああああーー!!無慈悲にもサポートされていない旨のエラーメッセージが大量に表示されます。ここで心がぼっきりと折れます。
やはり早すぎました。
現時点でのHDRPではおとなしくPC、RiftやVIVEで使うことに専念するしかないのです。
残念…無念極まりないっ!
まとめ。
いかがでしたでしょうか。来るべき一体型HMDパラダイムに向けてのHDRP導入は、現時点ではちょっとまだ早かったことがわかったかもしれません。
いや、Questをターゲットに記事を書くなら「ジャックパーティでごんびぃー君のMirageかぶって20m全速力で走って的の裏側から矢を突き刺した*4」みたいなことを書いて、現実世界での移動とインタラクションとかをテーマにした方が良かったですね、はい。
とは言えども、いずれは一体型でもHDRPのルックでxR世界に没入できるようになるのはそれほど遠い未来の話でもないハズなので、気の早いみなさまはゼヒHDRPに手を出してみてはいかがでしょうか!!
(おしまい)