# -*- 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'
{clutter(-10, 0)}
' + f'
前
' + f'
' f'■ いまは1画面に、1つ' 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))