⚡️12 時間“強行”プロトタイピング・プラン

ゴール

ノブ 2 本+ボタン詩 ↔ 映像 ↔ 声 ↔ BGM が同時に切り替わる様子を 45 秒キャプチャ。

その動画+スライド 2 枚で 3 分ピッチが成立するところまでやり切る。


0 h – 0.5 h ★全体フォルダ雛形を先に作る

proj/
 ├─ assets/
 │   ├─ txt/  (A01.txt …)
 │   ├─ wav/  (A01_h.wav , A01_o.wav …)
 │   └─ mp4/  (A01.mp4 …)
 ├─ data.json
 ├─ player.py
 └─ td_comp.toe   (空ファイルでOK)

効果: あとで迷子にならない/自動リロードが楽


0.5 h – 2 h ★素材を最小化して手早く作る

資産 方法 制限時間
詩フレーズ 8 行だけ ChatGPTで発散→自分で5分推敲 20 min
肉声 8 wav スマホ録音 → AirDrop 15 min
AI声 8 wav macOS “say” コマンド / ElevenLabs 15 min
映像 8 clip × 3 s ❶ Pixabay/GIF拾う ❷ TouchDesigner Noise TOP録画 40 min

コツ: 命名は A01…A08 に即統一。AI 声は品質より名前一致を優先。


2 h – 4 h ★JSON とスクリプトを組む

  1. data.json(手打ちで充分)

    [{"id":"A01","txt":"青い輪郭が…"},
     … (計8行)]
    
    
  2. player.py(テンプレ最短)

    import json, random, mido
    from pythonosc.udp_client import SimpleUDPClient
    osc = SimpleUDPClient("127.0.0.1", 9000)
    data = json.load(open("data.json"))
    idx, hue, pad = 0, 0.5, 0.5          # 初期値
    
    port = mido.open_input()            # 1 本目 CC1, 2本目 CC2, ボタン note60
    while True:
        for msg in port:
            if msg.type=='control_change':
                if msg.control==1: idx = int(msg.value/127*7);    # 0–7
                if msg.control==2: hue = msg.value/127;           # 0–1
            if msg.type=='note_on' and msg.note==60: pad = random.random()
    
            row = data[idx]
            osc.send_message('/text', row['txt'])
            osc.send_message('/hue', hue)
            osc.send_message('/pad', pad)
            osc.send_message('/id', row['id'])
    
    

効果: ノブを動かすたび /id /text /hue /pad が出るだけで十分。


4 h – 7 h ★TouchDesigner & Pure Data を受信専用で作る

アプリ 手順 タイムリミット
TD OSC In DAT → Select id → Moviefile In TOP (“mp4/$ID.mp4”)ColorCorrect TOP (Hue= /hue)Text TOP (txt= /text)→ Composite 1 h
PD [udpreceive 9000] → route /pad /id/pad[*~] で Pad volume/id[open assets/wav/$1_h.wav([readsf~] 2 h

検証: 1) ノブで映像色が回る 2) ボタンで音声が切り替わる