動的DOF!~リアルタイムぼかし処理~

近くに映ってる物はくっきり

遠くの物はぼやけるような処理の作成。

 

今回はFPSテンプレートを使用してる。

 

プレイヤーBP

f:id:Free_Gamer:20180709220924p:plain

カメラから5000の距離までトレースを飛ばす。

f:id:Free_Gamer:20180709221007p:plain

トレースが何かにヒットした時、ぼかし処理を行う。

f:id:Free_Gamer:20180709221123p:plain

 

ぼかし処理はPostprocessSettingsセット変数で処理する。

この変数は、プレイヤーのカメラコンポーネントからピンを引っ張って検索しないと出てこない。

PostprocessSettings変数をセット後、ピン引っ張り「PostprocessSettingsを作成」を出す。

f:id:Free_Gamer:20180709221915p:plain

 

PostprocessSettingsを作成を選択すると、詳細パネルに大量の設定項目が出てくる。

AsPinにチェックをつけると、チェックをつけた項目がPostprocessSettingsを作成に表示される。

f:id:Free_Gamer:20180709222401p:plain

以下の項目のピンを出す。

~Lens|Camera~

・Aperture(F-Stop)

~Lens|DepthOfField~

・MetHod

・FocalDistance

 

・Aperture(F-Stop)

調べてみたところどうやらこれはカメラに纏わる用語らしい。

絞り値(F)の事らしい。(多分)

専らカメラに詳しくないので、これ以上適当な説明しても混乱させるだけなので興味があれば調べてみるといい。

要は、

Aperture(F-Stop)の数値が大きい程、ぼかし加減が小さくなる。数値が小さい程、ぼかし加減が大きくなる。

というわけだ。

 

・MetHod

どのようにぼかすかの項目。

 

・FocalDistance

焦点距離の事。

この数値が大きい程、遠くのものがくっきり映る。

この数値が小さい程、近くのものがくっきり映る。

 

最終的にこうなったはずだ。

f:id:Free_Gamer:20180709224426p:plain

Aperture(F-Stop)・・・1.0

MetHod・・・CircleDOF

FocalDistance・・・トレースを飛ばしてる位置から、トレースがヒットした場所までの距離の差をFloatに変換し繋いでいる。

f:id:Free_Gamer:20180709224849p:plain

 

これで、リアルタイムにぼかし処理ができるようになった!

 

処理としては、

 

カメラから飛ばしてるトレースに何かがヒットした場合、

ヒットしたものが近ければ近い程、FocalDistance数値が減少し、遠くのものがぼやけやすくなる。

ヒットしたものが遠ければ遠い程、ぼかし効果は減少していく。

 

という感じだ。

youtu.be

 

ちょっと分かりづらいかもだが、近くの物が視界に入った時、遠くのものがぼけていた。

視界に何も入らなければ、遠くのものはくっきり映り、近くのものはぼやけていた。

 

その証拠に、遠くのものがぼやけた時、目の前で常に持っている銃のぼかし効果が若干薄くなっていたと思う。

 

ついでに、Aperture(F-Stop)の数値の違いをここで比較しておく。

 

Aperture(F-Stop)・・・4.0

FocalDistance・・・50

f:id:Free_Gamer:20180709230452p:plain

Aperture(F-Stop)・・・1.0

FocalDistance・・・50

f:id:Free_Gamer:20180709230609p:plain

これだけの違いが出るのだ。

 

Aperture(F-Stop)・・・どれぐらいぼかすか

 

という意味で覚えとくといいだろう。(多分)

 

これでリアルタイムDOF処理が出来た!

 

それではまた!^^ノシ