プリレンダリング:生成ビジュアルと安定化映像
5つのルート、1セットの共通ルール。コードで描かれたピースは映像(video)として配置されます。最初にこちらをお読みください。SVG静止画は1枚のPNGとなり、imageとして配置されます。SVGルートへジャンプしてください。Lottieアニメーションも映像になり、フレームごとに新しいプレイヤーで描画されます。Lottieルートへジャンプしてください。3Dシーンは透明な映像または静止画PNGになります。3Dシーンルートへジャンプしてください。ソース動画の安定化は新しいクリップを生成します。安定化ルートへジャンプしてください。これらはすべてレンダリング外で実行されるため、すべてのペインターが同じピクセルをデコードします。
Montagentにはシェーダーやスクリプトファイルはありません(ADR-0017)。effectsリスト外のルックは、自身のコードで描画され、一度映像としてエンコードされ、通常のvideoとして配置されます。フォーマット、スキーマ、ペインターは変更されません(ADR-0156 §7、ADR-0233)。
使用するタイミング
まず名前付きルートを確認してください。montagent://schema/index.jsonのeffectsリストを読み、そのメンバーでルック(ブラー、シャドウ、ティント、blend、キーイングされたmask)が構成できる場合は、それを使用します。プリレンダリングは、ルックを構成するメンバー、ペイント、ブレンドがない場合のみ行います。歪み、モザイク、レンズフレア、パーティクル、プロシージャルパターン、外部3Dモデル/シーンなどです。
SVGルートは、ベクタードローイング(ロゴ、アイコン、イラスト)がSVGファイルとして渡された場合、または静止画をSVGとして描くのが最も簡単な場合に使用してください。SVGファイルを受け入れる要素はありません(ADR-0171)。アニメーションするSVG(SMILまたはCSS)はこのルートの対象外です。1つの静止フレームとしてラスタライズされ、動きは失われます。代わりに、配置された画像のscale、rotation、opacityをキーイングしてください。
3Dシーンルートは、3Dアセット(.glb、.gltf、.obj、.fbx、.blend、.c4d)または3Dシーンが渡された場合に使用してください。3Dモデルやマルチチャンネルパスを受け入れる要素はありません(ADR-0167、ADR-0233)。ヘッドレスレンダリングでは、レンダリング外で透明なProRes 4444 / PNG映像が生成され、直接2D配置できます。
Lottieルートは、Lottie JSONファイル(After Effectsのエクスポート、LottieFilesのアニメーション)が渡された場合、またはモーションをLottieから取得するのが最も簡単な場合に使用してください。Lottieファイルを受け入れる要素はありません(ADR-0171)。これには3つのコストがかかります。固定解像度:映像はレンダリングしたサイズのラスタになります。レシピツールチェーン:ピースを再現するためにインストールされたLottieプレイヤーが必要です(プロジェクトのレンダリングには使用しません)。映像サイズ:MOV内のPNGは、滑らかなアートでは約6 MB/秒、ノイズの多いアートでは1080p、25 fpsで約141 MB/秒になるため、表示されるサイズでレンダリングし、それ以上大きくしないでください。モーションが数個のシェイプである場合、ネイティブのrect、ellipse、path要素をキーイングする方が小さく、鮮明さを保てます。
プリレンダリングされたピースは固定映像です。そのサイズ、fps、長さはレンダリング時に設定されます。ルックを変更するには再レンダリングが必要なため、まずサイズ、fps、期間を確定し、プロジェクトのfpsと一致させてください。
共通ルール
すべてのルートでこれらのルールが適用されます。一度だけ記載します。
- サイズ。
fit、scale、キーイングされたズーム後にピースが表示される最大のサイズで、ピクセル単位のリテラルなwidthとheightでラスタライズまたは描画してください。SVGのviewBoxからサイズを導出しないでください。viewBoxは描画のプロポーションを設定し、ピクセルを設定するものではなく、ツールによってはviewBoxがないファイルの扱いが異なります。レシピにサイズを記述してください。後でそれを超えてズームするとラスタがリサンプリングされるため、拡大する代わりにレシピをより大きなサイズで再実行してください。 - テキスト。 ベンダリングされたフォントのみ、またはアウトラインに変換されたテキストのみを使用してください。システムフォントは使用しないでください。そのフォントがないマシンでは別のものが描画されます。見つからないフォントは、ドロップされたスパンではなく、ビルド失敗として扱ってください。例えば
usvgは、ミスをログに記録しテキストをスキップするため、buildはSVGのfont-family値をfontsにリストしたフォントファイルと照合し、ラスタライザ自身のフォント警告でも失敗します。 - レシピ。 ソースコピー、正確なコマンド、ツールのバージョン、サイズ、そしてデコードされたピクセルのハッシュ(デコーダが使用するのと同じ読み取り方法で取得)を含めてください。再構築は一致または最初の差異を報告し、ファイルのバイトを比較することはありません。レシピはその所在を示します。
手順
すべての手順を順番に実行してください。手順5が成功すると、ピースは配置されたことになります。
- 描画。 任意のツールで、固定の
width、height、frames数のRGBAフレームを生成するコードを書きます。何も描かれていない部分は透明にします。これは、生のRGBAをstdoutに書き出すか、PRERENDER_FRAMES_DIRで指定されたフォルダにf00000.png、f00001.png…のようなPNGファイルを書き出します。サイズはPRERENDER_WIDTH、PRERENDER_HEIGHT、PRERENDER_FPS、PRERENDER_FRAMESから読み取ります。整数演算または固定シードを使用して、2回目の実行で同じバイトが描画されるようにしてください。サンプルピースは最小限の動作例です。 - スペック。 コードの隣にビルドスペックを書きます:
name、out(プロジェクトのメディアフォルダ)、width、height、fps、frames、render(コードを実行するargv)、files(コードが必要とするすべてのファイル)、そしてPNGを書き出す場合はinputに`