摇摆生成对应 Cubism Editor 5.1 的「揺れの自動生成」:选中弯曲变形器,自动在 -1 / 0 / 1 上生成摆动的关键形。在此基础上它还做了这些事:
- 选中网格也可以,会自动给网格包一层贴合的弯曲变形器;
- 分左右和上下两种摇摆,两种可以同时开;
- 可以让尖端保持水平、底部平行摆动,用一个变形器模拟多束头发一起摆;
- 同时生成对应的物理摆锤;
- 设置随工程保存,随时可以重新打开调整。
- 画布(物体模式)右键选中的网格或弯曲变形器 →「生成摇摆...」。多选时一起注册。
- 层级树里右键网格或弯曲变形器 →「生成摇摆...」。已经生成过摇摆的对象显示为「编辑摇摆...」。
- 物理面板 →「+ 新建」→「为选中对象创建摆动…」;物理组列表里摆动来源的组可以从「⋯」菜单「编辑摆动」打开。
打开后当前画布切到编辑画布(不再是预览),进入摇摆编辑。编辑时不会弹出遮挡画布的窗口:形状直接在画布上拖出来,设置在工作区左下角浮动的摇摆面板中;点标题可折叠,点标题栏的「↗」可移到独立窗口(「↙」停靠回工作区)。
- 多个目标共用同一组参数和摆锤。
- 编辑期间画布被锁定:点在手柄以外的地方不会选中或拖动其它对象,右键菜单也不弹出。
- 要追加目标,在层级树里选中其它网格,再点面板上的「注册选中对象」。
- 旋转变形器不能作为目标。
画布上画的是摇摆矩形(宽为支点边、长为支点边中点到对边中点)的三个轮廓:静止形状(虚线)、+1 姿态(实线)、-1 姿态(淡色),并画出两个姿态的中心线。固定边会加粗显示。所有手柄都放在当前编辑方向的 +1 姿态上,拖到哪里,+1 姿态的那一部分就到哪里:
| 手柄 | 位置 | 拖动效果 |
|---|---|---|
| 圆点 | 尖端 | 横向拖设幅度,拖到另一侧就是翻转;沿轴拖设上翘 / 下坠。伸缩弹跳时只沿轴方向起作用 |
| 菱形 | 中心线中点 | 设柔软度:中段跟着尖端走得越少,根部越挺 |
| 小方块 | 尖端两角 | 设尖端的放大 / 缩小;弯曲时也设底部平行程度(尖端边保持多水平) |
| 十字圆点 | 支点边中点 | 平移整个摇摆矩形,支点边中点跟随指针 |
| 空心圆 | 静止中心线越过尖端的延长处 | 绕支点中点旋转整个摇摆矩形(轴角),只看指针方向;接近 0° 时吸附回 0° |
| 空心方块 | 其余三条边的中点 | 点击后把这条边设为支点 |
所有修改都会实时显示在模型上。面板上的「预览摆动」让参数在 -1 和 1 之间来回摆动(多段时逐段错开,上下与左右错开)。「生成」/「应用」或 Enter 会写成一条历史记录;「取消」或 Esc 不留任何改动。
「摇摆方向」指尖端在屏幕上的运动方向;「支点」是固定不动的那条边(按格点的行列计算,第 0 行是上边)。两者的组合决定变形方式:
| 方向 | 支点 | 变形 | 典型用途 |
|---|---|---|---|
| 左右 | 上 / 下 | 弧形弯曲 | 发丝、飘带、尾巴 |
| 上下 | 左 / 右 | 弧形弯曲 | 横向伸出的饰物、侧边飘带 |
| 上下 | 上 / 下 | 伸缩弹跳 | 耳坠、蓬松发梢、胸 |
| 左右 | 左 / 右 | 伸缩弹跳 | 很少用 |
- 弧形弯曲:沿中心线弯曲时长度保持不变,所以尖端摆出去时会自然上抬,不会像单纯平移那样被拉长。
- 伸缩弹跳:尖端沿支点方向伸长或缩短。伸长时变窄,压缩时变宽,保持体积感。
- 自动支点:
- 细长的对象取上边;
- 横向的对象取离身体中线更近的一侧。
默认的摇摆矩形与变形器对齐。素材斜着垂下(侧发、斜挂的饰物)而变形器仍是正的矩形时,可以拖尖端外的空心圆,把整个摇摆矩形绕支点边中点旋转,范围 ±75°:
- 正值让尖端转向支点边的末端(上 / 下支点为右端,左 / 右支点为下端),镜像的父空间也跟着镜像。
- 矩形大小不变,只是转了方向;弯曲垂直于转后的轴,弧形保长、上翘、伸缩、平行都在转后的矩形里计算,画布上的轮廓、固定边、支点和尖端手柄也一起转。
- 固定的是矩形的支点边:它后面的部分不动,格点原来的边若有一端伸到支点边前面,会随靠近根部的弯曲轻微移动。
- 拖支点边中点的十字圆点可以平移整个矩形,例如把支点下移到发根实际所在的位置,上面的部分就保持不动;旋转绕平移后的中点进行。
- 平移量按矩形自身比例保存:沿轴以长度计、沿支点边以宽度计(各 ±1),所以目标变形器的各个关键形缩放、移动后仍落在素材的同一位置。
- 轴角和平移属于整个摇摆,两个方向共用;面板上显示当前数值,各自的「归零」恢复默认。点击其它边改支点时两者都归零。以前保存的摇摆按 0 打开。
面板上「摇摆方向」的两个选项可以同时勾选,两者作用在同一个变形器上。
- 两个方向各有自己的参数、形状设置和摆锤。
- 同一支点下两者必然是一个弯曲、一个伸缩:生成时先伸缩再弯曲,所以组合姿态是精确的,不是两者简单相加。
- 两个方向都开时,面板多出「编辑」一行,选择画布手柄对应哪个方向。
头发没拆分时,左侧发、刘海和右侧发都在同一个变形器里。普通的弯曲会让每个横截面跟着中心线一起转,整块像一块板一样转动:尖端边倾斜,一侧上抬、另一侧下沉,看起来很怪。
「平行」设置控制横截面转多少:
- 0:横截面跟着弯曲转,整块像一块板一样摆,适合单根的发丝、饰物。
- 1:横截面保持水平,尖端边不倾斜。每一列像挂在固定边上各自的位置,和旁边的列并排平移,看起来就像多束头发一起摆。
- 中心线的弧线不受影响,所以幅度、上翘、柔软度的意义不变。
- 刘海这类靠近固定边的短束,本来就处在弯曲量小的位置,自然摆得少;不需要拆分,也不需要额外的变形器。
发丝和布料预设默认偏向平行(发丝左右 0.7),饰品预设为 0。在画布上拖尖端两角的小方块即可调整。
面板里只放画布上没有对应位置的选项(摇摆方向、编辑方向、自动估计、分段、自动支点、物理),其余几项只读显示当前方向的数值。
| 设置 | 作用 |
|---|---|
| 摇摆幅度 | ±1 时尖端移动的距离,按支点到尖端的长度计(0.25 = 四分之一长度) |
| 上翘 / 下坠 | 弯曲时尖端额外抬起(正值)或下坠(负值) |
| 柔软度 | 0:整条均匀弯曲;1:根部保持挺直,主要是尖端在动 |
| 放大 / 缩小 | ±1 时靠近尖端的部分变宽或变窄 |
| 平行 | 0:整块像板一样转;1:尖端边保持水平,各列并排摆动 |
| 轴角 | 摇摆矩形绕支点中点旋转的角度(±75°),用于斜挂的素材 |
| 平移 | 摇摆矩形的支点边中点沿轴 / 沿支点边的偏移,按长度 / 宽度计 |
| 左右翻转 | 把 +1 和 -1 的方向对调 |
| 分段 | 每个方向 1–3 段,每段一个参数。第 k 段只弯曲它下面的部分,物理上共用一根多节摆锤,下面一段比上面一段晚一拍,形成甩鞭式的跟随 |
| 自动估计 | 发丝 / 饰品 / 布料,给出一组初始形状和摆锤参数;摆锤长度按目标的像素长度估算 |
参数不存在时会自动创建(范围 -1..1),命名为 ParamSwing<id>,两个方向都开时加 _X(左右)/ _Y(上下),多段时再加 _1、_2…。改变方向或段数时参数会按这个规则重新命名。如果选用已有的参数,关键放在它的最小值、默认值和最大值上。
以前保存的摇摆没有「平行」设置,打开时按 0 处理,保持原来的样子。
勾选「为此摇摆生成物理摆锤」后,导出的 physics3.json 和 cmo3 里会多出摆锤物理组:
- 每个方向一个摆锤。只有一个方向时组名是
PhysicsSwing_<id>;两个方向时是PhysicsSwing_<id>_X和PhysicsSwing_<id>_Y。 - 左右:输入与前后发相同,头部和身体的角度 X(X 类型)、角度 Z(角度类型)。
- 上下:输入头部和身体的角度 Y、以及小权重的角度 Z。
- Cubism 的摆锤杆是刚性的,一根垂直挂着的摆对上下平移没有反应。
- 所以这里把角度 Y 当作横向(X 类型)激励输入,再用摆的角度去驱动上下形态。
- 分段:每段对应物理组里的一个摆锤,第 k 段参数由摆锤数为 k 的输出驱动。
摆锤也列在物理面板里,可以在那里直接编辑(输入、输出、各摆锤的动力学等)。在物理面板里修改后,以物理面板的版本为准,摇摆面板中的摆锤数值不再生效,面板会提示;在物理面板中「恢复生成值」即回到按摇摆生成的摆锤。对同一输出参数新建的自定义组会替换掉对应的摆锤。删除摇摆或改变方向时,旧摆锤的修改一并清除。
摇摆是一个「生成器」:每次重建模型时,都会按目标变形器当前的形态重新计算,然后在后面加上摇摆轴。所以:
- 目标原有的关键轴(例如角度 X)都会保留。每个原有关键形都会各自展开出摇摆的各个形态。
- 这些摇摆轴归摇摆所有,手动改这些轴上的关键形,重建后会被覆盖。
- 想手动微调时,在面板上点「烘焙为关键」:
- 当前形态会写成普通关键形,之后可以自由编辑;
- 摆锤保留,摇摆只剩物理部分。
- 「删除」会连同生成的轴和自动创建的参数一起移除。
MCP 用 swing_put 新建或替换摇摆、swing_delete 删除摇摆;参数放在 {"request": {...}} 中,并带 project_id、state 和 request_id:
swing_put按id写入,targets为网格或弯曲变形器。只要一个方向时,直接在顶层写kind(lateral/vertical)、segments、parameters和形状字段(magnitude、lift、softness、zoom、parallel、flip)。- 组合两个方向时用
motions: [{kind: "lateral", ...}, {kind: "vertical", ...}],每项带自己的字段、参数和physics。 - 顶层的
fulcrum选支点边,tilt为摇摆矩形绕支点中点的旋转角(度,±75),offset_along/offset_across为矩形的平移(按长度 / 宽度计,±1),两个方向共用。preset(hair/accessory/cloth)对应面板的自动估计。 - 省略
physics时,按目标尺寸估算摆锤;physics_enabled=false表示不生成摆锤。 swing_delete的bake=true等同于「烘焙为关键」。
画布上的摇摆ç¼
3053
–辑对应试听会话,提交前不进入文档和历史:swing_preview 以 mode=begin 和 targets 开始,之后用 update、kinds、segments、preset、physics、select、handle(与画布手柄相同)、play、cancel 修改;swing_preview_get 读取草稿、手柄位置和播放姿态,swing_preview_render 渲染当前姿态,swing_preview_commit 提交一次。swing_preview 和 swing_preview_commit 返回后台任务句柄,用 job_wait 取结果。
workspace_inspect 的 scope=swings 列出当前所有摇摆。