# -*- coding: utf-8 -*- """記事の公開は誰が(ショート専用・舞台型・2026-11-06) エイイチの言葉: 自動化の前は記事1本の仕上げと公開に30〜45分/Studio の更新はもう面倒でやりたくない""" from butai_parts import * OUTRO_K = 6 # 締めの文の番号(narration.py の最後に足した文) NAME, VER = "記事の公開は誰が", 4 HEAD = "記事の公開
誰がやる?" T_ON = (0, 1.4) def scene(T, S): h = CSS # 0: 記事1本(中身の線が書かれていく) t = T(0, 1.4) ln = "".join(f'
' for k, w in enumerate([300, 260, 300, 180])) h += win(t, T(1, 0), kick("記事1本") + '
' + f'
' + ln) # 1: 前は 30〜45分(右に手作業が3つ積み上がる) t1, s1 = T(1, 0), S(1) # 2026-11-07 エイイチ「文字が被ってる」: 数字と手作業のカードが重なっていたので、カードを上の段に横並び、数字を下に分けた jobs = "".join(f'
{nm}
' for k, nm in enumerate(["サムネイル作り", "貼り付け", "公開"])) h += win(t1, T(2, 0), kick("前は(記事1本)") + jobs + f'
30〜45分
') # 2: いまは Claude → GitHub → サイト(順にオレンジ) t2, s2 = T(2, 0), S(2) names = [("Claude", "仕上げる"), ("GitHub", "置く"), ("サイト", "公開")] fl = "".join(f'
' f'{sm}{nm}
' for k, (nm, sm) in enumerate(names)) h += win(t2, T(3, 0), kick("いまは") + '
Claude が仕上げて、
そのまま公開
' + fl) # 3: SNS も自動で予約(1週間の枠に予約が入る) t3, s3 = T(3, 0), S(3) days = ["月", "火", "水", "木", "金", "土", "日"] cols = "" for k, d in enumerate(days): x = 48 + k * 116 cols += f'
{d}
' slots = ["12:30", "19:30"] if k < 5 else ["12:30"] for j, s_ in enumerate(slots): tt = t3 + 0.3 + (k * 2 + j) * (s3 - 0.8) / 12 cols += (f'
{s_}
') h += win(t3, T(4, 0), kick("SNS の投稿") + '
時間を決めて、自動で予約
' + cols) # 4: サイトの更新は、もう面倒でやりたくなかった(前の手作業に線を引く) t4, s4 = T(4, 0), S(4) h += win(t4, T(5, 0), kick("前のサイト") + '
サイトの手作業の更新
' + f'
') # 5: 浮いた時間は、ロボットの研究へ t5 = T(5, 0) h += win(t5, None, kick("浮いた時間は") + f'
いままでの30〜45分
' + f'
' + f'
これからはロボットの研究
') h += outro(T, OUTRO_K) # 締め:サイトへの入口 return h def OVER(T): return stage_fx(T, fx=[dict(kind="rays", t=T(5, 0.9), d=3.0)]) FACE = [(-1, 0.0, 1.0, "joy"), (1, 0.0, 3.0, "trouble"), (2, 0.0, 2.5, "joy"), (5, 0.0, 3.0, "joy"), ("end", 0.0, 3.0, "smile")] POSE = [(-1, 0.0, 1), (1, 2.0, 3), (2, 0.0, 2), (4, 0.0, 2), (5, 0.4, 4)] LEAN = [] INTRO = "dash" MOVES = [(1, 1.0, "shake", 1.0), (2, 0.4, "hop", 1.2), (3, 0.5, "tilt", 1.0), (5, 0.2, "jump", 1.0)] SE = [(-1, 0.0, "se_whoosh", -9), (0, 1.4, "se_boot", -12), (1, 0.3, "se_tick", -12), (1, 0.8, "se_tick", -12), (1, 1.3, "se_tick", -12), (2, 0.0, "se_whoosh", -12), (2, 0.4, "se_ding", -11), (3, 0.0, "se_whoosh", -12), (4, 0.0, "se_whoosh", -12), (5, 0.9, "se_jaran", -10), (5, 0.9, "se_ding", -9)] ENDING = dict(kind="jump", at=(5, 0.9))