きのこるレポート

主にUE4、Blender、イラストについて勉強したことメモ

SceneCaptureComponentとRenderTargetで雑なクロマキー

この記事はUnreal Engine 4 (UE4) その2 Advent Calendar 2017の23日目の記事です。

Unreal Engine 4 (UE4) その2 Advent Calendar 2017 - Qiita


やりたかったこと

youtu.be

小ネタ。説明が難しいですが、キャラクターのアニメーションと同期してUIのキャラも動かしたい、そういう機能です。いいやり方がわからなかったので、SceneCaptureComponentとRenderTargetでクロマキー処理してなんとなく実装しました。

やったこと

1:撮影準備

f:id:noume:20171223201351j:plain

SceneCaptureCamera2DアクターとRenderTarget用のテクスチャを準備。

f:id:noume:20171223201857j:plain

現場に影響のない場所に撮影場所を用意し、被写体アクターとSceneCaptureCamera2Dアクターを移動。撮影場所は後々型抜きしやすいよう、Unlitなマテリアルでできた壁で囲んでおきます。

2:各設定

f:id:noume:20171223202512j:plain

UI配置するため、UI用のマテリアルを作ります(マテリアル属性をUserInterfaceに)。RenderTargetの画像からクロマキーのキーカラーの差を取り二値化することで、そこそこきれいな切り抜き画像が得られます。

f:id:noume:20171223203202j:plain

Widgetを用意し、先ほど作ったマテリアルをimageに貼り付けます。ボックスのサイズはRenderTargetの設定によるので、必要に応じて調整します。

f:id:noume:20171223203516j:plain

 あとはトリガー作ってアニメの再生設定するだけです。お疲れさまでした。

顧客が本当に必要だったもの

本当はRenderTargetにMaterialを適用するものをやってみたかったのですが、FindCollisionUVノードが思うように動作せず諦めました。AnswerHubに類似の件はありましたが解決が見えず、どうしたものか…

"Find Collision UV" always returns zero for Skeletal Meshes - UE4 AnswerHub

Find Collision UV node doesn't work - UE4 AnswerHub


お読みいただきありがとうございました。

明日はdonbutsu17さんの「NavMesh/NavSystem」です。よろしくお願いします。