Meta XR SDKで3Dオブジェクトを両手でつかんでびよーんと伸ばせるように設定する(Two Grab Free Transformer)

こんにちは、くのへ@MasazaneKunoheです。
前回の記事では、ものをつかむことが出来ましたが、両手でつかむと止まってしまいました。
これは、「両手でつかまれた時」の設定が何もされていないためです。
この記事では「両手でつかまれた時」の設定を行い、3Dオブジェクトをびよーんと伸ばせるようにしたいと思います。
なお、この記事のとおりやっても「投げる」ことはまだできません。次の記事で「投げる」にも挑戦したいと思います。

はじめに

この記事はMeta XR SDKを使って、3Dオブジェクトを両手でつかんでびよーんと拡張する方法を解説します。
これを習得すると、次の動画のように「両手でつかんでクルクルびよーん」が出来るようになります。

この記事は前回の記事(Meta XR SDKで3Dオブジェクトをつかむ方法)の続きとして記載しています。前回の記事を読んでいない方は、まずは前回の記事を確認してください。

開発方法

前述の通り、まずは前回の記事(Meta XR SDKで3Dオブジェクトをつかむ方法)の最後まで進めて下さい。以降は前回の記事の続きとして記載します。

①両手でつかめるようにする設定(Two Grab Free Transformer)

両手でつかむためには、「つかまれるオブジェクト」にTwo Grab Free Transformerというコンポーネントをセットする必要があります。下図のように、Cube(green)に、インスペクターウィンドウのAddComponentでTwo Grab Free Transformerを探してセットして下さい。(下図①②)

このTwo Grab Free Transformerの中身を見てみましょう。
色々書いていますが、ここで両手でつかんで引き延ばせるサイズの指定や、伸ばせる方向の指定が出来ます。ここは直感的に分かると思います。(下図①)

さて、先ほどのTwo Grab Transformerをセットしただけでは両手でつかめるようになりません。
「Grab」のコントロールを行うGrabbableにTwo Grab Transformerを認識させる必要があります。
下図のように、Cube(green)にずっと前にセットしたGrababbleのOptionsを開き、Optionalsを開けて、TwoGrabTransformerにCube(green)をドラッグアンドドロップします。(下図①②③)
すると、Cube(Green)に先ほどセットしたTwo Grab Transformerコンポーネントがここに自動セットされます。

これで両手でつかんで、クルクルしたりびよーんしたりすることが出来るようになりました!!
是非この状態でMeta Questにビルドして実行してみて下さい。

実行してみた方は、ちょっとした異変に気が付くと思います。
そう、片手でつかめなくなっているのです。
これは、GrabbableのOptionalsに何も設定しないと、「片手でつかむ」設定がデフォルトで採用されるのですが、今回Optionalsを個別設定したことにより、デフォルト設定が解除され、Two Grab Free Transformerの設定のみが動いたためです。
よって、Optionalsに片手でつかむ設定を改めて行わなければ、片手でつかめません。

②片手でつかめるようにする設定(One Grab Free Transformer)

ということで、片手でも両手でもつかめるようにするため、改めて片手でつかむ設定を行います。
もうすでにピンと来ている方もおられると思いますが、One Grab Free TransformerをセットすればOKです。
下図のように、Cube(green)のインスペクターウィンドウのAdd Componentにて、One Grab Free Transformerをセットして下さい。(下図①②)

先ほどと同じように、Cube(green)のGrabbableコンポーネントのOptionalsを開き、そのOne Grab TransformerにCube(green)をドラッグアンドドロップしましょう。(下図①)

すると今度は、初めて見るウィンドウが立ち上がります。
これは、Cube(Green)がTwo Grab Free TransformerとOne Grab Free Transformerの2つの似たコンポーネントを有しているため、自動判別できなかったため、「どっち?」と聞かれているものです。
ということで、One Grab Free Transformerを選びましょう。(下図①)

これで片手でつかむ設定も完了です。
ビルドしてMeta Questで実行してみて下さい!

やってみた

これで実行してみたものが冒頭の動画になります。
クルクルびよ~んを行うと、謎の感動がありますよ!!面白い!!


今日はMeta XR SDKで3Dオブジェクトを両手でつかんでびよーんと伸ばせるように設定する方法を解説しました。
やってみると、とても面白いですよ。

なお、この状態でCubeを投げる動作をしてみて下さい。手を離した瞬間に空中で静止し、重力で落下すると思います。なんか違和感ある挙動ですね。
次の記事では、ものを投げれるようにしたいと思います。

ではまた別の記事で会いましょう。
ではでは~

🦅バサバサ~