
2025.02.18
「売上をスケールする」AIの使い道とは アルペンが挑む、kintone×生成AIの接客データ活用法
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.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
第20回エクゼクティブメンターイベント「今、「ひと」と組織が共創する〜働き方の未来へ」
2024.12.07 - 2024.12.07