僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

UE4:Widget上にActorを表示する際の新たな手法の模索

Widget上にActorを映しだす方法ってネット上にチュートリアルが存在しています。

 

Render 3D objects in UMG Widget/HUD | EngineUnreal

この方法、ブロックで部屋を作って映し出す方法なんでもすれども、ブロック無しでできないかなーと思い、この方法を踏襲しつつ違う方法で試してみました。

 

以前作ったこれを使います。

 

 

 

 この方法により

 

f:id:Bussan_dayo:20160501203707p:plain

 

周りにブロックをおかずに

f:id:Bussan_dayo:20160501203951p:plain

 

Widget上にだすことが出来ました。

 

 

以前からあるチュートリアルを改造した形になるので詳しい実装方法についてはチュートリアルを見てください。

 

Postprocess側

Can you post process just some actors? - UE4 AnswerHub

このアンサーハブに書いてある手法を用います。

Postprocessのノード構成を若干変えてこのようにしました。

f:id:Bussan_dayo:20160501204133p:plain

色はRGBで0.1.1となります。 

 

 

描画ターゲットを作成し、BlueprintのScene2DCaptureを作成します。

記事にもある通り描画ターゲットのテクスチャーサイズを2048にします。

2Dcaptchaを設置し、TextureTargetに作成した描画ターゲットを入れ、ポストプロセスのセッティングのBlendablesに先ほど作成したポストプロセスマテリアルを入れます。

f:id:Bussan_dayo:20160501204521p:plain

 

椅子を設置した後にアンサーハブにもあるようにRenderCustomDepthPassにチェックを入れます。

f:id:Bussan_dayo:20160501204712p:plain

 

 

 

次にCaptureSourceをFinalColorへ変更します。

f:id:Bussan_dayo:20160501204649p:plain

 

 

Widgetに乗せるためのマテリアルも若干変えました。

f:id:Bussan_dayo:20160501205922p:plain

 

 

これでWidgetのimageにマテリアルを貼り付け、CreateWidgetとAddViewノードで画面上に出てきます。

 

 

アニメーションと組み合わせてロード画面を作ってみました。

 

 

カメラには RenderCustomDepthPassにチェックを入れたものしか映らないのでレベルに目立たずに配置出来ると思います。又は一つのBlueprintで管理すればもっと良いのかもしれませんね。

 

もっといい方法がありましたら、ぜひ共有していただけると幸いです。

 

 以上です。

 

記事を書いてくださったThomas Coquel氏、アンサーハブに投稿してくださったson1cman氏そして解答してくださったAchilleon氏に感謝いたします。