VIVE と Unity を用いた VR ソフトの作成について
柴田 光宣
電子工作システム工学班 1.はじめに
2016年にHTC VIVE、Oculus Rift、PlayStation VRなど多数のVRデバイスが発売され、VR元年と呼 ばれました。その後VRデバイスは、医療研修や社内研修でのVR実習、旅行や美術館でのVR体験など、
様々な分野で導入され活用されています。今回、VRデバイスを使用する機会がありましたので、その使い方 やVRソフトの作成について報告します。
2.仮想空間技術について
近年、VR、AR、MRなどの現実世界と仮想世界を融合する技術が活用されるようになり、それらの技術を 総称してXR(Extended Reality)と呼ばれています[1]。それぞれの特長は下記の通りです。
VR(Virtual Reality)は「仮想現実」と訳されます。VRは、VRゴーグルを頭部に装着し、全ての視界を ディスプレイで覆って立体的な映像を見せることで、コンピューターが作り出した空間に自分が居るような 感覚を体験できます。例えば、HTC VIVE、Oculus Rift、PlayStation VRなどがあります。
AR(Augmented Reality)は「拡張現実」と訳されます。ARは、現実世界の情報にコンピューターが作 り上げた画像や情報を重ね合わせる技術です。例えば、ポケモンGOなどがあります。
MR(Mixed Reality)は「複合現実」と訳されます。MRは、コンピューターが作り上げたホログラムを
現実世界に重ね合わせる技術です。VRとARを融合したもので、VRよりも現実世界に近く、ARよりも複 雑な操作ができます。例えば、Microsoft HoloLensなどがあります。
3.VR について 3-1 ハードウェア
VRではVRゴーグルを使用しますが、その形態によって下記の3種類に分けられます[2]。 表 1 VR ゴーグルの種類
パソコン・ゲーム 機連動型
パソコンやゲーム機と連動させるタイプ。高性 能な機器と有線で接続するので、高画質で 美しい映像や高速な処理で高度な体験がで
きます。 HTC VIVE、Oculus Riftなどがあります。
スタンドアローン 型
VR ゴーグルのみで VR体験を実現するタイ プ。WiFiなどの無線でネットワークに接続し、
ソフトをダウンロードします。性能はパソコン・
ゲーム機連動型に劣りますが、ケーブルによ
る制限が無く、自由な動作ができます。 Oculus Questなどがあります。
ス マ ー ト フ ォ ン はめ込み型
スマートフォンをフレームに取り付け、それを 眼前に装着するタイプ。主にVR動画の視聴 に使い、非常に安価です。
ハコスコなどがあります。
VR
ソフトの作成はPC
で行いますので、パソコン・ゲーム機連動型が適しています。PC用VRゴー グルは、HTCとOculusで主なシェアを占めています[3]。比較しますと、HTCのVIVEシリーズはVRゴー グルの品質や性能はとても良いですが、価格もとても高額です。OculusのOculusシリーズは、品質は劣り ますが比較的安価です。スタンドアローン型のOculus Quest
も発売しています。今回は、パソコン・ゲーム機連動型(PCVR)であるHTCのVIVE Pro Eyeを使用しました。
3-2 ソフトウェア
AR / VR向けの3DエンジンではUnityが約60%のシェアを確保しています[4]。3DゲームやVRソフトの
開発ではUnity は不可欠な存在となっており、無料で使用できます。VRソフトを作成するなら、開発環境 はUnityが良いです。
VRソフトを作成するにはソフトウェア開発キット(SDK)が必要で、VRデバイスに対応したSDKをPC に入れる必要があります。PCVRのSDKは、OpenVRとOculus SDKの2強です[5]。OpenVR はSteam 系、Oculus系、Windows MR系の全部に対応しているのに対し、Oculus SDKはOculusにしか対応してい ません。PCVRのSDKは、OpenVRが良いです。
VRデバイスメーカーとSDKの組み合わせは、HTCはValve(Steamを運営)のSteamVR(OpenVR)、 Oculus なら Oculus SDK となります。Unity にプラグインを入れることで、そのSDK を使用できます。
Unityは2019年に、Unityの標準機能でVRソフトを作成できるように、
XR Interaction Toolkit
を発表 しました。表 2 VR デバイスメーカーと SDK の組み合わせ VRデバイス
メーカー
ソフトウェア開発キット
(SDK)
開発環境 プラグイン
HTC Valve SteamVR
(OpenVR)
Unity SteamVR Unity Plugin (Interaction System) Oculus Oculus SDK Unity Oculus Integration
--- --- Unity XR Interaction Toolkit
XR Interaction Toolkitは出たばかりで、他に比べて機能が乏しく情報も少ないです。今は使用せず、今後発 展して他社のSDKに追い付いてから使用を検討すると良いと思います。SteamVR Unity Plugin も進化し て2.0で大幅に新しくなりInteraction Systemというシステムになりました。これを用いるとVRソフトを 簡単に作成できます。
今回は、ValveのSteamVR Unity PluginのInteraction Systemを使用します。
3-3 OpenXR
多数のVR デバイスが発売されていて、それぞれが独自のSDKを使用しています。OpenVR はハードウ ェアに関する特別な知識を必要とせずに、複数の VR デバイスへのアクセスを可能にしますが[6]、それでも 細かい仕様の違いにより、複数のVRデバイスに対応した開発には支障があります。そこでKhronos Group は2016年に、VR / AR / MRにおける仕様を標準化することで、アプリケーションの開発コストを削減する プロジェクトであるOpenXRを提唱しました[7]。OpenXRの概念図を図1に示します。
図 1 OpenXR の概念図
OpenXRによりアプリケーションとデバイス間の仕様が標準化され、各プラットフォームや各デバイスの
ソフトウェアの作成が容易になります。各社の OpenXR への対応状況は、以下の通りです[8]。Unity は OpenXRへの対応を進めており、これまでの管理システム(Project Setting>Player>XR Settingsで設定 する方法)を廃止し、OpenXRに対応した XR Plugin Frameworkを導入しているところです。Oculusは XR Plugin Frameworkに対応済みです。ValveはOpenVRへの機能追加を止め、OpenXRへの対応を進め ていますが、XR Plugin Frameworkへの対応が難航しており、現在はHMDのレンダリングに対応しまし たが、コントローラー入力には対応していません。各社はOpenXRへの対応を進めていますが、まだ移行の 途中となっています。
4.使用機器 4-1 VIVE Pro Eye
VRデバイスは、HTCのVIVE Pro Eyeを使用しました。このVRデバイスは、VIVE Proに高精度なア イトラッキングを追加したもので、両眼の動きを追跡・解析することにより、現実世界と同様のインタラク ションなどが可能になります。主なパッケージ内容は、
VIVE Pro Eye HMD、リンクボックス、VIVE
コ ントローラー(2018)が2
個、SteamVRベースステーション2.0
が2
個です。 VIVE Pro Eye HMD
ヘッドセットの外観とスペック[9]は下記の通りです。
1: ヘッドセットストラップ 2: 追跡センサー
3: カメラレンズ 4: イヤホン
5: ヘッドセットボタン 6: ステータスライト 7: レンズ距離ボタン 図 2 ヘッドセットの外観
表 3 ヘッドセットのスペック
スクリーン デュアルOLED 3.5インチ(対角線)
解像度 片目あたり1440 x 1600ピクセル
(合計2880 x 1600ピクセル)
接続 USB 3.0、DP 1.2、Bluetooth
センサー SteamVR Tracking、Gセンサー、ジャイロスコープ、
近接センサー、瞳孔間調整(IPD)、アイトラッキング
VIVE
コントローラー(2018)コントローラーの外観と基本的な操作は下記の通りです。
図 3 コントローラーの外観 基本的な操作は下記の通りです。
トリガー・・・決定ボタン、物を持つなど、最も良く使います。親指以外の指4本を握ります。
トラックパッド・・・上下をクリックでテレポート、左右をクリックで方向転換。親指を動かします。
グリップボタン・・・補助的なボタンであまり使いません。指3本を握り、人差し指で指差します。
メニューボタンやシステムボタン・・・メニューや設定を開きます。
4-2 PC
PCの推奨されるシステム要件[10]は下記の通りです。
表 4 推奨されるシステム要件
OS Windows 10
プロセッサ Intel Core i5-4590 / AMD FX 8350の同等品以上
GPU NVIDIA GeForce GTX 1070 / Quadro P5000同等またはそれ以上、
AMD Radeon Vega 56同等またはそれ以上
メモリ 4GB以上
ビデオ出力 DisplayPort 1.2またはそれ以降
USBポート USB 3.0またはそれ以降
パソコン工房は VIVE の正規販売店ですので、PC はパソコン工房の ISeDXi-R049-AiX7K-TWSXB
(GeForce RTX 2080 SUPER搭載)を使用しました。上記のシステム要件を満たしています。
5.セッティング方法
VIVE Pro Eyeのセッティング方法を以下にまとめます。初回設定では、
ソフトウェアのインストール
ハードウェアの設置
プレイエリアの設定プロセスを実行
を行います。ソフトウェアはファイルサイズが大きいので、有線でネットワークに接続すると良いです。
VIVEとUnityでVRソフトを作るには、Unity、Steam、HTCのアカウントを使用します。
インストールの最中で取得するのは面倒ですので、事前に取得して用意します。
Unity:https://unity.com/ja
右上の人物のアイコンをクリック>「Create a Unity ID」をクリック
Steam:https://store.steampowered.com/
右上の「ログイン」>(画面右にある)「Steamに登録」をクリック>アカウントを作成
HTC:https://account.htcvive.com/
右上の「新規アカウントを作成する」をクリック>(必要事項を入力)>アカウントを作成する 5-1 ソフトウェアのインストール(Steam と SteamVR)
Steam
下記を開いて、右上の「Steamをインストール」をクリック https://store.steampowered.com/
>Steamをインストール>「SteamSetup.exe」を実行>言語:日本語
>(インストール先はデフォルトで良い)>完了
SteamVR
Steamを起動>「既存のアカウントにログインする」をクリック>ログイン(初回は認証があります)
>虫眼鏡のアイコンの検索欄で「SteamVR」で検索>「SteamVR」が見つかるのでクリック
>インストール>次へ>完了(ファイルが大きいので時間がかかります。緑色で「起動」と表示されます)
デスクトップにSteamVRのショートカットが作成されるので、それでSteamVRを起動できます。
5-2 ソフトウェアのインストール(VIVEPORT)
VIVEPORTはHTCのVRコンテンツ管理ソフトで、VIVEのドライバなども含みますので、インストー
ルします(インストールを途中で止めた場合は、デスクトップにあるショートカットで再開できます)。 下記を開いて、「ダウンロード」をクリック
https://enterprise.vive.com/jp/setup/vive-pro/
>「ViveSetup.exe」を実行>「日本語」を選択
>「理解したものとします」をチェックして「はじめましょう」をクリック>インストール
>サインアップ>(右上の「すでにアカウントをお持ちの方」にある)「サインイン」をクリック
>ストアロケーション:日本、インフィニティに登録:後にする
>(自動的に「デバイスの設定」が開く)
>使用するVRデバイスにマウスオーバー(今回はVIVE Pro Eye)>「ダウンロードする」をクリック
>「了解する」をクリック>(インストール)
*VIVEPORTインフィニティは、サブスクリプション型の有料サービスです。
有料サービスを使わないなら「後にする」で良いです。
*後で「デバイスの設定」を再度行うには、
タスクトレイにあるVIVEPORTのアイコンを右クリック>設定>「デバイスを設定する」をクリック 5-3 ハードウェアの設置
ソフトウェアのインストールが終わると、ハードウェアの設定方法のチュートリアルが始まります。
ベースステーション
図 4 ベースステーション
SteamVRベースステーション2.0は、プレイエリアの対角に配置します。ベースステーションを取り付け
るには、三脚、ライトスタンド、突っ張り棒、安定した本棚などを使用できます。ベースステーションの水 平視野は150度、垂直視野は110度です。頭より高い位置に取り付けると良いです。
リンクボックス
図 5 リンクボックス
リンクボックスに、USB3.0ケーブル、DisplayPortケーブル、電源アダプタケーブルを接続します。次に リンクボックスからPCに、USB3.0ケーブル、DisplayPortケーブルを接続します。
ヘッドセット
図 6 ヘッドセット
ヘッドセットケーブルをリンクボックスに挿し込みます。リンクボックスの電源ボタン(青いボタン)を 押して、電源を入れます。PCで検出されて、接続確認が完了するまで待ちます。
コントローラー
図 7 コントローラー
初回設定では、コントローラーをペアリングする必要があります。ステータスライトが青く点滅し始める までメニューボタンとシステムボタンを押し続けます。しばらくするとペアリングされて、画面に「コント ローラーが接続されました」と表示されます。
*後でペアリングを再度行うには、
タスクトレイにあるSteamVRのアイコンを右クリック>デバイス>コントローラのペアリング 5-4 プレイエリアの設定プロセスを実行
プレイエリアを部屋全体か座り/立ち姿勢のどちらにするか決めます。部屋全体を使う場合は最低 2m×
1.5mのスペースが必要で、座り/立ち姿勢ではスペースの要件はありません。今回は、座り/立ち姿勢にしま した。
図 8 ルームセットアップ
「プレイエリアの設定」をクリック>しばらくするとルームセットアップが起動
>「立位のみ」をクリック
>「スペースをキャリブレーション」では、ヘッドセットを持って中央に立ち、「中央を測定」をクリック
>「床の位置を決める」では、ヘッドセットを机などに置き、床との距離を入力
>「床をキャリブレーション」をクリック>次へ>終了
*後でルームセットアップを再度行うには、
タスクトレイにあるSteamVRのアイコンを右クリック>ルームセットアップ
*ベースステーションを移動したり角度を変更したら、再度ルームセットアップを行う必要があります。
6.Unity 6-1 Unity Hub
Unityエディタは、頻繁に新しいバージョンがリリースされます。異なるバージョンを使い分けるために、
それらを管理するUnity Hubを使用します。
下記を開いて、「Unity Hubをダウンロード」をクリック https://unity3d.com/jp/get-unity/download
>「UnityHubSetup.exe」を実行>同意する
>インストール先はデフォルトのままで「インストール」をクリック>完了
>(Unity Hubが起動)>ファイアウォールは「アクセスを許可する」をクリック
Unity Hubが起動したら「ライセンス認証」を行います。ライセンス認証は、Unityアカウントにサイン
インして行うのが簡単です。
右上の人物のアイコンをクリック>サインイン>右上の歯車をクリック>(左側の)ライセンス管理
>新規ライセンスの認証>ライセンス契約は「Unity Personal」>実行 ライセンス認証が完了して、Unityを使用できるようになります。
6-2 バージョン
Valve は OpenXR への対応を進めていますが難航しており、不具合を回避する方法は以下があります[11]。 Unityは新しい管理システム(XR Plugin Framework)を導入しようとしていますが、ValveはUnityにプ ラグインを開発させなかったのでサポートが遅れました。そのためコントローラーからの入力を検出できな い問題があります。ValveはInteraction Systemなどを持っていますが、Unityは同じものを独自に作りた いと考えており2つのソリューションが衝突しています。
Unity 2020を使用しておらず、非推奨のプラグイン管理システムを使用しても構わない場合は、新しいプ
ラグイン管理システムではなく古い方を使用します。Project Settings>Player>XR Settings に移動し、
Virtual Reallity Supportedをチェック、Virtual Reallity SDKsにOpenVRを追加します。これにより全て の入力を操作できます。
UnityとSteamVR Unity Pluginのバージョンについては、Unity 2020以降はXR Plugin Frameworkが 推奨されており、SteamVR Unity Plugin 2.7以降は新しい管理システムへの対応が始まっています。OpenXR への対応が完了して落ち着くまでは、Unityエディタは2019.4系、SteamVR Unity Pluginは2.6系を使用 して、OpenXRへの対応が完了して情報が十分揃ってから移行すると良いと思います。
6-3 Unity エディタ
Unityエディタは以下のようにインストールします。
Unity Hubを起動>(左側の)インストール>(右上の)インストール>Unityのバージョンを選択
>(インストールするモジュールをチェック)>同意する>実行>(インストール)
モジュールは、Microsoft Visual Studio Community 2019 と Documentation などをチェックします。
Platformsでは、Androidで動作させるならAndroid Build Supportをチェックしますが、その予定が無け れば入れなくても構いません。Language Packsは日本語化したいなら「日本語」をチェックします。
*表示されていないバージョンを入れる場合は、下記のUnityダウンロードアーカイブを開き、
入れたいバージョンの「Unity Hub」をクリックすると、Unity Hubに追加されます。
https://unity3d.com/jp/get-unity/download/archive 7.チュートリアル1
床を作成してテレポートで移動したり[12]、箱を作成して手で持てるようにします[13]。
プロジェクトの作成
Unity Hubを起動>プロジェクト
>新規作成(エディタのバージョンを指定する場合は、「新規作成」の横にある▽を押して選択)
>テンプレート:3D(プロジェクト名と保存先は任意)>作成>(Unityエディタが起動)
Unityエディタの画面
ビューの配置は、右上の「Layout」で変更できます。初期状態は「Default」です。
図 9 プロジェクトの作成と Unity エディタの画面
① Sceneビュー:オブジェクトを配置して仮想空間を作成する画面です。
マウス操作は、ホイール回転でズーム、右クリック+ドラッグで視線の向き変更、ホイールクリック+ド ラッグで平行移動、Alt+左クリックのドラッグで中心固定で視線の向き変更です。
上部のタブで「Game」を選択するとGameビューとなり、カメラから見た映像が表示されます。
② Hierarchy(ヒエラルキー)ビュー:配置されているオブジェクトの一覧が表示されます。
Sceneにあるオブジェクトは必ずHierarchyのリストにあり、一対一で対応しています。
全てのオブジェクトは、毎フレームごとに一度処理が行われます。
③ Inspector(インスペクター)ビュー:オブジェクトの詳細(プロパティ)が表示されます。
④ Project(プロジェクト)ビュー:プロジェクトのファイルが表示されます。
上部のタブで「Console」を選択するとConsoleビューとなり、実行結果などが表示されます。
画面上部にある「▶」はPlayボタンで、このボタンを押すとプロジェクトが実行されます。停止するには再 度「▶」を押します。
Sceneを保存
今のSceneを保存します。
File>Save As>(Scenesフォルダがあるので、その中に入り)任意の名前>保存 Hierarchyビューの一番上にあるScene名が、保存したファイル名に変わります。
次からはSaveやCtrl + Sで上書き保存できます。
SteamVR Unity Pluginを入れる
Asset Store では最新版が入ってバージョンを指定できないので、GitHub のファイルを使います。末尾に
TIPSがありますので、それを見てGitHubから「steamvr_2_6_1.unitypackage」をダウンロードします。
そのファイルをProjectビューにドロップ
>「Import Unity Package」の確認画面が出るので「Import」をクリック>(インストール)
>確認画面が出たら「Accept All」をクリック>確認が出なくなれば完了
XR Settingsの設定
この設定方法は廃止予定で、OpenXRに移行したらXR Plugin Manangementで設定する方法になります。
Edit>Project Settings>Player>XR Settings
>Virtual Reallity Supportedをチェックする
(VRデバイスを変更した場合は、再度チェックを入れ直した方が確実)
>Virtual Reallity SDKsで「+」をクリック>OpenVRを追加(Oculus を入れるとOculusでも動作可)
Interaction Systemを使用する
Projectビューで、SteamVR/InteractionSystem/Core/Prefabs/を開く
>「Player」をHierarchyビューにドロップ
>「Main Camera」を右クリックしてDeleteで削除(カメラはSceneに1個なので)
コントローラーの初期設定
VRデバイスを認識する必要があるので、リンクボックスの青いボタンを押して電源を入れます。
(メニューの)Window>SteamVR Input
>(「~missing an actions.json. Would you like to use the example files?」と聞かれるので)Yes
>下にある「Save and generate」をクリック>「Compiling…」としばらく表示される
>Save>Accept All>OK>右上の「×」で閉じる
動作確認
ここで実行してみます。上部の「▶」をクリックして実行します。
手が表示されて動かせたり、周囲を見ることができれば成功です。
再度「▶」を押して停止します。
実行時に毎回確認画面が出て「Accept All」を押しますが、面倒ならTIPSの方法で出ないようにできます。
図 10 SteamVR Input と実行画面(動作確認)
床を作成
Hierarchyビューで右クリック>3D Object>Plane>Planeを右クリック>Rename>「Floor」に変更 Floorをクリックして選択状態にすると、Inspectorビューに詳細が表示されます。
TransformのPositionは位置、Rotationは回転、Scaleは縮尺です。
(Transformを初期化するには、Transformの右端の「
⋮
」を右クリック>Reset)床のサイズを大きくするには、上方向はY軸なので、ScaleのXとZの数値を大きくします。
テレポートエリアを適用するとそのオブジェクトは見えなくなるので、Floorを複製します。
Floorを右クリック>Duplicate>名前をFloor_Teleportに変更
>Floor_TeleportをFloorにドロップして、Floorの子オブジェクトにします
(ツリー表示ではサブフォルダのように表示されます。親子関係では相対位置が固定されます)
>同じ位置だとテレポートに支障があるので、Floor_TeleportのPositionのYを0.05にして少し上げます
床にテレポートを付ける
テレポートはInteraction Systemで用意されていますので、それを使用します。
SteamVR/InteractionSystem/Teleport/Prefabs/Teleporting.prefabをHierarchyビューにドロップ
>Floor_Teleportを選択>Inspectorビューの下にある「Add Component」をクリック
>虫眼鏡のアイコンの検索欄でTeleportで検索して「Teleport Area」を選択
図 11 実行画面(テレポート)
実行しますと、トラックパッドの上または下をクリックで移動先にマークが表示され、クリックを離すと その場所に移動(テレポート)します。左または右をクリックすると向きが変わります。
箱を作成
Hierarchyビューを右クリック>3D Object>Cube>名前をBoxに変更
>Boxのサイズを小さくするので、Inspectorビューで、Scaleを全部0.5に変更 Boxの名前をダブルクリックすると、そのオブジェクトが表示されます。
原点は中心にあるので、箱が床にめり込んでいます。
Playerとも重なっていますので、Positionを(1, 0.25, 0)にします。
箱を持てるようにする
Boxを選択状態にして、Inspectorビューの「Add Component」をクリック
>Throwableで検索して「Throwable」を選択
(このComponentは他にInteractable、Rigidbodyを使うので、自動的にそれらも追加されます)
実行しますと、手を箱に近づけると箱の縁が黄色にハイライトされ、その状態でトリガーを押すと箱を持 つことができます。手を振りながらトリガーを離すと、箱を投げられます(箱を持ったときに手が消えるの は、一般的な仕様です)。
図 12 実行画面(オブジェクトを持つ)
8.チュートリアル2
棒で箱に色を塗れるようにしてみます。InkPainter[14]という無料のアセットを使用します。
InkPainterを入れる
Asset Storeからインストールしてみます。
(メニューの)Window>Asset Store>検索欄で「InkPainter」で検索
>Ink Painterが見つかるのでクリック>Import>Impoort>Accept All
棒を作成
Hierarchyビューを右クリック>3D Object>Cube>名前をPenに変更する
>Scaleを(0.01, 0.3, 0.01)、Positionを(-1, 1, 0)に設定
*Cylinderでは箱との衝突判定が悪かったのでCubeにしました。
Positionは原点ではプレイヤーと重なるので移動させました。
棒を持てるようにする
Penを選択状態にして、Inspectorビューで「Add Component」をクリック
>Throwableで検索して「Throwable」を選択
>InspectorビューのRigidbodyで「Use Gravity」のチェックを外す 同じくRigidbodyで「Is Kinematic」をチェックする
*「Use Gravity」は重力が適用されます。棒が床に落ちると面倒なので、重力を無効にします。
「Is Kinematic」をチェックすると物理演算無効になります。飛んでいくのを防ぐためチェックします。
棒にブラシ機能を付ける
Penを選択状態にして、Inspectorビューの「Add Component」をクリック
>Collision Painterで検索して「Collision Painter」を付けます(InkPainterのサンプルです)
>Inspectorビューで、Collision PainterのBrushをクリックして展開、設定します Brush Texture:◎をクリックして、Brush_miniを選択
Brush Scale:0.02
Brush Color:任意の色(Aは255にします。0では透明で見えません)
箱に色を塗れるようにする
Boxを選択状態にして、Inspectorビューの「Add Component」をクリック
>Ink Canvasで検索して「Ink Canvas」を付けます
>Inspectorビューで、Mesh Renderer>Materials>Element 0がDefault-Materialになっていますので、
◎をクリックしてSampleで検索して「Sample」を選択(InkPainterのサンプルです)
>Box Colliderのチェックを外すか、「
⋮
」をクリックして「Remove Component」で削除>「Add Component」をクリック>「Mesh Collider」を付ける>「Convex」をチェックする
*InkPainterでは、色を塗るのにテクスチャを付ける必要があります。
接触した座標を正確に取得するために、コライダーをMesh Colliderに変更しました。
図 13 実行画面(オブジェクトに色を塗る)
実行しますと、細い棒を持って箱に色を塗ることができます(他の面にも同時に塗られますが、これは Unityの標準Cubeオブジェクトは全部の面に同じテクスチャを使っているためです[15])。
9.TIPS
SteamVR Unity Pluginは、プロジェクトを作成する度にダウンロードするのは手間ですし、特定のバ
ージョンを入れたい場合は、GitHubにあるファイルを使用すると良いです。
下記を開きます。
https://github.com/ValveSoftware/steamvr_unity_plugin
右側の「Releases」をクリックして、使用したいバージョンを見つけます。今回は下記を使用します。
SteamVR Unity Plugin v2.6.1 (sdk 1.3.10)
下の方にある「Assets」をクリックして「steamvr_2_6_1.unitypackage」をダウンロードします。
このファイルをProjectビューにドロップすれば、Unityエディタにインストールできます。
VIVEのサポートページは下記です。使用しているVRデバイスを選択します。
https://www.vive.com/jp/support/
チュートリアルが不要なら、下記でVIVEPORTだけを入れられます。
https://www.vive.com/jp/setup/viveport/
VIVEは「ヴァイブ」と呼びます[16]。
Unityエディタのバージョン番号は、以下のような意味です。
例えば「Unity 2019.4.20f1」では、最初の「2019」はリリースが開始された年です。2番目の数字の「4」 は4~6か月ごとに出るメジャーバージョンで、4が最後のバージョンでLTS(Long Term Support)と して2年間の長期サポートが行われます。3番目の数字は1~2週間ごとにリリースされる番号です。最 後のfは最終版という意味で、bならベータ版です。長期間に渡って開発するならLTSを使用すると良 いです。2019.4は2020年6月にリリースされましたので、2022年6月までサポートされます。
プロジェクトを実行すると毎回「Recommended project settings for SteamVR」という確認が出ます。
「Accept All」をクリックするのが面倒な場合は、出ないようにできます。
Projectビューで、SteamVR/Editor/SteamVR_UnitySettingsWindow.csを開きます。
41行目に「recommended_ShowUnitySplashScreen = false;」があるので、これをtrueにします。
SteamVRには2D Debugモードがあります。
これはVRデバイスが無くても、キーボードでVRソフトを操作できる機能です。最初は使用していま したが、VRデバイスでないと確認できないことも多く使わなくなりました。
「2D Debug」ボタンを非表示にするには、
HierarchyビューのPlayer>DebugUIを選択>「Debug UI (Script)」のチェックを外す
プロジェクトの削除は、Unity Hubのプロジェクトで「
⋮
」をクリックして「リストから削除」します。ファイルは保存先のフォルダが残っているので、そちらは手動で削除します。
10.おわりに
VIVEとUnityを用いたVRソフトの作成について報告しました。初めてVRを体験して仮想空間の感覚
に驚きましたし、Unity の開発環境もアタッチしてオブジェクトを作成していく方法が新鮮でした。現在は
OpenXRに移行しているところで、技術やプログラミングも日々新しく変わって行きます。そうした技術の
進歩に遅れないよう常に学び取る努力をして、今後も研究・開発等の支援を行いたいと思います。
参考文献
[1] 現実と仮想の力でビジネスを変える「XR」とは https://www.ntt-f.co.jp/column/0134.html [2] VRゴーグルは3種類に分けられる
https://venturetimes.jp/venture-news/vr/52845.html
[3]【2021最新】PC用VRゴーグルおすすめランキング!PCに最適なVRゴーグルはどれ?
https://vrinside.jp/vr-goggles/vr-pc/
[4] 3Dゲームエンジンのスタンダードとなった「Unity」が株式公開を準備中か?
https://gigazine.net/news/20190212-unity-target-ipo/
[5] VRとプラットフォームのあれこれ
https://qiita.com/gpsnmeajp/items/716978b710abc96b1d5a [6] SteamworksドキュメンテーションOpenVR
https://partner.steamgames.com/doc/features/steamvr/openvr?l=japanese [7] xR (VR / AR / MR, etc.)の標準仕様OpenXRについて調べてみた
https://synamon.hatenablog.com/entry/2019/07/05/181619 [8] 2021年1月時点におけるUnityのVR開発環境を取り巻く状況
https://zenn.dev/amamagi/articles/b85034c48e86a9 [9] VIVE Pro Eye 仕様
https://www.vive.com/jp/product/vive-pro-eye/specs/
[10] VIVE Pro Eyeサポートセクション>システム要件
https://www.vive.com/jp/support/vive-pro-eye/category_howto/what-are-the-system-requirements.html [11] How to make SteamVR input work with Unity XR Interaction Toolkit in Unity
https://skarredghost.com/2020/09/25/steamvr-unity-xr-interaction-toolkit-input/
[12] Steam VR Updates: How to Setup Teleport Mechanics
https://medium.com/@MrsDragos/steam-vr-updates-how-to-setup-teleport-mechanics-40b76001ae5a [13] Steam VR setup Tutorial #3 - Interactable object setup
https://lab.arts.ac.uk/books/vr-tutorials/page/steam-vr-setup-tutorial-3---interactable-object-setup [14] EsProgram / InkPainter
https://github.com/EsProgram/InkPainter [15] Why is it painted in multiple places?
https://esprog.hatenablog.com/entry/2017/04/22/000204 [16] VRデバイス「HTC Vive」徹底解説
https://www.moguravr.com/htc-vive-kaisetsu/