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

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

UE4でOculusQuestを動かしてみよう!

OculusQuestを購入しました!(*´∀`*)

OculusQuestを購入したので、

とりあえずプロジェクトを作って動かすところまでやっていこうと思います。

CodeworkforAndroidのインストール

OculusQuestはAndroidで動作しているので、

CodeworkforAndroidをインストールして設定をする必要があります。

下記のリンクから、ダウンロードしていきます。

developer.nvidia.com

リンクをクリックしたら今回はWindowsで行っているため、

Windows版をダウンロードします。

f:id:yoshikata1990:20190615092138p:plain

ダウンロードリンク

Standardで必要なものをインストールします。

AndroidToolのNDKをインストールするのを忘れずにしましょう。

f:id:yoshikata1990:20190615094157p:plain

AndroidNDK

ここまで完了したらインストールは完了しています。

今度はOculusQuestの接続するためのドライバがあるので、

そちらをOculusQuestにインストールします。

下記の場所からドライバをダウンロードしてください。

developer.oculus.com

バイスマネージャーから直接デバイスファイルをインストールします。

f:id:yoshikata1990:20190615164838p:plain

OculusQuestのドライバ設定

OculusQuest用のプロジェクト設定

まずはプロジェクトを作成します。

バーチャルリアリティのサンプルを使用します。

f:id:yoshikata1990:20190615152826p:plain

プロジェクト設定

続いてプロジェクト設定を開いて設定します。

ターゲットハードウェアにアンドロイドが設定されていないので、

f:id:yoshikata1990:20190615155459p:plain

ターゲットハードウェアの設定

Androidを設定したら、左のエンジン項目のインプットを選択して、

モバイルのタッチインターフェースをオフにします。

※紫色の四角でドロップダウンリストがなしになっている箇所です。

f:id:yoshikata1990:20190615155208p:plain

設定が完了したらプラットフォーム欄のAndroidを設定します。

プラットフォームのファイル書き込みを許可して、

SDKバージョンやSDKLicenseなどを許可します。

f:id:yoshikata1990:20190615161101p:plain

SDKバージョンとSDKLicenseの許可

下の方にあるGooglePlayServicesのところも書き込み許可にしておきます。

f:id:yoshikata1990:20190615161240p:plain

GooglePlayServicesの設定

 最後にプラットフォームのAndroidSDKの箇所で、AndroidSDK・NDK・ANT・Javaの設定とNDKAPILevelを設定します。

※AndroidNDKの25はフォルダが無かったため26を使用しています。

f:id:yoshikata1990:20190615161447p:plain

AndroidSDK設定

プロジェクトの設定は大まかに上記の設定になります。

頑張ってミラーリングで動かしているので、

今度はちゃんと動画取れるようにしておきます。

コントローラーのブループリントの紹介

OculusQuestのモーションコントローラーのノードについて紹介します。

ノードが別で追加されているわけではありませんが下記の画像は必ず使うと思うので、

覚えておくといいと思いました。

f:id:yoshikata1990:20190615171314p:plain

ボタンやスティックの傾き数値など

一つ一つ紹介していこうと思います。

まずスティック押し込みです。これはコントローラーの右にある小さいスティックを、

押し込んだときのイベントになります。

※スティックをどの方向に倒したのかというイベントもあります。

f:id:yoshikata1990:20190615172342p:plain

スティック押し込み

スティックをどの方向に曲げているのかと言う数値も取れます。

下記の画像のノードがそれぞれ縦・横方向のスティックの傾き数値を受け取れます。

f:id:yoshikata1990:20190615172531p:plain

スティックの傾き

それ以外はコントローラーのトリガーやボタン関連のノードになります。

まずはトリガーのノードです。

※トリガーとは人差し指で引くところのボタンです。

f:id:yoshikata1990:20190615172735p:plain

トリガー入力

あとはグリップボタンと右手と左手それぞれ設定されているAB・XYボタンです。

※コメントは中指のボタンのほうが通じるかなと思ってそうしてます・・・

f:id:yoshikata1990:20190615173033p:plain

グリップボタン

f:id:yoshikata1990:20190615173328p:plain

ABボタン(右手のコントローラーボタン)

f:id:yoshikata1990:20190615173442p:plain

XYボタン(左手のコントローラーボタン)

コントローラーのイベントの説明は以上になります。

最後に・・・

発売して結構立ちますが、

まだやりたいことなどができていないので、

いろんなことを試して紹介していけたらと思います。

公式ドキュメントも英語ですがあるので、そちらも参考にしていきましょう!

【UE4】マテリアルとマテリアルインスタンスの簡単な紹介

マテリアルとマテリアルインスタンスについて

マテリアルなどを説明してこなかったので、

今回はマテリアルとマテリアルインスタンスを説明していこうと思います。

マテリアルの作成について

まずはマテリアルファイルを追加します。

コンテンツエディタを右クリックしてマテリアルを選択します。

f:id:yoshikata1990:20190520225851p:plain

マテリアルファイルの追加

マテリアルファイルを追加したらマテリアルファイルを開くと

マテリアル用のノードを反映するメインのマテリアルノードがあります。

f:id:yoshikata1990:20190523215944p:plain

マテリアルファイル

メインマテリアルの入力で設定できる説明については、

マテリアル入力の説明はリファレンスで見るのが分かりやすいです。

api.unrealengine.com

個人的によく使い覚えておきたいマテリアルノードを少し紹介していきます。

Constant(定数)

これはどのようなマテリアルを作るときも使うことになると思うので、覚えておきましょう。

左上が1つの定数を指定するもので右上が2つ(色で言うと赤と緑)の扱いです。

左下が3つ(RGB)です。右下が4つ(RGBA)となります。

1つの定数の場合はメインマテリアルに直接接続して値を指定しておいたり、

この後説明する演算などで使われたりします。

2つの場合は2つの定数を指定するマテリアルノード(TexCoord)などで活用しています。

3つの定数や4つの定数は固定した色を指定するときに使ったりします。

f:id:yoshikata1990:20190525082615p:plain

Constant(定数)

このノードを検索して追加するときは、「C」を入力すると一番最初に指定されます。

f:id:yoshikata1990:20190525084201p:plain

Cキーで検索をかけた場合

テクスチャとマスク

マテリアルを作成する上でテクスチャを使って凹凸を表現したり、

マスクを使ってRGだけにしたりとかする事があります。

そういった場面で使われるのが下記のTextureSampleとMaskです。

※Maskの正式名称はComponentMaskです。

f:id:yoshikata1990:20190525084234p:plain

テクスチャサンプルとマスク

TextureSampleの出力値はテクスチャ内の色(RGB・1色ごと・RGBA)になっています。

MaskはRGBAの最大4つの値を持てます。値のValue数をあわせたりするときに使えたり活用するところは多くあります。

追加する場合は、TextureSampleでは「Text」まで打つと検索に引っかかります。ComponentMaskは「Mask」と打ちましょう。

四則演算(Add・Subtract・Multiply)

マテリアルにも四則演算がありこちらも良く使います。

色の計算で見るとAddは単純にRの加算しています。

白(R:1,G:1,B:1)の箇所はAddしても色の変化はありません。

Multiplyでは白い箇所を赤くしています。

色のある箇所(白の箇所)を赤色にしています。

Subtractでは全体に赤を減算しています。

白い箇所は赤色がなくなっているため青緑になっています。

f:id:yoshikata1990:20190525095838p:plain

四則演算結果

追加する場合は、Addでは「ad」まで打つと検索に引っかかります。Multiplyは「Mu」まで打つと検索に引っかかります。Subtractは「su」まで入力すると表示されます。

lerp(LinearInterpolate)

lerpは線形補完と呼ばれるを行うノードになります。

入力先はAlpha(下の画像では画像をアルファに設定しています)があり、

AとBではそれぞれ指定した画像の赤の色が使われている箇所にAの値が使われて、

赤色が使われていない箇所にはBが適応されていきます。

f:id:yoshikata1990:20190526075701p:plain

lerpの簡単なサンプル

追加する場合は、lerpは「l」で検索に引っかかります。

他にもブレンドなどもっと説明する必要がありますが、

もっと細かい説明を他のタイミングで説明していこうと思います。

簡単なマテリアルを作る

今回は簡単なマテリアルを紹介していきます。

下の画像は簡単な金属っぽいマテリアルになります。

f:id:yoshikata1990:20190526083659p:plain

メタリックなマテリアル

ベースカラーに色を加算してピンク色を作り、

メタリックを1にして光沢を出しつつ、ラフネスを下げて反射する形にしています。

完成したマテリアルのサンプルがこんな感じになります。

f:id:yoshikata1990:20190526084739p:plain

メタリックのサンプル

マテリアルインスタンスにして管理する

マテリアルを作成した後でマテリアルはそのままで、

マテリアルに設定した値などを切り替えたりすることが多々あるので、

マテリアルインスタンスで指定した値を切り替えするようにします。

スイッチなどもあるのでぜひ使っていきましょう。

マテリアルファイルを右クリックしたときに、

一番上にマテリアルインスタンスを作成が出るのでそれを選択します。

f:id:yoshikata1990:20190526091417p:plain

マテリアルインスタンスの作成

マテリアルインスタンスのファイルを作成したら、

マテリアルインスタンス用に元のマテリアルファイルを改造します。

先程のメタリックのマテリアルにSwitchやConstantを、

パラメーターに変更したりします。

f:id:yoshikata1990:20190526095105p:plain

パラメータ変更とスイッチの追加

Constantで設定したパラメータはParamとして、

定数から変数に変更することができます。

変更方法は、右クリックでパラメータに変更を選択が可能です。

f:id:yoshikata1990:20190526101052p:plain

パラメータ変換

SwitchParamについては、StaticSwitchParameterが正式名称で

TrueとFalseでそれぞれ適応したいパラメータを指定します。

デフォルトはFalseの状態になります。

設定したマテリアルのパラメータやスイッチなどは

マテリアルインスタンスで変更できます。

※紹介しているのは一部です。

f:id:yoshikata1990:20190526102709p:plain

マテリアルインスタンスのパラメータ設定

上記の画像のようにパラメータを変更するだけで、

下の画像のように全く別のマテリアルを作ることができます。

f:id:yoshikata1990:20190526102828p:plain

マテリアルインスタンスでパラメータ変更後

マテリアルインスタンスについては通常のマテリアルと同様に、

スタティックメッシュなどにマテリアルの代わりとして設定することができます。

f:id:yoshikata1990:20190526103255p:plain

マテリアルインスタンスの適応

下の絵はベースのマテリアルと設定を変更したマテリアルインスタンスを、

それぞれ適応した場合の画面になっています。

f:id:yoshikata1990:20190526103540p:plain

ベースのマテリアルとマテリアルインスタンス

マテリアルインスタンスは一つのベースを使い、

パラメータやスイッチなどの設定次第で様々なことができるので、

ぜひ活用してみてください\(^o^)/

最後に

今回はマテリアルブレンドや下の動画のマテリアルレイヤーなどの、

説明は行っていないので、そちらの説明も今後していけたらと思います。

※いつやるんだろう(;^ω^)・・・

www.youtube.com

いろいろな動画でマテリアルの説明は行われているので、

ぜひレベルアップしていきましょう(・∀・)