
2025.03.19
急成長するドバイ不動産市場の今 投資のチャンスと注意点を専門家が解説
XR Interaction Toolkit 1.0.0-pre で VR 開発してみよう(全1記事)
リンクをコピー
記事をブックマーク
初鹿デニック氏(以下、初鹿):「XR Interaction Toolkit 1.0.0-preでVR開発してみよう」という題で発表します。よろしくお願いします。
自己紹介です。名前は初鹿デニックと申します。TIS株式会社でXRエンジニアをやっています。本発表は個人の見解で、所属組織の意見ではありません。よろしくお願いします。アジェンダはこのようになります。
まず「XR Interaction Toolkit」について説明をします。XR Interaction ToolkitはUnityが提供するVR/ARインタラクションシステムのツールキットです。似たようなツールでOculusが「Oculus Integration」を提供しています。
XR Interaction Toolkitは、2019年12月頃にpreview packageとして公開されてからはしばらくアップデートがなかったんですが、2020年の10月ぐらいにバージョン0.10が公開されて、約10ヶ月ぶりに新機能が追加されています。今は1.0.0-pre版が出ていて、リリース目前です。本発表ではVRの機能について説明します。VR側では以下の機能が提供されています。
本発表での検証環境はこのようになっています。XR Interaction Toolkitは0.10からいくつかの機能が追加されていて、どのバージョンから対応されているかは右下のラベルに表示しています。始めにインストール方法ですが、Unity Package Managerを通してインストールします。preview packageなのでShow preview packagesにチェックする必要があります。
機能の紹介に入ります。まずは「Interaction」です。登場人物はInteractorとInteraction ManagerとInteractableの3者です。InteractorはInteractionの主体で、主にプレイヤーのコントローラーを指します。InteractableはInteractionの客体で、物体やUIパネルなどを指します。
この2者の状態がホバー状態なのかどうかを通知するためにInteraction Managerというマネージャークラスが存在します。この神クラスが存在しないと、お互いの状態がどうなっているかを知ることができないので、この3者は必要です。
ここから機能を淡々と説明していきます。「XR Ray Interactor」でコントローラーからRayを出せます。Rayは間接に遠隔物体をつかむような感じで、ほかにもDirect Interactorがあって、これはコントローラーで直接インタラクションできます。
あとは「Socket Interactor」というのがあって、以前の位置というのは語弊があるかもしれませんが、この物体の向こうに格納できます。このコライダーの範囲にキューブが入ると判定されて、そこから手を離すとここに格納が戻ります。
先ほどの物体に「XR Grab Interactable」をアタッチするとつかめるようになります。ほかにも「XR Simple Interactable」があって、XR Grab InteractableからGrab機能を取り除いたものです。
Interaction Systemには状態があります。先ほどホバーやセレクトは説明しましたが、ホバーの場合、物体にRayが触れた瞬間にHoverEnteredになって、放れたらHoverExitedというイベントが発火します。またつかんだ瞬間にSelectEnteredの状態になって、離すとSelectExitedの状態になります。これらをInteractor、Interactable Eventsと言います。イベントにはこのように処理を登録できます。
コントローラーにはAudio、HapticのEventsがあって、Interactable Eventsが破壊されたときにこのように音や振動を追加できます。もちろんEventsなどは、スクリプトを通してこのように追加できます。
次に「Locomotion」です。XR Interaction Toolkitでは以下のような「Locomotion System」が提供されています。0.9以前まではこの2つしかなかったんですが、2020年の10月頃に出た0.10からは、2つの機能が追加されています。
まず、「Snap Turn Provider」という機能があるんですが、これは瞬発的な視点回転処理を行えます。あとは「Teleportation Provider」というのがあって、これでテレポート処理を実行できます。テレポート先の判定は、平面のAreaと点のAnchorの2種類があります。テレポーテーション設定でMatch Orientationというのがあるんですが、これは少し混乱しやすいので次のスライドで説明します。
Match Orientationは、テレポート処理後の向きの設定です。0.9以前と0.10以降でこのEnumの内容が変わっているので注意してください。最初にWorld Space Upがあるんですが、これはワールド空間のy軸に合わせて、テレポートあとはワールドのy軸に合わせます。
次にTarget Upですが、ワープ先のy軸に合わせます。ワールド先のy軸と合っていないとプレイヤーはこのように向きが横向きになってしまうので、注意してください。
もう1つ、Target Up and Forwardがあるんですが、これはワープ先のyz軸に合わせます。最後にNoneがありますすが、これはワープ処理の前の向きと同じです。なのでワープ前の向きが正常だったら正常なんですが、おかしいままでワープしてしまうとおかしいままで変わりません。
個人的にはWorld Space Up以外はVRより向きになるので設定するときは注意してください。
ここからは0.10から追加されている機能を説明します。「Continuous Turn Provider」は変則的に視点を回転する処理ができます。もう1つ、VR空間内で移動処理を行える「Continuous Move Provider」があります。
Enable Strafeという項目があって、ストライフ移動は横移動のことを言うんですが、ここを有効にするかしないかという設定があります。ここのチェックを外すと前後移動しかできなくなります。
あとは「Character Controller Driver」が0.10から追加されました。これがなかったときは、現実空間でかがんでも、VR空間内ではCharacter Controllerの高さが変わらないために、VR空間ではかがめないという悲しいことが起きていたんですが、このCharacter Controller Driverを使えば、現実空間で頭の高さを変えるとCharacter Controllerの高さも変わります。
あとは0.10からInput System対応版が追加されました。対応しているのは以下の4つのコントローラー操作関連の機能です。Input Manager版はDevice-basedになっていて、Input SystemはAction-basedというスクリプトに名前が書かれるようになりました。
「XR Device Simulator」も0.10で追加されて、エディタ上でVRコントローラー操作を行えるようになりました。
XR Interaction Toolkitを応用したサンプルを紹介します。Socket Interactorを継承して独自のクラスを使えば、このように手首にモノを収納できるリストポケットを作れます。
XR Grab Interactableを拡張すれば、両手持ちの物体も実装できます。右手で銃を持って、左手でエイムの調整を行うギミックも搭載できます。
おわりに、ちょっと横道に逸れますが、近々Unity WebXRでXR Interaction Toolkitが対応される予定です。XR Interaction Toolkit Roadmapが公開されていて、将来はRemote Input Debuggerや、ハンドトラッキング、両手インタラクションが追加される予定です。
フォーラムによると、XR Interaction ToolkitはUnity 2021.2で1.0.0リリースを目指しているようです。後ほどスライドを公開するので参考にしてください。
まとめです。XR Interaction Toolkitを利用すれば、VRインタラクションシステムのひと通りの実装ができます。XR Interaction ToolkitはUPMを利用していて、アセットを置く必要がないので、Oculus Integrationに比べてリポジトリの容量が増えません。ただ必要最低限のコンポーネントしかないので、機能を拡張したい場合は拡張クラスを作るか、Oculus Integrationなど他のSDKと組み合わせて使うのがいいかもしれません。
ご清聴ありがとうございました。
司会者:ありがとうございました。それでは質疑応答の時間に移ります。「Oculus Integrationと比べたときのメリットはどのあたりなのか?」と質問が来ています。
初鹿:そうですね(笑)。Oculus Integrationはけっこうアセットに容量を食うんですが、XR Interaction ToolkitはUPMを利用しているので、容量が増えません。最低限の実装はXR Interaction Toolkitでいいんじゃないかと思います。
司会者:ありがとうございました。
関連タグ:
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.17
不確実な時代だからこそ「知らないこと」を武器にする ハーバード首席卒業生の逆説的なメッセージ
2025.03.17
いくら読書をしても「成長しない人」が見落としていること 10分でできる「正しい学び方」
2025.03.19
部下の「タスクの先延ばし」が少ない上司の特徴とは? 研究が示す、先延ばし行動を減らすリーダーの条件
2025.03.17
ソフトバンクとOpenAIにとって「歴史的な日」になった 孫正義氏が語る、AI革命の全ぼう
2025.03.18
フェデラー氏が語る「努力しない成功は神話」という真実 ダートマス卒業生に贈る勝利の秘訣
2025.03.18
全知全能の最先端AI「Cristal」が企業の大脳となる ソフトバンク孫正義氏が語る、現代における「超知性」の可能性
2025.03.19
フェデラー氏が語る「ただの1ポイント」の哲学 ウィンブルドン敗北から学んだ失敗からの立ち直り方
2025.03.18
部下に「そうかなぁ?」と思われない1on1の問いかけ エンゲージメントを高めるマネジメントに欠かせない「聴く」技術
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.17
不確実な時代だからこそ「知らないこと」を武器にする ハーバード首席卒業生の逆説的なメッセージ
2025.03.17
いくら読書をしても「成長しない人」が見落としていること 10分でできる「正しい学び方」
2025.03.19
部下の「タスクの先延ばし」が少ない上司の特徴とは? 研究が示す、先延ばし行動を減らすリーダーの条件
2025.03.17
ソフトバンクとOpenAIにとって「歴史的な日」になった 孫正義氏が語る、AI革命の全ぼう
2025.03.18
フェデラー氏が語る「努力しない成功は神話」という真実 ダートマス卒業生に贈る勝利の秘訣
2025.03.18
全知全能の最先端AI「Cristal」が企業の大脳となる ソフトバンク孫正義氏が語る、現代における「超知性」の可能性
2025.03.19
フェデラー氏が語る「ただの1ポイント」の哲学 ウィンブルドン敗北から学んだ失敗からの立ち直り方
2025.03.18
部下に「そうかなぁ?」と思われない1on1の問いかけ エンゲージメントを高めるマネジメントに欠かせない「聴く」技術
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
青木耕平さんとザッソウ(#156〜158)
2025.02.05 - 2025.03.19
片付けパパ対談【特別編】豊かな人生を過ごすための「投資」&「交渉術」 ~チャンスを逃さず信頼関係も育むコツ~
2025.02.10 - 2025.02.10
グローバルの経営理論に学ぶ、企業アルムナイ成功への示唆〜中央大学ビジネススクール 犬飼知徳教授
2025.02.18 - 2025.02.18
【手放すTALK LIVE#046】 出版記念イベント 『大きなシステムと小さなファンタジー』 一つ一つのいのちが大切にされる社会へ
2025.02.03 - 2025.02.03
「聴く」から始まる組織変革 〜篠田真貴子さんと考える対話型マネジメント〜
2025.02.14 - 2025.02.14