马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
1.22版本的插件有解算后骨骼会消失问题,这边做了下简易修复。
这个插件的bug还挺多的,后面有时间再慢慢修吧
目前发布的版本是无混淆源码版本,如果有能力的大神可以自行修复~
这边久象征性的收2个券赚点辛苦费了~
# SpringMagic v1.23 更新日志
- 维护基线:`SpringMagic_Enhanced_v1.22_deobfuscated_full.ms`
- 当前源码:`SpringMagic_v1.23.ms`
- 源码 SHA-256:`7E3FFFF322EBC88308F9ADDF365BD311A9EAD587C19EAFF1D96D33439EF7BFAC`
- 维护记录日期:2026-07-24
## 版本定位
v1.23 是求解稳定性维护版。它保留 v1.22 的界面、求解参数和旧动画层工作流,重点修复退化向量、非法矩阵、非有限四元数以及时间值混用可能导致的 NaN、异常旋转或无效关键帧写入。
## 新增
### 数值安全检查
- 新增有限数、`Point3`、四元数和 `Matrix3` 检查。
- 新增安全向量归一化,拒绝零长度、近零长度和非有限向量。
- 新增矩阵可用性检查,通过归一化基向量和相对行列式识别退化矩阵。
- 新增安全四元数归一化,阻止零长度或非有限四元数进入写入阶段。
- 角度计算会先归一化向量,并把点积限制在 `[-1, 1]` 后再执行 `acos`。
- 当两个有效方向需要旋转但叉积退化时,使用稳定的正交基构造备用旋转轴。
### 可定位的失败信息
- 求解检测到非法数据时,在写入该无效变换前停止。
- 错误信息包含骨骼名称、目标帧和失败阶段,例如 Twist X、Twist Y、Aim、Solved Matrix 或 Local Rotation,便于定位具体输入问题。
## 修复与调整
### 求解时间步
- 子帧步长改为显式帧值:`1f / Substeps`。
- 自定义起止帧统一转换为帧值,不再混用普通数值与 `time`。
- Bake 主循环改为按明确的整数帧数量迭代,保持起止帧包含语义。
- 新增无效或反向 Bake 帧范围检查。
- Loop 起始过渡使用明确的帧偏移,并在有效循环帧数小于等于零时提前停止,避免除零。
### 旋转求解
- Twist X、Twist Y 和 Aim 阶段不再直接对未经验证的向量调用 `normalize`、`cross` 和 `acos`。
- 每个关键中间矩阵写回前都会检查有限性与非退化性。
- Biped、CAT 和普通 PRS 节点写入前统一验证目标四元数;普通 PRS 节点还会验证父级旋转及最终局部旋转。
- 零角度情况下跳过无意义的旋转轴计算和旋转写入。
## 兼容性与行为变化
- 未引入新的场景所有权协议或自动迁移;v1.23 仍使用旧 `SMAnimLayer`、`ANIMLAYEROBJCOLOR` 和 Position/Rotation/Scale 全变换动画层结构。
- 界面布局和主要交互保持不变。
- 对退化输入的处理由“继续计算并可能产生非法值”改为“在检测点明确报错并停止”。依赖旧版容错副作用的异常场景可能因此更早失败,这是预期的安全行为。
|