Unity で Google Cardboard 対応アプリを作ってみました


NoName_2014-11-28_16-16-41_No-00こんにちは。masuyamaです。

最近、VR(と言っていいのでしょうか?)界隈はいろいろと盛り上がりを見せているようです。
私も Oculus Rift で何か作りたいなーとずっと思っていました。
ただ、まだまだ小さな子供がやるには重く、また数をそろえられないので幼稚園や保育園に持ち込むのも難しいです。

というわけで、没入感はさほどではありませんが、お手軽に利用できる Google Cardboard 対応アプリを作ってみたいと思います。

カメラ

これが全てと言っても過言ではありません。
VR用のUnity Pluginを使用します。
https://www.durovis.com/sdk.html

ダウンロードしたUnityPluginをImportします。
NoName_2014-11-28_16-16-41_No-00

こちらのカメラを適当な位置(今回は中央)に配置します。
Unity - Untitled - Sea4Blog - PC Mac & Linux Standalone DX11_2014-11-28_16-22-27_No-00

対象物を置く

小さい子供向けに作りますので、ふだん見ることのできないものにしたいと思い、AssetStoreで無料で手に入るくじらを選びました。
NoName_2014-11-28_16-26-47_No-00

こちらも適当な位置に配置します。(ついでにライトも配置します。)
Unity - Untitled - Sea4Blog - PC Mac & Linux Standalone DX11_2014-11-28_16-33-21_No-00

実行してみる

この状態でもう利用することができます。
目の前にいるくじらを見ることができるアプリができあがります。
Unity - Untitled - Sea4Blog - PC Mac & Linux Standalone DX11_2014-11-28_16-34-41_No-00

くじらを移動させる

せっかくなので、くじらには泳いでもらおうと思います。
周回移動をさせたいだけですので、お手軽にiTween Visual Editorを使用します。

くじらにiTween path を追加します。
Unity - Untitled - Sea4Blog - PC Mac & Linux Standalone DX11_2014-11-28_16-39-18_No-00

Node Count を 10 に設定し、適当な位置に配置します。
今回は周回するpathなので、始点と終点を(0, 0, 0) にしました。
Unity - Untitled - Sea4Blog - PC Mac & Linux Standalone DX11_2014-11-28_16-42-46_No-00

最後にiTween Eventを追加し、くじらをpathに沿って移動させます。
looptypeをloopとし、orienttopathをtrueにします。
NoName_2014-11-28_16-49-40_No-00

カメラも移動させる

ずっと同じ角度からしか見えないとさすがに飽きてしまうのでカメラも移動させます。
ただ、カメラを移動させると酔ってしまう人が多いので、子供向けにこのあたりはより安全な設定にしておきます。
自分が移動しているとわからない(くじらの方が移動していると思える)くらいの遅さで移動させます。
このとき、looptype=Ping Pongとし、カメラはpathを往復移動するようにします。
Unity - Untitled - Sea4Blog - PC Mac & Linux Standalone DX11_2014-11-28_16-55-33_No-00

SkyDomeの追加

この時点ですとまだ海中にいるようには思えず、水槽のようなところで見ているように思えてしまいます。
そこで、デザイナーの人に内向きの球体を作ってもらい、その中のカメラとくじらをいれます。
そして、その球体に海中のように見えるテクスチャ(上が青で、下にいくほど黒になる単なるグラデーション画像)を設定します。
Unity - seaunity - GoccoMuseumSea - Android DX11 on DX9 GPU_2014-11-28_17-12-2_No-00

Fogを設定する

水中ですのでFogを強めに設定して、くじらが離れたときは見えにくくしたいと思います。
NoName_2014-11-28_17-13-22_No-00

完成

少し長くなってしまいましたが、これで一通りの動作は完成です。

NoName_2014-11-28_17-19-50_No-00 NoName_2014-11-28_17-21-0_No-00

実践

タイミングよく、先週のブログで紹介した「こどもまんなかハッカソン」という試みに
あの、なかしまさんが参加していたので、このアプリを渡して実際に幼稚園で子供たちに見てもらいました。
Google様に、まとまった数のCardboardをご提供いただきました!

15873362586_95df9d36f1_k
15899180195_e20bd1fe6d_k
15279552883_cda6bcf086_k
15873505686_f9680fc831_k
15898636372_d2699cd985_k
15898549482_b4fc2b0cc3_k

子供たちに大好評だったようです。

まとめ

作ったものを実際に子供たちに見てもらって反応を感じられるのはとても楽しく、やりがいを感じられます。
VRだけでなくIoTを利用したオリジナルのデバイス作成なども盛んになってきており、実際に試しやすい環境が整ってきています。
それらの新しいテクノロジーを使った体験を子供たちに届けていけるように、これからも日々勉強を続けていこうと改めて思いました。

スマートエデュケーションではこのような想いを共有できるアプリエンジニアの方を募集しています。
ご興味のある方は、こちらから応募ください。