# -*- coding: utf-8 -*-
"""Claudeのデザイン(ショート専用・舞台型・2026-11-06)
エイイチの言葉: Claude のデザインの質が低いのは、デザイン力がないからではなく、進め方・修正・組み立て・統一する力が弱いから/要素を詰め込みすぎる(2026-10-24)
このモニターの見た目も、2026-11-06 にエイイチ「雑に見える」で、面で組む・1画面に1つ・色の意味は1つ、に作り直した"""
from butai_parts import *
OUTRO_K = 6 # 締めの文の番号(narration.py の最後に足した文)
NAME, VER = "Claudeのデザイン", 3
HEAD = "AIの
デザイン、どう?"
T_ON = (0, 1.2)
def clutter(t0, step=0.06):
import random
random.seed(4)
cols = ["#E2683A", "#57B5F8", "#3BB273", "#F2C14E", "#C4472A", "#9B6BD6", "#F5F3EE"]
words = ["NEW!", "★", "重要", "→", "POINT", "!!", "※", "100%", "▶", "✓", "注目", "◆"]
out = ""
for k in range(26):
x, y = random.randint(20, 760), random.randint(40, 520)
c = random.choice(cols)
if k % 3 == 0:
el = f'width:{random.randint(60, 180)}px;height:{random.randint(30, 90)}px;border:3px solid {c};border-radius:{random.choice([0, 8, 40])}px'
txt = ""
else:
el = f'font-size:{random.randint(22, 48)}px;font-weight:900;color:{c}'
txt = random.choice(words)
out += (f'
{txt}
')
return out
def scene(T, S):
h = CSS
# 0: デザインを頼むと?(白紙)
h += win(T(0, 1.2), T(1, 0), kick("Claude にデザインを頼むと")
+ f'(白紙)
')
# 1: 詰め込みすぎる(要素が次々に増える)
t1 = T(1, 0)
h += win(t1, T(2, 0), clutter(t1 + 0.15))
# 2: デザイン力じゃない。進め方と統一する力(エイイチの言葉)
t2, s2 = T(2, 0), S(2)
h += win(t2, T(3, 0), kick("エイイチの見立て")
+ f'弱いのはデザイン力
'
+ f''
+ f'弱いのは進め方と
統一する力
')
# 3: 1画面で伝えることは1つ(散らかりが消えて、1文だけ残る)
t3 = T(3, 0)
h += win(t3, T(4, 0), kick("だから")
+ f'1画面に、1つ
')
# 4: 線より面。色は意味を1つだけ
t4, s4 = T(4, 0), S(4)
lines_ = "".join(f'' for k in range(3))
faces_ = "".join(f'' for k in range(3))
h += win(t4, T(5, 0), kick("決まり")
+ f'線
' + lines_
+ f'面
' + faces_
+ f'色の意味は、1つだけ
')
# 5: このモニターも作り直した(前と後)
t5 = T(5, 0)
h += win(t5, None, kick("このモニターも")
+ f''
+ f'前
'
+ f''
+ f'後
')
h += outro(T, OUTRO_K) # 締め:サイトへの入口
return h
def OVER(T):
return stage_fx(T, shakes=[(T(1, 1.4), 0.6)], fx=[dict(kind="shine", t=T(5, 0.9), d=0.9), dict(kind="shine", t=T(3, 0.6), d=0.8)])
FACE = [(-1, 0.0, 1.0, "smile"), (1, 0.0, 2.3, "trouble"), (2, 0.0, 4.6, "trouble"), (3, 0.0, 3.4, "think"), (4, 0.0, 3.4, "smile"), (5, 0.0, 3.0, "joy"), ("end", 0.0, 3.0, "joy")]
POSE = [(-1, 0.0, 1), (1, 0.6, 3), (2, 0.0, 2), (3, 0.0, 1), (5, 0.5, 4)]
LEAN = []
INTRO = "hop"
MOVES = [(1, 0.2, "shake", 1.4), (2, 0.4, "bow", 1.6), (3, 0.4, "tilt", 1.0), (5, 0.3, "jump", 1.0)]
SE = [(-1, 0.0, "se_rise", -10), (0, 1.2, "se_boot", -12)] + [(1, 0.15 + k * 0.18, "se_pop", -15) for k in range(8)] + [
(2, 0.0, "se_whoosh", -12), (2, 1.4, "se_pechin", -10), (3, 0.0, "se_whoosh", -12), (3, 0.6, "se_ding", -10),
(4, 0.0, "se_whoosh", -12), (5, 0.0, "se_whoosh", -12), (5, 0.9, "se_chapter_glock", -10)]
ENDING = dict(kind="jump", at=(5, 0.9))