SceneCapture2Dを使って壁の向こうを見る
-気になるあの娘の部屋の壁--気になるあの娘の部屋の壁-
自己紹介
⚫ 名前:平良 祐稀
⚫ 仕事:ゲームプログラマー3年目(もうすぐ終わり)
⚫ SNS: Twitter
ブログ:一日分の備忘録
⚫ UE4歴:2週間後に3年目に突入。
初心は忘れてない
⚫ 好き:VR・音ゲー・格ゲー・falcom・ゲーム開発・お絵かき(New!)
⚫ その他:
第3回UE4勉強会 in 大阪:UE4でVR入門
第6回UE4勉強会 in 大阪:豆知識的な技術共有
⚫ 一言:
多分プログラマー
ので初心者。
最近やってること
目次
• SceneCapture2Dとは
• 実装内容
• 実装
• まとめ
はじめに
今回検証したのはUE4.21.2です。
SceneCapture2Dとは
シーンの画像を フレームごと に作成します。
Scene Capture 2D アクタは実世界の反射のようには機能しません。
このアクタはカメラから画像を受信する TV スクリーンのような機能をします。
Scene Capture 2D は視錐台からのシーンをキャプチャして、そのビューを画像として格納します。
格納した画像はその後マテリアル内で使用されます。
実際にアンリアル エディタの Scene Capture 2D はカメラで表されます。
ゲームのセキュリティ カメラ エフェクトとして最も一般に使用されます。
[引用]
超絶簡単に説明すると、カメラをもう一つおいて写った結果を
テクスチャに書き込む超便利機能(ただし激重)
SceneCapture2Dとは
今回やること
今回話す内容
イメージ
作り方
実装準備
壁の向こうを見る用のマテリアルを作成します。
実装
SceneCapture2Dで更新したテクスチャを入れる用のTextureSampleを作成し
パラメータ化します。名前は何でもいいです。
実装
イメージ
実装準備
処理を書いていくアクターを作成します。
実装
コンポーネントを追加します。最低限必要なのは以下の2つです。
・壁の向こう側を見る用のマテリアルを適用するためのPlane
・SceneCaptureComponent2D
実装
変数を作成します。
ターゲットとなるアクターを格納する変数
SceneCapture2Dで書き込む用のTextureを格納する用の変数を作成します。
初期化処理
1. SceneCapture2Dの結果を書き込む用のTextureを作成
初期化処理
2. SceneCapture2Dに作成したTextureを設定
初期化処理
3. 作成したマテリアルに作成したTextureを設定
イメージ
実装
• カメラの位置を各アクターに連動した位置へ変換する
• カメラの方向ベクトルを各アクターのローカルスペースに連動した
方向ベクトルへ変換する
• 変換した方向を回転へ変換する
• 上記で獲得した位置、回転をアクターに配置しているSceneCapture2D(カメラ)に適用する
実装
• カメラの位置を各アクターに連動した位置へ変換する
• カメラの方向ベクトルを各アクターのローカルスペースに連動した
方向ベクトルへ変換する
• 変換した方向を回転へ変換する
• 上記で獲得した位置、回転をアクターに配置しているSceneCapture2D(カメラ)に適用する
実装
実装
• カメラの位置を各アクターに連動した位置へ変換する
• カメラの方向ベクトルを各アクターのローカルスペースに連動した
方向ベクトルへ変換する
• 変換した方向を回転へ変換する
• 上記で獲得した位置、回転をアクターに配置しているSceneCapture2D(カメラ)に適用する
実装
実装
• カメラの位置を各アクターに連動した位置へ変換する
• カメラの方向ベクトルを各アクターのローカルスペースに連動した
方向ベクトルへ変換する
• 変換した方向を回転へ変換する
• 上記で獲得した位置、回転をアクターに配置しているSceneCapture2D(カメラ)に適用する
Title
実装
• カメラの位置を各アクターに連動した位置へ変換する
• カメラの方向ベクトルを各アクターのローカルスペースに連動した
方向ベクトルへ変換する
• 変換した方向を回転へ変換する
• 上記で獲得した位置、回転をアクターに配置しているSceneCapture2D(カメラ)に適用する
実装
完成!
Title
さらなる高みへ
しかし!このままでは少し問題があります!
さらなる高みへ
さらなる高みへ
さらなる高みへ
SceneCapture2DのClipping処理設定
さらなる高みへ
プロジェクト設定->Lighting->Support global clip plane for Planer Reflections
さらなる高みへ
さっきの動画内に実はもう一つ問題点がありました。
さらなる高みへ
メインカメラのNearClip設定をしましょう。
プロジェクト設定->Setting->NearClipPlane
今度こそ完成!
おわりに
今回紹介した方法は処理負荷がかなりかなりかなり高いです。
(かといって他の方法あるのかと言われるとわからないです・・・)
おわりに
PC向けに作る場合は3枚4枚5枚とおいてもいいかもしれませんが
モバイル向けは1枚が限界と思っておいたほうが良いかもしれません。
おわりに
最適化頑張ってください。
おわりに
ご清聴ありがとうございました。

SceneCapture2Dを使って壁の向こうを見る -気になるあの娘の部屋の壁-