Unityのカメラまたは描画済みRenderTextureを動画に保存するツールです。Runtime・Editor・専用ネイティブDLLを一つのVPMパッケージで導入できます。
メニュー: D9speed → Recorder → FFmpeg Recorder
ffmpeg.exeに実行ファイルのフルパスを指定します。PATHに登録済みなら自動検出します。HEVC用・ProRes用の指定は個別に保存されます。Recordings/nvenc_gpuです。録画対象のカメラ・RenderTextureを描画し続けてください。URP/HDRPの描画設定をこのツールが自動作成することはありません。 Built-in Render PipelineのHEVCカメラ入力は、カメラの描画済み映像を録画用RenderTextureへコピーします。録画中もGame Viewカメラの描画先とアスペクト比は変更しません。
「キャプチャサイズをGame Viewに合わせる」はPlayモード中のGame View解像度を幅・高さに設定します。動画ではエンコーダーの制約により奇数値を直下の偶数へ調整します。PNGでは元の値をそのまま使用します。
| 形式 | 処理 | 条件・注意点 |
|---|---|---|
| HEVC / MP4 | GPU内の画像をネイティブNVENCへ渡し、FFmpegで再圧縮せずMP4へ格納 | NVIDIA / D3D11専用。アルファなし。FFmpegのsettsビットストリームフィルターが必要 |
| ProRes 4444 / MOV | GPUから画像を読み戻し、外部FFmpegで圧縮 | アルファ付き。prores_ks対応FFmpegが必要。容量・CPU負荷に注意 |
| 透過PNG連番 | 録画したMOVからFFmpegで出力 | 「停止後に透過PNG連番も出力」を有効にするか、停止後の出力ボタンを使用 |
全形式で音声は録音しません。デスクトップ画面の範囲キャプチャ機能ではありません。
ProResの「Vulkanを優先」は、対応するFFmpegビルド・GPU・ドライバーがある場合に利用します。prores_ks_vulkan、libplacebo、hwuploadなどの機能を録画前に実エンコードで確認し、利用できなければCPUのprores_ksへ切り替えます。Vulkan経路は環境差があるため、短い録画で結果を確認してください。
Vulkan経路のMOVはプリマルチプライド、CPU経路はストレートアルファです。PNG出力時にはストレートへ変換します。Vulkan経路のPNG変換にはsetparams=alpha_modeとformat=alpha_modesに対応したFFmpegが必要です。検証にはFFmpeg 8.1 full buildを使用しています。
Time.captureFramerateへ戻します。実時間に合わせた録画ではオフにしてください。旧nvenc_gpu_recorderと本パッケージの同時導入は避けてください。スクリプト・アセンブリ・GUIDが重複します。Unityを終了してから旧フォルダーと隣接する.metaをプロジェクト外へ退避し、VCC/ALCOMで本パッケージを導入してください。録画結果は退避先から別途取り出せます。既存のFFmpeg指定などのEditorPrefsキーは引き継ぎます。
Screen Texture Captureとは別のパッケージです。公開一覧からの削除によって、既に導入済みのScreen Texture Captureが自動削除されることはありません。不要な場合はVCC/ALCOMのプロジェクト管理画面から削除してください。
D9speed.NvencGpu.Runtime。gpu_camera_recorder、gpu_recorder_session、D9speed.Recording.AlphaCaptureRecorderを含みます。D9speed.NvencGpu.Editor。Playerには含まれません。native~/build_native.ps1はVisual StudioのC++ x64ビルドツールとWindows SDKでDLLを再ビルドします。生成物は一時フォルダーへ置き、DLLとインポート設定をPlugins/x86_64へ出力します。再配布時はRuntime/native_build.csが参照するDLLのみを残してください。連絡先: d09pseed@gmail.com
io.github.d9speed.nvenc_gpu_recorder
0.1.2 (変更履歴)
2022.3.22f1 以降
なし
なし
なし