【Unity】スプライトアニメーションを連番ファイル出力する方法

スプライトアニメーションをRecorderでキャプチャーして連番ファイルを出力する方法のメモ。
<Unity 2022.2.13f>


■事前準備

パッケージマネージャーで、Recorderをインストールしておく。

パッケージマネージャー>Recorder
スプライトアニメーション
アニメーションウィンドウ

■設定

ヒエラルキーで、Warrior_sample_animationsのインスペクターを設定。
レイヤーを追加するなどして設定。(レイヤー:Fighter)

Fighterのインスペクター

Recorder用にもう一つカメラを追加する。
追加したカメラのインスペクターを設定。(2Dカメラの設定を行う)
 ・Camera>投影方法:平行投影
 ・Transform>位置 Z:-10
 ・
優先度:-2

あと、録画するカメラとして、追加したカメラにタグを追加して設定しておく。(今回設定したタグ:GIFCamera)<タグ名は好みで。

レンダリング>カリングマスク:Fighter を設定する。
これで、カリングマスクで設定したオブジェクトのアニメーション対象だけ録画することができる。(背景は透過状態になるので、合成画像素材として都合がよい)

Cameraのインスペクター
※Cameraのインスペクターの表示が画像と異なる場合は、Uiversal RPになっていないので、Uiversal RP設定を行うか、URP対応のテンプレでプロジェクトを作成してシーンを作成する。

最後にRecorder設定を行う。

アニメーションを連番画像ファイル出力したいので、Add Recorderで、Image Sequenceを作成。
・Input>Source:Texture Sampling
・Input>Camera:TaggedCamera
・Tag:GIFCamera
ファイル出力:PNG (デフォルトで透過有効)

Recorderウィンドウ

あとは、録画ボタン、または、START RECORDINGボタンをクリックすると録画開始する。再度クリックすると録画停止

録画中、ゲームが再生される

下記ボタンを押すとWindows Explorerが開いて、出力ファイルを確認可能。

連番画像ファイル出力設定

下図は、Recordingsフォルダに出力された連番画像ファイル(透過PNG)の1枚。(画像編集アプリでプレビューしたもの)
あとは、連番画像ファイルを動画アプリ編集等で、素材として利用する。

透過PNG

■タイムラインで、指定範囲のみ書き出しする

タイムラインウィンドウを表示。
アニメーショントラックを追加。
そして、タイムラインにアニメーションクリップを配置。
それから、Recorder Trackを追加。そして、Recorder Cripを配置。
これで下準備完了。

タイムライン

Recorder TrackのRecorderClipを選択し、インスペクターを表示する。

RecorderClipを選択

連番PNG(透過)する設定は以下の通り。

レンダリングしたいオブジェクトのインスペクターで、新規Layerを追加。Layer名は、Specialを入力決定。
Wizardのインスペクター>Layer にSpecialを設定。

Wizardのインスペクター

タイムラインで作成したRecorderClipのインスペクターを設定。
ここでは、諸所設定、ファイル書き出し設定を行う。

ソース設定を「Texture Sampling」にするとうまく出力できる。<PNG形式(透過) 一方、なぜか、Source設定を「Targeted Camera」に設定するとゲームオブジェクトが表示されない。

RecorderCipのインスペクター

連番ファイルで書き出したアニメーションの背景色を透過するための事前設定を行う。

ヒエラルキーにレンダリング用のCameraを1つ追加作成し、下図と同じ設定を行っておく。

作成したCameraのインスペクターで、TagとLayerを設定。
今回、Tagには、Custom を設定しておく。(※任意の文字列でOK)

アニメーションするゲームオブジェクトのLayerには、Specialを設定する。
Camera>レンダリング>カリングマスク で、Specialを設定する。この場所で設定したレイヤーのみレンダリングされる仕組み。背景がない場合は、レンダリング時、背景は透過される。

追加作成したCameraのインスペクター
(※画像にのTagがCustomに設定されていないのは間違い、実際には設定しておく)
Wizardのインスペクター

あとは、再生ボタンを押すと書き出し先に連番ファイルが生成される。

再生ボタン

※トラブルシューティング

勘違いしやすいが、この手法の場合、Recorderパネルでの設定やレコーディング操作は全く利用しない。
利用するのは、インスペクター内のRcorder Clipで諸所設定、ファイル出力設定。また、ファイルを書き出す際のレコーディング、ストップも、Recorderパネルを利用しない。上記に記載した方法で行うこと。

■参考リンクと動画

<解説動画>

※この解説動画の注意点:
旧バージョンのRecorderには、PNGファイルオプションのCapture Alphaが表示されたが、新バージョンではこの設定は表示されない。しかし、デフォルトで、透過設定有効で、透過PNGを出力するようになっているので特に問題ないはず。

以上。

この記事が気に入ったらサポートをしてみませんか?