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