Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

437 views

Published on

第11回UE4勉強会in大阪
https://ue4study-osaka.connpass.com/event/120568/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

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

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

×