思いついて2日で38分のアニメを公開し、3日で5本目まで作った|レンダーが1fpsを切った記録

8月31日に思いついて、9月1日の夜に38分のアニメを1本公開した。9月2日には5本目まで台本と音声ができている。AI社員ぽん太の世界史チャンネルで始めた横画面の長編「一代記」(歴史人物ひとりの一生を1本で学び切る)の話で、この記事はその2日半で詰まったことの記録である。うまくいった話より、レンダーが1fpsを切った話のほうが、たぶん役に立つ。

公開したもの: ぽん太の世界史 一代記#01|紫式部(38分・YouTube)

赤堀亘
執筆・監修 AiWiLL株式会社 代表取締役 赤堀亘

日本テレビ・Bitget等でのB2Bマーケティング実務を経て、2023年にSHIFT AI創業へ参画。コミュニティ・スクール責任者として2年で3万人規模へのグロースを主導。2026年、静岡県熱海市でAiWiLL株式会社を創業。生成AI顧問「WiLLAGENT」として、防災設備・不動産管理・旅館・飲食など現場型の中小企業に入り、売り上げ向上に寄与するマーケティングや営業施策をどうAIで質を上げ、数を増やすかを一緒に考え抜き、人手不足のなか報告書・見積・マニュアルづくりといった実務をいかにAIで省くかといった、AIを使った事業づくりを伴走支援している。生成AI研修・Eラーニングの監修も担当。企画したイベント・ウェビナーは累計112件、参加者は1万人超。

AIエージェント・新規事業リサーチ・マーケティングの実践セミナー3本の本編と、WiLLAGENTのサービス説明PDFを、無料の資料セットとして公開しています。→ 無料資料セットを受け取る

目次

作り方の骨格(3日で変えていない部分)

60秒ショートで使っている Remotion のパイプラインに format: 'long' を足し、横16:9で漫画の吹き出しを出す。台本はJSONで、章ごとに frameRange を持たせて章単位でレンダーし、最後に同梱の ffmpeg で結合する。いきなり38分をひとつのレンダーにしない。声は ja-JP-MayuNeural(pitch -2 / rate -2)、背景は Codex の image_gen で作った平安の一枚絵。

node scripts/still-long.mjs hist-long01-pilot 36,614,1823,2018,2333,3956,5800,9032 check1   # 確認用の静止画(フレーム番号指定)
node scripts/render-long.mjs hist-long01-pilot 0-5011                                         # 前半チャンクだけレンダー

まず5分34秒のパイロット(アバン+第1章)を限定公開で出し、それが通ってから残り10パートを書いた。全編は11パート・台本477行・会話約36分・全体約38分。

詰まった①:吹き出しから文字がはみ出す

怒りのセリフに使うギザギザの吹き出し(burst)が、25文字以上で文字を外に出していた。ショートでは短い叫びにしか使っていなかったので気づかなかった。長編は感情のこもった長台詞が多い。直し方は「angry かつ 24文字以下のときだけ burst、それ以上は丸い吹き出し」。デザインで解決せず、条件で逃げた。

詰まった②:レンダーが1fpsを切った

全編レンダーの途中で速度が落ち、フレームが1秒に1枚も進まなくなった。原因は二つ重なっていた。

一つ目、同じPCで別のセッションがショートのバッチレンダー(render.mjs)を回していた。私はClaude Codeを複数セッションで動かしているので、片方が長編、もう片方がショート5本を同時にレンダーしていた。二つ目、メモリが足りなくなってスワップに入った。Remotionの並列数を既定のまま使うとブラウザのプロセスが増え、長時間レンダーでは逼迫する。

対処は、レンダー前に node のプロセスを確認して他のレンダーが走っていないことを見る、そして並列数を落とす。

REMOTION_CONCURRENCY=3
900フレームの実測: 5.8fps

5.8fpsなら38分(約68,000フレーム)で3時間強。並列を増やしてスワップに落ちるより速い。これは今のPCでの数字で、メモリが多ければ話は変わる。

詰まった③:エージェントの「待つ」が止められる

レンダーの完了を待つために sleep 90 を挟んで結果を見に行く書き方をしたら、実行環境に止められた。エラー文はこれ。

Error: Blocked: sleep 90 followed by: ls -la "C:/Users/watar/dev/ponta/out/" grep -i "hist-long". To wait for a condition, use Monitor with an until-loop (e.g. 'until <check>; do sleep 2; done'). To wait for a command you started, use run_in_background: true. Do not chain shorter sleeps to work around this block.

言われたとおりで、長いレンダーはバックグラウンドで起動して完了通知を待つのが正しい。sleepで待つ癖が抜けていなかった。

3日で5本、尺がそろってしまった

#01紫式部が38分、#02清少納言が34分。似た尺になったのは、10章のテンプレートで書いたからで、人物の材料の量とは関係がなかった。本人(赤堀)から「人物によって全然尺変わると思う」と指摘が入り、ルールを変えた。尺を先に決めず、リサーチで分岐点の数・年表の項目数・強いエピソードの数を先に数えて、そこから章数と尺を導く。

その後の実測。

#03 諸葛孔明   分岐点12・項目24 → 推定約60分 → 実測53.1分・15パート・約450行
#04 ジャンヌ・ダルク 分岐点10・項目20 → 推定38分 → 実測34.5分・13パート
#05 ユリウス・カエサル 分岐点12・項目24 → 推定45分 → 実測37分13秒(67,013フレーム)・15パート

孔明だけ長いのは、正史と演義の二段構造をはがす章が要るから。「作り話を全部はがした先の本人は、もっと面白い」が核。

公開の並べ方

本人の「連日投稿になるように」で、19:00のラインを作った。#01が9/1、#02が9/2、#03が9/3、#04が9/4。サムネイルの文言は3案から本人が「38分で、紫式部の一生。」を選び、Grok の image_gen で文字ごと生成した。

まだ直っていないこと

  • BGMが未選定(フリー音源の候補から番号で選ぶ段階のまま)
  • 複数ゲスト(#02の終章に紫式部が出る)に対応するスキーマ拡張が暫定
  • 主指標は「平均視聴時間と登録転換」と決めたが、長編の計測はまだ1本も取れていない。パイロット30日で視聴10分か登録+20が続行条件、3本で兆しがなければ止める
  • 並列数3は今のPCの経験則。根拠はこの1回の実測だけ

「自社なら何から始めるべきか」を見つけたい方へ

AI顧問「WiLLAGENT」は、AIを「知る」で終わらせず、会社の仕事で使える状態まで一緒に動かす伴走型AI顧問です。現場に行き、一緒に作り、社内に残す。経営・営業・マーケティング・業務改善まで、現場の課題から優先順位を決めて進めます。

実務での使いどころを学べるAI実践セミナー3本の本編アーカイブと、3か月伴走の内容・支援領域・料金・FAQをまとめたサービス説明PDFを、無料の資料セットとして受け取れます。

  • URLをコピーしました!
  • URLをコピーしました!
目次