simreel は何をしますか?
ユーザーのiOSシミュレーターで実際のアプリを録画し、2つのファイルに書き出します。
reel-1080x1920.mp4: 端末の筐体を重ねたグラデーション背景、各シーンにキャプション、エンドカード付きの録画。X、Reels、TikTok、Product Hunt向け。appstore-preview-886x1920.mp4: プレーンな録画で、App Store Connect向けにサイズ・エンコード済み。
すべてXcodeとffmpegでローカル実行します。アカウント登録不要、有料API不要。
ルール
- アプリが実際に行っていることだけを表示すること。キャプションは画面に表示されている内容を説明し、映像にない主張、数字、レビューは決して追加しないこと。
- 個人データをフレーム内に入れないこと。新しいシミュレーターかデモデータを使用し、納品前に各フレームを確認すること。
- 操作指示があったシミュレーターのみを操作すること。他の起動中のシミュレーターは別の作業に使用されている可能性があるため、複数起動している場合は絶対に
bootedを指定しないこと。 - 特にユーザーから指示がない限り、録画中はトラッキングやCookieのプロンプトを拒否すること。
手順
- シミュレーターを見つける。
xcrun simctl list devices booted。アプリがインストールされていない場合は、ユーザーのツールを使ってビルド・インストールする。 - 録画せずに一度アプリを操作する。 主要な機能を示す3~5つの瞬間を選ぶ。オンボーディング、許可、Cookieのダイアログは今のうちに閉じて、本番録画に残らないようにする。
- 本番録画を1回行う。
残したい画面では約1秒間停止すること。シミュレーター起動直後にタップが失敗する場合は、20秒待ってから再試行する。scripts/record.sh start work/raw.mp4 <UDID> # アプリを操作: シミュレーターツール、プロジェクト内のXCUITest、またはユーザーにタップ操作を依頼 scripts/record.sh stop <UDID> - 録画を読み取る。 ファイルは最後の画面変更点で終了するため、静止した最終画面はカットされ、変更のない画面だけのテイクはほぼ空になる。シーンのタイミングは記憶ではなくファイルを基準にすること。
python3 scripts/compose.py frames work/raw.mp4 workwork/contact-sheet.pngを開く: 1行8コマ、コマNは秒N。 storyboard.jsonを書く。{ "app_name": "MyApp", "background": ["#0B1020", "#3B2AA8"], "scenes": [ {"start": 0.3, "end": 5.8, "caption": "この画面の機能"}, {"start": 8.0, "end": 10.0, "speed": 0.8, "caption": "次のステップ"} ], "end_card": {"title": "MyApp", "subtitle": "アプリのタグライン"} }startとendは録画内の秒数。speedが1未満でシーンがスローに、1超で早送りに。holdでシーンの最終フレームをその秒数だけ静止表示(結果画面をじっくり見せたい場合に使用)。backgroundは1色または上から下へのグラデーション。text_colorとcaption_sizeは省略可能。エンドカードが不要ならend_cardを省略すると最終シーンで終了。ローディングスピナーはカットすること。シーンの合計時間は15~30秒に収めないとApp Store Connectがプレビューを拒否する。- レンダリングする。
プレビュー時間が範囲外だと警告が表示され、python3 scripts/compose.py render work/raw.mp4 storyboard.json outout/report.jsonが出力される。 - 納品前に確認する。 各シーンから1フレームを抽出し(
ffmpeg -ss <t> -i out/reel-1080x1920.mp4 -frames:v 1 f.png)、キャプションと画面が一致しているか、プライベート情報やカット漏れがないかを確認する。
補足
- 必要条件: macOS、Xcode(
simctlとswift用)、ffmpeg、python3。 record.shはステータスバーを9:41、フルバッテリー、フル電波に設定します。後片付けにはxcrun simctl status_bar <UDID> clearを実行してください。- ここで使用しているApp Storeプレビューの数値(886x1920、15~30秒、30fps、H.264 High 4.0、ステレオAAC)はAppleのアプリプレビュー仕様に基づいています。アップロードが拒否された場合はそのページを確認してください。
- 音声トラックは無音です。必要に応じて編集ソフトで音楽やナレーションを追加してください。