MFT2017に出展したVRコンテンツ
今年もMaker Faire TokyoにVRコンテンツを出展しました。
へなちょこ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を利用しました。
使い方は簡単で、これまで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等に載せたいな、と画策中です。