Tutti Lab

元シリコンバレー在住のおっさん技術者、モバイルVRアプリ開発に挑戦中

MFT2017に出展したVRコンテンツ

f:id:tuti107:20170820085956j:plain

今年もMaker Faire TokyoにVRコンテンツを出展しました。

www.youtube.com

へなちょこCooking

Oculus Touchを活用したVR料理ゲーム(?)です。
食材をナイフでカットし、焼き色を付けて、皿に盛りつけます。
盛り付けが完成すると、AIがその料理に名前をつけてくれます。

食材のカット

Turbo Slicer 2を使用しました。
youtu.be

MeshRendererをもつオブジェクトに、Sliceableコンポーネントをセットするだけで、そのメッシュをスライスすることができます。
何点か、使用上の注意点ですが、

  • Sliceableのエディタ拡張のバグ?により、断面部分のテクスチャ領域の設定がうまくいきません(設定が無視され、デフォルト値となる)
  • 手のちょっとしたブレなどで、大量に細かくスライスされてしまいます。何十・何百の細かなオブジェクトが生成されてしまい、処理がものすごく重くなります。私は、スライス後のオブジェクトの体積が一定以下の場合は、そのオブジェクトを削除するようにしました。

人間っぽいキャラクタの動きの実現

定番ですがFinal IKのVRIKを使用しました。
www.youtube.com

  • Vive用の設定情報はあるのですが、Oculus Touch用が見つからず・・ただ、OVRCameraRigに簡単に設定できました。
  • Grounder IKを設定しないと、足が思うように動いてくれません(上記チュートリアルにはでてこない)。Grounder IKについては、_Demo/VRIK/VRIK(Grounder).unityが参考になります(というか、コピペ)

キャラクタの手の動き

OculusFingerを利用させていただきました。
eyln.hatenablog.com

お皿に食材を盛り付け

Unity 5より、Mesh ColliderはConvexにしなければならなくなり、お皿のように真ん中がくぼんた形状のMeshの当たり判定が、想定通りとなりません。そこで、多数のBoxColliderでMeshColliderをエミュレートする、Non Convex Mesh Colliderを利用しました。

youtu.be

使い方は簡単で、これまでMeshColliderを張り付けていたコンポーネントにNonConvexMeshColliderをセットし、Boxes Per Edgeを適当な数字として、Calculateボタンを押すだけです。Boxes Per Edgeを大きくすると、より細かなBoxColliderでエミュレートされますが、処理が重くなります。また、

  • Create Child Game Objectのチェックを外すと、NonConvexMeshColliderがセットされたオブジェクトに多量のBoxColliderがセットされます。
  • Create Child Game Objectのチェックをチェックした場合は、子オブジェクトが生成され、そこにBoxColliderがセットされます。この場合、衝突判定処理の修正(GetComponent→GetComponentInChildren)が必要かもしれません。

名前付け

im2txtを使用しました・・詳細は本作品を一緒に開発した友人にお任せだったため、よくわかりませんが・・
soralab.space-ichikawa.com

なお、im2txtは画像認識の結果を英語の文章で返すのですが、これを日本語化するために、Google Translateを使用しました。

肝試しVR

Gear VR/Daydream/Google Cardboard向けのホラーVRゲーム(?)です。
ライド型のお化け屋敷アトラクションであり、プレーヤは歩いたりしなくても、乗り物が動いて勝手に進んでいきます。
特段のゲーム性はなく、ひたすら怖いモンスターや超常現象を見て楽しむ、コンテンツです。

お化け屋敷のセットには、Abandoned Hospitalを使用しました。
youtu.be

・・何も出てこなくても十分に怖いです・・
なお、モバイル向けのアセットではないので、そのまま使用すると、GearVR等では全然性能が出ません。涙ぐましい性能調整が必要でした・・

本コンテンツは、近々(秋になる前に)Oculus Store等に載せたいな、と画策中です。