RaspberlyのブログRaspberlyのブログスマートフォン用の表示で見るRaspberlyのブログUnityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。Touchの開発ネタをやっていきます。本記事は読者様からのコメントネタです。ゲパルトいつもわかりやすくお世話になっております。intagrationの機能には無く、作らねばならないのでしょうか?シーン開始時にすでに物を持った状態で始めたいというアイデア。後から持ち直したりしたい場合は独自に実装しないといけなさそうです。・途中で物を持ち替えさせたい場合をお送りします。Questセットアップ開発環境を整えていない方は先にこちらをどうぞ。基本的な掴む投げる動作を学ぶことができるAvatarGrabシーンを使います。Grabber、DistanceGrabber共に動くのでDistanceGrabシーンでも特に問題はありません。2020/02/18AvatarGrabシーンが削除されました。raspberly.hateblo.jp手を出すALVRでやる場合はこちらを参考に手を用意しておきましょう。ホラーゲームにもぴったりな懐中電灯です。3Dモデルのセットアップ前回の記事と同じです。Rigidbody、適当なコライダー、OVRGrabbableコンポーネントをアタッチしておきましょう。最初から最後までオブジェクトが固定の場合シーン開始時、オブジェクトを手に持った状態で始まりますが、このオブジェクトを途中で落としたり、投げつけたりせず、ずっと固定のパターン。これはとても簡単です。手のモーションを変更、手の子オブジェクトに持たせたいものを設定するだけです。アプローチ1は刀を持たせます。手のアニメーションは握っているモーションで固定します。新しくAnimatorControllerを作成します。名前はFirstGrabMotionとおきます。Animatorビューから新しくステートを作成します。FirstGrabMotionのMotionを「r_hand_relax_3qtr_fist」にします。左手なら「l_hand_relax_3qtr_fist」です。ちなみに「r_hand_relax_3qtr_fist」モーションはこんな感じ。Handの子オブジェクト化KatanaをCustomHandの子オブジェクトに入れます。この時、いい感じの位置に調整してあげましょう。一度再生し、プレイモードで位置を合わせてからインスぺクターの値をコピーして、プレイモードを解除後に値をペーストして上書きします。忘れてならないのがこれです。最初に持たせておきたいオブジェクトのGrabbableですが、使わないので無効化しておきましょう。RigidbodyのIsKinematicにチェックを入れます。Grabberの設定OVRGrabberは手OculusTouchからの位置の同期に必須なので無効化していけません。他の物を掴んでほしくないのでGrabBeginは2にしておきます。GrabEndは0にしていますが、ここはあまり関係ないようです。次にHandは無効化しておきます。今回は邪魔になるので無効化しておきます。シーン開始時から刀を持った状態で始まります。中指トリガーをガチャガチャやっても、途中で離したりはしません。途中で持ち替えたりする必要がないのならこれで十分だと思います。OculusTouchの操作時に誤って手を離したりすることがないため、操作性も良い。途中で物を持ち替えさせたい場合シーン開始時、オブジェクトを手に持った状態で始まりますが、このオブジェクトを途中で落としたり投げたり、空いた手で別のオブジェクトを掴めるようにします。こちらは自分でスクリプトを書いていく必要があります。アプローチ1とは違い懐中電灯を持たせます。1.手のアニメーションを変更アプローチ1とほとんど同じですが、モーションだけ差し替えます。FirstGrabMotionのMotionを「r_hand_hold_billiard_ball_anim」にします。左手なら「l_hand_hold_billiard_ball_anim」です。ちなみに「r_hand_hold_billiard_ball_anim」モーションはこんな感じ。コンポーネントの設定GitHubからあらかじめOVRFirstGrabberスクリプトを落としておきます。github.comこのOVRFirstGrabberをCustomHandにアタッチします。GrabberやHandコンポーネントがアタッチされているオブジェクトと同じところです。FirstGrabberシーン開始時に最初から物を掴んだ状態で始めるコンポーネントです。Grabberが有効なら無効化する。2.OculusTouchの中指トリガーが押されていようがいまいが最初は常に持ち続ける。3.一度中指トリガーが押されたのち離されると、持つことを解除する。FirstGrabber)を無効化する。Grabberにないオリジナルのパラメータです。Grabberと同じ値にしておきましょう。Grabbable最初に持たせておきたいオブジェクトのGrabbable。今回の場合、FlashlightのGrabbableになります。Animator手のAnimator。Controller手のAnimatorに初期からついているAnimatorController。右手の場合はRightHandAnimator、左手の場合はLeftHandAnimator。シーン開始時から懐中電灯を持った状態で始まります。一度懐中電灯を離した後は、別のオブジェクトを掴むこともできますし、懐中電灯を拾いなおすこともできます。おまけ以下のスクリプトをそのままコピペして、lightComの所に懐中電灯のライトを紐づけると、Bボタンで懐中電灯のオンオフを切り替えられます。ホラーゲームなどの雰囲気作りにどうぞ。}}まとめ最初から物を持たせたい時は二つのアプローチがある基本的には子オブジェクトにするだけのアプローチ1の方がよいプレイヤーの誤動作をなくし、落ちたものを拾いに行かせなくて済むので、アプローチ1の方がよさそうです。先日の銀座VR3で「狂気の城」というコンテンツを体験させていただきましたが、こちらもアプローチ1の方でした。読者様からのリクエスト記事が完全に止まっているので、こちらも近いうちに仕上げたい所。raspberly.hateblo.jp他間違っている箇所、わかりにくい所がありましたらコメントにお願いします。今年の振り返り記事です。Touchの開発ネタをやっていきます。Questの開発ネタをやっていきます。Questの開発ネタをやっていきます。Questの開発ネタをやっていきます。アーカイブおすすめアセット参加グループUnityUnityゲーム開発者ギルドリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!Raspberlyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。