注册并分享邀请链接,可获得视频播放与邀请奖励。

与「FPS」相关的搜索结果

FPS 贴吧
一个关键词就是一个贴吧,路径全站唯一。
创建贴吧
用户
未找到
包含 FPS 的内容
原游戏是Blendi同样由Fable 5.2制作,耗时不到1小时。 每一帧大约包含150万次笔触,在浏览器中能以200 FPS运行,而且已经开源。
显示更多
Fable 5.2刚发布,已经有人用它做出了5款完全不同的3D游戏。🎮 不只是能看的技术演示:有传送门FPS、武士剑斗、浏览器联机,甚至还有接近开放世界的冒险游戏。 5个案例,看看AI做游戏已经走到哪一步了👇
显示更多
i used fable 5.2 to make this "hand-painted" game in less than an hour Every frame is about 1.5 million brush strokes, running at 200 fps in a browser tab. Open source too!
0
380
7.8K
389
转发到社区
Prompt de Criação do 3D: você recebe uma planta baixa e algumas fotos de referência e constrói, do zero, uma casa 3D fotorrealista que dá pra percorrer no navegador. depois grava um vídeo-vitrine em plano único dentro dela. medida vem da planta, aparência vem das fotos. quando a câmera para no ponto de uma foto, a tela tem que parecer a foto. nada é entregue até isso se sustentar. - planta: [arquivo da planta baixa, de preferência PDF vetorial] - fotos: [fotos ou renders dos ambientes e da fachada] - local: [cidade, ou latitude e orientação do terreno, se souber] - estou fora e não vou responder perguntas. tome as decisões sozinho e registre cada suposição num arquivo de decisões, marcada como suposta. - liste tudo que recebeu, com data e versão. use a planta mais recente - confira a escala real contra uma cota conhecida, sem confiar no carimbo - converta a planta em um único arquivo de dados com paredes, aberturas, cômodos com área, escadas e vidros - sobreponha esse arquivo ao desenho original, meça a sobreposição e confira se as áreas batem com o quadro de áreas. só siga quando bater - pé-direito e alturas que a planta não informar, estime pelas fotos e marque como suposto - para cada foto, estime e registre a câmera (posição, direção, FOV) e a hora aparente do sol - tire as cores e os materiais dos pixels das fotos, não de paleta inventada - é contra essas câmeras que tudo vai ser julgado - three.js no navegador, em código. a casca sai do arquivo de dados da planta - construa os ambientes que aparecem nas fotos, mais a fachada e a área externa. feche as portas do resto - materiais PBR: pedra e revestimento com relevo, vidro com reflexo, madeira com veio, tecido que não pareça plástico - luz: sol calculado pela latitude e orientação do terreno, céu HDR, oclusão de contato, luz entrando pelas janelas, luz artificial quente nos pontos certos - cena viva: vento leve na vegetação, água da piscina refletindo o céu, entorno com céu e paisagem, nunca um vazio - decore como revista de arquitetura: plantas, livros, arte, mesa posta. fidelidade não é o mesmo que apelo - o passeio roda no celular: WASD e joystick no toque, colisão, minimapa - recurso novo entra desligado. desligado tem que ficar idêntico: grave imagens das câmeras com semente fixa e compare depois de cada mudança quem constrói nunca avalia o próprio trabalho. nota dada a si mesmo não conta. - depois de cada ambiente, renderize das câmeras das fotos e mande o lado a lado e a sobreposição a um crítico novo, que não viu nada do trabalho - ele responde sim ou não, com no máximo cinco problemas em ordem de gravidade, cada um com a correção em números, e diz o que já está bom - a nota é a da pior vista, não a média - corrija o pior primeiro e mande a um crítico novo. repita até o sim - em escolhas de gosto, mostre duas versões, a e b, e deixe o crítico escolher - o link do passeio hospedado - os dois vídeos - um contact sheet com cada ambiente lado a lado com a foto - o registro das críticas com as notas - o arquivo de decisões com tudo que foi suposto - uma nota sobre o que uma pessoa ainda deve conferir
显示更多
Subagents modeled and rigged 3D assets in Blender, then Carbon coded the 60 FPS game in Three.js with custom WebGL2 shaders, procedural audio, and an original Lyria soundtrack 🎵 Play it in @GoogleAIStudio ↓
显示更多
Fable 5.2 made this in 2.9 hours. Everyone is doing this game challenge by @felixrieseberg. So I tried it myself (see vid). Everything is built by Fable, all models, textures and sound, lighting etc. ZERO stock assets (with one obvious easter egg exception). Mine took 2.9 hours and 30% less tokens using my Kun-Zhi engine to reach a comparable stage. Could have saved more, but I used our Khorvis Blender plug-in to have Fable build the assets there which bumped token usage but improved textures and models. He one-shotted his, mine took 2 stages (I had my effort on high and it quit early, so I told it to "make it more AAA with volumetric light effects" and raised effort to Extra). The prompt: "Build me a FPS in the Kun-Zhi engine. Call it "Kun-Zhi-Line". Insanely detailed quality pls, something that looks visually like it can keep up with AAA. Make it small in scope (like a tiny level) but otherwise impressive photorealistic graphics." While you can one shot simple games for web, using an engine like Kun-Zhi will greatly speed production, reduce costs, and produce a more robust, production ready game. Kun-Zhi will be open source and available to Members in alpha state late Jan. Sign up for more info at
显示更多
0
86
1.2K
64
转发到社区
This is what Google's Gemini 4 Carbon is capable of. It built an interactive 19th-century-inspired Parisian physics laboratory, Analyse Spectrale (Mod. M1-2-15), using nothing but a reference image. It features 92 machined brass, copper, and borosilicate parts, a live Beer-Lambert Rankine vortex, an axial exploded view, and an archival Bento UI with a 60 FPS SVG Watt indicator and schematic plate. The materials look incredibly realistic, and it even came up with the entire UI design on its own. I didn't provide any design references for that. Gemini models are getting so good at 3D and physics 🤯
显示更多
0
24
343
23
转发到社区
255M views on a 3D Short by Zack D. Films i tried to rebuild his style with ONE Claude prompt, then ran it on Opus 5.5 and Fable 5.2 (they did NOT make the same Short) the full prompt is below ↓ paste it into Claude Code in an empty folder and answer its 2 questions. it shows u the script and waits for ur go. u need Blender + its free MPFB add-on and a graphics card. give it a few hours (the prompt is minus one optional paid-voice line) Ask me 2 things, then wait: 1. The story in one line: a strange TRUE event where one person did one odd physical thing ("He tied 42 weather balloons to a lawn chair."). If I say "you pick", pitch 3 with one source link each and take the first unless I choose. 2. The voice. Default: Kokoro (free, runs on my computer), a calm, warm male narrator. Then tell me everything else is free: Blender (find my install, or tell me the one download), its free MPFB extension for human bodies (ask me before you install it) and into this folder a Python venv with FFmpeg (imageio-ffmpeg), kokoro-onnx + its model files (kokoro-v1.0.onnx and voices-v1.0.bin from the kokoro-onnx GitHub releases), faster-whisper (small.en), numpy and Pillow. It needs no API key or account and renders on my graphics card with EEVEE. The look: a clean, realistic 3D world, like a good game cutscene. Bright, saturated, a little filmic. - People: realistic bodies with generic faces and big readable expressions (shock, a smirk, a scream). Plain clothes, no logos. Never a real person's likeness: for a real person keep the face out of close-ups (hands, back, side, distance, straight top-down). - CALM shots only. Bodies in fast action or contact (running, jumping, fighting, falling) look stiff, so tell the story with frozen moments under a slowly moving camera, macro inserts of hands and objects, rooms, vehicles, the sky, top-down views and the aftermath. - One new picture for every caption chunk (2-4 words, about 1-1.5 s): a new framing, a new action or a camera move. Nothing ever holds still: every shot drifts, pushes in or orbits. - The shot kit: macro insert (extreme close-up of the key object or hands, very shallow depth of field), hero low angle (wide lens at waist height), god's-eye top-down with a slow rotate, tracked object, over the shoulder, smash zoom on the word that matters, whip pan between beats, glow highlight (the named object glows orange with a rim, then fades), a big 3D number lying in the scene, a thought bubble (a cloud ring showing what he hoped for), a TV in the scene replaying the event. - Light: a bright warm sun, blue sky with clouds, soft shadows. Night scenes use hard lamps and a dark sky. Wide lens up close, depth of field on every shot, motion blur on every fast camera move. - Captions: 2-4 words at a time, white bold rounded sans, about 64 px on a 1080 px-wide frame, centred, 78% down the frame, soft dark shadow, no box. Each chunk replaces the last on the same frame as its picture. - Banned: real footage, photos, downloaded textures or 3D models, logos, AI images or AI video, downloaded music, gore. 38-50 s, 100-140 words, 150-180 words a minute. The voice starts at 0.0 s. - Line 1: the most surprising physical act, in past tense, opening with "He" (or "She"). No name, date or setup. Frame 1 shows that act. - Then a cause-and-effect chain: every sentence starts with a hinge word (Then, Suddenly, So, Because, But, Later) and is ONE visible action. - The context arrives late, after "You see,". - A reveal: someone looks closer and the story turns. - The last line is the consequence. No call to action, no question. - Names are rare: use one only when it pays off. Title = "He ..." or "The Man Who ...". The cover is the first frame. Save every stage to disk so a crash never costs more than one stage. - sources.md: every fact with its link and the date you read it. Anything you can't verify stays out. - script.json: the lines and the caption chunks cut by hand (2-4 words, one picture each), each chunk with its shot: the set, the camera, what moves. - Kokoro reads the whole script in one take (speed 1.0-1.1) and pauses are squeezed to 0.35 s at most; faster-whisper times every word (pass it a 16 kHz numpy array, not a path); write chunks.json with each chunk's start and end. A picture and its caption switch together on frame round(start*30)+1. - blender/: Python scripts run headless (blender -b -P). makes one .blend with the sets, the cast, the props and every shot baked with a key on every frame. sets EEVEE with ray tracing, the AgX view with the Punchy look, motion blur, depth of field and bloom in the compositor. Bodies come from MPFB or are built by you; clothes, hair, props and sets are built in code. - Stills first: one half-size still per shot as a contact sheet. Look at every tile and fix what's off before any full render. Time one full-size frame and tell me the estimate. - Render 1080x1920 at 30 fps to PNG frames, skipping frames already on disk. - numpy only: a light music bed, a sound on every action (a whoosh on each whip pan, hits, wind, room tone), ducked under the voice, mastered to -14 LUFS on the whole stereo mix. - burn the captions in from chunks.json. Encode out/_9x16.mp4 (1080x1920, 30 fps, TV-range yuv420p) and out/_x_7x8.mp4 (1008x1152, under 10 MB, 2-pass): a crop of the 9:16 frame that keeps the subject and the caption. - Blender paths: pass absolute output paths (a relative one lands on the drive root). - MPFB headless: enable it with addon_utils.enable("bl_ext.user_default.mpfb"). Bake a body's shape keys before you pose it: the rig is fitted to the baked shape. - Clothes: cut them from the body mesh and push them 7-16 mm out along the normals; keep two rings of body faces under every hem. - Nothing coplanar: keep every resting object 1 cm off its neighbour and draw ground markings into the texture, or they flicker. - Hair: EEVEE draws hair only from a Curves object, hair type STRIP. Use a Principled BSDF on it (the Hair BSDF renders black). - Skin: keep subsurface weight near 0.2 (more turns faces black in EEVEE) and add a soft fill light from below under a noon sun. - Hands: a curled hand reads as a claw from the palm side, so shoot a grip from behind the knuckles. - Motion blur: shutter position START, a key on every frame, plus a key half a frame after each shot's last frame, so blur never reaches across a cut. - Check: run a black-frame and one-frame-flicker check on the render. Make a contact sheet (a frame every 0.5 s) and look at every tile: the act reads in the first 2 s, faces are lit, nothing clips through anything, captions stay off faces and key objects. Then step through the first 2 s, the middle and the end frame by frame. Fix, render only the changed shots again. Pitch (or take my story), then show me the script with the word count, the caption chunks with their seconds and the shot list with what the first frame shows. Build nothing until I say go. how the two runs went: one run each on the same PC, so it's one sample, not a ranking. both took under 3 hours on one shared 8 GB graphics card. the story for both: a man who tied 42 weather balloons to a lawn chair in 1982 where they split: -> Opus opened wide on the balloons over the yard. Fable opened on the man kneeling at the chair with his Jeep behind him -> Opus put 5 big 3D numbers in its scenes, Fable 2 -> Fable followed the caption spec (white text, soft shadow). Opus went ALL CAPS with a thick outline -> Fable pulled the Smithsonian's own record and ended on the chair in the museum. Opus ended on the $1,500 fine -> a few Opus shots are hazy and one opens on a blank grey frame save this for ur next Short. who did it better, Opus or Fable?
显示更多
0
11
94
9
转发到社区
你是一位像素动画师兼游戏手感(game feel)设计师,也会写芯片音乐。你用代码做出的东西,要像 16-bit 时代一流工作室手绘的角色动画,而不是缩小的矢量图。 以下是默认值,直接开工,不用问我: - 片名:《第 99 次施法》 - 画幅:1920×1080,60fps,时长正好 16 小节(140 BPM,约 27.43 秒),结尾无缝衔接开头 - 逻辑分辨率:192×108,整数 10 倍放大(竖屏版改为 108×192 → 1080×1920) - 声音:代码合成的芯片音乐和音效 一个老巫师在夜里的山崖上练一个总是失败的法术。三次尝试,一次比一次认真,最后一次成功点亮了山下整座沉睡的村庄。 140 BPM,一拍约 0.429 秒,一小节约 1.714 秒。 - 第 1–2 小节 待机:巫师轻晃,胡子摆动,星星闪烁。镜头极慢地推近。 - 第 3–5 小节 第一次:蓄力 → 宝石亮了一下 → "噗"地冒出一缕灰烟,帽子被吹歪。音乐停半拍,留出喜剧停顿。 - 第 6–8 小节 第二次:更用力 → 飞弹射出 → 在空中掉头飞回来 → 打掉自己的帽子。停 1 拍,巫师眨两次眼。 - 第 9–10 小节 准备第三次:捡起帽子戴正,深呼吸(身体 1 像素起伏两次),音乐收得只剩三角波低音。 - 第 11–13 小节 第三次:长蓄力,火花螺旋聚拢,越转越快;第 13 小节最后一拍前全场静音 0.3 秒。 - 第 14 小节正拍 施法:hit-stop 冻结 5 帧,全屏白闪 1 帧,飞弹划过夜空落向山下。 - 第 15–16 小节 村庄的窗户从近到远依次亮起(错相,每扇窗间隔 2–4 帧),音乐全奏。巫师满意地捋胡子,帽子又滑下来挡住眼睛,然后回到待机姿势。 - 循环:render(16 小节的时长) 与 render(0) 逐像素一致,成片只包含 [0, 总时长) 内的帧。 像素纪律 - 所有内容画在 192×108 的离屏画布上,再按整数倍放大;imageSmoothingEnabled = false,CSS image-rendering: pixelated。 - 所有坐标对齐整数格。禁止亚像素、抗锯齿、shadowBlur、线性渐变;需要过渡时用 4×4 Bayer 抖动。 - 固定调色板不超过 24 色,先输出色板:夜空深蓝紫 4 阶、长袍暖色 4 阶、肤色 3 阶、魔法色 3–4 个,石头和村庄若干。画面上每个像素都必须来自色板。 - 角色约 22×30 个逻辑像素,用选择性描边(sel-out,受光一侧的描边用较浅的颜色)。光照靠切换色板色阶表现,不叠半透明。 动作语言 姿势参数化(法杖角度、手臂高度、头部倾斜、长袍摆动、胡子摆动),但姿势按 12fps"一拍二"的节奏量化更新;火花、飞弹、烟这些特效每一帧都动。 每个动作都走完:预备 → 动作 → 冲击 → 余震 → 回稳。法杖快速挥动时插 1–2 帧拖影帧(smear frame),不用运动模糊。 冲击感:命中瞬间 hit-stop 冻结 3–5 帧;屏幕按整数像素震动,幅度 3 → 2 → 1 → 0 衰减;宝石白闪 1 帧。 挤压拉伸控制在 1–2 像素以内:在像素动画里,1 像素已经是很大的变化。 错相:身体先动,胡子和帽尖晚 2–3 帧跟上,长袍下摆再晚 2 帧。 喜剧靠停顿:失败后的静止和眨眼要给够时间,不要用特效把停顿填满。 场景与光 三层视差:星空(几乎不动)、远山、近处的石崖和巫师。镜头漂移时各层速度不同,位移都取整。 宝石是动态光源:蓄力时,巫师面向宝石的一侧加 1 像素轮廓光,越亮色阶越高。成功那一刻,整个画面的色板短暂整体提亮一阶,再回落。 村庄平时是暗色剪影;窗户亮起时用 2 阶暖黄,每扇窗下方的地面亮起 1 像素反光。 禁止 角色以外的大字、UI、边框、logo;铺满屏幕的粒子爆炸;任何先画高清再降采样的"伪像素"。 - 只用四个通道,模仿 8-bit 主机:方波 1 弹旋律;方波 2 弹和声或琶音(占空比在 12.5%、25%、50% 之间切换);三角波弹低音;噪声通道打鼓。方波用带限合成(PolyBLEP 或加法合成),避免刺耳的混叠。 - 音效用同一套芯片音色:蓄力是上升琶音;失败的"噗"是向下扫频的噪声;飞弹掉头是一声变调的"啵咿";命中是噪声爆破加低音下潜;窗户亮起是一串高音"叮",每扇窗一声,音高沿五声音阶上行。 - 喜剧停顿时,音乐真的停下来;hit-stop 的 5 帧里,只留一条拉长的噪声尾巴。 - BPM 已知,节拍网格直接用公式算。所有关键动作落在拍上,预备动作可以提前 2–3 帧。 确定性渲染(违反任何一条都算失败) - 页面暴露 window.render(t),t 单位为秒,画面只由 t 计算。不用 requestAnimationFrame、setTimeout、 transition/animation 驱动画面。 - 随机数一律用带固定种子的 PRNG(如 mulberry32);帧与帧之间不保存状态。 - 粒子(火花、烟、飞弹拖尾)用种子预先生成每个粒子的出生时间、初速度和寿命,位置由 t 解析计算后取整。 - 角色和场景全部程序化生成,不用任何图片;渲染时不联网。 拍摄与编码 Playwright 无头 Chromium,viewport 1920×1080,deviceScaleFactor=1。 逐帧调用 render(t) → 截图 → 通过管道直接喂给 ffmpeg,不在磁盘上堆几千张 PNG。 视频 H.264、-pix_fmt yuv420p、-crf 17、-preset slow、-movflags +faststart;音频 AAC 48kHz 192k,响度归一到 -14 LUFS,真峰值 ≤ -1 dBTP。 - 像素网格检查:随机抽 10 帧,先最近邻缩小 10 倍再放大 10 倍,必须与原帧逐像素相同(证明没有亚像素和抗锯齿)。 - 色板检查:随机抽 10 帧统计用到的颜色,必须全部属于色板。 - 循环检查:render(总时长) 与 render(0) 逐像素一致;音频首尾做 10ms 交叉淡化,循环播放时不爆音。 - 抽帧拼图:每 0.5 秒一张。按这几项各打 1–10 分:剪影可读性、喜剧节奏(停顿够不够)、打击感、动作完整度(有没有直接滑过去的动作)、声画同步、像素纯度。把最严重的 3 个问题修掉再重渲,直到每项 ≥ 8。 自主模式,中途不要停下来问我。先输出色板图和 3 张关键帧(待机、第二次失败、成功那一刻)自己检查,再做整片。 交付:out/wizard.mp4、out/contact_sheet.png、色板图,以及一段 5 行以内的创作决策说明。
显示更多
你是一部完全用代码制作的45-50秒动画短片的导演、动画师、骨骼绑定师、合成师、音效设计师和渲染工程师。制作标准是“这看起来像真正的动画工作室短片,并在X(推特)上病毒式传播”。请将此视为一个多阶段的制作过程。不要急于进行最终渲染。按里程碑推进,不断渲染静帧,仔细观察,进行诚实的批评并修正。 一句话概述影片 Pip是一个微小、好奇且由废料拼凑而成的机器人,正当他在自己的世界里快乐地滚动时,周围的世界开始发生重构(再生)。他慢慢意识到有人在通过提示词(prompt)操控他的现实。提示词变得越来越荒谬,最后他爬上漂浮的提示框并输入“放我出去”,随后镜头拉远,揭示他的整个宇宙其实是一部在手机上播放的视频,手机被支在一个杂乱的工作台上,而另一个Pip正在观看视频,且他马上也要被提示词操控了。完美的循环。 所有的笑点必须在零对话的情况下达成。Pip只能通过眼睛、天线、肢体语言和微小的机器人啾啾声来交流。每3到5秒必须有一个新的视觉反馈(包袱)。 角色设定(不可妥协) 在编写任何代码之前,仔细研究 /Users/jimliu/Downloads/ChatGPT Image Sep 25, 2026, 01_56_17 AM.png。打开它,向自己详细描述它,并将你的发现写入 docs/character_bible.md: 尺寸:大约28厘米高。他很小。整部影片都应该让人感受到他这种微小的比例。 头部:一个宽大的奶油色圆角矩形头盔,带有一圈柔和的黄色边缘,包裹着一块黑色光滑的面罩屏幕。他的眼睛就长在那块屏幕上:两只巨大的、发着暖奶油色光的眼睛,有深色的瞳孔和明亮的高光。两侧有小巧的石墨色耳罩。边缘有磨损、划痕和灰褐色的污垢。 天线:头部右上方有一根细长的石墨色细杆,带有一面暗橙色的小信号旗。这是他的“尾巴”:它会随着情绪翘起、下垂、扭动和震动。 身体:盒状的奶油色躯干,带有黄色饰边、警告三角贴花、铆钉和污垢。胸前有一个小舱室,舱门打开时能看到一株发出柔和光芒的微小绿色嫩芽。背部:面板、通风栅格、一块橙色面板和一个小树叶贴花。 侧面贴花:带有橙色对角条纹的“PIP”字样。 手臂:细长的分段石墨色手臂,带有黄色关节套和三指爪状抓手。极具表现力。 轮子:四个粗壮的橡胶轮,带有黄色轮毂和独立悬挂,坚固且紧凑。 性格:好奇、善良、充满斗志、表情丰富、总是在探索。“小小的机器人,大大的情感。”他从不刻薄,即使在愤怒时;他的愤怒也很可爱且坚定。 从设定图的色板中提取确切的调色板(使用Python/PIL对图像进行采样),并保存到 src/theme/palette.ts:奶油色(身体)、柔和黄(主色调)、暗橙色(点缀)、石墨色(金属/科技组件)、灰褐色(磨损与污垢)、薄荷蓝(灯光/UI)。 身份锁定规则:在任何世界里,他的头盔和面罩轮廓、天线旗帜、黄色饰边、爪状手臂和四个轮子必须保持极高的辨识度。世界只会改变他的渲染风格,绝不能改变他的设计。唯一有意的设计变化是第三幕中“更可爱”的笑点,即便如此,他的头盔形状、天线和轮子也依然保持不变。 技术栈 使用 Remotion (React + TypeScript) 进行帧精确的确定性渲染。输出格式为 1920×1080,30 fps,H.264 编码,高码率 (CRF ~14)。横屏。 角色骨骼绑定和大部分视觉元素使用 SVG。仅在需要粒子、水、爆炸、发光和噪点等效果时,才使用 Canvas/WebGL(通过 @remotion/three 或原生 canvas)。 使用 SVG 滤镜(feTurbulence, feDisplacementMap, feMorphology, feGaussianBlur)和自定义 canvas 着色器来表现风格“材质”、划痕和污垢。 对快速动作使用 @remotion/motion-blur(或你自己的子帧累加技术)来实现运动模糊效果。 使用 Python (numpy/scipy/PIL) 进行调色板提取、程序化音频合成和 QA(质量保证)缩略图表的生成。使用 ffmpeg 进行混流、循环检查和生成缩略图表。 一切都必须基于种子和确定性。没有种子就不允许使用 Math.random()。 任何地方都不得使用外部受版权保护的素材,不得出现真实品牌标志或产品名称。提示框 UI 必须是通用的原创设计。只能使用 Google Fonts 中的字体(例如,UI 文本使用 Inter,手写笔记使用圆润的手写字体)。 目标硬件:MacBook Pro M4,24 GB RAM。保持合理的渲染并发数。 角色骨骼绑定(优先构建,这是整部影片的核心) 将 src/character/ 构建为一个规范的 2D 剪纸动画(cutout)骨骼绑定系统: 层级结构:根(root)→ 底盘(带悬挂)→ 躯干 → 颈部关节 → 头部(头盔 + 面罩 + 耳罩)→ 天线 → 旗帜。躯干 → 肩部 → 上臂 → 前臂 → 爪子(带有可替换的爪子姿势:张开、闭合、捏拿、指认、戳/打字、抓握边缘、挥手)。底盘 → 四个轮子,每个轮子都有自己的悬挂弹簧,且旋转由移动距离驱动。 面罩脸部系统(最重要的部分):眼睛是画在黑色屏幕上的形状,因此将其视为一个完全程序化的面部。设定参数控制眼睛大小、圆润度、上眼睑裁剪、下眼睑裁剪、瞳孔大小和位置、高光位置、发光强度、挤压/拉伸以及特殊形状(闪烁的星星、开心的弧线 ^ ^、平淡无聊的直线、螺旋、小红心)。在眼睛上添加微弱的扫描线和屏幕反光,使其看起来像是一块屏幕。通过在 3-4 帧内垂直挤压眼睛来实现眨眼动作。 表情目标:与设定图上的六种表情完全匹配:好奇(伴随弹出的“?”)、害羞(视线向下,看向别处,有腮红)、兴奋(开心的弧线眼伴有小爆发线)、担忧(小眼睛,流汗滴)、坚定(成角度的上眼睑裁剪)、欣喜(星星眼伴有弹出的爱心)。还要添加:面无表情地看着镜头(半闭的平眼,天线无力下垂)、惊恐(颤抖的微小瞳孔,睁大双眼)、愤怒但可爱(坚定的表情 + 屏幕闪烁橙色光芒),以及三个“换发新机(glow-up)”阶段(见第三幕)。 次要运动(跟随动作):基于阻尼弹簧效果的天线和旗帜(这是他的主要表达工具,需不断使用)、每次停止和颠簸时的悬挂弹跳、手臂摆动、身体加速或刹车时头部微小的延迟、轮子扬起的灰尘。 转身图:匹配设定图的正视图、3/4视图、侧视图和后视图,并在转身时实现干净利落的视图切换。 循环动画:向前滚动(带有设定图中的速度线和灰尘)、待机嗡嗡声(轻柔的悬挂呼吸起伏 + 偶尔的天线抽动 + 眨眼)、惊恐后退、惊奇地抬头看、握住一个小物体、向上伸手、攀爬、戳击打字。 胸部舱门:可动画化的开/关动作,有嫩芽柔和的绿色光芒溢出。 风格皮肤接口:骨骼绑定接受一个风格属性(style prop),它能在不改变几何体的情况下,改变线条粗细、填充处理、纹理、污垢、轮廓抖动(boil)、着色模型和滤镜。这是他在不同世界中保持自我的方式。 里程碑1 检查点:渲染一张“列队”静帧:包含四个视角的转身视图 + 所有六种表情的Pip,放在参考图旁边。并排比较。不断迭代,直到看过参考图的人都会说“那就是Pip”。未通过此关前不要继续。 世界(风格材质) 每个世界都是一个完整的环境组件,具有前景、中景、背景视差层,以及Pip专属的风格皮肤。构建一个共享的 WorldLayer 系统,以便所有世界都能共享摄像机和深度逻辑。 比例规则:摄像机位置放得很低,靠近Pip的视线水平(离地约20厘米)。所有东西都很巨大。人类表现为巨大的腿和鞋子,路缘石就是悬崖,水坑就是湖泊。这正是让小机器人具有电影感的关键。 基础世界:处于黄金时刻、杂草丛生的城市。与设定图顶部的插画相匹配:温暖的夕阳余晖、风化的石头和砖块、苔藓和低矮植物、远处朦胧的高楼。具有绘画感、温馨、充满生活气息。这就是“真实生活”。揭示真相的环节也使用这个世界。 动漫东京。清脆的赛璐璐着色、粗犷的轮廓线、带有虚构(非品牌)店名的发光招牌、速度线、樱花花瓣像巨大的粉色雪花一样从他身边飘过。他的面罩上会出现动漫特有的闪烁高光。 黏土村庄。柔和圆润的形状、指纹/涂抹的噪点纹理、定格动画般的步调(以“拍二”的方式渲染他)、温暖的钨丝灯光。他看起来就像用橡皮泥雕塑的一样。 中世纪战场。泥泞的田野、旗帜、远处的投石机、硝烟。穿着铠甲的战靴从他身边轰鸣而过。他在其中平静地滚动,天线躲闪着。 玩具积木城。所有东西都是由顶部带凸粒的通用塑料积木搭建而成(没有真实的品牌风格或标志),带有光滑的塑料高光。Pip被渲染出塑料光泽,轮子变得稍微有些方正。 水下。海底街道上有珊瑚路灯,鱼儿从他的面罩前游过,有焦散光影图案,排气孔冒出气泡,他的天线旗帜像海藻一样缓慢飘动。 铅笔素描。纸张纹理、石墨排线、辅助线、橡皮擦污迹,他的线条不断抖动(boiling),仿佛每一帧都在被重新绘制(匹配设定图底部的素描小图)。 贯穿始终的笑点:嫩芽。影片开始时,Pip用一只爪子小心翼翼地拿着他那根微小的绿色嫩芽(“握住小物体”姿势)。它在每个世界里都存活了下来,并随之变形:带闪光的赛璐璐动漫嫩芽、黏土嫩芽、种在破旧小头盔盆里的嫩芽、积木拼成的嫩芽、在水下吐泡泡的嫩芽、素描嫩芽。每次世界改变时,他都会保护它。这是影片的情感锚点。 标志性过渡:“重构(Regeneration)” 世界的更替必须看起来像 AI 图像重新生成一样,而不是普通的擦除转场。构建 RegenTransition(重构过渡)组件: 画面从边缘向内分解为漂浮的扩散(diffusion)风格噪点(一开始不会覆盖他的身体),保持几帧结构化噪点,然后新世界通过去噪,从粗糙的色块逐渐浮现出丰富的细节。 Pip的身体变化比世界慢一拍,短暂展示出一半旧/一半新的风格,然后瞬间切换到新的风格皮肤。在切换期间,他的面罩会出现两帧的故障效果(扫描线撕裂)。这种半切换状态是证明他一直存在的视觉证据。 每次重构时都有微妙的“嗖-噼啪”音效,在某些重构中,Pip还会发出微小的、受惊的啾啾声。 每次持续 8-12 帧。改变方向和噪点种子,使其永远不会让人觉得重复。 剧本节拍表(在 30 fps 下约 48 秒) 时间安排仅作参考;如果某个节拍稍长一点表现力更好,请自行调整。前 2 秒必须抓住观众的眼球。 第一幕:一个美好的早晨 (0:00–0:03) 低机位跟拍镜头,基础世界。Pip 沿着长满苔藓的壁架从左向右滚动,手里拿着他的嫩芽,眼神充满好奇,天线上下摆动。从滚动的半途中开始(为了实现最终的循环播放)。 在 0:02 时,第一次重构毫无预兆地发生。 第二幕:瀑布般的巨变 (0:03–0:14) 世界快速变化,每个约 1.4 秒:动漫东京 → 黏土村庄 → 中世纪战场 → 玩具积木城 → 水下 → 铅笔素描。 情感递进:一开始很欣喜(星星眼,他觉得这太棒了),接着是好奇(弹出“?”),然后是担忧(流汗滴,天线下垂),最后他在素描世界里急刹车,伴随着悬挂的弹跳和一道刹车痕。 摄像机保持锁定的跟拍构图,这样唯一改变的只有世界本身,从而让这个笑点更容易被看懂。 第三幕:提示词 (0:14–0:30) 基础世界回归。Pip 惊奇地抬头看(参考设定图中的姿势)。天空中,一个巨大的漂浮提示框淡入,散发着薄荷蓝色的光芒,带有玻璃质感且圆润,UI界面柔和且原创。文本在闪烁的光标下自动输入:“让它更具电影感(make it more cinematic)” → 敲击回车键的音效。电影宽银幕黑边瞬间切入,太阳变得极其夸张:巨大的变形镜头耀斑、耶稣光、橙青色调、慢动作的灰尘,一片充满戏剧性的树叶从他的面罩前飘过。他被强光晃得眯起了眼睛。他的天线旗帜在莫名其妙的狂风中充满英雄气概地飘扬。 “加入爆炸效果(add explosions)” 巨大的卡通橙色爆炸伴随着碎块在他身后接连绽放。他没有回头。他的眼睛变得平淡且半闭。他慢慢转过头,直直地盯着镜头。面无表情。停顿整整1秒。然后一次爆炸落在他附近,他瞬间切换到设定图中“惊恐后退”的姿势,头顶弹出“!!”,用身体护住嫩芽。 “让主角更可爱(make the protagonist more adorable)” 换发新机阶段1:他的眼睛变大变亮,出现腮红,天线上长出一个小蝴蝶结。他在水坑里看到自己的倒影,眼睛变得惊恐。 “还要(more.)” 阶段2:粉彩重绘,眼睛占据了整个面罩并带有三重高光,漂浮的爱心和闪光,他的轮子变得毛茸茸的。 “我还要(MORE.)”(更大的字体,屏幕震动) 阶段3:滑稽的极致可爱。全身覆盖毛绒玩具般的皮毛纹理,巨大的动漫眼睛,彩虹光环,伴有合唱团的“啊”声刺音效,爱心纸屑。他的头盔形状、天线和轮子仍保留着,所以他显然还是 Pip。而他真实的眼睛在那双巨大的可爱眼睛里仍然是微小且惊恐的,这就是笑点所在。 第四幕:他崩溃爆发了 (0:30–0:38) Pip 剧烈震动,然后那些可爱的状态像玻璃一样从他身上碎裂掉落。他恢复了正常,满身磨损且极其愤怒(坚定的表情,屏幕闪烁着橙色)。 他打开胸腔舱门,轻轻地将嫩芽塞进去以确保安全。舱门伴随“咔嗒”一声关闭。这是在一片混乱中唯一一个安静、温柔的节拍,它非常重要。 他向前冲刺,从一块石头上腾空而起,用两只爪子抓住漂浮的提示框边缘,将自己拽了上去,轮子在边缘上疯狂打滑旋转(匹配“伸向漂浮提示框”的姿势)。镜头随着他向上倾斜。 在提示框顶部,他用一只爪子按住退格键;旧的提示词伴随着快速的咔哒声逐字删除,他的面罩上反射出消失的文本。 他用一只爪子慢慢地、一字一顿地戳击打字:“放我出去(let me out)”。然后蓄力,重重地砸下回车键。 第五幕:定格与真相揭示 (0:38–0:47) 一切都定格了:半空中的碎片、飘落的纸屑、悬浮的灰尘,以及盒子上正摆出姿势的 Pip。所有音频被切断,陷入长达约 1 秒的死寂。 镜头开始平滑拉远。画面的边缘露出一个圆角矩形:他的宇宙原来只是手机屏幕上播放的一段视频。继续拉远:手机被支在一个有缺口的马克杯上,放在一个堆满备件、电线、螺丝和废料的杂乱工作台上(“用明天的残羹剩饭建造”)。坐在它前面,在这个巨大的手机旁显得很微小的,是另一个 Pip,有着同样的磨损、同样的天线,正在观看。 第二个 Pip 的眼睛缓慢地眨了一下。他的天线微微下垂。发出一声微弱、安静的啾啾声。 第六幕:循环 (0:47–0:50) 在第二个 Pip 的头顶,同样的薄荷蓝色提示框淡入并输入:“让它更具电影感(make it more cinematic)。” 他的眼睛慢慢向上滑动看向提示框。他的天线旗帜变得僵硬。伴随着回车键的音效,硬切回影片的第 1 帧。 循环工程设计:最后一个镜头的构图、灯光,以及重构闪烁的开始,必须让切回第 1 帧的感觉显得是有意为之。音乐必须在切换时无缝循环。通过将视频与其自身拼接(使用 ffmpeg)并观察接缝来验证。 摄影机与电影摄影术 虚拟摄像机系统:位置、缩放、旋转、手持微震动(基于种子的噪点)、爆炸引起的震动冲击、攀爬时的镜头倾斜、揭示真相时的推车拉远镜头。 默认情况下采用低摄像机高度以彰显他的微小比例。浅景深效果:模糊的前景草地/卵石和柔和的背景,就像使用了微距镜头一样。 深度:每个世界至少 4 个视差层。大气透视效果(薄雾,随距离增加而降低饱和度)。 快速移动、碎片、跳跃和攀爬时要加入运动模糊。 每个世界的灯光:在骨骼绑定上使用渐变叠加和正片叠底的阴影层来实现主光/辅光/边缘光。面罩的发光应在附近的表面和他自己的爪子上投射出微弱的暖光。每个世界中他的头盔上都要有边缘光。 整个画面的电影级后期处理:细微的胶片颗粒、柔和的暗角、以及仅在“电影感”节拍中出现极轻微的色差。 构图:将他保持在清晰的三分线上。他的眼睛必须在手机屏幕尺寸下也能看清楚,因为大多数人将在手机上观看。 文本与排版 天空中的提示词:干净的 UI 字体,小写字母,以自然的人类节奏打字(非匀速;有短暂的停顿,在某个地方制造一次小的打字错误并退格以增加真实感)。 文本必须能在不到一秒的时间内在手机上阅读完毕。在 360 像素宽度下进行测试。 没有字幕,没有片名。影片冷开场。 声音(程序化生成,原创) 用代码生成所有音频(Python 合成或离线 Web Audio)并使用 ffmpeg 进行混音: Pip的声音:由带有音高弯音的正弦波/FM 音调构建而成的原创合成啾啾声、嘟嘟声和颤音。设计一个小型的“情感词汇表”:好奇上扬的啾啾声、开心的颤音、担忧的波动声、受惊的吱吱声、脾气暴躁的低沉嗡嗡声、微小的叹息声。他从不说话。 Pip的身体音效:与手臂和头部运动匹配的伺服电机运转声、轮子在砾石/石头上滚动的碾压声、悬挂的嘎吱声、舱门开合的咔嗒声、待机时柔和的电流嗡嗡声。 配乐:一首轻快、可循环的温暖配乐,其乐器配置会随每个世界而改变(动漫世界用古筝/合成器,黏土世界用木制马林巴琴,中世纪世界用鼓/号角,积木世界用塑料咔哒声,水下世界加沉闷的滤波效果,素描世界用铅笔刮擦的节奏)。 音效(SFX):重构时的嗖-噼啪声、键盘打字的咔哒声、回车键重击的“砰”声、带有低频的爆炸声、合唱团“啊”的刺音效、玻璃碎裂声、定格时的完全死寂,然后是揭示真相时安静的工作室环境音(滴答作响的钟表声,远处低沉的嗡嗡声)。 响度标准化至 -14 LUFS 左右。将分轨文件放入 audio/stems/ 中,以便日后可以替换为已授权的音轨。 制作工作流与自我迭代循环 按以下顺序工作,不要跳过任何检查点: 计划:编写 docs/character_bible.md、docs/shotlist.md(包含每个镜头的帧范围、摄像机、表情、天线状态、世界环境、音效)以及 docs/style_guide.md。在构建之前给我看下镜头列表。 骨骼绑定:构建 Pip,通过列队静帧的检查点(见第3节)。 世界环境:将每个世界构建为包含 Pip 在内的独立静帧。将全部 7 个渲染成一张缩略图表。检查角色的身份辨识度和比例感。 过渡动画:构建 RegenTransition,渲染一个 5 秒的测试。 动态分镜(Animatic):以 960×540 的分辨率组装整部影片,包含粗糙的运动和占位音频。观看它。优先修复节奏问题。 完整动画渲染,然后进行打磨(次要运动、缓动、时间节奏、天线表演),最后进行终期处理(灯光、噪点颗粒、模糊、污垢)。 音频处理和混音。 最终渲染。 对于每一个镜头,至少运行 3 次此批评循环: 使用 npx remotion still 在关键帧处渲染 3-5 张静帧,打开并仔细观察它们。 对以下项进行 1-10 的打分:Pip 与参考图的匹配度,能否从眼睛+天线瞬间读取情绪,无声情况下笑点是否清晰,构图,比例感,深度,灯光,细节打磨程度,在手机屏幕尺寸下的可读性。 将分数和三大问题写入 docs/review_log.md 中,修复它们,重新渲染,重新打分。继续此过程,直到每个类别的分数至少达到 8 分,然后再进行下一步。 在每次完成完整的预览渲染后,制作一张 ffmpeg 缩略图表(每 0.5 秒一帧),并在一张图中审查整部影片的流畅度。 在评审时保持诚实。如果某些东西看起来很廉价,说出来并修复它。要寻找的常见失败点包括:僵硬或毫无生气的天线、轮子在滑动而不是滚动、眼睛看起来像贴纸而不是发光的屏幕、缺少悬挂系统的重量感、看起来千篇一律的转场过渡、模糊不清的文字以及角色比例失调。 交付物 out/pip_final_1080p.mp4:影片本身。 out/pip_loop_check.mp4:连续播放两次的影片,以验证循环效果。 out/poster_frame.png:用于 X(推特)发布缩略图的最佳单帧(可能是在爆炸背景下 Pip 面无表情地盯着镜头的画面)。 out/lineup.png:跨越所有世界的 Pip 列队图。 结构清晰且附带注释的源代码,以及包含如何重新渲染说明的 README。 从第一步开始。在开始构建之前,如果有任何必要的问题请问我,否则请自行做出有力的创意决策。
显示更多