近期热门
SpringMagic v1.24 dev 飘带计算脚本插件

SpringMagic v1.24 dev 飘带计算脚本插件

[复制链接]
4024 6 16 24 3天前
软件插件脚本
软件类型: 3dsmax » 动画
分类: 脚本
版本与适用版本: 2016+

SpringMagic_v1.24.ms 已购买

560.57 KB 下载次数: 123 售价: 2 张CG券 [记录]
下载

1.24版本对动画层相关问题做了修复,原版有塌陷层后还会出现隐藏层的问题

1.24并没有进行大规模的测试,只作为开发版本发布,稳定性不做保证,只是作为备选版本使用


# SpringMagic v1.24 更新日志

- 维护基线:`SpringMagic_v1.23.ms`
- 当前源码:`SpringMagic_v1.24.ms`
- 源码 SHA-256:`FF65E0191F6CF9F2257B213C9697FD9AAEF07EAB90A85A6EBD5BAED92924A41E`
- 维护记录日期:2026-07-24

## 版本定位

v1.24 继承 v1.23 的数值安全求解,重构 SpringMagic 动画层的创建、识别、Bake 预检、激活、删除、合并和清理流程。核心目标是让插件只管理自己创建或能被严格识别的旧版层,避免误改 Position、Scale、用户动画层及目标集合之外的节点。

## 新增

### v1.24 动画层所有权协议

- 新增 `SpringMagicLayerOwner_v124` 节点自定义属性,记录协议版本、实际层名和原始线框颜色。
- 新层使用 `SMAnimLayer_v124` 前缀;发生同名冲突时自动生成带数字后缀的唯一名称。
- 通过持久层名同时解析全局 Animation Layer ID 和节点本地 Rotation 子控制器,不再假定目标层固定为索引 2。
- 能区分正常 v1.24 层、所有权残留、歧义 v1.24 层、可安全识别的 v1.23 旧层以及歧义旧层。

### Rotation-only 创建流程

- 新建 SpringMagic 层仅启用 Rotation,不再为 Position 和 Scale 创建插件层。
- 仅支持普通 PRS 节点;Biped、CAT、已有用户层、隐藏本地层控制器或残留所有权数据会在写入前拒绝。
- 选中节点按父级优先顺序逐个加入同一层,降低 3ds Max 在父子层级中注入重复或本地隐藏控制器的风险。
- 创建前后检查未选中后代,保证显式选择集合是操作边界。
- 仅在解析出的 Rotation 层上创建动画范围首尾关键帧。

### 安全清理与合并

- 删除、逐帧合并、按关键帧合并和“清理全部”只处理 SpringMagic 拥有的层;用户层不再被全局删除。
- 同一操作中的节点按子级优先顺序处理,避免先改祖先导致后代 Layer Controller 结构展开或残留。
- 操作前验证层成员关系、锁定、静音和输出静音状态;状态不安全时在写入前拒绝。
- 清理后移除插件所有权元数据、恢复原始线框颜色,并处理只剩 Base Layer 的包装控制器。
- 对目标集合之外的相关节点保存结构签名,操作完成后验证没有越界修改。
- 合并操作会保存并恢复 Animation Layer 的 Per Frame、Active Range、Controller Type、动画范围和当前时间设置。

### Bake 整链预检

- Bake 前先解析完整骨链,再执行所有只读检查。
- 拒绝以下状态:
  - 只有部分链节点具有 SpringMagic 层;
  - 所有权残留或歧义;
  - 未归属或隐藏的动画层状态;
  - 无法解析的 Rotation 层;
  - 锁定、静音或输出静音的插件层。
- 通过预检后,仅把对应层设置为对应节点的活动层;不修改层权重、锁定、静音或输出静音属性。

### Rotation 关键帧工具隔离

- Rotation 切线、Euler/TCB 控制器切换、删键、父级/目标补键和 Set Base Pose 会解析到插件拥有的 Rotation 子控制器。
- 拥有 SpringMagic 层时,Position/Scale 删键请求会被明确拒绝,不再落到错误的子控制器。
- 普通未分层 PRS 节点继续使用原基础控制器行为;用户层、隐藏层、残留层或歧义层状态一律关闭写入路径。
- Set Base Pose 对插件层只重置 Rotation,不再写 Position 和 Scale。

## 修复

- 修复旧版“清理全部动画层”可能删除用户层的问题。
- 修复通过固定本地索引访问层控制器时可能命中错误层的问题。
- 修复选择动画层时修改全局 SpringMagic 层权重、并把活动层应用到非目标节点的问题。
- 修复父子节点混合、跨层组删除或合并时可能留下包装控制器、Base-only 状态或所有权残留的问题。
- 添加层操作改为单次 Undo 事务,并在写入前完成所有权与边界验证,以降低失败后遗留节点颜色、所有权数据或部分层状态的风险。
- 修复 Bake 预检中 `SMNODEHASTRANSFORMLAYERSTATE` 在定义前被调用,首次执行得到 `undefined` 并抛出“调用需要函数或类”的异常。该 helper 现位于全部调用者之前。

## 与 v1.23 场景的兼容

- v1.24 不会自动把 v1.23 的 Position/Rotation/Scale 全变换层迁移为 Rotation-only。
- 仅当旧层同时满足唯一 `SMAnimLayer`、完整 Base/旧层结构、唯一旧元数据且不存在额外依赖时,才按 `legacy` 路径允许删除、合并或清理。
- 旧层结构、元数据或成员关系存在歧义时会拒绝操作,避免误删用户数据。
- v1.24 引入的 `v124` 所有权标识属于场景数据协议;后续 v1.25 继续沿用该协议,不因插件版本号变化而自动改名或升级。

## 升级与使用提示

- 替换脚本后应重新加载脚本或重启 3ds Max,确保内存中的 rollout 定义已刷新。
- 升级前备份 `.max` 场景,特别是包含旧 `SMAnimLayer`、用户动画层或复杂父子层级的文件。
- 如果收到 stale、ambiguous、unowned 或 hidden layer 提示,不应通过跳过预检或吞掉异常强行继续;应先在副本中确认层结构和归属。



16
点赞
+40
打赏
24
添加到收藏夹

8

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论8
您需要登录后才可以回帖 登录

能计算分叉骨骼就好了
2天前  ·  6楼
回复

使用道具 举报

哥们你这明码版本哪来的,你这一发,没事吧?
2天前  ·  5楼
回复

使用道具 举报

  • Heyinian 
    这插件在圈里流通这么久了,应该没问题吧,有问题我删帖就好啦,嘻嘻
    回复
    more_vert
    2天前
  • 4763202
    大佬我一直在用你的1.14 Fixed版,挖哈哈。十分感谢
    回复
    more_vert
    17小时前
太棒了,人类之光!
3天前  ·  4楼
回复

使用道具 举报

SpringMagic飘带插件1.23版本更新
https://www.cgjoy.com/forum.php? ... 9&shareuid=9734

3天前  ·  3楼
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器