# -*- coding: utf-8 -*-
"""並行で作る(ショート専用・舞台型・2026-11-06)
エイイチの言葉: 動画を何本も並行して作ることが多くなったので、一覧で見て簡単に進めたい(2026-10-15)/ハコブくんの声のお知らせは、うるさくならない程度にし、止められるように(仕事のMTG中に喋られると困る)"""
from butai_parts import *
OUTRO_K = 6 # 締めの文の番号(narration.py の最後に足した文)
NAME, VER = "並行で作る", 3
HEAD = "何本も同時に
どこまで進んだ?"
T_ON = (0, 1.3)
VIDS = [("入口の待ちが減らない", "C"), ("AIあるある", "E"), ("研究のスキル一覧", "E"), ("現場で扱えるか", "C"), ("どこまでいじっていい", "C")]
def rows(t_in, step, t_turn=None, scatter=False):
out = ""
for k, (nm, who) in enumerate(VIDS):
if scatter:
pos = f"left:{[60, 330, 140, 420, 230][k]}px;top:{[110, 160, 270, 330, 420][k]}px;transform:rotate({[-6, 4, -3, 7, -5][k]}deg);width:420px;"
else:
pos = f"left:48px;top:{110 + k * 92}px;width:804px;"
badge = ""
if t_turn is not None:
ei = who == "E"
badge = (f'
'
f'{"エイイチの番" if ei else "Claude の番"}
')
out += (f'{nm}{badge}
')
return out
def speaker(left, top, on=True):
col = ORANGE if on else "#5C6678"
return (f''
f'')
def scene(T, S):
h = CSS
# 0: どれがどこまでか分からない(カードがばらばら)
h += win(T(0, 1.3), T(1, 0), kick("同時に作っている動画") + rows(T(0, 1.35), 0.15, scatter=True))
# 1: 進み具合のページに会話ごとに書き込む(そろった一覧)
t1 = T(1, 0)
h += win(t1, T(2, 0), kick("進み具合のページ") + rows(t1 + 0.2, 0.18))
# 2: いま誰の番か、ひと目で分かる
t2 = T(2, 0)
h += win(t2, T(3, 0), kick("いま誰の番?") + rows(t2 - 5, 0, t_turn=t2 + 0.3))
# 3: エイイチさんの番になったら、僕の声でお知らせ
t3 = T(3, 0)
waves = "".join(f'' for k in range(3))
h += win(t3, T(4, 0), kick("お知らせ") + ""
+ speaker(200, 290) + waves
+ f'エイイチの番です
')
# 4: 会議中に喋られると困る
t4 = T(4, 0)
h += win(t4, T(5, 0), kick("でも") + speaker(200, 290, on=False)
+ f'会議中
')
# 5: うるさくならないように、控えめに(音量が下がる)
t5, s5 = T(5, 0), S(5)
h += win(t5, None, kick("音量") + speaker(120, 290, on=True)
+ f''
+ f''
+ ""
+ f'控えめに
')
h += outro(T, OUTRO_K) # 締め:サイトへの入口
return h
def OVER(T):
return stage_fx(T, fx=[dict(kind="shock", t=T(3, 0.3), d=2.2, c="#E2683A")], shakes=[(T(4, 0.3), 0.4)])
FACE = [(-1, 0.0, 1.0, "smile"), (1, 0.0, 3.0, "joy"), (3, 0.0, 2.9, "joy"), (4, 0.0, 2.1, "surprise"), (5, 0.0, 3.3, "trouble"), ("end", 0.0, 3.0, "trouble")]
POSE = [(-1, 0.0, 3), (1, 0.0, 1), (2, 0.0, 2), (4, 0.0, 2), (5, 1.2, 4)]
LEAN = []
INTRO = "spin"
MOVES = [(1, 0.3, "dash", 1.0), (3, 0.2, "hop", 1.4), (4, 0.3, "back", 1.0), (5, 0.2, "bow", 1.6)]
SE = [(-1, 0.0, "se_spin", -10), (0, 1.3, "se_boot", -12), (1, 0.0, "se_whoosh", -12), (2, 0.0, "se_whoosh", -12),
(2, 0.5, "se_ding", -12), (3, 0.0, "se_whoosh", -12), (3, 0.3, "se_chapter_glock", -10), (4, 0.3, "se_pechin", -8), (5, 0.0, "se_whoosh", -13)]
ENDING = dict(kind="none", at=(5, 2.6))