**Splash** 是一种简单且易于阅读的色彩格式,它使用 3 位数字来表示 RGB 通道,每个数字的范围从 0 到 9。例如,900 代表纯红,000 代表黑色,999 代表白色。 作为一种情感化工具,Splash 通过提供仅 1,000 种颜色的有限选择来帮助创作者克服选择困难,消除寻找“完美”色调的压力。它具有高度灵活性:你可以通过将 0–9 映射到 0–255 来通过数学方式生成颜色,也可以使用查找表来定义自定义的品牌色板。 由于该格式避免了字母和复杂的语法,它在代码中非常易于实现——无论是通过简单的函数、CSS 变量还是预设的样式表。该系统旨在实现“顺滑”与易用,鼓励实验而非追求完美。通过限制选择,Splash 使设计过程更快、性能更高,并最终带来更多的自由。
本项目提供了一套轻量级、与渲染器无关的实时抖动物理标准,在简单的布娃娃系统与复杂的软体模拟之间找到了平衡点。通过使用 UV 映射权重绘制和阻尼弹簧骨骼,开发者可以定义出能随父级运动而真实抖动的柔软区域。
**核心组件:**
* **`jiggle-physics.js`**:纯粹的模拟引擎,基于父级的速度和加速度计算阻尼弹簧偏移量。它与渲染器无关,不需要 DOM 或 WebGL,可轻松集成到任何游戏循环中。
* **变形逻辑**:采用简单的通用公式 `vertex += weight * boneJiggle` 来驱动运动,从而实现局部的“肉体回弹”以及挤压和拉伸效果。
* **资源标准**:使用 UV 映射的权重纹理来定义柔软度(0–1)和骨骼分配。这种方法性能极高,每个顶点仅需一次纹理查找。
随附的 WebGL 演示(`jiggle-app.js` 和 `index.html`)展示了该系统的实际运行效果,其中包含用于绘制权重、调整物理参数(刚度、阻尼、重力)以及测试各种几何体的工具。该系统专为广泛的可移植性而设计;任何支持基础向量数学的引擎均可实现此标准。