読者です 読者をやめる 読者になる 読者になる

ぼっちプログラマのメモ

UE4とかVRとかについて書いたり書かなかったり。

【Oculus向け】UE4で丸影を表示してみた (未完成記事 2015/01/20現在)

UE4 Oculus Rift

はじめに

Oculus向けのコンテンツをUE4で制作するためのノウハウ共有♪(Oculus向けの最適化とか品質向上とか) - Qiita
Unreal Engine | Oculus Rift の開発
下田さんのOculus向け最適化記事や、UE4のドキュメントで紹介されている
「Lessons from Integrating the Oculus Rift into Unreal Engine4」を
ぼーっと眺めていると、丸影用のマテリアルBPが載っている事に
今更気づいたので試してみた、という記事


まだ内容を理解しきっていないので、とりあえず手順だけ載せてみる
後日に追記します。しますよ、たぶん、きっと

丸影用のテクスチャの準備

リソース作れない人なので、以下の記事で配布されている画像を
使いました。その為、↑で紹介されたスライドに載っているBPとは
少し中身が異なってます
UnityでGoogleストリートビューを使ったハコスコ対応アプリを作る - Qiita

マテリアルの設定

f:id:pafuhana1213:20150119235027j:plain
以上

Emissive, Opacity

f:id:pafuhana1213:20150119235220j:plain
以上

残りの部分

https://dl.dropboxusercontent.com/u/30427841/0119/fakeshadow.jpg
以上。雑過ぎワロタ。
調整用にマテリアルインスタンスにしておくこと

丸影の配置

f:id:pafuhana1213:20150120003357j:plain

  • 丸影を表示させたいBPにStaticMeshコンポーネントを追加
  • Meshは平面のもの(StarterContentのShape_Planeなど)。OverrideMaterialsに↑で作成したマテリアルインスタンスを指定。
  • 位置・スケールを調整
  • おわり

気になってる・よく分からない部分

Customized UVs

Unreal Engine | カスタム仕様の UV

アンリアル エンジン 4 のほぼ全てのマテリアル ノードはピクセルごとに実行されます。UV Coordinate ノードは頂点またはピクセル シェーダーのいずれの部分である間は、 CustomizedUVs 機能は頂点シェーダー内でのみ実行され、同じ計算をピクセル シェーダー内で実行する場合のパフォーマンスを向上させます。テクスチャのタイル処理だけの高速化するにも最低の方法です。システムは UV 上で実行した計算だけに制限されず、結果はメッシュの細分化処理に依存します。

ようするに、ピクセル毎ではなく頂点毎のみで計算することで高速化するとのこと。
あと、パーティクルは未対応とのこと。
(ドキュメントの日本語訳だと、句読点がついてないから分かり辛いなぁ…)

使い方は現在学習中

何のための計算かよく分からない

地面からの高さを求めたりしている周辺の処理内容が、いまいちよく分かってない
そもそもCustomized UVsを理解していないせいなのかなぁ…

マテリアル中のパラメータ調整について

GroundHeightは0で決め打ちですが、実際に使う際は地面にレイを飛ばして、
その結果をマテリアルに渡す形になると思います(てきとーBPです)
f:id:pafuhana1213:20150120002344j:plain
f:id:pafuhana1213:20150120002517j:plain
https://dl.dropboxusercontent.com/u/30427841/0119/ray.jpg
※Dynamic Material Instanceに関しては、以下の記事が参考になります
もんしょの巣穴blog [UE4] Dynamic Material Instanceを使う

このレイを飛ばす間隔を調整しないと、高速化したかった筈が
逆に重くなったという本末転倒になりそうです。あとは、
地面に専用のChannelを設定して、衝突判定を制限するとか…


未完成記事なので、今日はここまで