# -*- 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))