Unityでレンダーターゲットを用いた残像、モーションブラー表現を解説します。
まず、残像させたいオブジェクトだけを描画するカメラを用意します。
「Clear Flags」を「Solid Color」に変更して「Background」のカラー情報をRGBA(0,0,0,0)に設定することで基本透明な描画するようにします。
残像させたいオブジェクトのみ映し出すように
新しいレイヤーを作成し、オブジェクトに設定します。
先ほどの画像にあったカメラの「Culling Mask」に新しく追加したレイヤーのみを設定します。
これによってこのカメラが映すのは残像させたいオブジェクトのみ映します。
↑こんな感じです
この次は上記の残像させたいオブジェクトのみを描画する画像を作成します。
「Project」タブの「Create」から「Render Texture」を作成して、さきほど調整したカメラの「Target Texture」にセットします。
のサイズは画面解像度と同じサイズで作成します。
今回は1920x1080で作成しました。
その次は先ほど作成した「Render Texture」をゲーム画面に表示させるため「Canvas」を作成し、「RawImage」を追加した後、その「RawImage」の「Texture」に先ほど作成した「Render Texture」をセットします。
これによって残像させたいオブジェクトのみを映すことはできますが、残像はまだしません。
そこで残像させるために作成した「Render Texture」と同じものを残像させたい数作成します。今回は4枚ほど作成しました。それと同じく作成した「RawImage」も残像させたい数作成し、先ほど複製した「Render Texture」を別々に割り当てていきます。
残像させたいオブジェクトのみを描画するカメラに以下のスクリプトを追加します。
あとは作成した「Render Texture」と「RawImage」をセットすれば完了です。
この表現方法は縦、横スクロール系のカメラビューなどカメラの角度が変わらないこととカメラと残像させるオブジェクトに遮蔽物がないと演出上おかしくなってしまいます。
結構駆け足になりましたが、参考になれれば幸いです。