YouTube の解説動画、30秒で45%が離れていた ― 冒頭は問いだけにして答えを山場へ

YouTube の解説動画、30秒で45%が離れていた ― 冒頭は問いだけにして答えを山場へ

この記事の素材(コード・ログ・データ 1ファイル・まとめてダウンロードあり)
AIで読む ChatGPT・Claude などで、この記事に質問できます

Pixels to Motors の YouTube の解説動画は、2026年10月8日〜11月4日のアナリティクスで、本編2本とも再生から30秒の時点で55%しか残っておらず、冒頭を「最初の5秒で問いを出し、答えは山場まで取っておき、自己紹介と断り書きを冒頭から外す」形に変えました。 あわせて、4万6千回見られたショートから本編へ来たのが8回だけだったので、答えを言わずに本編へ送るショートを3本作り、時間帯を分けて試します。

この見直しで、次のことが変わりました。

  • 動画を作るたびに冒頭の並べ方で迷わなくなった。問い → 数字 → 自己紹介、の順と、作る側の版の日付を声と画面に出さないことを、動画の決まり(video_rules.md)に書いた。配膳ロボットのシリーズ第3回「配膳ロボットを増やしたのに、入口の行列が減らない?」は、この決まりで作った最初の1本
  • ショートが「知ってもらう」だけで終わらず、本編へ人を送れるかを、数字で確かめられるようになった。判定は、本編のトラフィックソースの「関連のショート動画」が、これまでの28日で8回から増えるかどうか
  • 時間と効果:冒頭の決まりで台本づくりが何分縮むかは測っていない。視聴者が残るようになったかは、第3回(11月23日公開)の30秒の時点の視聴者維持率で、ショートの効き目は11月24〜26日ごろに確かめる。この記事の効果は、どれもまだ見込み

きっかけは、YouTube Studio のアナリティクスを本編だけに絞って見直したことです。チャンネル(@PixelstoMotors)でいちばん見られた「ジャングリア沖縄の赤字89億円、AIとロボットで埋められるか勝手に試算してみた」は、最初の30秒で700億円・100万人・100億円・89億円と数字を4つ並べ、問いが出たのは0:33でした。そのあと自己紹介と断り書きが1分以上続き、2:04で結論を言った直後に、残っていた人がもう一段減っていました。見る人は、何を確かめる回なのかが分かる前に離れ、答えを聞いたところでも離れていた、と読めます。

ショートのほうも、同じ28日で4万6千回見られていたのに、本編へ来たのは8回だけでした。これまでのショートは答えまで入れていたので、本編を見る理由がありませんでした。10月27日の LOG394 で「再生数を追うのをやめ、ロボットの導入を考える人に届ける」と決めたあと、その人たちを本編につなぐ入口が、冒頭とショートの両方で開いていなかったことになります。

やったことなぜ結果
本編の視聴者維持率とトラフィックソースを読み直した
どこで人が離れ、どこから来ているかを確かめるため
2本とも0:30で55%。3分を過ぎた人は最後近くまで残る。ショートから本編へは8回
冒頭の決まりを4つ、video_rules.md に足した
次の動画から同じ並べ方で作るため
問いは最初の5秒・答えは山場・自己紹介と断り書きは冒頭から外す・版の日付は出さない
入口テストのショートを3本作った
ショートから本編へ人を送れるかを試すため
12〜21秒。答えを言わず「答えは、下のリンクの本編で。」で終える。11/10〜12 に時間帯を分けて出す
配膳ロボットの第3回を、この決まりで作った
決まりを実際の1本に当てはめるため
問いは0:00、答えは9:17。11月23日 19:30 に公開予約

YouTube の動画は、ロボットの導入を考える人に、このサイトの研究を知ってもらう窓です。導入シミュレーションの試算は、別のページでも試せます。

店の立体図(席・キッチン・配膳ロボットの通り道)導入前シミュレーション配膳ロボットを、導入前に自分の店舗でシミュレーション店舗の図面と人数から、何人で回るか・どこで止まるか・月いくらかかるかを出します

作業ログ ― YouTube の本編の視聴者維持率と、来た道を読み直す

ここから下は作業ログです。数字は YouTube Studio の画面から読み取ったもので、本編が少ない(グラフが出たのは2本)ため、傾向として扱います。効果として書く数字は、測った値ではなく見込みです。

視聴者維持率は、動画のどこで人が離れたかを示すグラフ

視聴者維持率は、YouTube Studio で動画ごとに出る、再生の何秒目に何%の人がまだ見ていたかを示すグラフです。動画を開いて「エンゲージメント」のタブを押すと出ます。視聴が少ない動画では、YouTube がグラフを出しません。

言葉この記事での意味
視聴者維持率
ある秒数の時点で、再生を始めた人のうち何%がまだ見ているか
平均視聴時間
1回の再生で平均何秒見られたか
トラフィックソース
見た人がどこから来たか(YouTube 検索・ブラウジング・関連動画・ショートのフィードなど)
関連のショート動画
ショートの画面に付けた本編へのリンクから、本編へ来た回数

このプロジェクトでは、10月27日に「再生数と登録者数は判断に使わない」と決め、代わりにクリック率・30秒の時点の視聴者維持率・平均視聴率・シリーズの次の回に進む割合を見ることにしています(LOG394)。

本編2本は、どちらも0:30で55%しか残っていなかった

視聴者維持率のグラフが出たのは、次の2本でした。

動画長さ0:303:00最後平均視聴
ジャングリア沖縄の赤字89億円、AIとロボットで埋められるか勝手に試算してみた
10分28秒55%約30%15〜20%3分弱(長さの24〜27%)
人型ロボットの出荷は4倍。ロボットにも「ChatGPTの瞬間」は来たのか
12分30秒55%約30%15〜20%3分弱(長さの24〜27%)

「ロボットが事故を起こしたら」の回は視聴が少なく、グラフが出ませんでした。

2本とも、最初の30秒で45%が離れ、3分を過ぎて残った人は、ほとんどが最後近くまで見ていました。中身でつかめている人はいるのに、入口で半分近くを落としている形です。

ジャングリアの回は、問いが0:33、結論のあとにもう一段落ちた

いちばん見られたジャングリアの回の冒頭を、維持率のグラフと並べて見ました。

時間画面と声維持率の動き
0:00〜0:30
700億円・100万人・100億円・89億円と、数字を4つ並べる
30秒で55%まで減る
0:33
問い(ロボットにしたら、赤字は埋まるのか)がやっと出る
―
0:46〜2:00
自己紹介と断り書きが1分以上続く
じわじわ減る
2:04
結論(約87億円で、少し届かない)を言う
―
2:30〜2:50結論のあとの説明
45%から33%へ、もう一段落ちる

数字を先に並べたのは、「答えか数字を最初に出す」と決めていたからでした(10月27日の C 節)。ところが見る人には、何を確かめる回か分からないまま数字が続き、答えを聞いたら見る理由がなくなっていた、と読めます。

なお、10月27日の C 節に書いた「一番伸びた回でも平均57秒(約9%)」は、チャンネル全体の一覧を書き出した数字から出したもので、動画ごとの画面(平均2分50秒・27%)と食い違っていました。動画ごとの画面を正にすると決まりに書き添えました。

本編の来た道と、ショートからは8回だったこと

同じ期間(10月8日〜11月4日)のトラフィックソースです。

何を見たか数字
チャンネル全体の視聴
49,386回。うち93%がショートのフィード
登録の増加
23人。うち20人がショート経由
ショートから本編へ8回
本編(788回)の来た道
YouTube 検索 286・ブラウジング 279・関連動画 111・チャンネルページ 37・外部 28
検索と関連動画から来た人の平均視聴
3分前後
検索の言葉
66%がジャングリア関連(打ち間違いも含む)。フィジカルAI で探して本編に来た人はほぼいない(ショート込みで57回・平均13秒)
外部(ショート込み60回)の内訳
X 7・LinkedIn 4・Google 検索 3・前の Studio のサイト 2

ショートは登録を連れてくるのに、本編へはほとんど人を送っていませんでした。SNS から YouTube へもほぼ流れていません(LinkedIn は動画を直接上げているので、LinkedIn の中で見られた分は YouTube に出ません)。検索から来る人は、会社名・施設名・出来事の名前で探しています。

作業ログ ― 冒頭の決まりを4つ、video_rules.md に足す

決めた4つ:問いは5秒以内・答えは山場・断り書きは後ろ・版の日付は出さない

分析をもとに、次の3つを video_rules.md の C 節に足しました。どの型(解説回・謎解きの型・考察回)にも当てはめ、1節の型の時間の目安と食い違うときは、こちらを正にします。

  1. 最初の5秒で問いを出す。 数字を並べる前に、何を確かめる回かを1文で言う
  2. 答えは山場まで取っておく。 冒頭で言うのは問いと、答えの方向を消す予告まで
  3. 自己紹介と断り書きを冒頭から外す。 断り書きはその数字が出る場面に回し、自己紹介は短くするか問いのあとへ移す
  • ねらい:何を確かめる回かを最初に分かってもらい、答えを聞くまで見る理由を残す
  • 変わったこと:「答えか数字を最初に出す」(C 節)と「先に結論を言う」(1節の型)をやめ、問い → 数字 → 自己紹介の順にした
  • 見込める効果:30秒の時点の維持率が55%より上がる見込み。第3回の公開後に、同じ画面で確かめる(測った値ではない)

4つ目は、第3回の確認用の動画を見たときに足しました。声と画面に「11月3日の版」「10月末の版」のような、シミュレーションの版の日付が出ていたためです。

これ、動画の中で11月3日でーとかあるけど、動画見るユーザーに必要な情報か?おかしくないか?

版の日付は作る側の都合で、見る人には要らない情報でした。どの版の数字かは概要欄の「この動画で扱う範囲」に書き、声で断るのは、見る人が数字を読み違えるとき(本物の店の数字ではない、など)だけにしました。第3回では、日付を言っていた5つの文の声を作り直しました。

video_rules.md の C 節「冒頭の作り方」(足した全文)

### 冒頭の作り方(アナリティクス 2026-10-08〜11-04 で見直した・2026-11-06 エイイチの指示)

本編の視聴者維持率(動画ごとのアナリティクスのエンゲージメントの画面)と、本編だけに絞ったトラフィックソースを見て決めた。全部の型(解説回・謎解きの型・考察回)に当てはめる。1節の型の時間の目安と食い違うときは、こちらを正にする。

1. **最初の5秒で問いを出す。** 数字を並べる前に、何を確かめる回かを1文で言う(例: 「ロボットにしたら、ジャングリア沖縄の赤字は埋まるのか」)。数字は問いのあとに出す
2. **答えは山場まで取っておく。** 冒頭で言うのは問いと、答えの方向を消す予告まで。結論そのものは言わない(1-4 の謎解きの型で決めた読み方を、全部の型に広げた)
3. **自己紹介と断り書きを冒頭から外す。** 断り書き(この数字は足さない・予測ではない・誰の判断かは話さない など)は、その数字が出てくる場面に回す。自己紹介は短くするか、問いのあとへ移す

4. **作る側の版の日付は、声と画面に出さない。** 「11月3日の版」「10月末の版」「11月2日の夜」のような、シミュレーションや試算の版の日付は、見る人に要らない情報(2026-11-06 エイイチの指摘「動画の中で11月3日でーとかあるけど、動画見るユーザーに必要な情報か?おかしくないか?」)。版の違い・どの版の数字かは、概要欄の「この動画で扱う範囲」に書く。声で断るのは、見る人が数字を読み違えるときだけ(本物の店の数字ではない、など)

**根拠(2本の視聴者維持率・本数が少ないので傾向として扱う)**
- 「ジャングリア沖縄の赤字」(10分28秒)と「人型ロボットの出荷は4倍」(12分30秒)は、どちらも0:30の時点で55%しか残っていなかった(最初の30秒で45%が離れた)。3分を過ぎて残った人は、ほとんどが最後近くまで見ていた(3分で約30%・最後で15〜20%)。平均視聴は2本とも3分弱(長さの24〜27%)
- ジャングリアの回の0:00〜0:30は、700億円・100万人・100億円・89億円と数字を4つ並べ、問いが出たのは0:33だった。0:46〜2:00は自己紹介と断り書きが1分以上続き、じわじわ減った。2:04で結論(約87億円で少し届かない)を言ったあと、2:30〜2:50で45%から33%へもう一段落ちた
- 「ロボットが事故を起こしたら」は視聴が少なく、YouTube が維持率のグラフを出さなかった
- 「決めた理由」の「一番伸びた回でも平均57秒(約9%)」は、チャンネル全体の一覧を書き出した数字から出したもので、動画ごとの画面(平均2分50秒・27%)と食い違う。動画ごとの画面を正にする

**ほかに分かったこと(同じ期間)**
- 視聴49,386回のうち93%がショートのフィード。登録の増加23人のうち20人がショート経由。ショートから本編へ来たのは8回だけで、ショートは本編への入口になっていない
- 本編(788回)の来た道は、YouTube 検索286・ブラウジング279・関連動画111・チャンネルページ37・外部28。検索と関連動画から来た人は平均3分前後見ていた
- 検索の66%はジャングリア関連の言葉(打ち間違いも含む)。フィジカルAI で探して本編に来た人はほぼいなかった(ショート込みで57回・平均13秒)。題名には世間で探される会社名・施設名・出来事を先に置く
- 外部60回(ショート込み)のうち、名前が出たのは X 7・LinkedIn 4・Google 検索 3・前の Studio のサイト 2。SNS から YouTube へはほぼ流れていない(LinkedIn は動画を直接上げているので、LinkedIn の中で見られた分は YouTube に出ない)

video_rules.md の更新履歴(この作業で足した3行)

- 2026-11-06(104回目): C節「冒頭の作り方」に4つ目を足した。作る側の版の日付(11月3日の版・10月末の版など)は声と画面に出さず、概要欄に書く(配膳ロボット第3回「入口の待ちが減らない」の確認用でエイイチが指摘。5文の声を作り直した)

- 2026-11-06(103回目): 9-5「入口テストのショート」を足した。「何台入れたら店は変わる」(配膳ロボットのシリーズ第1回)の本編へ送るショートを3本作った(1台だと遅い 15.6秒・増やすほど 20.5秒・1人減らせる 12.2秒)。答えを言わず、問いと数字で止め、ハコブくんの声「答えは、下のリンクの本編で。」と「↓ 下のリンクから」で本編へ送る。投稿は本編の公開(11/9)のあと、11/10 12:30・11/11 19:30・11/12 22:00 に分けて時間帯も試す。9-1 の「答えまで入れる」に、入口のショートは 9-5 で試している、と書き添えた

- 2026-11-06(102回目): C節に「冒頭の作り方」を足した(エイイチの指示)。最初の5秒で問いを出す・答えは山場まで取っておく・自己紹介と断り書きを冒頭から外す、の3つ。根拠は 2026-10-08〜11-04 のアナリティクス(本編2本とも0:30で55%しか残らない・ジャングリアの回は結論を言った直後にもう一段落ちた・ショートから本編へは8回・検索の66%はジャングリア関連の言葉・SNS から YouTube へはほぼ流れない)。C節の「冒頭30秒: 答えか数字を最初に出す」と、1節の型の「先に結論を言う」を改め、自己紹介は問いのあとへ移すか短くするにした。「決めた理由」の平均57秒は一覧の書き出しの数字で、動画ごとの画面(2分50秒)を正にすると書いた

作業ログ ― 答えを言わない入口テストのショートを3本作る

ショートは問いと数字で止め、「答えは、下のリンクの本編で。」で終える

入口テストのショートは、配膳ロボットのシリーズ第1回「配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算」(本編・11月9日 19:30 公開)へ送る3本です。本編の文から、問いと数字の文を1〜2つだけ使い、答えの文は入れていません。最後の場面は大きな問いと「答えは本編で」「↓ 下のリンクから」で、ハコブくんの声「答えは、下のリンクの本編で。」を、このショートのために作って足しました。

入口テストのショート1本目「配膳ロボット1台で、料理が遅くなる?」の最初と最後のコマ。最後は「なぜ? 答えは本編で ↓ 下のリンクから」で終わる
ショート長さ使った本編の文最後の問い公開
1 配膳ロボット1台で、料理が遅くなった?
15.6秒
21 なぜ遅くなるのか → 41 58秒が2分12秒に → 85
なぜ?11/10(火)12:30
2 配膳ロボット、増やすほど店は良くなる?
20.5秒
3 増やすほど良くなる? → 4 0台から6台まで試した → 85
結果は?11/11(水)19:30
3 配膳ロボットを入れたら、スタッフを1人減らせる?
12.2秒
22 減らせる台数はあるのか → 53 2人だとロボットなしで28.3分 → 85
1台?3台?6台?11/12(木)22:00

時間帯を昼・夜・遅い夜に分けたのは、過去のショートを公開した時刻で比べると、7〜8時台は視聴が少なく、12時台と19時台が多かったためです(中身と日がばらばらなので参考)。3本とも中身が違うので、時間帯の差は参考として見ます。

  • ねらい:ショートを見た人が、答えを知るために本編を開く理由を残す
  • 変わったこと:これまでのショートは答えまで入れていた(9-1)。入口テストの3本は答えを言わず、関連動画に本編を必ず付ける
  • 見込める効果:本編のトラフィックソースの「関連のショート動画」が、28日で8回より増える見込み。各ショートの公開から2週間後(11月24〜26日ごろ)に確かめ、効いたら本編を出すたびにこの型で1〜3本作る

video_rules.md の 9-5「入口テストのショート」(足した全文)

### 9-5. 入口テストのショート(2026-11-06「何台入れたら店は変わる」で3本・エイイチ「3本くらい作ってみていいよ」)

ショートから本編へ人が来るかを試す型。10/8〜11/4 は、ショートが4万6千回見られたのに、本編へ来たのは8回だった(C節「冒頭の作り方」の根拠)。今までのショートは 9-1 のとおり答えまで入れていたので、本編を見る理由がなかった、と見立てた。

- **答えは言わない。** 本編の問いの文と、数字の文を1〜2つだけ使い、答えの文(本編のフックの結論・章の答え)は入れない。最後の場面は、大きな問い(なぜ?・結果は?・1台?3台?6台?)+「答えは本編で」+「↓ 下のリンクから」
- **最後に声で送る。** ハコブくんの声「答えは、下のリンクの本編で。」を足した(このショートのために作った文。本編の narration.py にはないので、本編の tts/ に 085.wav と index.json の1行を手で足してから書き出す。作業フォルダの README.md)
- 長さは12〜21秒(30秒より短くした。最初の5秒で問いを出す)。図・背景の映像・字幕の作りは 9-2 と同じ(assemble_short2.py・BGV)。部品は `何台入れたら店は変わる/ショート/_common.py`(背景の置き場所・CTA())
- 投稿: 本編の公開後に出し、関連動画に本編を必ず付ける。時間帯も分けて試す(12:30・19:30・22:00。エイイチ「時間別に投稿して試す」)。過去のショートを公開した時刻で比べると、7〜8時台は視聴が少なく、12時台と19時台が多かった(中身と日がばらばらなので参考)
- 判定は各ショートの公開から2週間後: 本編のトラフィックソースの「関連のショート動画」が8回より増えたか。あわせて「視聴された割合」。3本とも中身が違うので、時間帯の差は参考として見る。効いたら、本編を出すたびにこの型で1〜3本作る

ショートの共通部品 _common.py

# 入口テストのショート(2026-11-06)の共通部品。答えは言わず、本編へ送る(video_rules 9-5)
import os as _os
_here = _os.path.dirname(_os.path.abspath(__file__))
_BG_CANDS = [_os.environ.get("P2M_BG", ""),
             _os.path.expanduser("~/mnt/KIOXIA/r2r2r-data/videos/何台入れたら店は変わる/_取り込み/背景"),
             "/Volumes/KIOXIA/r2r2r-data/videos/何台入れたら店は変わる/_取り込み/背景",
             "/home/claude/v/bgsrc/背景"]
BGDIR = next((c for c in _BG_CANDS if c and _os.path.isdir(c)), _BG_CANDS[2])
CAP_U = "背景:Unity で建てた仮のファミレス(数字はパソコンの中の試算)"
SIM = "パソコンの中の試算・35卓のファミレス・40回の平均"


def bg(name, ss=0, cx=0.5, cy=0.5, h=1.0):
    return dict(file=_os.path.join(BGDIR, name), ss=ss, cx=cx, cy=cy, h=h, veil=0, cap=CAP_U)


def TOP(inner, pad=60):
    return f'<div class="fig c" style="justify-content:flex-start;padding-top:{pad}px">{inner}</div>'


def BIG(t, size, cls=""):
    return f'<div class="bleed {cls}" style="font-size:{size}px;font-weight:900;line-height:.95;letter-spacing:-.04em">{t}</div>'


def CTA(big_html):
    """最後の場面: 大きな問い+「答えは本編で」+下のリンクを指す矢印"""
    return TOP(big_html + '<div class="mid" style="margin-top:36px">答えは<span class="red">本編</span>で</div>'
               '<div class="sm" style="margin-top:28px">↓ 下のリンクから</div>')

ショート1 01_1台だと遅い/short.py

# 入口テスト①「配膳ロボット1台で、料理が遅くなる?」本編の答え(なぜ遅いか)は言わずに本編へ送る(2026-11-06)
# 本編の文番号: 21 なぜ遅くなるのか → 41 58秒が2分12秒に → 85 答えは、下のリンクの本編で(このショートのために作った声)
# -*- coding: utf-8 -*-
import os as _os, sys as _sys
_here = _os.path.dirname(_os.path.abspath(__file__))
for _c in (_os.environ.get("P2M_BASE", ""), _os.path.join(_here, "..", "..", "..", "_制作ベース")):
    if _c and _os.path.exists(_os.path.join(_c, "short_kit.py")):
        _sys.path.insert(0, _c); break
_sys.path.insert(0, _os.path.join(_here, ".."))
from short_kit import *
from _common import *
SRC = _os.path.join(_here, "..", "..")

HEAD = '配膳ロボット1台で、<br><span class="red">料理が遅くなる?</span>'
SEGS = [
    dict(i=21, scene="q", pause=0.3, face="surprise"),
    dict(i=41, scene="num", pause=0.4),
    dict(i=85, scene="cta", pause=1.0, face="smile"),
]
_N1 = '<div class="sm">料理ができてから卓まで</div>' + BIG('なし <span class="blue">58秒</span>', 150)
_N2 = _N1 + BIG('1台 <span class="red">2分12秒</span>', 135)
VS = {
    "q": [dict(at=0, m="slam", html=TOP('<div class="sm muted">ロボットを1台入れたら</div>' + BIG("料理が", 190) + BIG("遅くなった", 175, "red")))],
    "num": [dict(at=0, m="pop", html=TOP(_N1 + f'<div class="src" style="margin-top:20px">{SIM}</div>')),
            dict(at='0+4.0', m="slam", html=TOP(_N2 + f'<div class="src" style="margin-top:20px">{SIM}</div>')),
            dict(at='0+6.2', m="slam", html=TOP(_N2 + BIG("倍以上!", 150, "red")))],
    "cta": [dict(at=0, m="slam", html=CTA(BIG("なぜ?", 290, "red")))],
}
BGV = {
    "q": bg("fv-oblique.mp4", ss=2, cx=0.5, h=1.0),
    "num": bg("LOG364_v4_run4_robots_back_and_forth.mp4", ss=4, cx=0.42, h=0.9),
    "cta": bg("top-pass.mp4", ss=3, cx=0.45, h=0.95),
}

ショート1 01_1台だと遅い/sound.py

# ショートの音(本編と同じ BGM・場面が替わる音。章の音は使わない)。assemble_short*.py が読む(video_rules.md 9-3)
BGM = [dict(file="sound/bgm_明るいB_2.mp3", start=0, end=None, level=-23, gap=-16, fade_in=0.3, fade_out=1.2)]
SE = []
SCENE_SE = dict(file="se_rise", level=-6, offset=-0.15)

ショート2 02_増やすほど/short.py

# 入口テスト②「ロボットを増やすほど、店は良くなる?」本編の答え(何台で変わるか)は言わずに本編へ送る(2026-11-06)
# 本編の文番号: 3 増やせば増やすほど良くなる? → 4 0台から6台まで試した → 85 答えは、下のリンクの本編で
# -*- coding: utf-8 -*-
import os as _os, sys as _sys
_here = _os.path.dirname(_os.path.abspath(__file__))
for _c in (_os.environ.get("P2M_BASE", ""), _os.path.join(_here, "..", "..", "..", "_制作ベース")):
    if _c and _os.path.exists(_os.path.join(_c, "short_kit.py")):
        _sys.path.insert(0, _c); break
_sys.path.insert(0, _os.path.join(_here, ".."))
from short_kit import *
from _common import *
SRC = _os.path.join(_here, "..", "..")

HEAD = 'ロボットを増やすほど、<br><span class="red">店は良くなる?</span>'
SEGS = [
    dict(i=3, scene="q", pause=0.3),
    dict(i=4, scene="try", pause=0.4),
    dict(i=85, scene="cta", pause=1.0, face="smile"),
]
VS = {
    "q": [dict(at=0, m="slam", html=TOP(BIG("2台", 260))),
          dict(at='0+1.1', m="slam", html=TOP(BIG("3台", 260))),
          dict(at='0+2.3', m="slam", html=TOP(BIG('<span class="red">6台</span>', 300))),
          dict(at='0+3.6', m="pop", html=TOP('<div class="mid">増やすほど</div>' + BIG("良くなる?", 170, "red")))],
    "try": [dict(at=0, m="pop", html=TOP('<div class="sm">混む2時間を、パソコンで再現</div>' + BIG('0台<span class="red">→</span>6台', 180)
                                         + '<div class="mid" style="margin-top:20px">1台ずつ増やした</div>'
                                         + f'<div class="src" style="margin-top:20px">{SIM}</div>'))],
    "cta": [dict(at=0, m="slam", html=CTA(BIG("結果は?", 230, "red")))],
}
BGV = {
    "q": bg("LOG357_v1_stage2_oblique.mp4", ss=6, cx=0.5, h=1.0),
    "try": bg("top-busy.mp4", ss=2, cx=0.45, h=0.95),
    "cta": bg("fv-oblique.mp4", ss=10, cx=0.55, h=1.0),
}

ショート2 02_増やすほど/sound.py

# ショートの音(本編と同じ BGM・場面が替わる音。章の音は使わない)。assemble_short*.py が読む(video_rules.md 9-3)
BGM = [dict(file="sound/bgm_明るいB_2.mp3", start=0, end=None, level=-23, gap=-16, fade_in=0.3, fade_out=1.2)]
SE = []
SCENE_SE = dict(file="se_rise", level=-6, offset=-0.15)

ショート3 03_1人減らせる/short.py

# 入口テスト③「ロボットを入れたら、1人減らせる?」本編の答え(何台でも回らなかった)は言わずに本編へ送る(2026-11-06)
# 本編の文番号: 22 人を減らせる台数は、あるのか → 53 2人にするとロボットなしで28.3分 → 85 答えは、下のリンクの本編で
# -*- coding: utf-8 -*-
import os as _os, sys as _sys
_here = _os.path.dirname(_os.path.abspath(__file__))
for _c in (_os.environ.get("P2M_BASE", ""), _os.path.join(_here, "..", "..", "..", "_制作ベース")):
    if _c and _os.path.exists(_os.path.join(_c, "short_kit.py")):
        _sys.path.insert(0, _c); break
_sys.path.insert(0, _os.path.join(_here, ".."))
from short_kit import *
from _common import *
SRC = _os.path.join(_here, "..", "..")

HEAD = 'ロボットを入れたら、<br><span class="red">1人減らせる?</span>'
SEGS = [
    dict(i=22, scene="q", pause=0.3, face="think"),
    dict(i=53, scene="num", pause=0.4),
    dict(i=85, scene="cta", pause=1.0, face="smile"),
]
VS = {
    "q": [dict(at=0, m="slam", html=TOP(BIG("1人", 300, "red") + BIG("減らせる?", 165)))],
    "num": [dict(at=0, m="pop", html=TOP('<div class="sm">スタッフ3人 → 2人</div><div class="sm" style="margin-top:12px">ロボットなしで、席に着くまで</div>')),
            dict(at='0+3.0', m="slam", html=TOP('<div class="sm">スタッフ3人 → 2人</div><div class="sm" style="margin-top:12px">ロボットなしで、席に着くまで</div>'
                                                 + BIG("28.3分", 230, "red") + f'<div class="src" style="margin-top:20px">{SIM}</div>'))],
    "cta": [dict(at=0, m="slam", html=TOP(BIG("1台?", 200))),
            dict(at='0+0.6', m="slam", html=TOP(BIG("1台?3台?", 170))),
            dict(at='0+1.2', m="slam", html=CTA(BIG('1台?3台?<span class="red">6台?</span>', 112)))],
}
BGV = {
    "q": bg("LOG364_v3_run3_people_and_robots.mp4", ss=8, cx=0.42, h=0.9),
    "num": bg("top-busy.mp4", ss=8, cx=0.45, h=0.95),
    "cta": bg("LOG357_v1_stage2_oblique.mp4", ss=20, cx=0.5, h=1.0),
}

ショート3 03_1人減らせる/sound.py

# ショートの音(本編と同じ BGM・場面が替わる音。章の音は使わない)。assemble_short*.py が読む(video_rules.md 9-3)
BGM = [dict(file="sound/bgm_明るいB_2.mp3", start=0, end=None, level=-23, gap=-16, fade_in=0.3, fade_out=1.2)]
SE = []
SCENE_SE = dict(file="se_rise", level=-6, offset=-0.15)

書き出しのログ(3本)

=== 01_1台だと遅い/log.txt
長さ 15.6秒
重なり 0 件。図の段 5 枚
BGM 1本・効果音 2個 → mix.wav
    3.15秒  文001  se_rise  -6dB  「料理ができてから卓に着くまで。ロ」
   11.78秒  文002  se_rise  -6dB  「答えは、下のリンクの本編で。」
frames 467 = 15.6s  out.mp4 3.7MB
=== 02_増やすほど/log.txt
長さ 20.5秒
重なり 0 件。図の段 6 枚
BGM 1本・効果音 2個 → mix.wav
    7.62秒  文001  se_rise  -6dB  「そこで、ファミレスの混む時間帯の」
   16.68秒  文002  se_rise  -6dB  「答えは、下のリンクの本編で。」
frames 614 = 20.5s  out.mp4 3.9MB
=== 03_1人減らせる/log.txt
長さ 12.2秒
重なり 0 件。図の段 6 枚
BGM 1本・効果音 2個 → mix.wav
    2.62秒  文001  se_rise  -6dB  「スタッフを2人にすると、ロボット」
    8.38秒  文002  se_rise  -6dB  「答えは、下のリンクの本編で。」
frames 365 = 12.2s  out.mp4 2.6MB

ショートのフォルダの README.md

# 何台入れたら店は変わる ― ショート(入口テスト・2026-11-06)

本編の答えを言わずに、問いと数字で止めて本編へ送るショート3本(video_rules 9-5)。

- 01_1台だと遅い: 本編の文 21 → 41 → 85
- 02_増やすほど: 本編の文 3 → 4 → 85
- 03_1人減らせる: 本編の文 22 → 53 → 85
- 文 85「答えは、下のリンクの本編で。」はこのショートのために作った声(voice_eleven/ハコブ_入口/試し_01.mp3)。本編の narration.py にはない。書き出す前に、本編の tts/ に 085.wav と index.json の1行を足す(tts_import.py では入らない)
- 共通の部品は _common.py(背景の映像の置き場所・最後の場面 CTA())
- 背景の映像は KIOXIA の videos/何台入れたら店は変わる/_取り込み/背景/
- 書き出し: 各フォルダで python3 ../../../_制作ベース/assemble_short2.py(--render で一覧だけ)
- 上げるものは KIOXIA の videos/何台入れたら店は変わる/ショート/

ショートのタイトル・説明文・投稿のしかた(ショート_タイトルと説明文.txt)

入口テストのショート 3本(2026-11-06 作成)
本編: 配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算
本編の URL: https://www.youtube.com/watch?v=Ayq0zDZcaWo (11/9 19:30 公開予約)

ねらい: ショートから本編へ人が来るかを試す。今までのショートは答えまで入れていたので、本編を見る理由がなかった(10/8〜11/4 でショートから本編へは8回)。この3本は答えを言わず、問いと数字で止め、下の関連動画のリンクへ送る。
あわせて、投稿の時間帯も分けて試す(昼・夜・遅い夜)。

投稿のしかた(3本とも同じ)
・本編の公開(11/9 19:30)のあとに出す
・YouTube Studio のショートの編集画面で、関連動画に本編を選ぶ(これがないとテストにならない)
・字幕ファイルは上げない(焼き込み済み)

判定(各ショートの公開から2週間後・11/24〜26 ごろ)
・本編のアナリティクス → トラフィックソース → 関連のショート動画 の回数(今までは28日で8回)
・各ショートの「視聴された割合(スワイプされなかった割合)」と、時間帯ごとの視聴回数
・3本とも中身が違うので、時間帯の差は参考として見る


==============================
ショート1_1台だと遅い_版1.mp4(15.6秒)
予約: 11/10(火)12:30

タイトル:
配膳ロボット1台で、料理が遅くなった? ファミレスで試算

説明文:
料理ができてから卓に着くまで、ロボットなしで58秒。1台入れたら2分12秒に延びました。なぜでしょう?
答えは本編で:配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算
https://www.youtube.com/watch?v=Ayq0zDZcaWo

数字はパソコンの中の試算(35卓のファミレス・40回の平均)。背景は Unity で建てた仮のファミレスです。
ナレーションは AI 音声(ElevenLabs)です。
#配膳ロボット #ファミレス #フィジカルAI


==============================
ショート2_増やすほど_版1.mp4(20.5秒)
予約: 11/11(水)19:30

タイトル:
配膳ロボット、増やすほど店は良くなる? 0台から6台で試算

説明文:
ファミレスの混む2時間をパソコンの中で再現して、配膳ロボットを0台から6台まで1台ずつ増やしてみました。結果は本編で。
配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算
https://www.youtube.com/watch?v=Ayq0zDZcaWo

数字はパソコンの中の試算(35卓のファミレス・40回の平均)。背景は Unity で建てた仮のファミレスです。
ナレーションは AI 音声(ElevenLabs)です。
#配膳ロボット #ファミレス #フィジカルAI


==============================
ショート3_1人減らせる_版1.mp4(12.2秒)
予約: 11/12(木)22:00

タイトル:
配膳ロボットを入れたら、スタッフを1人減らせる?

説明文:
ファミレスのスタッフを3人から2人にすると、ロボットなしでは席に着くまで28.3分。では、配膳ロボットを何台入れたら1人減らせるのか。答えは本編で。
配膳ロボット1台だと、料理が遅くなる? ファミレスで0〜6台を試算
https://www.youtube.com/watch?v=Ayq0zDZcaWo

数字はパソコンの中の試算(35卓のファミレス・40回の平均)。背景は Unity で建てた仮のファミレスです。
ナレーションは AI 音声(ElevenLabs)です。
#配膳ロボット #ファミレス #フィジカルAI

作業ログ ― 配膳ロボットの第3回を、冒頭の決まりで作る

この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。

ファイルの一覧(1本)

01_sec04.txt ― 第3回の書き出しのログ(文ごとの開始時間)・3,011字

第3回は0:00で問いを出し、答えは9:17まで言わない

配膳ロボットのシリーズ第3回「配膳ロボットを増やしたのに、入口の行列が減らない? ファミレスを3Dで再現したら」(10分33秒)は、図面から作った仮のファミレスを、パソコンの試算と、人とロボットが歩く3Dの店(Unity)で回して比べた回です。謎解きの型で作り、冒頭は決まりのとおりに並べました。

配膳ロボットのシリーズ第3回の0:02。最初の文で「配膳ロボットを増やしたのに、入口の待ちが減らない?」という問いを出している
時間中身決まりとの対応
0:00
問い「配膳ロボットを増やしたのに、入口で待つお客さんが、思ったほど減らない。なぜでしょう。」
最初の5秒で問い
0:06〜0:48
数字(試算では4.1分→1.1分、3Dの店では3.9分→2.5分、28卓の店では10.8分→18.0分)と、仮のファミレスだという断り
数字は問いのあと。断りは数字の場面で1文だけ
0:53〜1:41作り手の紹介と、番組の名前自己紹介は問いと数字のあと
2:16
予告「今日の犯人は、ロボットの足の速さではありません」
答えの方向を1つ消すだけ
9:17
答え「止まるたびに人の手。片付けと案内が後回し」
答えは山場まで取っておく
第3回の9:22。今日の謎の答えのカード「止まるたびに人の手/片付けと案内が後回し」

第3回の確認では、答えのカードの文字が枠からはみ出していたので、2つの文を並べる形から、大きな2行の形(104px)に変えて書き出し直しました。版の日付を消した5つの文は、声を作り直しています。公開は、第2回(11月16日 19:30)の1週間後の11月23日 19:30 に予約しました。

第3回の冒頭の文(narration.py の 0〜21 番)

000 hook_q surprise 「配膳ロボットを増やしたのに、入口で待つお客さんが、思ったほど減らない。なぜでしょう。」 間0.35
001 hook_num base 「42卓のファミレス。パソコンの試算では、ロボットを2台入れると、|お客さんが店に来てから席に着くまでの時間が、4.1分から1.1分に縮みました。」 間0.35
002 hook_num2 surprise 「ところが、同じ店を3Dで建てて、人とロボットを歩かせると、3.9分が2.5分。|縮み方は、試算の半分足らずでした。」 間0.35
003 hook_num3 doubt 「もっと狭い28卓の店では、2台目を入れたら、かえって延びました。10.8分が、18.0分に。|試算でも少し延びますが、3Dの店では、7分も延びたんです。」 間0.35
004 hook_src base 「どちらも、この番組で作った、仮のファミレスでの話です。本物の店で測った数字では、ありません。」 間0.35
005 hook_joke trouble 「ちなみにハコブくんも、病院の廊下で、よく立ち止まっています。」 間0.35
006 ei_intro smile 「ここで、もう1人紹介させてください。この番組を作っている、エイイチです。」 間0.35
007 ei_react think 「この結果を見たエイイチは、こう話していました。」 間0.35
008 ei_react think 「どこに原因があるのか、よく調べないといけないなと思ったな。」 間0.8
009 hook_q2 doubt 「ロボットは、料理を運ぶのは得意です。それなのに、なぜ、入口のお客さんが、思ったほど減らないのか。|この謎を、今日は3つの手がかりで解いていきます。」 間1.2
010 title smile 「Pixels to Motors。案内役のハコブくんです。」 間0.35
011 title base 「この番組では、フィジカルAIのニュースや実機の記録から、現場で使える形を考えます。」 間0.35
012 title_eiichi smile 「エイイチは、本業のデザイナーをしながら、ロボティクスの研究と開発をしています。|その中で分かったことと、そこから考えた見立てを、ハコブくんがお伝えします。」 間1.2
013 question base 「今日の謎は、これです。配膳ロボットを増やしたのに、入口で待つお客さんが、なぜ思ったほど減らないのか。」 間0.35
014 define base 「ここで言う入口で待つ時間は、お客さんが店に来てから、席に案内されて座るまでの時間です。|第1回で、席に着くまでの時間、と呼んだものと同じです。」 間0.35
015 define2 base 「今日の店は、第1回と第2回の、35卓の店ではありません。図面から作った、仮のファミレス6つです。|同じ店を、パソコンの試算と、3Dの店の、2つの道具で回して比べました。」 間0.35
016 teaser wink 「先に言っておくと、今日の犯人は、ロボットの足の速さではありません。」 間1.2
017 hayatochiri joy 「とはいえ、ハコブくんは最初、こう考えました。3Dの店のロボットは、足が遅いんだ。」 間0.35
018 hayatochiri2 trouble 「……でも、3Dの店のロボットが走る速さは、秒速0.57メートルほど。試算の0.5メートルより、少し速いくらいです。|足の速さでは、説明できません。」 間1.2
019 promise_cards base 「謎を解く前に、約束を1つ。今日の話は、出どころを、画面の左上に札で出します。」 間0.35
020 promise_cards smile 「エイイチの記録、公開されている実物の店の動画、そしてエイイチの見立て。|どこまで信じるかは、札を見て決めてください。」 間0.35
021 promise_fair base 「それから、3Dの店も、シミュレーションです。作りの間違いを見つけては、直し続けています。」 間1.2

第3回の書き出しのログ(文ごとの開始時間)

01_sec04.txt3,011字・58行・text
BGM 1本・効果音 55個 → mix.wav
    6.25秒  文001  se_rise  -6dB  「42卓のファミレス。パソコンの試」
   17.85秒  文002  se_rise  -6dB  「ところが、同じ店を3Dで建てて、」
   28.28秒  文003  se_rise  -6dB  「もっと狭い28卓の店では、2台目」
   41.32秒  文004  se_rise  -6dB  「どちらも、この番組で作った、仮の」
   48.95秒  文005  se_rise  -6dB  「ちなみにハコブくんも、病院の廊下」
   53.52秒  文006  se_rise  -6dB  「ここで、もう1人紹介させてくださ」
   67.22秒  文009  se_rise  -6dB  「ロボットは、料理を運ぶのは得意で」
別のタブで開く保存

次に確かめること

いつ何を何と比べる
11月9日 19:30 以降
第1回の公開と、ショート3本の関連動画の設定
―
11月24〜26日ごろ
第1回のトラフィックソースの「関連のショート動画」と、各ショートの視聴された割合
これまでの28日で8回
11月23日の公開から1〜2週間
第3回の0:30の時点の視聴者維持率
ジャングリアの回・人型ロボットの回の55%

冒頭で答えを言わないことと、ショートで答えを言わないことは、同じ判断です。 どちらも、見る人が次の数秒・次の1本を見る理由を残すためで、効いたかは上の3つの数字で確かめます。