未来を創る、テックコミュニティー

代表技術通信~Unityで点群表示、Oculus Questで表示⑩ VFXをOculus Questに取り込み(2)

草場代表
2020/09/25

こんばんは。代表の草場です。

Oculus QuestにVisual Effect Graphを取り込めました。やったー。
Oculus Questで撮った写真。Visual Effect Graphで作った炎が出ています。

@shienaさんの「VulkanをサポートしたOculus QuestでVisual Effect Graphを使う」をもとにしています。記事をもとに、UnityとPackage Managerの機能だけで外部アセットを使わずにOculus QuestでVisual Effect Graphを使います。

環境

OS:Windows 10
Unity:2019.4.10f1

やり方は@shienaさんの記事の通り、以下です。

やり方

  1. プロジェクト作成
  2. Oculus Quest向けにProject Settingsを調整
  3. Package Managerから必要なパッケージを追加
  4. VisualEffectGraph Additionsをインポート
  5. シーン構築
  6. ビルドと実行

 

プロジェクト作成

UnityHubでUniversal Template Piplineからプロジェクトを作成します。@shienaさんの記事ではUniversal Template Projectから作成されていました。
Universal Template Piplineに関してはそれだけで何本も記事が書けます。後で勉強。日本語記事は、楽しむスタジオの飛田さんの「手を動かして学ぶUnity Universal Render Pipeline – part 1」がわかりやすいです。

作成して少し待つと、以下の画面が出ます。

Oculus Quest向けにProject Settingsを調整

Oculus Questではapkファイルを作成するので、前の記事でもやったように、Androidプラットフォームに変換します。UnityのメニューのFile > Build Settingsを開き、プラットフォームからAndroidを選択、Switch Platformクリック。

Build SettingsのPlayer Settingをクリック。Player > Ohter Settingsにて、
Graphics APIsをVulkanのみに変更します。おそらくデフォルトでOpenGLES3も入ってるので、選択してーボタンで消します。
Minimum API Levelを4.4から6.0(Marshmall)に変更します。

Project SettingのXR Plugin Managementを開きます。Install XR Plugin Managementボタンクリック。インストール後、Plug-in ProvidersのOculusにチェック。

XR Plugin ManagementのOculusを開きます。デフォルトでFocus Aware、V2 Signing(Quest)にチェックあります。そのままで進めます。

Package Managerから必要なパッケージを追加

UnityのメニューのWindows > Package Managerを開き、Advancedをクリック、Show preview packagesにチェックしてプレビューバージョンを見えるようにします(不安定ですよ、ほんといいですか?というエラー出る)。

以下のパッケージをインストールします。
XR Interaction Toolkit
Visual Effect Graphの7.2以上。今回は7.3をインストールしました。
Universal RPの7.2以上。7.3.1がすでにインストール済でした。
Android Logcat。2019 Verifiedになっている1.1.1を入れました。

VisualEffectGraph Additionsをインポート

Package ManagerのVisual Effect GraphからVisualEffectGraph AdditionsのImport into Projectボタンクリック

記事通り、Assets/Samples/Visual Effect Graph/7.3.1/VisualEffectGraph Additions/VFX/にアセットが作られますがそのままでは動かないのでUnityメニューのEdit > Visual Effects > Rebuild All Visual Effect Graphsから再コンパイルします。

シーン構築

UnityメニューのGameObject> XR > Room-Scale XR Rigを選択するとMain CameraがVR用のXR Rigに変換されます。
カメラの使い方、よく勉強しないと。。

・Main CameraのInspectorのProjection開くと、Cliping planeにNearがあります。デフォルトの0.3では遠いので0.01に変更します。なぜかはよくわからず。カメラの見え方が変わります。以下、Cameraからの視点です。

Assets/Samples/Visual Effect Graph/7.2.1/VisualEffectGraph Additions/Prefabs/にあるVFXのプレハブをヒエラルキーに追加します。Bonfireは再生マークが出ていないのでアクティベートされていない可能性があり、今回はヒエラルキーに追加しませんでした。VFXで作ったオブジェクトが出てきました。

追加したVFXをカメラから見やすい位置に調整します。こんな感じか?

ビルドと実行

UnityメニューのFile > Build Settingsを開きます。Oculus QuestとPCを接続、Build and Run クリック。
できた!
完了すると、以下のように、Vulkanが使われている画面が出ました。

このままOculus Questで見ようと思いきや、、画面が真っ黒。Oculus Questを再起動したら、動く炎が出ました!うーん、カメラの位置微妙。

DMM.make AKIBAも試しにやりました。一応表示されました!が、重い。

おそらくVFXはGPU使っているのでそれをOculus Questでは重くて読めてないのか?「Getting Started w/ The Unity GPU Profiler for Oculus Quest and Go」で勉強します。

この記事を書いた人
草場代表
エディター