モバイルアプリ映画風ビデオ は何をしますか?
実際のアプリワークフローを、Three.js、Playwright、FFmpeg、Pythonのプロダクションテンプレートを使用して、演出された3Dフィルムに変換します。これは編集可能なコードベースの動画ワークフローであり、After Effectsプロジェクトではありません。
アプリと既存の方向性から開始
- 作成前に、既存のエクスポート、プロジェクトソース、現在のユーザーフィードバック、実際のランタイムテーマ、利用可能なアプリデータを検査します。承認された選択は維持します。新しいプロジェクトの場合は、デモンストレーションする機能、対象者、フォーマット、利用可能なキャプチャを確立します。
- 架空のフィクスチャまたは許可された録画を使用して、実際のアプリコンポーネントをキャプチャします。実際のタップターゲット、スクロールオフセット、ハイライト境界を測定します。実際の機能動作を発明された画面で置き換え、それを本物と呼んではいけません。ステージングされたネイティブ専用の視覚化は、納品の来歴にラベル付けします。
- ランタイムの色に合わせます。含まれているサンプルパレットは単なるデフォルトであり、他のアプリのブランドではありません。ダークモード全体、最小限の編集テキスト、および電話終了/ブランド表示は、元のプロジェクトの設定であり、ユーザーが別途要求した場合に設定可能です。
制作手順
制作方法と微妙なタイミング/ジオメトリの詳細については、references/workflow.mdを参照してください。画面キャプチャを作成または更新する場合は、references/capture.mdを参照してください。アクション、カメラポーズ、スクロール、テキストを作成する場合は、references/timeline.mdを参照してください。
- 新しいプロジェクトの場合は、このスキルフォルダから
python3 scripts/scaffold.py /absolute/new/projectを実行します。これによりassets/templateがコピーされ、明確にラベル付けされた合成デモ画面が作成されます。実際の納品物の前に、それらの画面を置き換えてください。既存のフィルムの場合は、新たにスキャフォールディングする代わりに、そのプロジェクトを直接編集します。 - 生成されたプロジェクトで、リポジトリのREADMEに記載されているように、Node/Pythonの依存関係とChromiumをインストールします。実際のアプリテーマ、オプションの所有フォント、ブランド画像/トリミングから
project.jsonを設定します。現在のレンダラーは、1080×1920、30 fps、DPR 3で430×860 CSSのアプリアイコンキャプチャをターゲットとしています。アスペクト比を変更するには、座標とジオメトリの協調的な変更が必要です。 - ワークフローをキャプチャし、
source/films.jsonを記述します。一度に1つのプライマリカメラアクション、高速な触覚フィードバック、明確なセットアップ→アクション→結果のビートを使用します。ナレーションされている機能は、話されているときに表示されたままにします。強調のために短いテキストを追加します。サイドカーキャプションは別の納品物です。 source/narration.jsonを記述し、音声生成が許可されている場合のみ、python3 source/narrate.pyで不足しているナレーションを生成します。ELEVENLABS_API_KEYとELEVENLABS_VOICE_IDをプロセス環境に提供します。MP3/アライメントペアをキャッシュします。シークレットをソース、スクリーンショット、ログ、ZIPに決して入れないでください。失敗した有料リクエストは自動リトライなしで停止します。イテレーションにはキャッシュされた音声を使用します。- 返された文字タイムスタンプと 0.65秒のミックスオフセット を使用して、ハイライト、タップ、カメラフォーカス、テキスト、エンディングを指示します。プレビューフレームをレンダリングし、検査してから、フィルムをレンダリングします。テンプレートは
--preview、--only INDEX、--manifest PATHをサポートしています。ミックス/検証/パッケージ化にはsource/films.jsonを使用します。 python3 source/mix.pyを実行します。assets/audio/sfxにある許可されたサウンドライブラリサンプルを優先します。サンプルがない場合は、元のフォールバック手続きを使用します。エフェクトは音声の下で明瞭に保ちます。テンプレートは、過渡的なピークをアクションに合わせ、エフェクトをナレーションの下でダッキングします。python3 source/verify.pyを実行し、重要なトランジションとナレーション付きの瞬間を視覚的に検査し、最終ミックスを聴きます。自動化された暗フレーム/ラウドネスチェックは、正しい機能が表示されていることを確認しません。字幕と約束されたすべてのテキストを確認します。- エクスポートが合格したら、
python3 source/package.pyを実行します。共有する前に、アーカイブの明示的な内容とメディアの権利を検査します。MP4、オプションのSRT/VTT、プレビュー、編集可能なソース、来歴を納品します。公開、デプロイ、投稿は、ユーザーの要求された範囲内に留まります。
これらの不変条件を維持する
- アプリのテクスチャはsRGBと
toneMapped:falseを使用します。シーン照明はアプリの色を変えてはいけません。 - ハイライトとスクロールピクセルは、同じ測定されたスクロール補間を使用します。アトラスはスクロールが完了した後もアクティブなままです。そうしないと、短いスクロール時間で空白領域が露出する可能性があります。
- カメラフォーカスは、カメラが離れる電話を追跡しないように、終了変換の前に計算されます。閉じるナレーション中に迅速にブランド表示を開始します。空白のホールドを残さないでください。
- ワールド空間のパーティクルは、深度テストと遠近法によるサイズ設定を行います。アプリコンテンツに従属するように保ちます。
- macOSでは明示的にGPUを使用し(
--enable-gpu --use-angle=metal)、決定論的な時間frame / 30でレンダリングし、バックプレッシャーをかけながらフレームをFFmpegにパイプします。 - 資格情報ファイル、プロプライエタリアプリケーションソース、ライセンスされていないフォント/SFX、顧客データを、再利用可能なスキルや公開リポジトリにコピーしないでください。
オプションの scripts/demo_audio.py は、オフラインパイプラインのスモークテスト用に合成トーンを作成します。これは明らかにナレーションではなく、完成したボイスオーバーとして決して提示してはいけません。