# -*- coding: utf-8 -*-
"""別のAIに疑わせる(ショート専用・舞台型・2026-11-06)
エイイチの言葉: codex に任せると、ただのニュースのようになってしまう(2026-10-28)/最終判断はエイイチ(MASTER)"""
from butai_parts import *
OUTRO_K = 6 # 締めの文の番号(narration.py の最後に足した文)
NAME, VER = "別のAIに疑わせる", 4
HEAD = "AIの間違い
誰が見つける?"
T_ON = (0, 1.3)
def script_card(left, top, w, t, label="台本", n=5):
ln = "".join(f'
'
for k, ww in enumerate([w - 90, w - 140, w - 70, w - 160, w - 110][:n]))
return f'{label}
' + ln
def scene(T, S):
h = CSS
# 0: AI が書いた台本
h += win(T(0, 1.3), T(1, 0), kick("AIが書いた台本") + script_card(250, 130, 400, T(0, 1.35)))
# 1: 別のAIに、1文ずつ疑わせる(右に疑う役。行を順に照らす)
t1, s1 = T(1, 0), S(1)
scan = "".join(f'' for k in range(5))
h += win(t1, T(2, 0), kick("1文ずつ") + scan + script_card(48, 130, 380, t1 - 1, "Claude が書く")
+ f'別のAIが疑う
')
# 2: 数字の出どころ・言い過ぎ・引用の原文
t2 = T(2, 0)
rows = [("ok", "数字の出どころ"), ("ng", "言い過ぎ"), ("ok", "引用の原文")]
h += win(t2, T(3, 0), kick("見るところ") + "".join(
f'{"✕" if c == "ng" else "✓"}{tx}
'
for k, (c, tx) in enumerate(rows)))
# 3: codex に任せると、ただのニュースみたいになる
t3, s3 = T(3, 0), S(3)
news = ("〇〇社は、新しいロボットを発表しました。
価格は未定で、来年の発売を目指すとしています。
専門家は、今後の普及に期待を寄せています。")
h += win(t3, T(4, 0), kick("codex に台本を任せると")
+ f'{news}
'
+ f'ただのニュース
')
# 4: codex は事実確認だけ。話の筋は変えない
t4, s4 = T(4, 0), S(4)
h += win(t4, T(5, 0), kick("だから")
+ f'codex に任せる事実確認
'
+ f'変えない話の筋
')
# 5: 最後に決めるのは、オレ
t5 = T(5, 0)
h += win(t5, None, kick("最後に決めるのは")
+ f'エイイチ
')
h += outro(T, OUTRO_K) # 締め:サイトへの入口
return h
def OVER(T):
return stage_fx(T, fx=[dict(kind="spot", t=T(5, 0.2), d=3.0, x=690)])
FACE = [(-1, 0.0, 1.0, "smile"), (1, 0.0, 2.6, "joy"), (2, 0.0, 3.4, "think"), (3, 0.0, 3.6, "trouble"), (4, 0.0, 4.6, "wink"), ("end", 0.0, 3.0, "smile")]
POSE = [(-1, 0.0, 1), (1, 0.0, 2), (3, 0.0, 1), (4, 0.0, 2), (5, 0.3, 4)]
LEAN = []
INTRO = "spin"
MOVES = [(1, 0.3, "hop", 1.0), (2, 0.4, "tilt", 1.2), (3, 2.4, "back", 1.0), (5, 0.4, "spin", 1.0)]
SE = [(-1, 0.0, "se_spin", -10), (0, 1.3, "se_boot", -12), (1, 0.3, "se_pop", -10)] + [(1, 0.6 + k * 0.4, "se_tick", -14) for k in range(5)] + [
(2, 0.0, "se_whoosh", -12), (2, 0.3, "se_ding", -13), (2, 1.0, "se_buzz", -12), (2, 1.7, "se_ding", -13),
(3, 0.0, "se_whoosh", -12), (3, 2.46, "se_pechin", -9), (4, 0.0, "se_whoosh", -12), (5, 0.4, "se_pechin", -6), (5, 0.4, "se_jaran", -11)]
ENDING = dict(kind="jump", at=(5, 0.4))