アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5】OculusQuestが動くまでの設定について

久しぶりにVRやります(*‘ω‘ *)

今回はUE5で久しぶりにOculusQuestを動かすまでの設定になります。

※UE5.0.1で確認しています。

事前準備とプロジェクトの設定

まず準備としてAndroidStudio経由でSDKとNDK・JARをインストールします。

つづいてOculus Developer Centerをインストールします。

こちらはPC側でOculusを認識したりログを出力したりするために使用できます。

上記インストールが完了したらUE5側でVR用のプロジェクトを作成します。

ランチャーからUnrealEngine5を起動して、

ゲームタブを選択してバーチャルリアリティを選択して作成します。

※必要があればスターターコンテンツをONにします。

VRプロジェクトの作成

プロジェクトが作成されていつものエディタ画面が開けたら、

メニューの編集からプロジェクト設定を選択します。

プロジェクト設定

プロジェクト設定を開いたらプラットフォームのAndroidを選択して、

今すぐ設定ボタンを押してプラットフォームの対応を行います。

プラットフォームの設定

サービスプラットフォームの方もあるので今すぐ設定を選択します。

サービスプラットフォームの設定

続いてAndroidSDKの場所を指定する必要があるので設定します。

AndroidStudioのインストール場所によって一部変わりますが、

インストール場所を変更していない場合は以下になります。

AndroidSDK:
各ユーザーフォルダ/AppData/Local/Android/Sdk

AndroidNDK:
各ユーザーフォルダ/AppData/Local/Android/Sdk/ndk/バージョンのフォルダ

JDK

C:/Program Files/Android/Android Studio/jre

AndroidSDKの場所

これでプロジェクトの設定は完了です。

実際にOculusQuestで起動してみましょう。

プラットフォームのクイック起動からQuestを選択すると実機で起動できます。

プラットフォームでQuestを起動する

実際に動かすとこのような形になります。

・目次に戻る

お絵描きについて

VR上でお絵描きを試したのでそちらも少し紹介しておきます。

下記Youtubeの動画と概要にあるプロジェクトを参考にしました。

主要な動作がプロジェクトとほぼ同じで、

上記動画のプロジェクトを確認したほうが学習になるため、

私の方で試しに作ったプロジェクトは上げてません。すいません・・・

Quest用に設定した設定部分の説明をします。

※動かすために設定した形なのでVRの設定としては向かない可能性があります。

まずプラットフォームの品質を最高品質に変更します。

プラットフォームの最高画質設定に変更

続いてMobileHDRをオンにします。

レンダリング項目の下の方に設定があるので検索で「モバイルHDR」で、

検索しても設定項目が表示されると思います。

プラットフォームを最高品質に変更

・目次に戻る

最後に

トリガー入力などの処理がインターフェースになっていたり、

ところどころ私が見ていたころから変更があるような?ないような?

トリガー入力のイベント処理

見ていただきありがとうございました。

 

【UE5】GeometryScriptで各種モデルを作ってみる。

GeometryScriptを試してみる(*'▽')

今回はDynamicMeshをBPやC++などで編集できる、

実験段階のプラグインとして用意されているGeometryScriptを試します。

少し前に本家の方の動画で紹介されています。

こちらの動画がとても参考になるのでこちらもぜひ見てみてください。

プラグインの有効と準備

まずはプラグインを有効にします。

Geometry Sc」で検索するとGeometry Scriptが表示されるのでオンにします。

Geometry Scriptをオンにする

GeometryScriptをオンにしたら今度はGeometryScript用の、

ブループリントを作成します。

親クラスをGenerated Dynamic mesh actorを選択します。

すべてのクラスの検索から「generate」で検索すると出ます。

GeneratedDynamicMeshActorを作成

これで準備は完了です。

ここからGeneratedDynamicMeshActor内に処理を作っていきますが、

続いては中でどのようなことを行うのか説明していきます。

・目次に戻る

各種関数と何を行うかの簡単な説明

まずはどのようなイベントを使ってどのように生成するか説明します。

GeometryScriptではメッシュを編集したりコンパイルした時に呼び出される、

Rebuild Generated Meshイベントを使用します。

※注意※ TargetMeshはStaticMeshではなくDynamicMeshになります!

このDynamicMeshに処理を設定していくことで形を作成します。

イベントの作成

このイベントだけだと何も表示されないのでDynamicMeshに箱を追加してみます。

イベントグラフ上を右クリックしてGeometryScript欄のPrimitives項目の、

AppendBoxを選択します。

GeometryScriptの設定

選択するとAppendBox関数が出るのでTargetMeshに、

On Rebuild Generated meshのTargetMeshにつなげます。

AppendBoxで箱追加

一旦このBPをレベル上に配置してするとレベル上に箱が表示されます。

これはAppendBoxのMeshが表示されている状態になります。

本来は当たり判定をつけたりBooleanやNormalなどで形をつけて、

自分の思い通りの形にすることを主としているのでいろいろ試してみてください。

※AppendBox以外に階段や螺旋階段・コーンなど様々なものが用意されています。

AppendBoxで追加したBoxの表示

それから一時的にDynamicMeshを生成して活用することが、

いろいろやっていると多々発生します。

その際に活用するのが「AllocateComputeMesh」になります。

ただAllocateComputeMeshは独自のメモリを割り当てているので、

最後には解放する必要があります。

解放用にReleaseComputeMeshなどの関数が用意されています。

確保と解放用のノード

基本的に知っておく情報は以上になります。

上記や他のモデルを加工する関数を用いて実際に例を作成します。

・目次に戻る

簡単な階段の作成

ここからは実際に階段などを作成します。

まずは階段用処理を作成します。

階段を動かしたときに使用する変数を作成します。

階段の角の位置・段の高さ・段の深さ・階段の段の数の変数をそれぞれ作ります。

階段用のそれぞれの変数

実際に処理を作成していきます。

まずは上記変数を使用した階段のモデル作成部分になります。

階段を作成するGeometryScriptの情報

上記の処理だけで階段のモデルを作成することは可能です。

ただ、これだけだとモデルに当たり判定がないので下記の処理で、

シンプルな当たり判定を付与します。

シンプルな当たり判定の処理

以上で簡単な階段を作成する処理については以上になります。

実際に設定してレベル上で動かしたものは以下になります。

・目次に戻る

簡単な壁枠の切り抜き

今度はBooleanの機能を駆使してモデルを作成してみます。

まず処理に使用する変数を用意します。

削る形状のメッシュ・箱の大きさの位置・切り抜かれるモデルの位置を作成します。

各窓枠用の変数

実際に処理を作成します。

まずは切り抜かれる方のモデルをAppendBoxで追加。

切り抜かれるボックスの追加

続いてStaticMeshがある場合に上記で説明した一時的なDynamicMeshに、

StaticMeshの情報をコピーしてあげます。

コピーした後にApplyMeshBooleanで先ほど作成したBoxとの差分を生成します。

※切り抜かれる位置をTransformで指定してOperationをsubstractに指定してます。

StaticMeshをDynamicMeshにコピーするのとBooleanの処理

最後にAllocateComputeMeshを使用しているのでRelleaseAllComputeMeshesで、

解放してあげれば完了となります。

Allocatecomputemeshの開放

実際に作成されたものは以下になります。

・目次に戻る

最後に

今回紹介したものは本当にごく一部の機能なので、

Textureを用いて何かを行ったりすることもSprineを使用して何かを配置することも、

可能になっているのでぜひぜひ様々な活用方法を見出していただければ幸いです。