# -*- coding: utf-8 -*- """寝ている間に回す(ショート専用・舞台型・2026-11-06) エイイチの言葉: 寝ている間も依頼を続けて回せるようにしてほしい(2026-10-27)/長い依頼の途中経過は知りたいが、毎時間は多い。2時間ごとかタスクの区切りでよい(2026-11-05)""" from butai_parts import * OUTRO_K = 6 # 締めの文の番号(narration.py の最後に足した文) NAME, VER = "寝ている間に回す", 3 HEAD = "寝てる間に
研究は進む?" T_ON = (0, 1.2) HOURS = ["23", "0", "1", "2", "3", "4", "5", "6", "7"] def night_bar(top=470, ticks=None, t_ticks=None, col=FACE_2, label=True): """23時〜7時の帯。ticks: 印を付ける時(HOURS の番号)""" w = 804 / 8 out = f'
' if label: out += "".join(f'
{hh}時
' for k, hh in enumerate(HOURS) if k % 2 == 0) for j, k in enumerate(ticks or []): an = f"opacity:0;animation:{a('pop', t_ticks + j * 0.12, .2)}" if t_ticks is not None else "" out += f'
' return out def scene(T, S): h = CSS # 0: 寝てる間も進めたい(夜の帯) t0 = T(0, 1.2) h += win(t0, T(1, 0), kick("夜") + '
寝ている間
' + night_bar(330)) # 1: 夜は Claude Code が回す(帯の上を再生ヘッドが進む) t1, s1 = T(1, 0), S(1) h += win(t1, T(2, 0), kick("夜は") + '
Claude Code が回す
' + night_bar(330) + "" + f'
') # 2: クラウドの GPU で学習して、片付けまで t2, s2 = T(2, 0), S(2) st = "".join(f'
' f'{k + 1}{nm}
' for k, nm in enumerate(["借りる", "学習", "持ち帰る", "片付け"])) h += win(t2, T(3, 0), kick("1つめ クラウドの GPU") + st) # 3: Unity の店を、条件を変えて何十回も(マスが埋まる) t3, s3 = T(3, 0), S(3) cells = "" for k in range(60): r_, c_ = divmod(k, 12) cells += (f'
') h += win(t3, T(4, 0), kick("2つめ Unity の店(条件 × 回数)") + cells) # 4: 途中経過は知りたい。でも毎時間は多い(帯に毎時の印が並ぶ) t4, s4 = T(4, 0), S(4) h += win(t4, T(5, 0), kick("途中経過のお知らせ") + '
毎時間は、多い
' + night_bar(380, ticks=list(range(9)), t_ticks=t4 + 0.3, col="#5C6678") + f'
') # 5: 2時間ごとか、区切りで t5 = T(5, 0) h += win(t5, None, kick("これから") + '
2時間ごと、か区切りで
' + night_bar(380, ticks=[0, 2, 4, 6, 8], t_ticks=t5 + 0.4, col=ORANGE)) h += outro(T, OUTRO_K) # 締め:サイトへの入口 return h def OVER(T): return stage_fx(T, fx=[dict(kind="stars", t=T(0, 0.6), d=T(4, 0) - T(0, 0.6)), dict(kind="shock", t=T(5, 0.4), d=1.6)]) FACE = [(-1, 0.0, 1.0, "smile"), (1, 0.0, 2.3, "wink"), (2, 0.0, 3.6, "base"), (3, 0.0, 3.9, "joy"), (4, 0.0, 3.9, "think"), (5, 0.0, 3.0, "smile"), ("end", 0.0, 3.0, "smile")] POSE = [(-1, 0.0, 2), (2, 0.0, 2), (4, 0.0, 1), (5, 0.4, 4)] LEAN = [] INTRO = "drop" MOVES = [(1, 0.3, "spin", 1.0), (3, 0.5, "hop", 1.4), (5, 0.4, "bow", 1.2)] SE = [(-1, 0.0, "se_rise", -10), (0, 1.2, "se_boot", -12), (1, 0.0, "se_whoosh", -12), (2, 0.0, "se_whoosh", -12), (2, 0.3, "se_tick", -12), (2, 1.3, "se_tick", -12), (2, 2.3, "se_tick", -12), (2, 3.2, "se_tick", -12), (3, 0.0, "se_whoosh", -12), (3, 3.4, "se_ding", -11), (4, 0.0, "se_whoosh", -12), (4, 0.3, "se_buzz", -14), (5, 0.0, "se_whoosh", -12), (5, 0.4, "se_ding", -9)] ENDING = dict(kind="jump", at=(5, 0.4))