はじめに
こんにちは、NTTコノキュー テクノロジー部門の浅井です!
突然ですが、皆さんVR空間上で何かものを買ったりしたことはありますか? 自分はありません。バーチャルマーケット等に行ったことはありますが、購入フェーズになるとWebサイトへ遷移するというものでした。 VRChatでアバターが売っているブースにも行きましたが、Webサイトへの遷移になっていました。
現状のVR空間上で決済までやれる必要があるかというとそんなことは無いと思うので、全く問題は無いです。 ですが!VR空間上で生活出来るようになる未来を考えると、その中での購買体験ってどうなるんだろうか?と考えてみたくなりました。
ということで、バーチャル空間ならではの商品購入体験を超簡単に作ってみました!
本記事の構成
今回の記事は以下の4つの構成となっています。
- 作ったもの
- 作った背景
- 作った内容
- まとめ
作ったもの

ちょっとこの動画だけだと「?」かもですが、、 棚を回転させるとどんどん新しい商品が表示され、棚に載せきれない商品数を一度に閲覧出来る、というものです。
アプリ上では
- 手で棚を回転させる
- 棚の回転に合わせて商品(今回はオブジェクトの色)を変える
の2つを実装しました。
作った背景
VR空間上で新しい購買体験を作る上で
購買体験と言ってもどこで何することを指すのか?自分はどこを作りたいのか?が漠然としていました。
そこで、まずは ①既存サービス事例/学術研究/映画(ドラマ)/アニメ・ゲーム/自社サービス事例 ②現実世界での購買体験 の2つを調査・分析し、自分がどういう体験を作りたいのか?を考えました。

①ではバーチャルマーケットや、電脳コイルなどなど、自分の知っている・好きなジャンルを筆頭に色々調査をして、実際のユースケースと、描かれた理想のイメージをインプットしました。 ②では現実の中で「物を買う」ステップは何があるのか?を把握するために、まとめてみました。まとめてみると、自分が能動的に動くか受動的に動くか、という2つの観点で分類出来そうに思いました。
これらの調査・分析を踏まえて、VR空間上での購入までのフェーズを4つに分類しました。
結果、「商品を探す」フェーズが一番工夫の凝らしようがあって、かつ既存サービスでも中々スタンダードが無いと思い、ここを作ることにしました!
商品を探す方法を考える
商品の探し方を色々考えた結果、 A 新しい体験だが、使い方を教わらなくても直感的に使える行動 B 現実世界では実現出来ない体験 の2つの要素を満たしたものを作りたいと思い、「回転棚を回すと回した分だけ商品が見れる」体験はどうか?と思いつきました。
回転棚って正式名称はわからないですが、お土産屋さんで日本・海外問わず見かけますよね。つまり、VR空間上でも商品が陳列される円柱の棚があれば、人はそれを回して見ようとするのでは?という考えです。
さらに、現実世界では商品棚に陳列した商品は人が変える必要がありますが、VR空間上なら表示するデータを入れ替えることで大量の商品を表示出来ます。
ということで、VR空間上で商品棚を回転させると、どんどん新しい商品が表示され、棚に載せきれない商品も一度に閲覧することが出来る、そんなコンセプトを形にしてみることに決めました!

作った内容
実装自体は超シンプルです。
- OVRInteractionプレファブが元々含まれているサンプルシーン「HandGrabExample」を使用
- OVRCameraRig>OVRInteraction>OVRHand>RightHand のTagをPlayerに設定、Rigidbodyを追加
- OnTriggerEnter関数を使って、当たり判定中に棚の回転と、商品と見立てたCubeの色変更を行うスクリプトを作成し、棚に関連付ける
- 棚にもTag, Rigidbodyを追加し、かつColliderはIs Triggerをオンにする
の4工程です! 1.は説明割愛して、2. については以下のように設定します。

3.については、以下のようにスクリプトを作成しました。 今回、商品棚に陳列している商品はテキトーにCubeを並べただけです。Cubeは棚の子オブジェクトとしており、当たり判定中は棚が回転するように設定しています。
また、Cubeの色は当たり判定中にマテリアルを5色の中からランダムに変更されるように設定しました。 大量のCubeの扱いは全てPublicのGameObjectとして扱っています。もっと良い方法あるよなと思いつつ、、
- については以下のように設定します。

で完成です!
これで右手で棚を回す動作を行うと、棚が回転し、それに合わせて商品も変わっていく、というコンセプトはギリギリ体験出来そうなアプリが出来ました。

まとめ
VR空間上での新しい体験を考えるのは楽しいですね。まだまだ発展途上な世界なので、今後も購買体験に関わらず、色々な体験を作っていきたいと思います。
また、今回初めてQuestのハンドトラッキングを扱いましたが、思った以上に難しかったです。当初の想定では物理判定を使って手と棚を接触させて回転させるようなことを考えていたのですが、OVRHandを使ってオブジェクトを掴ませるのも難しく、方針転換して超簡単な実装にしました。 HoloLens2やMagicLeap1でハンドトラッキングの扱いは結構行っていたので同じようにイケると思ったんですが、、 QuestでもMRTKを使えるので、そっちの方が良いのかも?ですね。