こんにちは、くのへ@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を投げる動作をしてみて下さい。手を離した瞬間に空中で静止し、重力で落下すると思います。なんか違和感ある挙動ですね。
次の記事では、ものを投げれるようにしたいと思います。
ではまた別の記事で会いましょう。
ではでは~
🦅バサバサ~