SceneCaptureComponentとRenderTargetで雑なクロマキー
この記事はUnreal Engine 4 (UE4) その2 Advent Calendar 2017の23日目の記事です。
Unreal Engine 4 (UE4) その2 Advent Calendar 2017 - Qiita
やりたかったこと
小ネタ。説明が難しいですが、キャラクターのアニメーションと同期してUIのキャラも動かしたい、そういう機能です。いいやり方がわからなかったので、SceneCaptureComponentとRenderTargetでクロマキー処理してなんとなく実装しました。
やったこと
1:撮影準備
SceneCaptureCamera2DアクターとRenderTarget用のテクスチャを準備。
現場に影響のない場所に撮影場所を用意し、被写体アクターとSceneCaptureCamera2Dアクターを移動。撮影場所は後々型抜きしやすいよう、Unlitなマテリアルでできた壁で囲んでおきます。
2:各設定
UI配置するため、UI用のマテリアルを作ります(マテリアル属性をUserInterfaceに)。RenderTargetの画像からクロマキーのキーカラーの差を取り二値化することで、そこそこきれいな切り抜き画像が得られます。
Widgetを用意し、先ほど作ったマテリアルをimageに貼り付けます。ボックスのサイズはRenderTargetの設定によるので、必要に応じて調整します。
あとはトリガー作ってアニメの再生設定するだけです。お疲れさまでした。
顧客が本当に必要だったもの
本当は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」です。よろしくお願いします。