从这里开始:先和对方商定作品,再动手做
anidoodle 能用许多种手笔做许多种东西。一件作品没有哪一点是事先定死的:长度、形状、画风、声音都不是。所以第一件事是弄清这个人想要什么,要快,一次问一个问题,并且每一处空缺都用一个明说出来的默认值去填,而不是靠猜。
需求问询(只问请求里没定下来的)
每轮只问一个问题,给出简短的选项,把你的推荐放在最前面。如果对方说「你来挑」,那就挑,用一句话说明挑了什么、为什么,然后接着往下做。
- 你要做什么? 一张静帧、一段循环动画、一幅自己把自己画出来的画、一部故事影片、一部讲解片、一张信息图、一部发布片或产品视频、一件交互式网页作品、一堂绘画课、一个角色,或者照着对方的图匹配出来的画风。入口页里的表格把每一种分派到它的工作流文件。
- 用哪种画风? 给对方看图库(风格总览图,一种手笔一格;列出每种手笔所用媒介的清单是 references/styles/index.md)。推荐两三种适合题材和受众的手笔,每种给一个理由。另外提供两条路:
- 「照我的图来」:对方带来一张图,你改编出它的手笔(adapt-a-style.md)。
- 「自家画风」:对方以前已经选定过一种;从
styles/house/载入。
- 什么形状、放在哪里? 方形
1x1、竖版9x16、宽屏16x9、竖幅4x5,或者对方说出的任意宽 × 高。一份源可以出好几种形状(references/formats.md)。 - 多长? 任意长度。三秒的贴纸、九十秒的故事、五分钟的讲解片、二十分钟的课。永远不要给长度设上限,也永远不要替对方假定长度。长作品分章节(long-film.md)。
- 要声音吗? 无声,或者配乐:说出一种音乐风格,以及每一段的情绪(references/music/)。对方自己的旁白或音轨由对方自带;其余一切由 anidoodle 作曲并演奏。
- 要角色吗? 一个新角色(只建一次,character-consistency.md)、对方已经写在某个模块里的角色,或者来自对方图片的角色(作为参考,只有对方要求时才嵌入)。
一旦能动手做了,就停止提问。两个问题答得好,胜过问六个。
对方没说时的默认值
| 未定的问题 | 默认值 | 为什么 |
|---|---|---|
| 画风 | 配方最契合题材的那种手笔,点出名字并给出理由 | 画风是一个决定,不是掷硬币 |
| 形状 | 社交平台用 1x1,网页头图和 YouTube 用 16x9,Reels/Shorts/TikTok 用 9x16 | 放在哪里决定了形状 |
| 长度 | 静帧:一帧;循环动画:4-8 秒;故事影片:长到足够走完它的故事弧线;讲解片:每章一个概念 | 长度由内容决定,不由模板决定 |
| 声音 | 影片配上风格契合其情绪的配乐;循环动画或静帧无声 | 无声也是一种选择 |
| fps | 30(要手绘卡通感用 24,纸艺和定格动画用 12,一拍二) | 媒介自身的节奏 |
动笔之前先写下来
在项目里放一份简短的 brief 文件:类型、画风(以及理由)、形状、长度、声音(风格 + 各段情绪)、角色、一句话的构想。对方说过的每一句话都用对方的原话写进去。你自己决定的每一项都标明是你定的,好让对方一句话就能否决。
第一次完整渲染之前
- 有选项没定时,把选项做成一张静帧对照表(一个转场、一种手写字的媒介、一套配色):三到六个变体并排摆出来,对方一条消息就能选定。然后再渲染。
- 审静帧要审设计,而不只是审有没有东西重叠(references/craft-bar.md)。
- 自己把自己画出来的画要声明这一点:在影片的
meta里写kind: "drawing"。一个点描的点或一道排线改动的面积远不到画面的 0.5 %,所以不声明的话,闸门会把一段绘制判为冷场;声明之后,冷场按 1 秒的窗口、0.02 % 的下限来判,而且手在两遍之间可以停半秒。meta: { title, W, H, fps, bpm, durationFrames, kind: "drawing" }。
「活的」意味着真正的运动
当有人要求一个主体「活起来」「游起来」或「动起来」时,原地循环看起来就像一张 GIF。主体要穿行于一个随它移动而变化的世界,镜头跟着它走。现成的示例是锦鲤:koi.ts 接受一个可选的 KoiLive(时间、幅度、路径上的一个姿态),koiWorld.ts 让它游过一个比画面大得多的池塘,从摆放在世界里的睡莲叶下面滑过,尾迹从它的鼻尖向外扩散。
做法:
- 把运动作为可选输入加到主体的绘制函数上(
live?: KoiLive)。不传它时,代码路径就是静帧,原封不动。 - 守住静帧:改动前后各用
still.mjs渲染一次静帧样张,比较它打印出的 md5。静帧必须保持逐像素一致;如果它变了,说明重构把改动漏了进去。 - 用世界单位摆放世界,不用屏幕单位,这样场景会随着主体移动而变化;让镜头跟随(references/camera.md)。
- 活的版本的第 0 帧等于静帧(同样的姿态、同样的构图),这样影片可以从静帧卡片无接缝地交接到活的那一版。