OCULUS QUEST2 買って、candy-rockいじってみました。
はじめに
先日、ビッグサイトで開催しているXR展というのに行ってきました。
ARをやっていたので興味で行ってみたのですが、明電が開催していた安全研修というのを体験してみたのですが、これが超リアル。
マジで怖いんです。家でもダイソーのVRグラスを使ったりもしましたが、画質も全然違うし、地面も機械で揺れるようになっているんです。
梯子から落ちるというシチュエーションでしたが、死ぬかと思いました。
ほかにもいろいろなものがありましたがVRもやってみたいという気持ちを抑えきれず、QUESTなら4万弱で手が届くので、買ってしまいました。
なお、これに関するレビューやググるれば山のようにありますのでここでは詳細書きませんが、確かに新しい体験がここにはあります。
アプリを作ってみる
やはりエンジニアとしてはゲームにはまるよりも自分でいろいろアプリを作ってみたいので、手始めにUnitychanのCandyRockを移植してみました。
ほかの人もやっているようでしたので、情報は豊富で特に苦労はしませんでした。
やっぱライブは3Dで見るといいです。ちょっと感激。
ユニティちゃんをぽんみつに変えてみる
先日アバター用にと思って購入したぽんみつたぬ子をユニティちゃんと入れ替えてみます。
unityパッケージからインポートして、プレハブの入れ替えでできると思ったが、なぜかうまくいかないので、上記にあるVRMのインポートを通してやってみました。
FocusObjのタグが不明でエラーがあったが下記に同じエラーの対処が書いてありました。
アニメーション内で定義されているイベントを削除
ようやくUNITY上で動作するようになりました。・・・と喜んでいたらANDROID向けにコンパイルするとエラーが・・・
Shader error in 'VRM/MToon': invalid subscript '_LightCoord' at Assets/VRMShaders/MToon/MToon/Resources/Shaders/MToonCore.cginc(163) (on gles)
ググると下記に回避策あり。先人の知恵に感謝
結論は
「グラフィックスAPIがGLES2なのがマズかったらしくてGLES3にしたら直った」
ということで、設定を直したところまだエラーになる
Shader error in 'Hidden/Post FX/Fog': undeclared identifier 'sampler_CameraDepthTexture' at line 63 (on gles3)
float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv);
=>
float depth = UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture);
でとりあえず動作した。何が原因かはよくわかりません。
いろいろ壁がありましたが、何とか超えて出来上がりました。
同じ方法で、狸も追加してみました。もちろんoculus quest2でも動作してます。
何気に狸の動きが面白いのが気に入りました。いろいろ表示的におかしい部分ありますが、とりあえずということで。
© Unity Technologies Japan/UCL
今後表示のおかしい部分を勉強しながら直していきたいです。
例えば体に腕がめり込んでる・・とか。