@biunow/agent-biuart 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/server.mjs +575 -0
- package/data/styles.json +533 -0
- package/engine/audit_clip.py +46 -0
- package/engine/clip.html +24 -0
- package/engine/clip.js +104 -0
- package/engine/clip_schema.json +19 -0
- package/engine/clips/t1_3b1b.js +203 -0
- package/engine/clips/t2_keynote_ui.js +347 -0
- package/engine/clips/t3_finance_chart.js +206 -0
- package/engine/clips/y1_kurzgesagt.js +183 -0
- package/engine/clips/y2_vox.js +150 -0
- package/engine/clips/y3_whiteboard.js +209 -0
- package/engine/clips/y4_storytime.js +194 -0
- package/engine/clips/y5_kinetic_type.js +134 -0
- package/engine/compare.py +19 -0
- package/engine/demos/_shared/hero/c1_0.png +0 -0
- package/engine/demos/_shared/hero/c1_1.png +0 -0
- package/engine/demos/_shared/hero/c1_2.png +0 -0
- package/engine/demos/_shared/hero/c3_line.png +0 -0
- package/engine/demos/_shared/hero.js +96 -0
- package/engine/demos/long_scroll/eras.js +23 -0
- package/engine/demos/long_scroll/frames/8bit_act/01.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/02.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/03.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/04.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/05.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/06.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/07.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/08.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_act/meta.json +69 -0
- package/engine/demos/long_scroll/frames/8bit_walk/01.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/02.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/03.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/04.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/05.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/06.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/07.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/08.png +0 -0
- package/engine/demos/long_scroll/frames/8bit_walk/meta.json +69 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/01.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/02.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/03.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/04.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/05.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/06.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/07.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/08.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_dodge/meta.json +69 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/01.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/02.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/03.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/04.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/05.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/06.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/07.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/08.png +0 -0
- package/engine/demos/long_scroll/frames/egypt_walk8/meta.json +69 -0
- package/engine/demos/long_scroll/frames/monet_throw/01.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/02.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/03.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/04.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/05.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/06.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/07.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/08.png +0 -0
- package/engine/demos/long_scroll/frames/monet_throw/meta.json +71 -0
- package/engine/demos/long_scroll/frames/monet_walk/01.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/02.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/03.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/04.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/05.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/06.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/07.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/08.png +0 -0
- package/engine/demos/long_scroll/frames/monet_walk/meta.json +71 -0
- package/engine/demos/long_scroll/lib/acts.js +87 -0
- package/engine/demos/long_scroll/lib/crossing.js +463 -0
- package/engine/demos/long_scroll/lib/world.js +143 -0
- package/engine/demos/long_scroll/lib/xing2_ding.js +42 -0
- package/engine/demos/long_scroll/lib/xing2_jia.js +114 -0
- package/engine/demos/long_scroll/lib/xing2_yi.js +133 -0
- package/engine/demos/long_scroll/segments/02_egypt.js +234 -0
- package/engine/demos/long_scroll/segments/14_8bit.js +118 -0
- package/engine/demos/long_scroll/segments/28_monet.js +86 -0
- package/engine/demos/t1_3b1b/eras.js +11 -0
- package/engine/demos/t1_3b1b/t1_s1.js +101 -0
- package/engine/demos/t1_3b1b/t1_s2.js +74 -0
- package/engine/demos/t1_3b1b/t1_s3.js +65 -0
- package/engine/demos/t2_keynote_ui/eras.js +10 -0
- package/engine/demos/t2_keynote_ui/t2_s1.js +57 -0
- package/engine/demos/t2_keynote_ui/t2_s2.js +70 -0
- package/engine/demos/t2_keynote_ui/t2_s3.js +61 -0
- package/engine/demos/t3_finance_chart/eras.js +11 -0
- package/engine/demos/t3_finance_chart/t3_s1.js +48 -0
- package/engine/demos/t3_finance_chart/t3_s2.js +42 -0
- package/engine/demos/t3_finance_chart/t3_s3.js +51 -0
- package/engine/demos/y1_kurzgesagt/eras.js +10 -0
- package/engine/demos/y1_kurzgesagt/kurzgesagt.js +347 -0
- package/engine/demos/y2_vox/eras.js +10 -0
- package/engine/demos/y2_vox/vox.js +240 -0
- package/engine/demos/y3_whiteboard/eras.js +10 -0
- package/engine/demos/y3_whiteboard/whiteboard.js +162 -0
- package/engine/demos/y4_storytime/eras.js +14 -0
- package/engine/demos/y4_storytime/s1_desk.js +18 -0
- package/engine/demos/y4_storytime/s2_screen.js +82 -0
- package/engine/demos/y4_storytime/s3_react.js +39 -0
- package/engine/demos/y4_storytime/s4_wide.js +16 -0
- package/engine/demos/y4_storytime/s5_close.js +18 -0
- package/engine/demos/y4_storytime/story.js +25 -0
- package/engine/demos/y4_storytime/vo_env.js +2 -0
- package/engine/demos/y4_storytime/world.js +73 -0
- package/engine/demos/y5_kinetic_type/eras.js +16 -0
- package/engine/demos/y5_kinetic_type/k1_title.js +38 -0
- package/engine/demos/y5_kinetic_type/k2_complete.js +55 -0
- package/engine/demos/y5_kinetic_type/k3_chat.js +47 -0
- package/engine/demos/y5_kinetic_type/k4_agent.js +49 -0
- package/engine/demos/y5_kinetic_type/kinetic.js +52 -0
- package/engine/engine.js +277 -0
- package/engine/eras.js +60 -0
- package/engine/eras_gallery.js +115 -0
- package/engine/eras_style_studies.js +20 -0
- package/engine/examples/assets/K/347/272/277/345/233/276_/346/250/252/345/261/217.png +0 -0
- package/engine/examples/assets//347/273/210/347/253/257_for/345/276/252/347/216/257/346/261/202/345/222/214.png +0 -0
- package/engine/examples/assets//347/273/210/347/253/257_sum/346/261/202/345/222/214.png +0 -0
- package/engine/examples/assets//350/220/245/346/224/266/345/233/276_/347/253/226/345/261/217.png +0 -0
- package/engine/examples/assets//350/264/242/347/273/217/345/233/276/350/241/250_/346/250/252/345/261/217.png +0 -0
- package/engine/examples/t1_3b1b.json +19 -0
- package/engine/examples/t2_fullbleed_pulse.json +15 -0
- package/engine/examples/t2_keynote_ui.json +15 -0
- package/engine/examples/t3_finance_chart.json +29 -0
- package/engine/examples/y1_kurzgesagt.json +16 -0
- package/engine/examples/y2_vox.json +14 -0
- package/engine/examples/y3_whiteboard.json +17 -0
- package/engine/examples/y4_storytime.json +52 -0
- package/engine/examples/y5_kinetic_type.json +14 -0
- package/engine/index.html +42 -0
- package/engine/lib/THREE_LICENSE.txt +21 -0
- package/engine/lib/brush.js +149 -0
- package/engine/lib/camera.js +99 -0
- package/engine/lib/chart.js +152 -0
- package/engine/lib/collage.js +97 -0
- package/engine/lib/diagram.js +264 -0
- package/engine/lib/finish.js +70 -0
- package/engine/lib/fonts/AlfaSlabOne-400.woff +0 -0
- package/engine/lib/fonts/Anton-400.woff +0 -0
- package/engine/lib/fonts/ArchivoBlack-400.woff +0 -0
- package/engine/lib/fonts/Bangers-400.woff +0 -0
- package/engine/lib/fonts/Caveat-600.woff +0 -0
- package/engine/lib/fonts/Cinzel-400.woff +0 -0
- package/engine/lib/fonts/Cinzel-700.woff +0 -0
- package/engine/lib/fonts/CormorantGaramond-500.woff +0 -0
- package/engine/lib/fonts/CormorantGaramond-500i.woff +0 -0
- package/engine/lib/fonts/CormorantGaramond-700.woff +0 -0
- package/engine/lib/fonts/EBGaramond-400.woff +0 -0
- package/engine/lib/fonts/EBGaramond-400i.woff +0 -0
- package/engine/lib/fonts/EBGaramond-600.woff +0 -0
- package/engine/lib/fonts/Exo2-800i.woff +0 -0
- package/engine/lib/fonts/GochiHand-400.woff +0 -0
- package/engine/lib/fonts/IMFellEnglish-400.woff +0 -0
- package/engine/lib/fonts/IMFellEnglish-400i.woff +0 -0
- package/engine/lib/fonts/Inter-var.woff +0 -0
- package/engine/lib/fonts/JosefinSans-700.woff +0 -0
- package/engine/lib/fonts/Kalam-700.woff +0 -0
- package/engine/lib/fonts/LICENSES.md +40 -0
- package/engine/lib/fonts/LXGWWenKai-500.woff +0 -0
- package/engine/lib/fonts/LibreBaskerville-400.woff +0 -0
- package/engine/lib/fonts/LibreBaskerville-700.woff +0 -0
- package/engine/lib/fonts/LilitaOne-400.woff +0 -0
- package/engine/lib/fonts/Marcellus-400.woff +0 -0
- package/engine/lib/fonts/NotoSansSC-500.woff +0 -0
- package/engine/lib/fonts/NotoSansSC-700.woff +0 -0
- package/engine/lib/fonts/NotoSansSC-800.woff +0 -0
- package/engine/lib/fonts/NotoSansSC-900.woff +0 -0
- package/engine/lib/fonts/NotoSansSC-sub.woff +0 -0
- package/engine/lib/fonts/NotoSerifJP-600.woff +0 -0
- package/engine/lib/fonts/NotoSerifSC-sub.woff +0 -0
- package/engine/lib/fonts/OFL.txt +94 -0
- package/engine/lib/fonts/PlayfairDisplay-400i.woff +0 -0
- package/engine/lib/fonts/PlayfairDisplay-700.woff +0 -0
- package/engine/lib/fonts/PlayfairDisplay-700i.woff +0 -0
- package/engine/lib/fonts/Poppins-600.woff +0 -0
- package/engine/lib/fonts/Poppins-700.woff +0 -0
- package/engine/lib/fonts/Poppins-800.woff +0 -0
- package/engine/lib/fonts/PressStart2P-400.woff +0 -0
- package/engine/lib/fonts/Righteous-400.woff +0 -0
- package/engine/lib/fonts/RobotoCondensed-var.woff +0 -0
- package/engine/lib/fonts/Rye-400.woff +0 -0
- package/engine/lib/fonts/UnifrakturMaguntia-400.woff +0 -0
- package/engine/lib/fonts/cmunrm.woff +0 -0
- package/engine/lib/fonts/cmunti.woff +0 -0
- package/engine/lib/fonts/index.json +1 -0
- package/engine/lib/fonts.js +56 -0
- package/engine/lib/kit.js +91 -0
- package/engine/lib/media.js +118 -0
- package/engine/lib/medium.js +258 -0
- package/engine/lib/motion.js +111 -0
- package/engine/lib/paint.js +200 -0
- package/engine/lib/palettes.js +57 -0
- package/engine/lib/post.js +108 -0
- package/engine/lib/render.js +189 -0
- package/engine/lib/rig.js +390 -0
- package/engine/lib/rig_huashu.js +171 -0
- package/engine/lib/three.min.js +7 -0
- package/engine/lib/toon.js +186 -0
- package/engine/lib/typo.js +136 -0
- package/engine/lib/ui.js +141 -0
- package/engine/lib/util.js +92 -0
- package/engine/render.py +157 -0
- package/engine/scenes/01_cave.js +364 -0
- package/engine/scenes/02_egypt.js +524 -0
- package/engine/scenes/03_greek.js +448 -0
- package/engine/scenes/04_roman.js +555 -0
- package/engine/scenes/05_gothic.js +522 -0
- package/engine/scenes/06_renaissance.js +338 -0
- package/engine/scenes/08_impressionism.js +206 -0
- package/engine/scenes/09_postimp.js +183 -0
- package/engine/scenes/10_nouveau.js +334 -0
- package/engine/scenes/11_cubism.js +265 -0
- package/engine/scenes/12_bauhaus.js +214 -0
- package/engine/scenes/13_pop.js +269 -0
- package/engine/scenes/14_8bit.js +238 -0
- package/engine/scenes/15_raytrace.js +300 -0
- package/engine/scenes/16_2026.js +565 -0
- package/engine/scenes/17_ink.js +273 -0
- package/engine/scenes/18_klimt.js +227 -0
- package/engine/scenes/19_munch.js +153 -0
- package/engine/scenes/20_dunhuang.js +215 -0
- package/engine/scenes/21_kusama.js +124 -0
- package/engine/scenes/22_constructivism.js +205 -0
- package/engine/scenes/23_dali.js +221 -0
- package/engine/scenes/24_hopper.js +150 -0
- package/engine/scenes/25_ghibli.js +251 -0
- package/engine/scenes/26_vaporwave.js +191 -0
- package/engine/scenes/27_kirby.js +255 -0
- package/engine/scenes/28_monet.js +176 -0
- package/engine/scenes/29_seurat.js +104 -0
- package/engine/scenes/30_matisse.js +151 -0
- package/engine/scenes/31_haring.js +109 -0
- package/engine/scenes/32_rembrandt.js +217 -0
- package/engine/scenes/33_rubberhose.js +219 -0
- package/engine/scenes/34_shadowpuppet.js +195 -0
- package/engine/scenes/35_shinkai.js +197 -0
- package/engine/scenes/36_picasso_blue.js +123 -0
- package/engine/scenes/38_giotto.js +133 -0
- package/engine/scenes/39_piero.js +53 -0
- package/engine/scenes/40_raphael.js +96 -0
- package/engine/scenes/41_michelangelo.js +112 -0
- package/engine/scenes/42_guardi.js +70 -0
- package/engine/scenes/43_lorenzetti.js +145 -0
- package/engine/scenes/44_cortona.js +86 -0
- package/engine/scenes/45_renoir.js +86 -0
- package/engine/scenes/46_pissarro.js +82 -0
- package/engine/scenes/47_sisley.js +94 -0
- package/engine/scenes/48_gauguin.js +107 -0
- package/engine/scenes/49_chagall.js +60 -0
- package/engine/scenes/50_ma_yuan.js +131 -0
- package/engine/scenes/51_persian_miniature.js +149 -0
- package/engine/scenes/52_south_park.js +105 -0
- package/engine/scenes/53_pixar.js +60 -0
- package/engine/scenes/54_ghibli_lab.js +68 -0
- package/engine/scenes/55_dunhuang.js +161 -0
- package/engine/scenes/index.js +28 -0
- package/engine/spec_assets.py +76 -0
- package/engine/transitions.js +929 -0
- package/engine//346/227/266/344/273/243/344/275/234/350/200/205/350/247/204/350/214/203.md +49 -0
- package/lib/host.mjs +754 -0
- package/lib/render-bridge.mjs +543 -0
- package/lib/render-cli.mjs +98 -0
- package/lib/storyboard-lint.mjs +54 -0
- package/manifest.json +52 -0
- package/package.json +8 -4
- package/runtime/package.json +8 -0
- package/skills/biuart/SKILL.md +154 -0
- package/skills/biuart/references/01-/346/213/206/350/247/243.md +55 -0
- package/skills/biuart/references/02-/346/234/272/345/210/266.md +41 -0
- package/skills/biuart/references/03-/344/270/200/345/270/247/345/205/210/350/241/214/345/233/233/346/235/241/350/267/257/347/272/277.md +39 -0
- package/skills/biuart/references/04-/347/272/257/344/273/243/347/240/201/347/273/230/345/210/266.md +92 -0
- package/skills/biuart/references/05-/350/212/202/345/245/217/344/270/216/351/205/215/344/271/220.md +19 -0
- package/skills/biuart/references/06-/345/217/243/346/222/255/351/251/261/345/212/250/347/232/204/350/211/272/346/234/257/347/237/255/347/211/207.md +31 -0
- package/skills/biuart/references/07-/346/255/243/351/235/242/347/273/217/351/252/214.md +196 -0
- package/skills/biuart/references/08-/351/243/216/346/240/274/344/275/234/350/200/205/350/247/204/350/214/203.md +61 -0
- package/skills/biuart/references/09-/350/247/206/351/242/221/345/212/250/347/224/273/350/257/255/346/263/225.md +382 -0
- package/skills/biuart/references/10-/350/247/222/350/211/262.md +34 -0
- package/skills/biuart/references/11-/351/225/277/345/215/267/347/251/277/350/266/212/347/211/207.md +43 -0
- package/skills/biuart/references/12-/345/217/243/346/222/255/346/225/264/347/211/207/344/270/216/347/273/217/351/252/214/345/233/236/346/265/201.md +25 -0
- package/skills/biuart/references/13-/345/217/243/346/222/255/344/270/216/350/257/255/351/237/263/345/244/215/345/210/273.md +7 -0
- package/skills/biuart/references/15-/350/267/250/345/234/272/346/231/257/351/243/216/346/240/274/346/217/220/347/202/274.md +48 -0
- package/skills/biuart/references/16-/351/243/216/346/240/274/346/274/224/347/244/27295/345/210/206/345/215/217/350/256/256.md +103 -0
- package/skills/biuart/references/about-author.md +99 -0
- package/skills/biuart/references/capabilities.md +91 -0
- package/skills/biuart/references/compatibility.md +34 -0
- package/skills/biuart/references/images.md +97 -0
- package/skills/biuart/references/voice-model-review.md +18 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/t1_3b1b.md +122 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/t2_keynote_ui.md +117 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/t3_finance_chart.md +116 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/y1_kurzgesagt.md +193 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/y2_vox.md +195 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/y3_whiteboard.md +190 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/y4_storytime.md +166 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/y5_kinetic_type.md +158 -0
- package/skills/biuart/references//345/212/250/347/224/273/350/257/255/346/263/225/y6_presenter_explainer.md +24 -0
- package/skills/biuart/references//345/217/243/346/222/255API.md +125 -0
- package/skills/biuart/references//350/211/262/346/235/277.md +38 -0
- package/skills/biuart/references//350/247/222/350/211/262/347/262/276/347/273/206/345/272/246.md +61 -0
- package/skills/biuart/references//351/225/234/345/244/264/350/241/250/346/250/241/346/235/277.md +80 -0
- package/skills/biuart/references//351/225/234/345/244/264/350/257/255/350/250/200.md +73 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/01_cave.md +46 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/02_egypt.md +64 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/03_greek.md +50 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/04_roman.md +99 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/05_gothic.md +32 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/06_renaissance.md +41 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/08_impressionism.md +34 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/09_postimp.md +17 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/10_nouveau.md +31 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/11_cubism.md +30 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/12_bauhaus.md +30 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/13_pop.md +29 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/14_8bit.md +27 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/15_raytrace.md +32 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/16_2026.md +55 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/17_ink.md +50 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/18_klimt.md +37 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/19_munch.md +42 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/20_dunhuang.md +49 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/21_kusama.md +32 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/22_constructivism.md +35 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/23_dali.md +29 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/24_hopper.md +30 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/25_ghibli.md +55 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/26_vaporwave.md +27 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/27_kirby.md +30 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/28_monet.md +39 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/29_seurat.md +31 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/30_matisse.md +26 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/31_haring.md +22 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/32_rembrandt.md +29 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/33_rubberhose.md +31 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/34_shadowpuppet.md +40 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/35_shinkai.md +34 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/36_picasso_blue.md +25 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/37_rick_morty.md +48 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/38_giotto.md +67 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/39_piero.md +59 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/40_raphael.md +65 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/41_michelangelo.md +65 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/42_guardi.md +65 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/43_lorenzetti.md +69 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/44_cortona.md +66 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/45_renoir.md +66 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/46_pissarro.md +66 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/47_sisley.md +67 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/48_gauguin.md +66 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/49_chagall.md +59 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/50_ma_yuan.md +68 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/51_persian_miniature.md +66 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/52_south_park.md +65 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/53_pixar.md +61 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/55_dunhuang.md +41 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/INDEX.md +89 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/_/350/275/254/345/234/272_/350/277/201/347/247/273/346/265/213/350/257/225.md +53 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/_/351/207/215/345/201/232/350/277/233/345/272/246.md +37 -0
- package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/_/351/237/263/350/275/250_/350/211/272/346/234/257/345/217/262/351/200/237/351/200/232.md +135 -0
- package/studio/app.js +380 -0
- package/studio/assert-panel-permit.mjs +67 -0
- package/studio/composer.css +465 -0
- package/studio/composer.js +480 -0
- package/studio/index.html +97 -0
- package/studio/optimize-prompt.mjs +84 -0
- package/studio/optimize-prompt.test.mjs +47 -0
- package/studio/recipes.mjs +87 -0
- package/studio/select-menu.js +450 -0
- package/studio/styles.css +71 -0
- package/studio/to-english-prompt.mjs +149 -0
- package/studio/to-english-prompt.test.mjs +72 -0
- package/README.md +0 -3
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 51_persian_miniature · 波斯细密画:层叠空间与精密叙事
|
|
2
|
+
|
|
3
|
+
状态:研究配方;2026-10-16 已按 16 号协议重做演示(见文末「v2 实做」),自评与独立复核均未达 80,不登记为实做。
|
|
4
|
+
|
|
5
|
+
## 起手必查
|
|
6
|
+
|
|
7
|
+
先读[跨场景风格提炼](../15-跨场景风格提炼.md),再读本卡。作品用于比对视觉语言,人物、物品、构图和镜头不直接搬用。下面的稳定特征是研究归纳,实施与迁移方案是待验证假设;不得伪称官方参数或已实测能力。
|
|
8
|
+
|
|
9
|
+
## 适用范围
|
|
10
|
+
|
|
11
|
+
不是单一艺术家或单一时代。初始聚焦帖木儿晚期赫拉特与早期萨法维大不里士书画;制作前选定一个范围,不把所有波斯/莫卧儿绘画混用。
|
|
12
|
+
|
|
13
|
+
## 可迁移的视觉语言
|
|
14
|
+
|
|
15
|
+
- 空间:抬高视点、展开建筑和层叠景物,使多个事件可同时阅读;不硬套单点透视。
|
|
16
|
+
- 造型:细线、清楚姿态与精密小物共同叙事,人物不是图案填充。
|
|
17
|
+
- 色彩:矿物般饱满色域与细密纹样相互控制;金色用于合适的材料层。
|
|
18
|
+
- 构成:文字区、边饰、画面可互相呼应,也可在无文字的新场景中保留组织逻辑。
|
|
19
|
+
|
|
20
|
+
## 随需求变化的内容
|
|
21
|
+
|
|
22
|
+
不强制花园、宫殿、地毯、波斯文字、边框或骑马人物;不拼凑不同地区纹样充当历史准确性。
|
|
23
|
+
|
|
24
|
+
## 与近邻风格的区别
|
|
25
|
+
|
|
26
|
+
区别于莫卧儿自然观察卡的精细写生,也不同于洛伦采蒂的城市实体连续空间;不要把三者统称「精致东方画」。
|
|
27
|
+
|
|
28
|
+
## 制作起点(待验证)
|
|
29
|
+
|
|
30
|
+
为新题材重建多层场所和行动路线,主体分层与图案分层分开;纹样跟随表面,运动时不能漂移。字需确有内容和可靠字形,否则不伪造书法。
|
|
31
|
+
|
|
32
|
+
动作速度、帧率、镜头和配乐按本次叙事确定;不把画面的安静气质等同慢动作。工程接入遵循[风格作者规范](../08-风格作者规范.md),新渲染器实做后才登记引擎id。
|
|
33
|
+
|
|
34
|
+
## 跨场景验证题(不是固定模板)
|
|
35
|
+
|
|
36
|
+
- 多层城市图书馆的书籍流转。
|
|
37
|
+
- 现代食品工厂的完整协作过程。
|
|
38
|
+
- 单件机械的分层检修:不用花园或宫殿验证迁移。
|
|
39
|
+
|
|
40
|
+
至少选不同题材/空间尺度/主体类型的测试;不要求每次完整跑一遍。静帧与动态验收分别记,未覆盖的范围继续标为待验证。
|
|
41
|
+
|
|
42
|
+
## 参考与证据边界
|
|
43
|
+
|
|
44
|
+
- [大都会:沙阿塔赫马斯普《列王纪》研究](https://www.metmuseum.org/essays/the-shahnama-of-shah-tahmasp)
|
|
45
|
+
- [大都会:《列王纪》跨时期馆藏说明](https://www.metmuseum.org/art/collection/search/446551)
|
|
46
|
+
- [大都会宫廷艺术教学材料:不同页画对照](https://www.metmuseum.org/learn/educators/curriculum-resources/~/media/Files/Learn/For%20Educators/Publications%20for%20Educators/Islamic%20Teacher%20Resource/Unit5.pdf)
|
|
47
|
+
|
|
48
|
+
一手馆藏/制作资料用于核查作品与方法;百科入口只辅助定位。开工仍需实际并看多幅原作或不同场景片段,记录稳定特征和例外;作品列表不等于已经完成多图视觉实验。
|
|
49
|
+
|
|
50
|
+
## 使用后回流
|
|
51
|
+
|
|
52
|
+
使用前查看本节最新已验证结论;当前有6秒单场景输出的技术检查;画风忠实度与跨场景视觉验证未完成。后续只记录影响结果的发现:日期、题材、采用路线、参考与输出路径/哈希、问题、修法、验证状态和适用范围。失效结论改原句,不追加矛盾规则。跨场景复现后才把研究假设升为实做配方;可重复的工程问题优先修工具并测试。用户偏好单独进入品味档案,不扩张授权。
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
### 2026-10-15 · 单场景试作回流
|
|
56
|
+
|
|
57
|
+
- 场景:水利庭院;事件:层叠空间里的水轮与水流;路线:代码绘制与动画。
|
|
58
|
+
- 检查:确定性复测、完整MP4解码及独立抽帧审片;短片快动指标按现有门禁降黄,不能推导长片达标。
|
|
59
|
+
- 边界:这次只证明该工程可运行并可观看;艺术家/工作室风格相似度仍有限,不能把几何、色板或纹理参数当最终标准。
|
|
60
|
+
|
|
61
|
+
## v2 实做(2026-10-16,自评 ~80,品味项待花叔)
|
|
62
|
+
|
|
63
|
+
- 原作锚定:赫拉特《尤素福与祖莱哈》、花园浴女页、沙赫塔赫马斯普《列王纪》页。签名:地面像竖起的挂毯(俯视平铺)、建筑被切开露出内室、满铺几何瓷砖、金边+青金石蓝边框、文字块进画、人小而侧身大头巾。
|
|
64
|
+
- 路线:`scenes/51_persian_miniature.js`,全程平涂+深褐轮廓;星形瓷砖周期取模满铺;八角水池、折线水渠(金边+青瓷)、树冠点叶;动态=汲水轮转、渠水金波沿折线流、金鱼绕池、花瓣飘、园丁摇杆、读书人呼吸。
|
|
65
|
+
- 实测:qa 确定性 ✓、无跳变、3ms/帧。
|
|
66
|
+
- 仍可改进:人物偏小偏简;文字块是假连笔;地面缺层叠。
|
package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/52_south_park.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# 52_south_park · 南方公园:数字剪纸与有限表演
|
|
2
|
+
|
|
3
|
+
状态:研究配方;2026-10-16 已按 16 号协议重做演示(见文末「v2 实做」),自评与独立复核均未达 80,不登记为实做。
|
|
4
|
+
|
|
5
|
+
## 起手必查
|
|
6
|
+
|
|
7
|
+
先读[跨场景风格提炼](../15-跨场景风格提炼.md),再读本卡。作品用于比对视觉语言,人物、物品、构图和镜头不直接搬用。下面的稳定特征是研究归纳,实施与迁移方案是待验证假设;不得伪称官方参数或已实测能力。
|
|
8
|
+
|
|
9
|
+
## 适用范围
|
|
10
|
+
|
|
11
|
+
研究该系列的主要数字剪纸视觉与表演语言;特殊集数的写实、动漫等画法不归为默认。官方2013年FAQ证明数字重建剪纸路线,不用它声称当前软件版本。
|
|
12
|
+
|
|
13
|
+
## 可迁移的视觉语言
|
|
14
|
+
|
|
15
|
+
- 造型:几何化、清楚的大剪影与少量关键五官;新角色有自己的比例和服饰识别点。
|
|
16
|
+
- 材料:平面纸片层级、克制纹理与遮挡,不能自动升级为光滑3D或厚重纸雕。
|
|
17
|
+
- 空间:背景为行动提供地点与接触,人物和道具共享平面尺度。
|
|
18
|
+
- 表演:嘴形、眼神、姿态切换和停顿承担信息;有限动作不等于角色全程木偶滑行。
|
|
19
|
+
|
|
20
|
+
## 随需求变化的内容
|
|
21
|
+
|
|
22
|
+
不复制四位主角、雪镇、校车或台词;学习视觉不等于必须加入冒犯性笑料。
|
|
23
|
+
|
|
24
|
+
## 与近邻风格的区别
|
|
25
|
+
|
|
26
|
+
区别于Rick & Morty的细描边与更灵活线性角色;区别于皮影的透光材料和杆件关节。
|
|
27
|
+
|
|
28
|
+
## 制作起点(待验证)
|
|
29
|
+
|
|
30
|
+
明确选择本风格时,镜头表写`画风:52_south_park 南方公园式数字剪纸`和`角色:原创语义SVG纸片角色`;可用原创语义SVG纸片角色,按部件/枢轴/表情状态组织;这是平面风格的窄例外,不推广到真人或其他画风。纸纹绑定部件坐标,脚步与接触有状态,不仅整组平移。需生帧时仍可走10号。
|
|
31
|
+
|
|
32
|
+
动作速度、帧率、镜头和配乐按本次叙事确定;不把画面的安静气质等同慢动作。工程接入遵循[风格作者规范](../08-风格作者规范.md),新渲染器实做后才登记引擎id。
|
|
33
|
+
|
|
34
|
+
## 跨场景验证题(不是固定模板)
|
|
35
|
+
|
|
36
|
+
- 新设计的成年物业人员讨论漏水。
|
|
37
|
+
- 无角色的自动售货机卡货:有限动作仍清楚。
|
|
38
|
+
- 多人疏散的快动作:检验受限造型是否保持可读。
|
|
39
|
+
|
|
40
|
+
至少选不同题材/空间尺度/主体类型的测试;不要求每次完整跑一遍。静帧与动态验收分别记,未覆盖的范围继续标为待验证。
|
|
41
|
+
|
|
42
|
+
## 参考与证据边界
|
|
43
|
+
|
|
44
|
+
- [South Park Studios:数字重建剪纸官方FAQ](https://southpark.cc.com/news/712d55/faq-do-you-still-use-construction-paper-to-animate-the-show)
|
|
45
|
+
- [官方剧集入口:制作时选择不同场所与动作的片段对照](https://southpark.cc.com/)
|
|
46
|
+
|
|
47
|
+
一手馆藏/制作资料用于核查作品与方法;百科入口只辅助定位。开工仍需实际并看多幅原作或不同场景片段,记录稳定特征和例外;作品列表不等于已经完成多图视觉实验。
|
|
48
|
+
|
|
49
|
+
## 使用后回流
|
|
50
|
+
|
|
51
|
+
使用前查看本节最新已验证结论;当前有6秒单场景输出的技术检查;画风忠实度与跨场景视觉验证未完成。后续只记录影响结果的发现:日期、题材、采用路线、参考与输出路径/哈希、问题、修法、验证状态和适用范围。失效结论改原句,不追加矛盾规则。跨场景复现后才把研究假设升为实做配方;可重复的工程问题优先修工具并测试。用户偏好单独进入品味档案,不扩张授权。
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### 2026-10-15 · 单场景试作回流
|
|
55
|
+
|
|
56
|
+
- 场景:洗衣店意外;事件:原创成年角色按键、袜子飞出、惊讶反应;路线:代码绘制与动画。
|
|
57
|
+
- 检查:确定性复测、完整MP4解码及独立抽帧审片;短片快动指标按现有门禁降黄,不能推导长片达标。
|
|
58
|
+
- 边界:这次只证明该工程可运行并可观看;艺术家/工作室风格相似度仍有限,不能把几何、色板或纹理参数当最终标准。
|
|
59
|
+
|
|
60
|
+
## v2 实做(2026-10-16,自评 ~75,品味项待花叔)
|
|
61
|
+
|
|
62
|
+
- 签名:剪纸感(边缘抖动、纸纤维)、眼睛贴脸的两个白椭圆加黑点、梯形身体、黑短柱腿、平涂+细黑轮廓、整块平移/绕枢轴转。
|
|
63
|
+
- 路线:`scenes/52_south_park.js`。每块形状用 `P.cut` 剪出抖动边缘;`kid()` 绕颈/肩枢轴动画;嘴是黑半椭圆开合;落雪 12fps 步进。题材换成公交站:校车滑入、车门啪地开、孩子排队跳上车。服装配色避开具名角色组合。
|
|
64
|
+
- 实测:qa 确定性 ✓、无跳变、6ms/帧、运动 5.3%。
|
|
65
|
+
- 仍可改进:孩子是同一个模子;上车只是平移加跳;缺嘴形配对白。
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# 53_pixar · 皮克斯:形体、材质与表演的风格家族
|
|
2
|
+
|
|
3
|
+
状态:研究配方+单场景工程试作;2026-10-15建立并实做。已附`scenes/53_pixar.js`,用`render.py --film style_studies --solo 53_pixar --from 0 --to 6`运行;尚未通过画风忠实度或跨场景验证,不能借此升级为成熟画风。
|
|
4
|
+
|
|
5
|
+
## 起手必查
|
|
6
|
+
|
|
7
|
+
先读[跨场景风格提炼](../15-跨场景风格提炼.md),再读本卡。作品用于比对视觉语言,人物、物品、构图和镜头不直接搬用。下面的稳定特征是研究归纳,实施与迁移方案是待验证假设;不得伪称官方参数或已实测能力。
|
|
8
|
+
|
|
9
|
+
## 适用范围
|
|
10
|
+
|
|
11
|
+
皮克斯不是单一画风。先按需求选择一个影片级美术范围;《Luca》的图形化绘画感、《Soul》现实纽约与抽象灵魂世界等不能无说明混为一体。
|
|
12
|
+
|
|
13
|
+
## 可迁移的视觉语言
|
|
14
|
+
|
|
15
|
+
- 形体:先设计可辨认剪影和大小比例,再做表面细节;大眼睛、圆脸和光滑塑料不是通用定义。
|
|
16
|
+
- 材质:材质承担故事与性格,布、皮肤、金属等要有区别;反光不越过美术方向。
|
|
17
|
+
- 光色:光引导叙事焦点,可风格化地调整物理规律;不是固定金色轮廓光或蓝紫背景。
|
|
18
|
+
- 表演:姿态、重心、视线与预备/跟随动作连贯;情绪来自动作因果,不靠表情贴图乱换。
|
|
19
|
+
|
|
20
|
+
## 随需求变化的内容
|
|
21
|
+
|
|
22
|
+
不默认所有物体长脸、不套同一种萌脸;不复制已有角色或强制使用皮克斯软件。
|
|
23
|
+
|
|
24
|
+
## 与近邻风格的区别
|
|
25
|
+
|
|
26
|
+
区别于早期光追CGI卡的统一塑料和反射球;本卡将形体、不同材质和表演一起设计。不同影片之间也要辨明边界。
|
|
27
|
+
|
|
28
|
+
## 制作起点(待验证)
|
|
29
|
+
|
|
30
|
+
无脸物体场景可使用3D建模与物理/关键帧;人物与拟人角色当前遵循10号的帧库/合成路线。全3D角色建模绑定仍是待建设能力,不能绕过入口的角色规则或声称已获支持;只有经过画面验证后才能称某分支有效。纯代码要求不能以简单球柱人或一张AI背景冒充;先暴露建模、绑定、光照能力缺口。
|
|
31
|
+
|
|
32
|
+
动作速度、帧率、镜头和配乐按本次叙事确定;不把画面的安静气质等同慢动作。工程接入遵循[风格作者规范](../08-风格作者规范.md),新渲染器实做后才登记引擎id。
|
|
33
|
+
|
|
34
|
+
## 跨场景验证题(不是固定模板)
|
|
35
|
+
|
|
36
|
+
- 原创成年修理员排查机器故障。
|
|
37
|
+
- 无人洗衣房里失衡的洗衣机:不加脸也有事件。
|
|
38
|
+
- 新设计的动物角色在湿滑地面搬物:核体量、接触和材质。
|
|
39
|
+
|
|
40
|
+
至少选不同题材/空间尺度/主体类型的测试;不要求每次完整跑一遍。静帧与动态验收分别记,未覆盖的范围继续标为待验证。
|
|
41
|
+
|
|
42
|
+
## 参考与证据边界
|
|
43
|
+
|
|
44
|
+
- [Pixar RenderMan:风格化贯穿造型、材质、光和特效](https://prod.renderman.pixar.com/stories/stylization-at-pixar)
|
|
45
|
+
- [Pixar《Luca》:影片级美术范围](https://www.pixar.com/luca)
|
|
46
|
+
- [Pixar《Soul》:现实环境分支](https://www.pixar.com/soul)
|
|
47
|
+
- [Pixar RenderMan:《Soul》的摄影、材质与光](https://renderman.pixar.com/stories/cinematography-with-soul)
|
|
48
|
+
|
|
49
|
+
一手馆藏/制作资料用于核查作品与方法;百科入口只辅助定位。开工仍需实际并看多幅原作或不同场景片段,记录稳定特征和例外;作品列表不等于已经完成多图视觉实验。
|
|
50
|
+
|
|
51
|
+
## 使用后回流
|
|
52
|
+
|
|
53
|
+
使用前查看本节最新已验证结论;当前有6秒单场景输出的技术检查;画风忠实度与跨场景视觉验证未完成。后续只记录影响结果的发现:日期、题材、采用路线、参考与输出路径/哈希、问题、修法、验证状态和适用范围。失效结论改原句,不追加矛盾规则。跨场景复现后才把研究假设升为实做配方;可重复的工程问题优先修工具并测试。用户偏好单独进入品味档案,不扩张授权。
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### 2026-10-15 · 单场景试作回流
|
|
57
|
+
|
|
58
|
+
- 场景:无脸洗衣机;事件:滚筒受阻、机身晃动、开门后布料落地;路线:程序化3D。
|
|
59
|
+
- 检查:确定性复测、完整MP4解码及独立抽帧审片;短片快动指标按现有门禁降黄,不能推导长片达标。
|
|
60
|
+
- 边界:这次只证明该工程可运行并可观看;艺术家/工作室风格相似度仍有限,不能把几何、色板或纹理参数当最终标准。
|
|
61
|
+
- 实修:门的开启先于布料释放,衣布终点按地砖高度约束;独立复核销掉原时序和贴地感问题。这是解析网格,不是物理布料仿真。
|
package/skills/biuart/references//351/243/216/346/240/274/351/205/215/346/226/271/55_dunhuang.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 55_dunhuang · 敦煌壁画(北朝):干泥壁上的矿物色与横飞的线
|
|
2
|
+
|
|
3
|
+
状态:研究配方;2026-10-16 新增 v1 演示(见文末「v1 实做」),自评 ~72,未过 80,不登记为成熟实做。
|
|
4
|
+
|
|
5
|
+
## 起手必查
|
|
6
|
+
|
|
7
|
+
先读[跨场景风格提炼](../15-跨场景风格提炼.md)与[16 号协议](../16-风格演示95分协议.md),再读本卡。原作只用于比对视觉语言,人物、构图和题材不直接搬用。下面「稳定特征」来自这次实际看过的原作,不是官方参数。
|
|
8
|
+
|
|
9
|
+
## 范围
|
|
10
|
+
|
|
11
|
+
先选定一个时期再做,不把北朝、盛唐、晚唐混成一张「敦煌风」:
|
|
12
|
+
- 北朝(257 窟鹿王本生、285 窟西魏飞天、428 窟北周):土红地、白色走兽、锯齿山、青绿风叶、横飞的飞天。本卡 v1 做的是这一支。
|
|
13
|
+
- 盛唐(112 窟反弹琵琶、45 窟菩萨):满铺的金碧、丰腴的人物、成组的乐舞。还没做。
|
|
14
|
+
|
|
15
|
+
## 稳定特征(原作观察)
|
|
16
|
+
|
|
17
|
+
- 地:257 是整面土红 #92342d 一类;285 是奶白 #e8dcc5;两者可以上下分栏,栏间一道多色横带(黑/白/青/赭)加联珠。
|
|
18
|
+
- 形:走兽是一整块白、轮廓一线、内部几乎无线;山是一排排窄高的锯齿三角,各涂一色、一侧压暗,大面积红地露在山与山之间;人物小、横向展开。
|
|
19
|
+
- 飞天(285 窟):水平横飞,头在前,披帛向后扬,下身化成一条拖到身后的长裙;脸小,眉眼细长,颊有红晕;线是红褐的铁线/兰叶描。
|
|
20
|
+
- 风叶:逗号形的青绿卷叶,成群向后翻。
|
|
21
|
+
- 色:石青 #3e919c、石绿 #577f7a、朱、赭、铅白;铅白年久氧化发暗,428 窟的肌肤发灰蓝。
|
|
22
|
+
- 壁面:龟裂、起甲露出底层、盐碱泛白、泥壁颗粒;裂缝穿过画中的人和兽。顶部菱格带、底部垂幔三角带。
|
|
23
|
+
|
|
24
|
+
## 与近邻风格的区别
|
|
25
|
+
|
|
26
|
+
不是波斯细密画(满铺、精密、金线);不是乔托(湿壁画的灰泥罩白);不是国风插画(那种是光洁的渐变和云纹)。敦煌的质感是「干、旧、裂」,颜色是矿物不是颜料。
|
|
27
|
+
|
|
28
|
+
## 制作路线(v1 用的)
|
|
29
|
+
|
|
30
|
+
`scenes/55_dunhuang.js`:墙底(P.texture 泥质)→ 上下两栏+横带+顶部菱格+底部垂幔(缓存)→ 锯齿山(缓存)→ 动态:风叶按速度分层向左翻、飞天(`apsara()`,变宽飘带 `ribbon()`)、散花、白鹿奔跑(`deer()`,腾空—收拢两拍)、蹄尘 → 覆盖层(龟裂、起甲、盐碱,盖在画上面)→ 泥壁颗粒相乘。
|
|
31
|
+
|
|
32
|
+
## v1 实做(2026-10-16,自评 ~72,品味项待花叔)
|
|
33
|
+
|
|
34
|
+
- 原作锚定:257 窟鹿王本生、285 窟西魏飞天、428 窟北周飞天、112 窟反弹琵琶(来源见 fetch_reference 生成的参考.md;112 窟和 257 窟的图是拼图翻拍,只取色板与构图,不临摹)。
|
|
35
|
+
- 动态:风叶后翻、飞天上下浮动与飘带摆动、散花下落、白鹿与小鹿奔跑、蹄尘、漂尘。
|
|
36
|
+
- 已知不足:山仍偏几何三角、缺 257 窟那种层层叠压的节奏;飞天躯干偏平、缺半侧身的立体;颜色未做铅白氧化变暗;未做盛唐一支。
|
|
37
|
+
- 尚未验证:跨题材(把飞天换成别的主体)、竖屏、与口播片的合成。
|
|
38
|
+
|
|
39
|
+
## 使用后回流
|
|
40
|
+
|
|
41
|
+
使用前先看本节最新结论。有新发现只记:日期、题材、做法、问题、修法、验证状态、适用范围。失效结论改原句,不追加矛盾规则;跨场景复现后才把研究假设升为实做配方。
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# 风格总索引(36种既有实做+16种研究配方,2026-10-15更新)
|
|
2
|
+
|
|
3
|
+
> **先读这一句:35 张样片是同一个构图**(窗在左上、猫在左下、少女在右侧端杯;`assets/全风格总览.jpg` 也是)。那是艺术史速通那支片子的机制——风格在变、场景不变——不是这些风格的构图。做新题材要为题材重新构图:卡里的渲染器、笔法、色彩逻辑、母题动法可以拿走,房间里的坐标、角色、家具不要搬过去。
|
|
4
|
+
|
|
5
|
+
选风格先看下面的状态与分类表,再打开对应卡片。「质量」是当前实做水平(★★★ 一眼认得、可直接用;★★ 认得出但有明显短板;★ 要重做),不是风格本身的难度。短板就是下一次做这个风格时该先超越的地方。
|
|
6
|
+
|
|
7
|
+
风格分两层。**材料层**:笔法、材质、光和色的处理,可以盖在任何题材上(讲产品、讲数据、讲故事都行)。**时代标本**:当前样片把时代或艺术家母题做得很突出,直接搬用适合速通、穿越、致敬;移到新题材应重新提炼视觉语言和构图,不把样片局限当成艺术家本身的限制。拿不准的放在材料层,同一种风格两边都沾时(如霍珀的硬边光块是可迁移的光照处理)按你的用法判断。
|
|
8
|
+
|
|
9
|
+
## 先看状态与迁移范围
|
|
10
|
+
|
|
11
|
+
新增研究卡已附单场景工程试作(`--film style_studies`),可观看,但未通过画风忠实度与跨场景验证;下方既有卡的星级不适用于它们。首次跨题材使用读[15号方法](../15-跨场景风格提炼.md)。材料层/时代标本是既有样片的组织方式,不是对艺术家整体风格可用题材的永久限制;能否迁移由新场景验证。名作中的内容和固定坐标不进入风格定义。
|
|
12
|
+
|
|
13
|
+
## 新增研究配方(17种;2026-10-16 起按 16 号协议逐个重做)
|
|
14
|
+
|
|
15
|
+
**重做状态**:38 乔托、42 瓜尔迪、45 雷诺阿、46 毕沙罗、47 西斯莱、48 高更、50 马远、51 波斯细密画、52 南方公园已按[16号协议](../16-风格演示95分协议.md)重做演示(原作锚定+`lib/medium.js` 媒介通道)。自评 65–82、独立复核 53–74(42、45 未复核),**没有一个到 80,所以全部仍是「研究配方」,不是实做**,品味项待花叔看;其余 8 个仍是 10-15 的旧试作(质量约 35–55,不要当可用实做)。进度与各自短板见[_重做进度](_重做进度.md)。旧版备份在 skill 根目录 `_archive/scenes_20261016/`。
|
|
16
|
+
|
|
17
|
+
| 卡片 | 研究范围 | 实现状态 |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| [38_giotto](38_giotto.md) | 乔托:体块与叙事关系 | 研究配方;有单场景原型 |
|
|
20
|
+
| [39_piero](39_piero.md) | 皮耶罗:几何秩序与清明体积 | 研究配方;有单场景原型 |
|
|
21
|
+
| [40_raphael](40_raphael.md) | 拉斐尔:和谐组织与自然联系 | 研究配方;有单场景原型 |
|
|
22
|
+
| [41_michelangelo](41_michelangelo.md) | 米开朗基罗:雕塑性与姿态张力 | 研究配方;有单场景原型 |
|
|
23
|
+
| [42_guardi](42_guardi.md) | 瓜尔迪:空气、碎光与松动边缘 | 研究配方;有单场景原型 |
|
|
24
|
+
| [43_lorenzetti](43_lorenzetti.md) | 安布罗焦·洛伦采蒂:可阅读的社会空间 | 研究配方;有单场景原型 |
|
|
25
|
+
| [44_cortona](44_cortona.md) | 彼得罗·达·科尔托纳:巴洛克体量与流动群组 | 研究配方;有单场景原型 |
|
|
26
|
+
| [45_renoir](45_renoir.md) | 雷诺阿:暖冷交织与有温度的人物 | 研究配方;有单场景原型 |
|
|
27
|
+
| [46_pissarro](46_pissarro.md) | 毕沙罗:生活流动与环境中的人物 | 研究配方;有单场景原型 |
|
|
28
|
+
| [47_sisley](47_sisley.md) | 西斯莱:空气、天气与连贯风景 | 研究配方;有单场景原型 |
|
|
29
|
+
| [48_gauguin](48_gauguin.md) | 高更:平面、轮廓与象征色 | 研究配方;有单场景原型 |
|
|
30
|
+
| [49_chagall](49_chagall.md) | 夏加尔:记忆空间与情感色彩 | 研究配方;有单场景原型 |
|
|
31
|
+
| [50_ma_yuan](50_ma_yuan.md) | 马远:偏置重心、留白与精练笔墨 | 研究配方;有单场景原型 |
|
|
32
|
+
| [51_persian_miniature](51_persian_miniature.md) | 波斯细密画:层叠空间与精密叙事 | 研究配方;有单场景原型 |
|
|
33
|
+
| [52_south_park](52_south_park.md) | 南方公园:数字剪纸与有限表演 | 研究配方;有单场景原型 |
|
|
34
|
+
| [53_pixar](53_pixar.md) | 皮克斯:形体、材质与表演的风格家族 | 研究配方;有单场景原型 |
|
|
35
|
+
| [55_dunhuang](55_dunhuang.md) | 敦煌壁画(北朝):干泥壁上的矿物色与横飞的线 | 研究配方;有单场景原型(v1,~72) |
|
|
36
|
+
|
|
37
|
+
吉卜力不是新增计数:[25_ghibli](25_ghibli.md)保留原水彩背景实做,并新增整体视觉与表演研究;后者不能借用旧场景的实测成绩。
|
|
38
|
+
|
|
39
|
+
## 材料层(可盖在任何题材上)
|
|
40
|
+
|
|
41
|
+
| id | 风格 | 核心渲染器 / 手法 | 母题动作(画怎么活) | 签名转场(进入它) | 质量 | 当前短板 |
|
|
42
|
+
|---|---|---|---|---|---|---|
|
|
43
|
+
| 09_postimp | 梵高 | 流场笔触三遍(墙竖长/地透视/其余)+区域色板+描边;道具层;visibleLines 补线 | 星空漩涡、灯晕环外扩、方向场火苗般摇曳、漩涡猫 | 星空漩涡卷入 | ★★★(标杆) | 每帧 120ms 最重 |
|
|
44
|
+
| 08_impressionism | 印象派 | 区域粉彩色板短笔触(位置固定)、窗景细笔 | 光斑漂移明灭、罂粟摇、云走、丝带飘 | 笔触色点铺满 | ★★ | 脸和手被笔触打碎 |
|
|
45
|
+
| 29_seurat | 修拉点彩 | 视觉混色:21 色纯色板按比例并置、补色点、等大点 | 光渗、点在呼吸 | 画面结晶成圆点 | ★★ | 偏静;网格规整 |
|
|
46
|
+
| 25_ghibli | 吉卜力(既有水彩背景+整体语言研究) | 水彩洗染(透明叠色+水痕边)、赛璐璐月牙影 | 纱帘被风鼓起、草叶成片摆、树影光斑 | 湿纸晕开 | ★★ | 人物不如背景 |
|
|
47
|
+
| 17_ink | 中国水墨写意 | 毛笔笔锋飞白、墨晕 blur 洇开、留白、钤印 | 开场笔触自己写出、墨晕扩散、虾须动 | (速通里开场) | ★★ | 人物不够写意(审片 6/10) |
|
|
48
|
+
| 13_pop | 利希滕斯坦波普 | 本戴点 createPattern、粗黑描边 | 沃霍尔四格换色、思考点闪、猫扭臀、拟声框抖 | 闪电+网点化 | ★★★ | — |
|
|
49
|
+
| 14_8bit | 8-bit 像素 | 240×135 逐像素、14 色板、部件 1px 黑边 | 尾巴、HUD 心闪、问号块顶金币(15–30fps 步进) | 像素块放大缩小 | ★★★ | 猫头压窗台 |
|
|
50
|
+
| 26_vaporwave | 蒸汽波/赛博霓虹 | 霓虹双色辉光、透视网格、VHS 通道分离后期、路径画灯管假名 | 落日横条上移、网格前滚、招牌闪、跟踪噪声带 | VHS 撕裂+上滚 | ★★★ | 部件交界也发光 |
|
|
51
|
+
| 35_shinkai | 新海诚光影 | 积雨云、丁达尔光柱、赛璐珞硬阴影带、光晕 | 光粒飘、云移 | 斜向扫光 | ★★ | 室内背景密度不够 |
|
|
52
|
+
| 32_rembrandt | 伦勃朗明暗 | 光照图整幅相乘、窗光+烛光 | 光柱浮尘、云影让窗光明暗 | 老胶片光圈收放 | ★ | 人物扁平(审片 5/10),最该重做 |
|
|
53
|
+
| 11_cubism | 分析立体主义 | 半透明渐变面叠空间、切面器(三角不裁剪)、毕加索式双视角脸 | CAFÉ 字母跳换、窗格碎面滑、报纸颤 | 几何碎片错位拼合 | ★★ | 偏亮,深褐大面不够 |
|
|
54
|
+
| 30_matisse | 马蒂斯剪纸 | 剪刀边不规则、钉纸投影、饱和平涂 | 纸片飘动、海藻摆 | 钉着剪纸的蓝纸扫过 | ★★★ | 水粉刷痕偏重 |
|
|
55
|
+
| 16_2026 | 当代扁平插画 | 颗粒点彩密度函数、无描边色块 | 角色表演(跳/拍杯/碎裂/惊呼/签名)、阻尼二次动作 | 三色同心环光圈 | ★★★ | — |
|
|
56
|
+
| 22_constructivism | 俄国构成主义(窄用途) | 灰度照片网点(可变点径 45°)、红楔黑圆、路径画西里尔方块字 | 标语逐字盖章再波浪跳 | (B 片开场) | ★★★ | 缺喇叭形文字锥 |
|
|
57
|
+
| 12_bauhaus | 包豪斯(窄用途) | 纯几何构成、施莱默人偶关节盘 | 指针杆转陡、蒙德里安格换色、猫拨球 | 红黄蓝几何旋转放大 | ★★★ | 猫头偏离骨架位 |
|
|
58
|
+
| 04_roman | 庞贝马赛克(窄用途) | 距离场沿轮廓排石块、加权 L∞ Voronoi 灰浆、布局一次算颜色每帧流过 | 波浪纹边框顺时针流、维苏威冒烟溅火星 | 马赛克砖从猫处翻面扩散 | ★★★ | 小尺度下脸部细节少 |
|
|
59
|
+
| 15_raytrace | 早期光追 CGI(窄用途) | 统一塑料着色、逐像素棋盘倒影、铬球环境映射 | 紫环旋转、镜头光晕、猫眼绿光 | 绿色线框→扫描线渲染 | ★★ | 猫腿直柱、脸像面具 |
|
|
60
|
+
|
|
61
|
+
## 时代标本(适合速通、穿越、致敬类)
|
|
62
|
+
|
|
63
|
+
| id | 风格 | 核心渲染器 / 手法 | 母题动作(画怎么活) | 签名转场(进入它) | 质量 | 当前短板 |
|
|
64
|
+
|---|---|---|---|---|---|---|
|
|
65
|
+
| 01_cave | 洞穴岩画 | 噪声浮雕岩壁+炭点毛边+赭石吃进岩面 | 动物两姿态交替奔跑、火光摇曳、余烬 | (开场) | ★★★ | 人形太卡通,不够原始 |
|
|
66
|
+
| 02_egypt | 埃及墓室壁画 | 侧脸正面眼程式、平涂细勾线、24 个手写象形字 | 圣甲虫推日、阿顿光线小手开合、象形字逐笔重写 | 挂毯竖条落下回弹 | ★★★ | 端杯肘偏僵 |
|
|
67
|
+
| 03_greek | 阿提卡黑绘 | 黑剪影+陶土色刻线+紫红带白点 | 回纹带反向滚动、船起伏海豚跃、里拉琴摆 | 陶瓶滚筒转面 | ★★★ | 裙摆偏厚 |
|
|
68
|
+
| 05_gothic | 哥特泥金手抄本 | 逐像素金箔(拉丝+压花错 1px 亮线)、金色度遮罩高光 | 金箔斜向高光扫过、藤蔓摇、蜗牛爬、老鼠跑 | 羊皮纸翻页 | ★★★ | 金发像兜帽 |
|
|
69
|
+
| 06_renaissance | 文艺复兴晕涂 | 整层轻模糊+高不透明清晰层、龟裂纹/画布纹/黄釉 | 达芬奇扑翼机飞过、河面碎光、浮尘 | 窗口神光 | ★★ | 猫偏卡通;整体偏静 |
|
|
70
|
+
| 10_nouveau | 慕夏新艺术 | 可变线宽路径(外粗内细)、剪影错位垫底 | 太阳升起、光环转、花摇、S 形热气、卷发波 | 金边有机形生长 | ★★★ | 猫姿势僵 |
|
|
71
|
+
| 18_klimt | 克里姆特金色时期 | 复用哥特金箔、螺旋/眼形纹样、写实脸配平面金袍 | 袍上眼形纹轮流眨、金屑飘 | 金箔从头部螺旋铺开 | ★★★ | 桌上的手没接袖子 |
|
|
72
|
+
| 19_munch | 蒙克表现主义 | 长弯流线笔(沿流场走 20–30 步)、按行正弦 warp 整个世界 | 整幅画扭动、血色天空流 | 呐喊色带从上往下压 | ★★ | 墙面曾被读成梵高 |
|
|
73
|
+
| 20_dunhuang | 敦煌壁画 | 土红底矿物色、剥落斑(只在背景)、saturation 褪色 | 飞天飘带、天花飘、灯焰 | 飘带扫过、旧画剥落下落 | ★★ | 飞天造型粗 |
|
|
74
|
+
| 21_kusama | 草间弥生波点 | 手绘不规则圆、六角网格按真实周期取模 | 波点从猫处一圈圈胀缩、南瓜、无限镜屋 | 波点长出 clip 新画 | ★★★ | 人物与墙同色靠轮廓撑 |
|
|
75
|
+
| 23_dali | 达利超现实 | 软钟变形、长影子剪切仿射 | 钟往下流、长腿象走、蚂蚁绕表、影子变长 | 新画带圆头液滴往下流 | ★★ | 人物偏矢量插画 |
|
|
76
|
+
| 24_hopper | 霍珀美国现实主义 | 双版本光影裁切(亮版/暗版按光块 clip)、硬边光斑 | 光斑缓移扫过脸、墙上人影同步喝茶 | 硬边阳光扫过 | ★★★ | 猫全程在阴影里 |
|
|
77
|
+
| 27_kirby | 漫威 Kirby 银河时代 | 四色网点、套色错位、黑块阴影羽化排线、krackle 能量点 | 拟声大字、分格猫眼特写、能量点 | (C 片开场) | ★★ | 更像利希滕斯坦,缺 Kirby 透视与方块手 |
|
|
78
|
+
| 28_monet | 莫奈睡莲与日本桥 | 短笔触水面倒影、光在水面颤动 | 睡莲漂、柳影晃、涟漪扩散 | 水波荡开 | ★★ | 墙是池水、地是木头的空间别扭 |
|
|
79
|
+
| 31_haring | 凯斯·哈林 | 粗黑等宽线、放射动作线 | 小人按 8fps 硬切跳舞、一切跟 BPM 弹跳 | 跳舞小人放大、身体里是新画 | ★★★ | 少女不够哈林 |
|
|
80
|
+
| 33_rubberhose | 1930 橡皮管卡通 | 派切眼、面条臂、白手套、12fps 步进、胶片划痕闪烁 | 一切按节拍弹跳 | (幕后点灯前的老片) | ★★★ | 运动大半是胶片噪声 |
|
|
81
|
+
| 34_shadowpuppet | 中国皮影 | 半透明牛皮镂空、铆钉关节、10fps 步进、幕后油灯 | 杆子操控僵直关节、手腕甩 | 幕后点灯 | ★★★ | 重叠处相乘发黑;121ms 偏慢 |
|
|
82
|
+
| 36_picasso_blue | 毕加索蓝色时期 | 单色蓝调、宽笔触、普鲁士蓝粗轮廓、人体拉长 | 缓慢呼吸 | 颜色抽成蓝再宽笔刷过 | ★★ | 造型不够忧郁 |
|
|
83
|
+
| 37_rick_morty | [Rick & Morty](37_rick_morty.md) | SVG圆角深灰细描边、平涂、背景斑驳 | 端杯、眨眼、目光、摆尾 | 按叙事另定 | ★★ | 独立SVG预览/渲染,不在旧35种Canvas gallery内;无行走rig |
|
|
84
|
+
|
|
85
|
+
## 既有36种实做的质量分布与下一步
|
|
86
|
+
|
|
87
|
+
- ★★★ 20 种、★★ 15 种、★ 1 种。
|
|
88
|
+
- **最普遍的短板是角色**:背景过了风格渲染器就像那个风格,角色只用矢量骨架平涂就像贴上去的(正面经验第 8 条)。下一轮提质先从「角色也过同一个渲染器/按该风格重塑造型」做起:伦勃朗、毕加索蓝、水墨、吉卜力、达利、漫威。
|
|
89
|
+
- 转场合集:`_转场_迁移测试.md`(A–D 新增 19 个)+各卡内说明。
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# 迁移测试新增转场(A–D)
|
|
2
|
+
|
|
3
|
+
<!-- 来自迁移测试 A -->
|
|
4
|
+
## 转场(`transitions.js` 末尾的新块)
|
|
5
|
+
|
|
6
|
+
| 转场 | 进入 | 手法与参数 |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `goldLeaf` 0.5s | 克里姆特 | 72px 方块。次序 key=离少女头部 (1300,380) 的距离×0.78+方位角×0.12+随机×0.08,所以金箔是螺旋铺开的。每块 q=(1.32p−key)/0.32:q<0.5 时一片金箔从 1.3 倍带旋转落位,金色渐变高光随 q 移动,压螺旋、眼形或同心圆暗纹;0.5<q<1 时露出 B,金箔淡出。 |
|
|
9
|
+
| `screamWarp` 0.5s | 蒙克 | 旧画按行正弦扭曲,幅度 70e。波浪前沿 `y = lerp(−180, H+220, e) + 80sin(x·.0055 + 7p)` 从上往下推,前沿以上是新画(扭曲幅度 60(1−e) 逐渐平复)。前沿压 4 道 26px 色带:`#b82a1e #e2541c #f08a24 #f4c03a`。 |
|
|
10
|
+
| `apsara` 0.5s | 敦煌 | 前沿 `x = lerp(W+260, −300, e) + 110sin(y·.006 + 5p)` 从右往左扫,右侧是新画。前沿上 3 条飘带(石绿、土红、石青,宽 44/38/32,行波,白虚线描花)。前沿左侧,旧画的碎片(直接取 A 的像素块)翻转、抛物线落下,就是「旧画剥落」。 |
|
|
11
|
+
| `dotBloom` 0.48s | 草间 | 58px 六角网格,从猫 (540,760) 按距离依次长出圆点(outBack,最大到 0.74 倍间距,正好铺满),点里 clip 出新画。未长满的点有白色描边,逐渐淡出。 |
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<!-- 来自迁移测试 B -->
|
|
16
|
+
## 转场 `transitions_b.js`
|
|
17
|
+
|
|
18
|
+
| 进入 | 名称 | 手法 | 参数 | 每帧 |
|
|
19
|
+
|---|---|---|---|---|
|
|
20
|
+
| 达利 | `melt` | 旧画面逐 4px 竖列下垂(`sag = 0.22·edge·e`,并拉长 0.3);新画面在液面 edge(x) 以上,edge = 整体下落线(−160 → H+40,easeInOut)+ 26 个圆头液滴(宽 10–32、长 60–280,剖面 `(1−u²)^0.3`,各自起始相位)+ sin 波;液面描暗边(blur 3)+高光 | 0.36s | 86ms |
|
|
21
|
+
| 霍珀 | `sunShaft` | 旧画面 `multiply` 冷绿 `rgba(70,120,110, 0.7·min(1,2p))` 沉进阴影;斜边光块(斜度 260px)右缘扫过全屏,里面是新画面+`screen` 暖光(0.45 → 0 在 p 0.6–1 内退)+一根跟着走的窗棂斜影;前缘一道亮边 | 0.34s | 76ms |
|
|
22
|
+
| 吉卜力 | `bleed` | 5 团色晕按 t0 先后绽开(窗口先开),半径 `q·1400·k`、q=easeInOut(seg(p,t0,t0+0.66)),边界 `R·(1 + 0.28·fbm(角度) + 0.05·sin 9a)`;外侧 70px blur 18 的亮晕(水先到)、内部是新画面、边缘 5px `multiply` 褐色水痕。亮晕和水痕 α 都乘 (1−q) | 0.38s | 127ms |
|
|
23
|
+
| 蒸汽波 | `vhs` | 前半旧、后半新;p 0.38–0.62 段「场同步丢失」整幅上滚+40px 黑条;随机高度 6–54px 的撕裂带从 A/B 取(取 B 的概率 = p),横向错位 ±130·sin(πp);洋红/青两份单通道副本以 `screen` 错位 ±14;160 条雪花线 | 0.30s | 88ms |
|
|
24
|
+
|
|
25
|
+
共同点:每个转场都是「新风格的物理过程」,不是通用的擦除——融化是液体、霍珀是光、水彩是水、VHS 是磁带。设计时先问一句:「这个风格的画面会以什么物理方式出现?」
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
<!-- 来自迁移测试 C -->
|
|
30
|
+
## 转场(`transitions_c.js`)
|
|
31
|
+
|
|
32
|
+
| 进入 | 名 | 手法与参数 |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| 莫奈 | `ripple` | (距离分母 1700、p>.7 开始补淡入,保证 p≈.85 时四角已清)旧画面按 6px 行条横向正弦错位,`dx=sin(0.045y−26p)·46·sin(π·min(1,1.2p))·(0.4+|y−cy|/H)`,像倒影被搅乱。新画面由 3600 个**横向短笔椭圆**(长 40–110、高 9–17)组成的 clip 露出来,按到杯子 (1000,600) 的椭圆距离(y×1.9)一圈圈荡开。前沿 3 圈浅色虚线椭圆,dashOffset 跟 p 走;中段 140 根水光横线闪。p>.85 补一层淡入。 |
|
|
35
|
+
| 修拉 | `pointill` | 网格 pitch 14:点从 0 长到 r=6.4(前 30%),点下的旧画面淡成纸色。每个点的换色时刻 `0.5·(0.6x/W+0.4y/H)+0.25·hash+0.15`,左上先、带随机;换色的瞬间点放大 1.35 倍「跳」一下。p>.6 新画面在点下面显影,p>.7 点收回。每帧要对 A、B 各做一次 getImageData。 |
|
|
36
|
+
| 马蒂斯 | `cutouts` | 一张宽 1100px 的钴蓝纸(左右缘是 sin 不规则剪边)从右往左扫过,投影 (14,10) blur 12。纸上有 260 道水粉刷痕,钉着白/黄海藻(茎+7 指)、黄/粉 6 角星(随 p 转)、红圆片,各带投影。纸右缘之后已经换成新画面。 |
|
|
37
|
+
| 哈林 | `radiant` | V 字跳舞小人,比例 `s=0.15·320^easeInOut(p)`,以杯子为原点放大。先「描 30px 黑+填黑」画出外轮廓,再在离屏里把肢体填白、`source-in` 新画面,得到身体里的新画面;外圈 16 根放射线 8fps 跳;p>.82 开始补淡入。第一版指数太慢(`0.08·40^…`,前 80% 时间只有 300px 高,最后硬切);第二版 `0.15·120^…` 在结尾仍有空隙,只能靠约 1 帧的淡入收尾,被审片判为闪帧;定稿用 `s=0.15·320^easeInOut(p)`。 |
|
|
38
|
+
|
|
39
|
+
**转场的通用经验**:
|
|
40
|
+
- 需要像素的转场(点彩、水波)每帧对 A/B 做 getImageData,一次约 10ms,可以接受。
|
|
41
|
+
- 「新画面藏在一个形状里」这类转场,形状一旦是多段并集,就不要 `clip(并集 Path2D)`:子路径绕向不一致会抵消成洞。改用离屏填白,再 `source-in`。
|
|
42
|
+
|
|
43
|
+
<!-- 来自迁移测试 D -->
|
|
44
|
+
## 转场(`transitions.js` 末尾 D 段)
|
|
45
|
+
|
|
46
|
+
| 转场 | 新风格的签名 | 手法与参数 |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| `irisFilm` 伦勃朗→橡皮管 | 30 年代卡通的光圈收放+老胶片 | ①p<0.5:旧画逐步加 `sepia(q) grayscale(0.7q) contrast(1+0.3q)`,黑色光圈收到杯口 (1236,420),R = R0·(1 − easeIn(q)),R0 取到最远角的距离 ②p≥0.5:新画按 R0·outBack(q) 弹开 ③圆周 48 段,按 12fps 加 ±1.5% 的手抖 ④全程叠胶片闪烁、划痕、灰尘 |
|
|
49
|
+
| `lampGlow` 橡皮管→皮影 | 幕后点灯 | ①旧画 multiply rgba(70,34,12, min(1, 2.2p)),像灯灭一样压暗 ②新画用 destination-in 径向蒙版(内 0.55R 实、外缘透)露出,R = 1500·inOut(seg(p, .12, 1)),带灯焰抖动 ±7% ③lighter 暖光晕 sin(πp) 加一朵小火苗 |
|
|
50
|
+
| `flareSweep` 皮影→新海诚 | 漏光、扫光 | 斜向(k=0.35)分界线从 −500 扫到 W+700(inOut)。左边是新画,右边是旧画。分界上叠 3 层 lighter 光带:宽 520 α0.55 暖色、160 α0.85 白、60 α0.6 青。另有横丝、40 颗光粒、3 个六边形光斑 |
|
|
51
|
+
| `blueBrush` 新海诚→蓝色时期 | 颜色被抽走+宽干笔 | ①旧画 `color` 混合叠 rgba(45,90,148, min(1, 2.2p)),只剩蓝;再 multiply 压暗 ②6 道宽笔(每道高 H/6+90)交错倾斜 ±18,依次从左刷到右,启动时间错开 0.07。笔头是一段二次曲线,上下边带 6–7px 正弦抖动 ③笔头后 80–280px 内有 26 条深/浅渐变鬃毛线(颜料还没刷匀)|
|
|
52
|
+
|
|
53
|
+
转场设计的一般步骤(建议写进 02 号第 3 层):找新风格里会"出现、点亮、扫过"的那个物理过程 → 用它先"污染"旧画 → 新画从这个过程的形状里露出来 → 拍点上叠一个短暂的高亮或过冲。
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 新增风格演示重做进度(2026-10-16 起,协议见 16 号)
|
|
2
|
+
|
|
3
|
+
旧场景(2026-10-15 版)备份在 `_archive/scenes_20261016/`。重做的新场景直接覆盖 `scripts/engine/scenes/<id>.js`,同 id、同 `--film style_studies`。
|
|
4
|
+
原作参考本体不入库(需要时重跑 `fetch_reference.py`);总览图和并排图存在 `assets/新风格v2_证据/`,后人可复核打分。
|
|
5
|
+
|
|
6
|
+
自评分是排序用的(协议第 6 步),品味项归花叔。
|
|
7
|
+
|
|
8
|
+
| id | 风格 | 状态 | 自评 | 独立复核 | 现在的短板(下一轮先超越) |
|
|
9
|
+
|---|---|---|---|---|---|
|
|
10
|
+
| 38 | 乔托 | 研究配方(人物重做后) | ~70 | ~53(第一轮) | 三人轮廓拉开(袍宽不同)、手改掌+指、交接时两手真正托箱;仍缺群像密度,灰泥偏颗粒 |
|
|
11
|
+
| 42 | 瓜尔迪 | 研究配方(v2 演示已做,未经独立复核) | ~78 | — | 塔笔触偏叠砖;人物仅剪影;缺闪烁白点 |
|
|
12
|
+
| 46 | 毕沙罗 | 研究配方(v2 演示已做,未达 80) | ~75 | ~58 | 树冠像花椰菜、树干像棕榈;人物小了帽但脸仍简;已删挡教堂的树 |
|
|
13
|
+
| 47 | 西斯莱 | 研究配方(v2 演示已做,未达 80) | ~80 | ~68 | 房屋像平板、窗成黑块;白杨像海草;已修左缘缺口、电线杆、货物改麻袋 |
|
|
14
|
+
| 48 | 高更 | 研究配方(妇人头部重画后) | ~74 | — | 妇人改侧脸+高白帽冠+白披领,小牛改带斑;男孩仍偏简单,树干体量偏大 |
|
|
15
|
+
| 50 | 马远 | 研究配方(v2 第二轮,最接近 80) | ~78(第二轮自评,未独立复核) | ~74(第一轮) | 斧劈改短宽楔笔后仍偏密;树干用一气粗线(分段读成竹节、多边形斧劈读成箭头,两次试验已弃);落款只有印;qa 因机器高负载加载超时,改以多时刻静帧确认无报错有动态 |
|
|
16
|
+
| 51 | 波斯细密画 | 研究配方(人物重做后) | ~72 | ~63(第一轮) | 人物改萨法维式:修长、小头、高头巾加红冠杆、束腰长袍、小花散点;读书人偏小、脸无表情 |
|
|
17
|
+
| 52 | 南方公园式剪纸 | 研究配方(v2 演示已做,未达 80) | ~75 | ~63 | 已修:单列依次上车不叠、站牌不再被挡、换掉近似 Cartman 的帽色;仍是原剧片头式题材 |
|
|
18
|
+
| 39–41, 43, 44 | 皮耶罗、拉斐尔、米开朗基罗、洛伦采蒂、科尔托纳 | 未重做 | 旧版 ~35 | — | 39/40/43/44 走壁画通道(但壁画通道目前只有 38 一例,自身只有 ~53,不要当成熟能力);41 要雕塑感人物 |
|
|
19
|
+
| 45 | 雷诺阿 | 研究配方(人物重做后) | ~72 | — | 人物改修长身形(窄肩收腰钟形裙、小头、弯臂),前景一对相拥华尔兹(女在前);背景人群仍小且排得偏齐;缺原作的粉彩肤光 |
|
|
20
|
+
| 49 | 夏加尔 | 未重做 | 旧版 ~40 | — | 记忆空间:漂浮、倾斜、色块情感 |
|
|
21
|
+
| 53 | 皮克斯 | 未重做 | 旧版 ~55 | — | 材质与次表面光;three.js 路线 |
|
|
22
|
+
| 54 | 吉卜力方向 | 未重做 | 旧版 ~45 | — | 云、风、水彩背景密度 |
|
|
23
|
+
|
|
24
|
+
「独立复核」来自 2026-10-16 一个没参与制作的审查 agent 按 16 号评分表打的分(它的完整报告没落盘,要点已吸收进上表与协议)。自评与复核差 7–17 分;以较低者为准。**没有一个到 80,所以全部写「研究配方」,不登记为实做**——这是协议第 6 步自己的规则。
|
|
25
|
+
|
|
26
|
+
证据(总览图、六张原作并排图):`assets/新风格v2_证据/`。
|
|
27
|
+
|
|
28
|
+
## 下一轮的做法(照搬这轮跑通的流程)
|
|
29
|
+
|
|
30
|
+
1. `fetch_reference.py` 拉 3 幅原作 → 看接触表 → 写 5 条签名(必须有/加分/禁忌)。
|
|
31
|
+
2. 题材按风格自己的构图规则重定;形层 → `lib/medium.js` 通道。
|
|
32
|
+
3. 一帧先行 → `side_by_side.py` 并排 → 打分。最多两轮。
|
|
33
|
+
4. 做完补进本表,并把配方卡「状态」「仍可改进」改成实测结论。
|
|
34
|
+
| 43 | 洛伦采蒂 | 研究配方(v2 三轮,人物重做后) | ~72 | — | 人物已改修长长袍3/4侧身并有 20 人人流;仍缺原作的颜料层厚度与透视纵深;只有两幅不同原作 |
|
|
35
|
+
| 40 | 拉斐尔 | 研究配方(v2 一轮,人物沿用 figure) | ~70 | — | 透视拱顶藻井与棋盘地成立、三组人手眼互相咬合;人物仍是钟形袍、脸雷同;缺原作的肤色与衣料光泽 |
|
|
36
|
+
| 41 | 米开朗基罗 | 研究配方(v2 两轮,红粉笔素描路线) | ~70 | — | S 形扭转、长臂、肩胛背阔肌明暗成立;头仍偏圆、缺手的细节;亮处留纸对比可再强 |
|
|
37
|
+
| 44 | 科尔托纳 | 研究配方(v2 三轮:云团重做) | ~70 | — | 画框+金圆章+中心放射金光+云团+人群旋转+红蓝衣带成立;人物仍是钟形袍,缺巴洛克的强短缩与强明暗;云的高光弧线偏卡通;只有两幅不同原作 |
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# 音轨方法 · 速通片的代码合成配乐(拆解方法+原创示例)
|
|
2
|
+
|
|
3
|
+
这一页是从一次拆解里沉淀的方法:参考片是 X 用户 Tak(@cherry_mx_reds)的 15 秒《Art History Speedrun》,它的配乐本身就是代码合成的。这里只保留**怎么拆、怎么写、怎么混**,不保留对原曲的逐音转录。
|
|
4
|
+
|
|
5
|
+
配套脚本:`scripts/audio/synth_艺术史速通.py`。乐谱是一段**原创示例**(D 小调,和声 Dm–B♭–F–C),段落结构和画面的 `scripts/engine/eras.js` 一致,乐器库和混音链可以直接复用,换成你自己的乐谱即可。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0. 一句话结论
|
|
10
|
+
|
|
11
|
+
速通类短片的配乐可以是**一张严格的 BPM 网格上的程序化编曲**:17 个时代按「八分音符个数」排布(6,4,4,4,4,4,3,3,3,3,2,2,2,1,1,1,9),越往后每段越短,靠「段落变短」制造加速感,速度本身不变。每段换一套该时代的代表乐器,一个三音动机随和弦移调贯穿全片。音乐在网格上停住后,接一串卡通音效(叮、滑哨坠落、碎裂、猫叫、收尾拨弦)完成结尾笑点。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. 怎么拆一条参考配乐
|
|
16
|
+
|
|
17
|
+
| 量什么 | 方法 | 精度/可信度 |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| 拍速与网格 | 对 STFT 做 superflux 式频谱通量(hop 2.5ms),取峰值作起音,再用最小二乘拟合 `t = t0 + n·E`(共 28 个起音) | E = 0.23431s(八分音符)→ **128.04 BPM**,网格零点 t0 = 0.028s。残差全部在 ±4ms 内,人手演奏做不到,可以断定是代码排程 |
|
|
20
|
+
| 时代边界 | 三路互证:①网格位置;②MFCC 新奇度曲线(前后各 0.2s 均值的距离)的峰值;③视频逐帧差分的峰值 | 音频边界(网格)与 MFCC 峰值的偏差 ≤20ms。画面转场比音频晚 0–0.2s(画面用 0.1–0.2s 的擦除/变形转场) |
|
|
21
|
+
| 音高 | ①Spotify basic-pitch 复音转录(ONNX,Python 3.11 临时环境);②在 16 分音符网格上取 85ms FFT 峰值,起音前后增益 >6dB 判为新音;③自写 CQT 半音能量图人工核读 | 旋律主音的可信度高(两种方法一致)。和声内声部、浮世绘和梵高两段的细节可信度中等 |
|
|
22
|
+
| 音色 | 对每个旋律音取起音后 20–220ms 的谐波幅度(H1–H8,±1.5% 窄带),再测窄带包络的起音时间和衰减(+50/100/200ms 相对峰值) | 复音会混进别的声部,谐波比只能当倾向看 |
|
|
23
|
+
| 打击乐 | 逐 16 分音符测 >6kHz(噪声类)和 <150Hz(鼓类)的能量跳变 | 高 |
|
|
24
|
+
| 音效 | 对 13–15s 用 20ms 步长的 FFT 峰值追踪频率轨迹,配合 2.1s 的画面接触表(每 0.1s 一帧)对齐事件 | 高 |
|
|
25
|
+
| 响度 | ffmpeg ebur128;分段用 BS.1770 K 加权、不加门限的均方 | 整体 **-14.3 LUFS,LRA 0.9 LU,真峰 -2.4 dBTP**(常听到的「平均 -16.6dB」是 RMS 均值,口径不同) |
|
|
26
|
+
| 全模态模型「听」 | 用一个全模态模型整片听一遍,按作曲家视角自定义提问 | 只当候选,逐条回校,见第 4 节 |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
另外两条经验:音色判断看「起音后 20–220ms 的谐波幅度+窄带包络衰减」最稳;判断「是不是代码合成」看三件事——时间残差是否在 ±5ms 内、音色是否都是正弦/方波/锯齿/指数衰减这类教科书构件、静处有没有录音底噪。
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. 原创示例乐谱(脚本里的 `era()` 块)
|
|
36
|
+
|
|
37
|
+
时间单位是八分音符,起点 = `t0 + n·E`。动机 ♪♪♩ 标为「动机」。
|
|
38
|
+
|
|
39
|
+
| # | 时代 | 长度 | 配器 | 示例写的音 |
|
|
40
|
+
|---|---|---|---|---|
|
|
41
|
+
| 1 | 洞穴 | 6 | 骨笛+手鼓+弱拍敲击 | 下行扩大版 A4–G4–D4 |
|
|
42
|
+
| 2 | 埃及 | 4 | 竖琴+叉铃 | Dm→B♭ 分解;动机 F5–G5–D5 |
|
|
43
|
+
| 3 | 希腊黑绘 | 4 | 里拉琴+双管 aulos | B♭ 和弦;D5 → F5 |
|
|
44
|
+
| 4 | 罗马 | 4 | 号角+战鼓 | 动机 C5–D5–A4,F→C→Dm |
|
|
45
|
+
| 5 | 哥特 | 4 | 管风琴 | Dm → Gm/D,D2 踏板 |
|
|
46
|
+
| 6 | 文艺复兴 | 4 | 羽管键琴+低音维奥尔 | 动机 B♭5–C6–G5,Gm→F |
|
|
47
|
+
| 7 | 浮世绘 | 3 | 筝+太鼓+拍子木 | D 都节音阶(D–E♭–G–A–B♭)的十六分拨奏 |
|
|
48
|
+
| 8 | 印象派 | 3 | 柔和钢琴 | 动机变体 A5–C6–G5,Fmaj7 → B♭ → Dm9 |
|
|
49
|
+
| 9 | 梵高 | 3 | 明亮拨弦+风声 | D2 低音律动,高处零散 A5/F5/D6/E5 |
|
|
50
|
+
| 10 | 新艺术 | 3 | 钢片琴 | 动机 D5–E5–A4,B♭→C→Dm |
|
|
51
|
+
| 11 | 立体主义 | 2 | 钢琴式击弦 | 刻意不协和:D–G♯–C♯ → E♭–A–B♭–E |
|
|
52
|
+
| 12 | 包豪斯 | 2 | 马林巴式短音+机械滴答 | D 五个八度叠置 → F/A → D |
|
|
53
|
+
| 13 | 波普 | 2 | 鼓机+卡通短音 | 底鼓、反拍拍手、D/F 短音 |
|
|
54
|
+
| 14 | 像素 | 1 | 方波 | F 大三三十二分琶音 |
|
|
55
|
+
| 15 | 光追 | 1 | 超级锯齿 | B♭ 和弦 |
|
|
56
|
+
| 16 | 孟菲斯 | 1 | 超级锯齿持续和弦+底鼓+上滑音(猫跳上桌) | C 大三挂过段尾 |
|
|
57
|
+
| 17 | 2026 | 9 | 128BPM 浩室:四拍底鼓、反拍开镲、锯齿低音、方波系拨奏、pad | 转到 D 大调 add9:F♯5 A5 D6 E6 F♯6 E6 D6 B5 A5 |
|
|
58
|
+
|
|
59
|
+
写自己的乐谱时:先定和声循环和一个三音动机,再按段落表把每段的「代表乐器+动机移调」填进去;「出格」的段(异国、前卫)只换调式或加三全音,节奏和网格不动。
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 3. 结尾音效(按「停—悬—砸—反应—收」)
|
|
64
|
+
|
|
65
|
+
| 事件 | 合成方法(脚本里的函数) |
|
|
66
|
+
|---|---|
|
|
67
|
+
| 音乐停 | 低音约 150ms 快速衰减,不硬切 |
|
|
68
|
+
| 爪子碰杯「叮」 | 几个 5–7kHz 的非谐波振铃+一点 1.5kHz(`tink`),同时一道高频嗖声(`swipe`) |
|
|
69
|
+
| 杯子坠落 | 纯正弦指数下滑约 1550→325Hz、0.35s(`slide_whistle`) |
|
|
70
|
+
| 落地碎裂 | 80Hz 左右闷击+宽带噪声(质心 5–7kHz、约 0.45s 衰减)+陶瓷非谐泛音+几颗碎片小碰撞(`crash`) |
|
|
71
|
+
| 猫叫 | 线性折线音高(上行再下行)的谐波合成+两个共振峰,整段最响(`meow`) |
|
|
72
|
+
| 签名出现 | 两下 ~90Hz 轻「啵」叠一点亮点(`end_thump`) |
|
|
73
|
+
| 收尾 | 落在主音的低音拨弦 |
|
|
74
|
+
|
|
75
|
+
时间点全部从画面接触表(每 0.1s 一帧)对齐到画面事件。
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 4. 混音做法(脚本后半段,原样可用)
|
|
80
|
+
|
|
81
|
+
1. 0.5s 小空间混响,12ms 预延迟,湿声 9%
|
|
82
|
+
2. 逐段低频暖底:按段的和弦根音(`BED_ROOT`)铺「三角波+下八度正弦,250Hz 低通」,电平按「地板比段响度」的相对值自动算,已经够的段不加
|
|
83
|
+
3. 逐段 2–6kHz 动态 EQ(`MID_ORIG`)
|
|
84
|
+
4. 逐段补 >6kHz 的空气噪声(`HF_ORIG`)
|
|
85
|
+
5. 逐段 K 加权响度对齐 `target`,迭代 4 次,10ms 平滑增益防拉链声
|
|
86
|
+
6. 可选:15.8kHz 陡峭低通,模拟流媒体 AAC
|
|
87
|
+
7. 整体对齐 LUFS,再做前视峰值限幅
|
|
88
|
+
|
|
89
|
+
有参考片时,`target / MID_ORIG / HF_ORIG / LOW_FLOOR_ORIG` 填参考片逐段量出来的值(用第 1 节的方法);没有参考片时,示例里的「统一相对值」就够用。
|
|
90
|
+
|
|
91
|
+
起音软化的经验:拨弦模型 2ms 硬起音听起来太「点」,改成 10ms 线性起音、高次谐波起音更晚(每升一次谐波 ×1.6,上限 35ms)、起音噪声减半并加 7kHz 低通,整体会连贯很多。
|
|
92
|
+
|
|
93
|
+
示例的产出:48k 立体声,15.06s,-14.0 LUFS,真峰 -1.5 dBTP。
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
uv run --with numpy --with scipy --with soundfile python scripts/audio/synth_艺术史速通.py
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 5. 可复用规律:给任何动画做代码合成配乐
|
|
102
|
+
|
|
103
|
+
下面这些可以直接照抄。
|
|
104
|
+
|
|
105
|
+
1. **先定一张 BPM 网格,所有东西都对齐到它上面**。128 BPM(八分音符 0.234s)适合「速通、蒙太奇」这类节奏;剪辑点、音乐起音、音效落点全部取 `t0 + n·E`。好处是画面怎么剪,音乐都不会显得乱。参考片的时间残差只有 ±4ms,这种「机器般的准」本身就是风格的一部分。
|
|
106
|
+
2. **用「每段八分音符数递减」做加速,不要提速**。本片是 6 → 4×5 → 3×4 → 2×3 → 1×3,到最后一段再放长(9)让观众喘口气、给笑点留位置。速度不变,听感却越来越急;而且每段都落在网格上,和画面切点天然同步。做法:先列出画面每段的时长,四舍五入到八分音符,再整体微调,让递减变得规律。
|
|
107
|
+
3. **一个三音动机,换乐器、随和弦移调重复**。选一个短小、节奏鲜明的细胞(示例乐谱是 ♪♪♩「级进上行、再下跳」),每个场景用该时代或风格的代表乐器演奏一遍,音高跟着当段和弦走。和声骨架用一个四和弦循环(示例是 Dm–B♭–F–C)就够;想做「出格感」的段(异国、前卫)只换调式或加三全音,节奏和网格不动。开场可以用动机的倒影或扩大版(示例洞穴段是下行的附点四分)先立住。
|
|
108
|
+
4. **段间不做交叉淡化**。新段在网格上硬起音,上一段的音符保留自己的自然尾音(拨弦 30–300ms,持续音约 150ms 的 release),可以让一个低音持续音跨段延续来「缝」两段。这样每次换场都有清楚的「咔」,又不会断。不需要每段都加转场嗖声(参考片一个都没有)。
|
|
109
|
+
5. **结尾音效按「停—悬—砸—反应—收」设计**:
|
|
110
|
+
- 停:音乐在网格上停住,用约 150ms 的快速衰减,不要硬切
|
|
111
|
+
- 悬:一个小「叮」作为引子,接下滑哨(纯正弦指数扫频,约 0.35s、2 个八度多)
|
|
112
|
+
- 砸:闷击 + 宽带噪声 + 非谐泛音 + 几颗碎片小碰撞,约 0.45s 衰减完
|
|
113
|
+
- 反应:角色发声,比如线性折线音高的「喵」,放在砸之后约 0.5s,整段最响
|
|
114
|
+
- 收:一两下轻「啵」配签名,最后一个落在主音或属音上的低音拨弦
|
|
115
|
+
全部按事件时间点从画面接触表(每 0.1s 一帧)对齐。
|
|
116
|
+
6. **响度对齐方法**:
|
|
117
|
+
1. 先量参考片的整体值(ffmpeg ebur128:积分 LUFS、LRA、真峰)
|
|
118
|
+
2. 再按段量 K 加权响度,以及 2–6kHz、>6kHz、40–220Hz 地板相对段响度的差值
|
|
119
|
+
3. 合成后依次做:逐段低频暖底 → 逐段中高频动态 EQ → 逐段空气噪声 → 逐段响度迭代对齐(3–4 次,10ms 平滑增益,防止拉链声)
|
|
120
|
+
4. 如果参考是 AAC,再加 16kHz 低通
|
|
121
|
+
5. 最后整体对齐 LUFS,并做前视峰值限幅
|
|
122
|
+
全程用「相对段响度」的差值,不用绝对值,这样换素材、换整体响度都不用重标。
|
|
123
|
+
7. **synth.py 改成通用模板的方式**(结构不动,只换四块数据):
|
|
124
|
+
- `T0, E`:网格零点与八分音符时长(BPM → `E = 60 / BPM / 2`)
|
|
125
|
+
- `edges / target / MID_ORIG / HF_ORIG / LOW_FLOOR_ORIG / BED_ROOT`:段落边界和逐段参考值;没有参考片时,`target` 统一填一个值即可(比如 -14),其余三项填「不补」
|
|
126
|
+
- `era(n0, items)` 的乐谱块:每段一行列表,元素是 `(相对八分位置, 乐器函数, 增益, 声像)`。乐器函数库(`pluck` 拨弦族、`additive` 持续音族、`kick / clap / hat / taiko` 鼓族、`chip / supersaw` 合成器族)可以直接复用,新风格一般只要调 `pluck` 的谐波表和衰减参数
|
|
127
|
+
- 音效块:按事件时间调用 `tink / slide_whistle / crash / meow / end_thump`,参数(频率、时长)从参考片测得,或按第 5 条的模板自己定
|
|
128
|
+
后半段混音链(暖底 → EQ → 空气 → 响度迭代 → 低通 → 限幅)原样保留。
|
|
129
|
+
8. **分析流程的顺序**:
|
|
130
|
+
1. 起音通量拟合网格,先拿到 BPM 和 t0
|
|
131
|
+
2. 在 16 分音符网格上逐格做 FFT 新音检测,再用 basic-pitch 复音转录交叉验证
|
|
132
|
+
3. 用窄带谐波比和包络判断音色
|
|
133
|
+
4. 用高频、低频能量跳变判断打击乐
|
|
134
|
+
5. 全模态模型只当候选,逐条回校。实测它在乐器判断上可靠,在拍速(说 120,实测 128)、动机音数、「转场嗖声」、音效时间上都错了
|
|
135
|
+
|