ai21.net
語言

講解9條足球規則的科普視頻

示範影片

講解9條足球規則的科普視頻 — 1

提示詞

Postav mi video, které vysvětluje pravidla sportu stylem televizní analýzy s AR grafikou. Bez AI video modelů a bez stahování assetů: 3D scénu, postavy, textury, grafiku i zvuk vytvoř kódem. Pracuj samostatně a průběžně mi ukazuj kontrolní snímky.

## Parametry (pro jiný sport změň tuhle sekci a sekci Scénář)
- Sport: fotbal
- Pravidla (9): ofsajd, faul, pokutový kop, vhazování, rohový kop + kop od branky, hra rukou, přímý volný kop, žlutá a červená karta, gól (celý míč za čarou)
- Jazyk všech textů: čeština (plná diakritika, desetinná čárka)
- Délka: cca 68 s (úvod ~4,5 s, každé pravidlo 6 až 8 s, závěr ~4 s)
- Formát: 1920×1080, 30 fps, MP4 (H.264 + AAC)
- Styl postav: PS2 éra ve stylu GTA San Andreas (low-poly tvarované tělo, ručně malované textury)
- Týmy: Červení (červený dres s bílými lemy, bílé trenky), Modří (královsky modrý dres, tmavě modré trenky), rozhodčí černý s limetkovými lemy, brankáři zelený a fialový

## Technologie a pipeline
- Three.js (npm). index.html obsahuje WebGL canvas 1920×1080 a nad ním DOM vrstvu pro HUD.
- Deterministická funkce `window.renderFrame(t)`: stav scény i HUD je čistá funkce času, žádný stav mezi snímky.
- `render.mjs`: lokální statický HTTP server + puppeteer-core se systémovým Chrome (headless, na Macu `--use-angle=metal`). Pro každý snímek zavolej renderFrame(t), počkej 2× requestAnimationFrame, udělej JPEG screenshot a pošli ho rourou do ffmpeg (libx264, CRF 18, yuv420p). Režimy: `stills t1 t2 …` (PNG na kontrolu), `video`, `info` (zapíše časovou osu do out/timeline.json).
- Cesty řeš přes fileURLToPath (složky s mezerami v názvu).
- WebGLRenderer s `preserveDrawingBuffer: true`, ACES tone mapping, PCF soft shadows. EffectComposer s MSAA (samples 4, HalfFloat): RenderPass, UnrealBloomPass, vlastní grade pass (vinětace, jemné zrno, chromatická aberace, záblesk, whip blur, VHS efekt), OutputPass.
- Zvuk: Python (numpy + scipy) syntetizuje celý soundtrack do WAV, ffmpeg ho přimíchá (AAC 192k).
- Výstupy: plná kvalita + webová verze (CRF 23 až 24, maxrate 10M).

## Struktura projektu
src/util.js (easing, tmap pro freeze a zpomalení, track() pro pohyb hráčů po časovaných waypointech s fází běhu podle uražené vzdálenosti, seeded rng), src/world.js, src/player.js, src/ar.js, src/hud.js, src/grade.js, src/segments.js, src/main.js, render.mjs, https://audio.py/, PROGRESS.md (průběžně zapisuj, co je hotové a jak se to pouští, ať se dá navázat po přerušení).

## Svět
- Hřiště 105×68 m. Tráva jako canvas textura (pruhy po 5,25 m, šum, skvrny) + dlaždicová detail textura přes onBeforeCompile. Čáry jako ostrá geometrie, ne textura. Vnější hrana čar = hranice hřiště.
- Branky se sítí (LineSegments), rohové praporky.
- Stadion: dvoupatrová mísa podle superelipsy, dav jako canvas textura lidí v řadách, LED pás mezi patry, střecha s žebry, řady reflektorů na hraně střechy (emisivní, bloom), vnější fasáda s osvětlenými okny, noční obloha, světla města kolem, tmavá zem.
- LED mantinely kolem hřiště s českými nápisy (PRAVIDLA FOTBALU, RESPEKT, FAIR PLAY, ZNEJ PRAVIDLA, #PRAVIDLAFOTBALU), pomalu se posouvají.
- Světla: 4 směrová světla z rohů střechy se stíny (shadow kamera zaostřená na akci daného segmentu), hemisférické světlo, jemná mlha.
- Analytický grade: do všech materiálů světa vlož přes onBeforeCompile sdílený uniform uFreeze (odbarvení do chladné šedozelené + ztmavení). AR materiály ho nemají, takže při zastaveném obrazu zůstanou syté.

## Postavy (styl GTA San Andreas)
- Hierarchický rig: root → body (pánev) → trup → hlava a ramena → lokty, kyčle → kolena → kotníky. Póza = sada úhlů (náklon a rotace trupu, flexe a abdukce ramen, lokty, kyčle, kolena, kotníky, náklon těla, výskok).
- Geometrie: trup jako LatheGeometry (široká ramena, užší pas), zúžené končetiny, klouby jako koule, dlaň s palcem, kopačka s podrážkou a zúženou špičkou, tvarovaná hlava (užší brada), nos, uši, vlasy jako slupka (krátké, objemné, ježek, holá hlava).
- Ručně malované canvas textury: obličej (oči s duhovkou a odleskem, obočí, stín nosu, rty, tváře, strniště nebo vousy, vlasová linie), dres (V-výstřih, boční pruhy, znak, sponzor, jméno a velké číslo na zádech, vrásky látky), rukávy, trenky s číslem, štulpny s pruhy.
- Každý hráč jiný: pleť, vlasy, účes, oči, vousy, barva kopaček, postava. Česká jména na zádech (NOVÁK, DVOŘÁK, RŮŽIČKA…).
- Procedurální běh (fáze z uražené vzdálenosti, ať nohy nekloužou) + knihovna póz: kop (nápřah, úder, dokopnutí), skluz, zakopnutí a pád, vhazování, výskok s paží nad hlavou, zvednutá karta, postoj ve zdi, výskok zdi, robinzonáda brankáře, hlava dolů.
- Zvýraznění: obrysová slupka (inverted hull, tloušťka podle vzdálenosti od kamery), průsvitný hologram „ducha“ pro naznačení restartu, rozsvícení paže.

## AR grafika (additive blending, depthWrite false, kreslí se postupně přes progress)
GroundLine (zářící čára na zemi), Curtain (svislá rovina: ofsajd, branková a postranní čára), GroundRing (prstenec nebo disk s pulzem, čárkováním a výsečí, třeba kruh 9,15 m), Area (vyplněné území s okrajem a skenem), Trail (trubice trajektorie míče), GroundArrow (šipka s běžícími chevrony), Marker (zaměřovač kontaktu), Beam (světelný sloup), ScanGrid (skenovací mřížka), Segment3D (měřicí úsečky), Silhouette (válec obrysu těla).
Barvy: tyrkysová = měření, červená = přestupek, jantarová = míč a území, zelená = platné rozhodnutí.
DŮLEŽITÉ: shadery musí být NaN-safe (clamp UV, žádné pow ze záporného čísla). MSAA na hranách extrapoluje UV a NaN se v bloomu rozleje do černých bloků přes půl obrazu.

## HUD (DOM, styl sportovního přenosu)
- Logo vlevo nahoře „PRAVIDLA FOTBALU / AR ANALÝZA ZÁPASU“ + počítadlo „01 / 09“.
- Vpravo nahoře stav (ŽIVĚ, ZÁZNAM, ZPOMALENĚ ×0,6, STOP · AR, PŘETÁČENÍ ◀◀, KONEC ZÁPASU) a herní čas.
- Lower third vlevo dole: číslo pravidla, název, jednověté vysvětlení, ukazatel postupu z 9 dílků.
- Panel rozhodnutí vpravo dole v barvě rozhodnutí (OFSAJD, PENALTA, GÓL…) s podtitulkem.
- Při zastavení obrazu: záblesk, rohové závorky, štítek „ZASTAVENÝ OBRAZ · AR ANALÝZA“, krátký technický řádek dole.
- AR štítky ukotvené na 3D bod (projekce kamerou) s odkazovou čarou. Drž je v bezpečné zóně (ne pod spodní grafikou, ne pod logem) a nesmí se překrývat.
- Velká grafika karty (žlutá a červená) s důvody, úvodní titulek, závěr „TEĎ ZNÁŠ PRAVIDLA.“ s mřížkou 9 pravidel, stinger přechod (šikmé pruhy navy, tyrkysová, bílá + logo) na každém střihu.
- Čitelnost: minimální velikosti (název pravidla 66 px, popis 29 px, štítek 33 px + podtitulek 21 px, technický řádek 22 px). Text vždy na tmavém podkladu, krátké texty. Line-height aspoň 1,05, aby diakritika (Ž, Č, Ř) nebyla oříznutá. Titulky neodhaluj maskou, vypadá to jako ořez: použij fade + rozostření + lehký zoom.
- Fonty: systémové s českou diakritikou (na macOS DIN Condensed + Avenir Next Condensed). Pokrytí znaků ověř předem přes fc-query.

## Scénář (vnitřní časy segmentů, natažení na čtení viz další sekce)
Úvod (3,5 s): dron sjíždí z noční oblohy přes střechu do stadionu na široký záběr středu hřiště. Skenovací mřížka přejede hřiště, pod hráči naskočí kroužky, štítek „MÍČ SLEDOVÁN“. Titulek „PRAVIDLA FOTBALU“, nad ním „TV ANALÝZA PRAVIDEL“, pod ním „9 KLÍČOVÝCH PRAVIDEL · AR ANALÝZA“.
1. Ofsajd: televizní kamera, Červený #8 přihrává, zastavení v okamžiku přihrávky. Kamera se přesune do osy ofsajdové linie. Tyrkysová rovina u nejzazší části těla předposledního obránce (Modrý #4), červená u předsunutého kolena útočníka (Červený #9), měření „+1,59 m“ (spočítej z kloubů, paže se nepočítají). Rozhodnutí OFSAJD: nepřímý volný kop, Modří.
2. Faul: záznam ×0,6 nízko u trávníku. Modrý #10 vede míč, Červený #6 jde skluzem zezadu do kotníku. Zastavení v okamžiku kontaktu: zaměřovač „KONTAKT“, „MÍSTO FAULU“ (kruh + sloup), šipka dráhy skluzu, červený obrys. Kamera obkrouží, pak pád. FAUL: přímý volný kop.
3. Penalta: Červený #9 ve vápně, Modrý #3 ho podrazí. Zastavení, jeřáb nahoru. Zvýraznění pokutového území, oblouk z místa faulu na pokutovou značku s drátěným míčem, „11 m“. PENALTA.
4. Vhazování: přihrávka Červeného #2 přejede postranní čáru (trajektorie se kreslí živě). Zastavení až ve chvíli, kdy je celý míč venku, střih na kameru za čarou. Červená rovina, „+15 cm“, „CELÝ MÍČ VENKU“, „POSLEDNÍ DOTEK · ČERVENÝ #2“, modrá šipka do hřiště a hologram modrého hráče s míčem nad hlavou. VHAZOVÁNÍ (Modří).
5. Roh + kop od branky: střela Červeného #10 tečovaná Modrým #4 za brankovou čáru → ROHOVÝ KOP. Pak efekt přetáčení (VHS) a stejná střela bez teče → KOP OD BRANKY (zvýrazněné brankové území).
6. Hra rukou: střela, Modrý #5 ve výskoku s paží nad ramenem, míč do předloktí. Paže zčervená, ramenní linie, čára paže „ÚHEL PAŽE 135°“, průsvitný válec „OBRYS TĚLA“. RUKA: přímý volný kop.
7. Volný kop: zeď na 8,00 m „ZEĎ MOC BLÍZKO“, nakreslí se kruh 9,15 m, zeď ustoupí, číslo naběhne na 9,15 m a zezelená. Kamera za exekutora, zahraný oblouk přes zeď zpomaleně, zastavení „PŘES ZEĎ“. PŘÍMÝ VOLNÝ KOP.
8. Karty: detail rozhodčího se žlutou kartou proti hráči se svěšenou hlavou + velká grafika ŽLUTÁ KARTA / NAPOMENUTÍ se 3 důvody. Střih, červená karta, vyloučený odchází + ČERVENÁ KARTA / VYLOUČENÍ.
9. Gól: střela, brankář vyrazí, míč padá na čáru. Kamera u brankové čáry. První zastavení: polovina míče na čáře, červená rovina, „−11 cm“, „ZATÍM NENÍ GÓL“. Míč se dokutálí. Druhé zastavení: celý míč za čarou, rovina zezelená, „+3 cm“, blesky foťáků v hledišti. GÓL.
Závěr (2,5 s): kamera stoupá nad hřiště (návrat k úvodnímu záběru), mřížka, „TEĎ ZNÁŠ PRAVIDLA.“ + mřížka 9 pravidel, stmívačka.

Každé zastavení obrazu: krátký záblesk, odbarvení scény, kamera se dál pomalu hýbe kolem zmrazených hráčů, AR prvky naskakují postupně. Mezi segmenty vždy stinger.

## Čas na čtení
Akce (běh, kopy, skluzy) běží ve skutečné rychlosti. Analytické části každého segmentu natáhni 1,5× až 2,1× přes warp funkci (výstupní čas → vnitřní čas segmentu), aby každé pravidlo bylo na obrazovce 6 až 8 s a všechny texty se daly v klidu přečíst. `node render.mjs info` exportuje výslednou časovou osu do out/timeline.json.

## Zvuk (procedurální, https://audio.py/)
120 BPM broadcast groove (kopák, virbl, hi-haty, basa se sidechainem, arpeggio, pad), riser v úvodu, závěrečný akord. Při zastaveném obrazu hudba ztlumená low-passem. Dav (filtrovaný šum s vlněním, řev při gólu), whoosh + boom na každém střihu, kovový úder na každém zastavení, krátké „razítko“ při rozhodnutí, píšťalka, kopy do míče, zvuk přetáčení. Časy všech zvuků načti z out/timeline.json, ať sedí na obraz i po změně délky. Cílová hlasitost kolem −14 LUFS.

## Postup práce a kontrola
1. Nejdřív rozjeď pipeline (server, render, ffmpeg) s jednou scénou a ověř, že WebGL v headless Chrome běží.
2. Po každé změně vyrenderuj kontrolní snímky v klíčových časech a prohlédni je, včetně výřezů na 100 % kvůli textu a diakritice.
3. Celé video kontroluj přes kontaktní listy (ffmpeg filtr tile) a snímky kolem přechodů.
4. Hotové video ověř dekódováním (`ffmpeg -v error -i video.mp4 -f null -`) a délku a stopy přes ffprobe.
5. Do PROGRESS.md průběžně zapisuj, co je hotové a jakými příkazy se to pouští.

中文翻譯

請爲我製作一支視頻,用電視分析節目的形式、配 AR 圖形來講解一項運動的規則。不要用 AI 視頻模型,也不要下載素材:3D 場景、角色、貼圖、圖形和聲音全部用代碼做出來。請獨立完成,並持續給我看檢查幀。

## 參數(換別的運動時,改這一節和「分鏡腳本」一節)
- 運動:足球
- 規則(9 條):越位、犯規、點球、擲界外球、角球 + 球門球、手球、直接任意球、黃牌和紅牌、進球(整個球越過門線)
- 所有文字的語言:捷克語(完整變音符號,十進制逗號)
- 時長:約 68 秒(開場約 4.5 秒,每條規則 6 到 8 秒,結尾約 4 秒)
- 格式:1920×1080,30 fps,MP4(H.264 + AAC)
- 角色風格:PS2 時代、GTA San Andreas 風格(低多邊形塑形的身體,手繪貼圖)
- 球隊:紅隊(紅色球衣配白色鑲邊,白色短褲)、藍隊(皇家藍球衣,深藍短褲)、裁判一身黑色配熒光綠鑲邊、兩名門將分別爲綠色和紫色

## 技術與管線
- Three.js(npm)。index.html 裏是 1920×1080 的 WebGL canvas,上面再疊一層用於 HUD 的 DOM。
- 確定性函數 `window.renderFrame(t)`:場景狀態和 HUD 都是時間的純函數,幀與幀之間不保留狀態。
- `render.mjs`:本地靜態 HTTP 服務器 + puppeteer-core 配系統 Chrome(headless,Mac 上加 `--use-angle=metal`)。每一幀都調用 renderFrame(t),等兩次 requestAnimationFrame,截一張 JPEG,再通過管道送進 ffmpeg(libx264、CRF 18、yuv420p)。模式:`stills t1 t2 …`(輸出 PNG 用於檢查)、`video`、`info`(把時間軸寫入 out/timeline.json)。
- 路徑一律走 fileURLToPath(目錄名裏帶空格也要能處理)。
- WebGLRenderer 開啓 `preserveDrawingBuffer: true`、ACES 色調映射、PCF 軟陰影。EffectComposer 帶 MSAA(samples 4、HalfFloat):RenderPass、UnrealBloomPass、自定義調色 pass(暗角、細顆粒、色差、閃光、whip blur、VHS 效果)、OutputPass。
- 聲音:用 Python(numpy + scipy)把整條配樂合成成 WAV,再由 ffmpeg 混入(AAC 192k)。
- 輸出:完整畫質版 + 網頁版(CRF 23 到 24,maxrate 10M)。

## 項目結構
src/util.js(緩動、用於定格和慢放的 tmap、讓球員沿帶時間的 waypoint 移動並按已跑距離決定跑步相位的 track()、seeded rng)、src/world.js、src/player.js、src/ar.js、src/hud.js、src/grade.js、src/segments.js、src/main.js、render.mjs、https://audio.py/、PROGRESS.md(持續記錄已完成的內容和啓動方式,便於中斷後接着做)。

## 世界
- 球場 105×68 米。草皮用 canvas 貼圖(每 5.25 米一道條紋,加噪點和污漬)+ 通過 onBeforeCompile 疊加的平鋪細節貼圖。場線用銳利的幾何體,不要用貼圖。場線的外沿就是球場邊界。
- 帶球網的球門(LineSegments)、角旗。
- 體育場:按超橢圓做的雙層碗狀看臺,觀衆用 canvas 貼圖做成成排的人,兩層看臺之間是 LED 燈帶,帶肋條的屋頂,屋頂邊緣一排泛光燈(自發光、bloom),外立面窗戶亮着燈,夜空,四周的城市燈光,深色地面。
- 球場四周的 LED 廣告板上是捷克語標語(PRAVIDLA FOTBALU、RESPEKT、FAIR PLAY、ZNEJ PRAVIDLA、#PRAVIDLAFOTBALU),緩慢滾動。
- 燈光:從屋頂四角打來的 4 盞帶陰影的方向光(陰影相機對準當前片段的動作區域)、半球光、輕微霧效。
- 分析調色:通過 onBeforeCompile 往世界所有材質裏注入共享 uniform uFreeze(去色成偏冷的灰綠色 + 壓暗)。AR 材質不帶它,所以畫面定格時依然保持鮮豔。

## 角色(GTA San Andreas 風格)
- 層級 rig:root → body(骨盆)→ 軀幹 → 頭部與肩部 → 肘部;髖部 → 膝部 → 踝部。姿勢 = 一組角度(軀乾的傾斜與旋轉、肩部的屈曲與外展、肘、髖、膝、踝、身體前傾、起跳)。
- 幾何:軀幹用 LatheGeometry(寬肩、收腰),四肢逐漸收細,關節做成球體,手掌帶拇指,球鞋帶鞋底和收窄的鞋頭,頭部有造型(下巴收窄),還有鼻子、耳朵,頭髮做成殼層(短髮、蓬鬆、刺頭、光頭)。
- 手繪 canvas 貼圖:臉(帶虹膜和反光的眼睛、眉毛、鼻影、嘴脣、臉頰、胡茬或鬍子、髮際線)、球衣(V 領、側條紋、隊徽、贊助商、背後的名字和大號碼、布料褶皺)、袖子、帶號碼的短褲、帶條紋的球襪。
- 每個球員都不一樣:膚色、頭髮、髮型、眼睛、鬍鬚、球鞋顏色、體型。背後的名字用捷克語(NOVÁK、DVOŘÁK、RŮŽIČKA…)。
- 程序化跑步(相位由已跑距離決定,讓腳不打滑)+ 姿勢庫:踢球(引腿、擊球、隨擺)、滑鏟、絆倒與摔倒、擲界外球、手臂舉過頭頂的起跳、舉牌、人牆站位、人牆起跳、門將飛身撲救、低頭。
- 強調效果:輪廓殼層(inverted hull,厚度隨相機距離變化)、用來示意重新開球的半透明「幽靈」全息影像、手臂點亮。

## AR 圖形(additive blending,depthWrite false,按 progress 逐步繪製)
GroundLine(地面上發光的線)、Curtain(豎直平面:越位線、球門線、邊線)、GroundRing(帶脈衝、刻度線和扇區的圓環或圓盤,例如 9.15 米圈)、Area(帶描邊和掃描的填充區域)、Trail(球軌跡的管狀體)、GroundArrow(帶流動 V 形條紋的箭頭)、Marker(接觸點準星)、Beam(光柱)、ScanGrid(掃描網格)、Segment3D(測量線段)、Silhouette(人體輪廓圓柱)。
顏色:青色 = 測量,紅色 = 犯規,琥珀色 = 球與區域,綠色 = 有效判罰。
重要:着色器必須 NaN-safe(clamp UV,不要對負數做 pow)。MSAA 在邊緣會外推 UV,NaN 會經 bloom 擴散成橫跨半幅畫面的黑色塊。

## HUD(DOM,體育轉播風格)
- 左上角 Logo「PRAVIDLA FOTBALU / AR ANALÝZA ZÁPASU」+ 計數「01 / 09」。
- 右上角狀態(ŽIVĚ、ZÁZNAM、ZPOMALENĚ ×0,6、STOP · AR、PŘETÁČENÍ ◀◀、KONEC ZÁPASU)和比賽時間。
- 左下角 lower third:規則編號、名稱、一句話解釋、由 9 格組成的進度指示。
- 右下角判罰面板,用判罰對應的顏色(OFSAJD、PENALTA、GÓL…),帶副標題。
- 畫面定格時:閃光、四角括號、標籤「ZASTAVENÝ OBRAZ · AR ANALÝZA」、底部一行簡短的技術信息。
- AR 標籤錨定到 3D 點(由相機投影),帶引線。要保持在安全區內(不要壓到底部圖形,也不要壓到 Logo),而且不能互相重疊。
- 大號卡牌圖形(黃牌和紅牌)配理由、開場標題、結尾「TEĎ ZNÁŠ PRAVIDLA.」配 9 條規則的網格、每次鏡頭切換都用 stinger 轉場(藏青、青色、白色的斜條紋 + Logo)。
- 可讀性:最小字號(規則名 66 px,描述 29 px,標籤 33 px + 副標題 21 px,技術信息行 22 px)。文字永遠放在深色底上,文案要短。行高至少 1.05,以免變音符號(Ž、Č、Ř)被裁掉。標題不要用遮罩揭示,那樣看起來像被切掉:改用 fade + 模糊 + 輕微縮放。
- 字體:系統字體要覆蓋捷克語變音符號(macOS 上是 DIN Condensed + Avenir Next Condensed)。字形覆蓋範圍要事先用 fc-query 檢查。

## 分鏡腳本(片段的內部時間;拉長到可閱讀時長的做法見下一節)
開場(3.5 秒):無人機從夜空沿屋頂下降進入體育場,最後停在球場中央的廣角鏡頭上。掃描網格掃過球場,球員腳下彈出圓環,標籤「MÍČ SLEDOVÁN」。標題「PRAVIDLA FOTBALU」,其上方「TV ANALÝZA PRAVIDEL」,其下方「9 KLÍČOVÝCH PRAVIDEL · AR ANALÝZA」。
1. 越位:電視轉播機位,紅隊 #8 傳球,在傳球的瞬間定格。相機移到越位線的軸線上。在倒數第二名防守球員(藍隊 #4)身體最靠後的部位放青色平面,在進攻球員(紅隊 #9)前探的膝蓋處放紅色平面,測量值「+1,59 m」(從關節算,手臂不計入)。判罰 OFSAJD:間接任意球,藍隊。
2. 犯規:錄像 ×0.6 慢放,機位貼地。藍隊 #10 帶球,紅隊 #6 從背後滑鏟踢向腳踝。在接觸瞬間定格:準星「KONTAKT」、「MÍSTO FAULU」(圓環 + 光柱)、滑鏟路線的箭頭、紅色輪廓。相機環繞一圈,隨後倒地。FAUL:直接任意球。
3. 點球:紅隊 #9 在禁區內,藍隊 #3 把他絆倒。定格,搖臂升起。高亮罰球區,從犯規點到點球點畫一條弧線,配一個線框球,「11 m」。PENALTA。
4. 擲界外球:紅隊 #2 的傳球越過邊線(軌跡實時繪製)。等到整個球都出界才定格,切到邊線外的機位。紅色平面、「+15 cm」、「CELÝ MÍČ VENKU」、「POSLEDNÍ DOTEK · ČERVENÝ #2」、指向場內的藍色箭頭,以及藍隊球員雙手舉球過頂的全息影像。VHAZOVÁNÍ(藍隊)。
5. 角球 + 球門球:紅隊 #10 的射門被藍隊 #4 蹭到後出了球門線 → ROHOVÝ KOP。接着來一個倒帶效果(VHS),同一腳射門但沒人蹭到 → KOP OD BRANKY(高亮球門區)。
6. 手球:射門,藍隊 #5 起跳,手臂高過肩膀,球打在前臂上。手臂變紅,畫出肩線、手臂線「ÚHEL PAŽE 135°」,以及半透明圓柱「OBRYS TĚLA」。RUKA:直接任意球。
7. 任意球:人牆站在 8.00 米處「ZEĎ MOC BLÍZKO」,畫出 9.15 米圈,人牆後撤,數字漲到 9.15 米並變綠。相機放在主罰者身後,慢放展示弧線越過人牆,定格「PŘES ZEĎ」。PŘÍMÝ VOLNÝ KOP。
8. 紅黃牌:裁判舉黃牌對着低頭球員的特寫 + 大號圖形 ŽLUTÁ KARTA / NAPOMENUTÍ,配 3 條理由。切換,紅牌,被罰下的球員離場 + ČERVENÁ KARTA / VYLOUČENÍ。
9. 進球:射門,門將把球打出,球落到門線上。相機在球門線旁。第一次定格:球的一半在線上,紅色平面,「−11 cm」、「ZATÍM NENÍ GÓL」。球繼續往前滾。第二次定格:整個球越過門線,平面變綠,「+3 cm」,看臺上閃光燈閃成一片。GÓL。
結尾(2.5 秒):相機升到球場上空(回到開場的鏡頭),網格,「TEĎ ZNÁŠ PRAVIDLA.」+ 9 條規則的網格,淡出。

每次畫面定格:短暫閃光、場景去色、相機繼續繞定格住的球員緩慢移動、AR 元素依次彈出。片段之間始終用 stinger 轉場。

## 閱讀時間
動作(奔跑、踢球、滑鏟)按真實速度播放。每個片段裏的分析部分用 warp 函數拉長到 1.5× 到 2.1×(輸出時間 → 片段的內部時間),讓每條規則在畫面上停留 6 到 8 秒,所有文字都能從容讀完。`node render.mjs info` 會把最終時間軸導出到 out/timeline.json。

## 聲音(程序化生成,https://audio.py/)
120 BPM 的 broadcast groove(底鼓、軍鼓、踩鑔、帶 sidechain 的貝斯、琶音、pad),開場有 riser,結尾一個和絃。畫面定格時音樂經低通濾波壓低。觀衆(帶起伏的濾波噪聲,進球時爆發出歡呼)、每次切換的 whoosh + boom、每次定格的金屬撞擊聲、判罰時短促的「蓋章」聲、哨聲、踢球聲、倒帶聲。所有聲音的時間都從 out/timeline.json 讀取,這樣即使時長改了也能對上畫面。目標響度約 −14 LUFS。

## 工作流程與檢查
1. 先用一個場景把管線(服務器、渲染、ffmpeg)跑起來,確認 WebGL 在 headless Chrome 裏能正常工作。
2. 每次改動後,在關鍵時間點渲染檢查幀並逐張查看,包括爲檢查文字和變音符號而做的 100% 放大局部截圖。
3. 整片用接觸表(ffmpeg 的 tile 濾鏡)以及轉場附近的幀來檢查。
4. 成片用解碼驗證(`ffmpeg -v error -i video.mp4 -f null -`),並用 ffprobe 檢查時長和軌道。
5. 在 PROGRESS.md 裏持續記錄已完成的內容以及用哪些命令啓動。

溯源

原作者
lukasersil
發佈日期
2026-10-02(由推文 ID 反解)
原始出處
查看原帖 ↗
收錄來源
zhuyansen/awesome-opus-5.5-video · 2105922894924501283 · 未聲明授權