
做角色动画,「软」是最难装出来的一层。肉要压得下去、挤的时候要鼓出来、撞一下要抖、被戳要泛涟漪——这些用骨骼 K 帧做不出来,用物理模拟又慢又难控(还要等缓存)。很多人的处理方式是干脆不做,于是角色看起来像塑料。
SquishyFX 的做法完全不同:不用模拟,用 Geometry Nodes 实时算。你给网格加一个修改器、放一个碰撞体,然后拖动碰撞体,就能看到表面实时地陷下去、四周鼓起来、松开还在抖。官方页面上所有动画都是直接从 Blender 视口(实体着色、什么都没渲染)截的——不是渲染完才好看,是一边拖一边就这样。
它给了六个效果,共用一套碰撞核心:Squish(纯压缩)、Squish & Inflate(压缩+充气)、Squish Organic(有机皮肤,位移体积形成跟着碰撞体走的隆起边缘)、Fat Jiggle(肥肉抖动,一次冲击后重量继续晃)、Ripple(涟漪,碰撞体离开后还会自己响完)、Penetration(插入时开口张开并咬住,不穿模)。六个效果共用同一个接触求解器,所以它们的长相是一致的——这点比六个各自为政的修改器重要得多。
最值得说的是它「不怎么做」:大多数人做软体形变的第一反应是把顶点投影到碰撞体最近点。SquishyFX 的 README 里明确说这条路是错的——它会把顶点吸到表面上、把碰撞体的轮廓像盖章一样印进网格、沿边缘捏出脊线,永远不像肉。它换成了按真实软组织的做法处理体积。这种「知道错在哪」的设计,通常意味着作者真的在动画里被折磨过。
配套的东西也齐:12 个现成预设(Soft Flesh、Memory Foam、Elastic Rubber、Glute Jiggle、Heavy Fat、Squishy Jelly、Water Surface、Soft Balloon、Tight Grip、Wet & Loose、Pixar Flesh、Bouncy Rubber)、顶点组限定生效区域、碰撞体集合管理、一套冲量系统(晃动顺着冲击方向抛出去再自然衰减,不是关键帧噪波)、以及烘焙成关键帧形态键(交付给没装插件的人)。
官方数据:100+ 销量、100+ 下载、6 条评分、上架 2 个月、Blender 4.2 – 5.2、GPL、Blender Extension Compatible: Yes、$15(原价 $20),另有免费精简版可以先试,和 SpringFX 打包 $24.99。本站包内实测 v3.3.0,4,695 行代码、15 个算子与面板、12 个预设全部内置。
一、安装与最快上手(三步看到效果)
1)Preferences > Add-ons > Install from Disk,选 squishyfx-3.3.0.zip,启用;
2)选中角色网格,在 SquishyFX 面板点 Apply Effect 选一个效果(会按需生成节点组并挂上修改器);
3)放一个碰撞体(或用 Add Collider Sphere 现建一个球),把它标记为碰撞体 / 收进 SquishyFX Colliders 集合,然后拖它。
想让效果只出现在某个部位(比如只在小腿、只在脸颊),画一个顶点组并在 Mask 里指定就行——不用切模型。
二、六个效果分别什么时候用
01 Squish(纯压缩):碰撞体压哪儿哪儿平,体积往四周绕开流走。静态姿势、接触镜头的主力——坐着、靠着、被人按住。
02 Squish & Inflate(压缩+充气):压力总要有去处,压进去的体积鼓到别处,看起来是「饱满」而不是「瘪了」。做挤压类接触(握手、抱、挤地铁)用它比纯 Squish 真实。
03 Squish Organic(有机皮肤):位移的体积沿表面形成一圈跟着碰撞体走的隆起边缘,压痕带上有软褶皱。做手指按皮肤、脚踩软垫这种「皮肤张力」最对。
04 Fat Jiggle(肥肉抖动):一次冲击,重量继续晃。晃动顺着打击方向抛出去再自然停,不用噪波、不缓存。做肚腩、臀、脸颊的次级动画。
05 Ripple(涟漪):波纹从撞击点精确向外扩散,碰撞体离开后还会自己响完。做水面、果冻、被弹一下的表面。
06 Penetration(插入):开口会张开并咬住插进来的碰撞体,不穿模。这类效果以前基本只能靠手工 K 形态键。
三、碰撞核心:为什么它看起来像肉,而不像贴图
README 把原理写得很清楚,值得单独说——理解它,每个滑杆就不再是玄学:
① 内外判定用两路探测:沿顶点法线的射线(Normal probe,如果第一个打中的是碰撞体的背面,说明顶点在里面)+ 固定双轴射线(沿一个通用方向和反方向各打一条,不依赖顶点法线)。第二路专门抓第一种漏掉的情况:法线与碰撞体表面相切、有突出体积、法线射线从另一个碰撞体的正面穿出。
② 否决(veto):只有反方向也打中碰撞体,这个顶点才算在里面——防止把外面的点误判成内部。
③ 自碰撞范围保护:防止网格跨过身体把自己当成碰撞体。
④ 不做「投影到最近点」:作者原话说这会让顶点被吸到表面、把碰撞体轮廓盖进网格、沿边捏出脊线——所以它按真实软组织的体积行为来处理。
四、冲量系统:抖动不是噪波,是冲量包络
很多人做 jiggle 的方式是给属性叠噪波,结果抖动没有方向感,看起来像在抖机器。SquishyFX 用的是一套冲量(impulse)包络:冲击在碰撞发生的方向上注入能量,晃动沿打击方向被抛出去,然后自然衰减。所以 Fat Jiggle 的动感是「被打了一下」,不是「一直在抖」——这就是它比噪波高级的地方。
五、烘焙:交付给没装插件的人(或导游戏引擎)
Bake to Shape Keys 把实时效果转成逐帧关键帧形态键。它做得聪明的一点:只存 SquishyFX 的增量——每帧算两次(开效果 / 关效果),差值写回 Basis。所以骨骼姿势、已有形态键、置换修改器都不会被重复烘焙(这是很多烘焙工具的通病)。
测量时拓扑类修改器(Mask、Subdivision、Mirror…)会临时关掉再自动恢复,连当前帧、播放状态、冲量包络都会一起还原。Bake Current Frame 是单帧版。勾上 Disable modifiers after baking 可以避免形态键和实时效果叠加。
六、12 个现成预设
包里内置:Soft Flesh(软肉)、Memory Foam(记忆棉)、Elastic Rubber(弹性橡胶)、Glute Jiggle(臀部抖动)、Heavy Fat(厚脂肪)、Squishy Jelly(果冻)、Water Surface(水面)、Soft Balloon(软气球)、Tight Grip(紧握)、Wet & Loose(湿滑松垮)、Pixar Flesh(皮克斯式软肉)、Bouncy Rubber(弹跳橡胶)。
预设是按效果类型分开的——Fat Jiggle 的预设只会出现在 Fat Jiggle 修改器上,不会污染别的效果。你也可以 Save Preset 存自己的参数组合,Delete Preset 删掉。
七、其它工具与维护
· Detect Colliders:把标记过的物体一次性收进 SquishyFX Colliders 集合;
· Add Collider Sphere:直接建球形碰撞体并注册;
· Rebuild Node Groups:升级插件后必须跑一次——旧 .blend 里的节点树是按当时版本生成的,重建会按接口名重映射已有修改器,你调好的数值不会丢;
· 效果可以堆叠(它和别的修改器一样在修改器栈里),关掉修改器网格一丝不变。
八、适合谁 & 不适合谁
适合:角色动画(脸颊、肚腩、臀、软组织的次级动画)、风格化/卡通角色的「橡皮感」、需要快速迭代不想等模拟的商业项目、道具与软体物体的碰撞表现(坐垫、果冻、气球)。
不适合:需要真实布料/流体级别的物理精度(那还是得上模拟);以及纯硬表面机械项目——它整套逻辑是为「软」服务的。
可以先试:官方提供免费精简版(核心软体形变 + 部分功能),Pro 版解锁全部效果与预设。这点值得表扬——软体效果这种「不上手感觉不出来」的东西,能免费试比看十个 GIF 有用。
包内实测:__init__.py 里 "version": (3, 3, 0),README 首行写 Non-destructive soft-body effects for Blender 5.2, driven by Geometry Nodes。代码规模:geometry_nodes.py 2,102 行、operators.py 1,723 行、presets.py 318 行、ui.py 320 行、properties.py 66 行、__init__.py 73 行,合计 4,695 行(另有 build_release.py 93 行是作者的打包脚本)。15 个 bl_idname:squishyfx.apply_effect / apply_preset / save_preset / delete_preset / detect_colliders / add_collider_sphere / remove_effect / bake_shapekeys / bake_current_frame / rebuild_node_groups + 两个预设菜单 + 三个面板(SQUISHYFX_PT_main / _stack / _bake)。_ref_dump.json 是节点组接口快照(能看到 Socket_* 与「Collision 🎴」面板分组)。
官方元数据:售价 $15(划线原价 $20),另有免费精简版;销量 100+、下载 100+、6 条评分;上架约 2 个月;Blender 4.2 – 5.2;Blender Extension Compatible: Yes;Extension Type Add-on;渲染引擎 Cycles, Eevee;许可证 GPL;作者 auron3d;收录于套装 SpringFX + SquishyFX + Free Bonus Addon($24.99)。
本站目录里放了什么:squishyfx-3.3.0.zip(82,373 B,扩展格式、可直接 Install from Disk;内部 squishyfx/ 目录含上述 6 个 py 与 _ref_dump.json)+ 原版英文 README(原版 README(英文).md,16,749 B:完整效果参数表、碰撞核心原理、冲量系统、烘焙、算子参考、修改器栈位置、排错、更新日志、架构)+ 中文 安装说明.txt(4,057 B),合计 3 文件 / 103,179 B,远端分享目录已逐字节核对一致。
为什么值得收:软体次级动画一直是 Blender 的空白地带——物理模拟太重、形态键太手工、噪波太假。SquishyFX 用 Geometry Nodes 把「实时、非破坏、碰撞可靠」三件事同时做到了,而且它的碰撞求解器是真的在解决「像不像肉」这个问题,不是套个膨胀效果。上架两个月 100+ 销量、6 条评分,对一个 $15 的细分工具来说是很健康的数据。
原产品页:https://superhivemarket.com/products/squishyfx
封面图片来自作者官方产品页。本文为中文整理,功能与兼容性信息以作者官方页面与包内说明为准。资源仅供学习交流,商业使用请购买正版授权。













暂无评论内容