Spring Max 碰撞飘带

Spring Max 是一款用于生成骨骼链动画的 3Ds Max 脚本工具

主要功能:

  • 在骨骼链上创建摆动,拧转和拉伸压缩动画
  • 骨骼链可以根据它的形状来与胶囊体或者平面进行碰撞
  • 可对骨骼链施加风力或爆炸效果

注意:

  1. 参与计算的骨骼不可以在场景中有重名物体,也不能有负的缩放值
  2. 计算结果不支持 CRTL+Z 撤销操作,可以使用工具自带的回退功能,但为以防万一,请在计算前保存好源文件
  3. 当前版本仅支持 3Ds Max 标准骨骼的计算,CS骨骼和CAT骨骼暂不支持,如有相关需求请使用 Sprng Magic
  4. 如果发现关闭工具界面后场景中依然有很多虚拟体的话,可能是由于某些 MAX 插件阻碍了 Spring Max 的清理工作造成的,建议到这里下载 Max 病毒清理脚本修复。

使用教程

重要:请观看使用教程 “04 实战碰撞” 以更好的理解如何在实际生产中应用该工具

 

点此下载 Spring Max v1.3

 

另外还有 MotionBuilder 版 Spring Magic 可供选择

版本历史:

1.3:
增加“回退”功能
缩小底部按钮
修复缺陷:”Bone On” 选项导致的骨骼显示问题
修复缺陷:在计算范围之外被设置关键帧
修复缺陷: 首次使用“关联”功能时报错

1.2:
增加“姿态拟合”功能
增加“骨骼关联”功能
修复缺陷:当前时间范围以外的关键帧在计算后丢失
修复缺陷:骨骼链起始姿态在重新计算同样动画时发生改变

1.1:
增加了“骨骼形状”功能,以更好的解决裙摆碰撞问题

1.0:
第一个公开版本

《Spring Max 碰撞飘带》有88个想法

  1. 我是一个动画 师,挺感谢辛苦无偿的开发的大佬。
    我之前一直用springmagic,这个老版本的解算很好用。
    但是这个新版我看了教程 ,为什么一解算就有很多的虚拟体,这个我看网友很多人都说了。但这个是没用的,不可能每次都删除吧?还是我哪里操作出错了

    1. 你在这个页面重新下载一个 1.3 版本试试,之前我尝试了一个修复,让那个用户帮忙试一下结果,但一直没有得到反馈
      这个多余虚拟体的问题我本地是无法重现的,你看我录的教程也没有这个问题,所以我只能试着修修看

      记得试一下并回来反馈

      1. 刚刚测试下了,1.3版本。
        用的是15版和14版max。
        结果是解算后,是不出现了(隐藏了)。但是在资源管理器里还是有的,这个应该运算完删除,不应该在文件里。不然这样的导出到untiy会有多余的虚拟体占资源。如果是为了记录相关信息不能删除的话,可以在插件里开发个一键删除功能

        1. 正确的执行结果,所有的虚拟体都会被删除,场景中不会留下任何痕迹,除了“回退”功能所需要的一些以 “saveAnim” 命名的节点。所以如果你看到还有其他很多节点的话,说明还是没有正确执行。
          但就像我之前说的,具体为什么会删不掉辅助节点,我不清楚,目前来看只有少部分的人遇到这个情况,所以我的猜想是某些插件阻碍了工具清理场景的功能。
          我之前做的一个修复,就是你下载的那个,试图用多种方法来清理场景,但目前看也对你没有帮助,所以只能让我再想想了
          方便的话你留一个邮箱给我,我有测试版本了发你试试

      1. 大佬,我用的1.3版本的做测试(3dmax是2014版) 用外力风力计算bone骨骼 算完会弹出一个 Unknown system exception 然后每2个骨骼之间会多出一个point helper ,风力效果是有 但是插件不能再次使用(必须重新再打开插件才能继续使用) 请教这是什么问题? 因为我特地重新装了一遍max。

        1. 所有文件计算风力都有这个问题么?计算碰撞有没有同样的问题?
          如果只是个别文件有问题,我可以帮忙看看,如果所有文件都有问题,我也不太确定原因,或者你换个其他版本 MAX 试试
          还有就是报错的时候,你按F11打开脚本编辑器,把里面红色的报错文字复制了发来我看看大致是哪个部分出问题

          1. 不管是风力,还是碰撞还是普通骨骼循环动画计算都是算完就报错的。

            Welcome to MAXScript.

            — Error occurred in item loop; filename: C:\Users\Administrator\Desktop\springmax\SpringMax\SpringMax.mse; position: 62641; line: 1549
            — Defined in encrypted script
            — called in springMax_Main(); filename: C:\Users\Administrator\Desktop\springmax\SpringMax\SpringMax.mse; position: 62641; line: 1549
            — Defined in encrypted script
            — called in springMax_Launcher(); filename: C:\Users\Administrator\Desktop\springmax\SpringMax\SpringMax.mse; position: 69270; line: 1728
            — Defined in encrypted script
            — called in springApply_btn.pressed(); filename: C:\Users\Administrator\Desktop\springmax\SpringMax\SpringMax.mse; position: 90878; line: 2105
            — Defined in encrypted script
            >> MAXScript Rollout Handler Exception:
            — Unknown system exception <<
            这是脚本报错信息

        2. 我更新了一下工具,应该可以修复这个问题,至少不会报错了
          你重新下载后再试试,完了告诉我结果
          版本号没变,因为没增加新功能
          谢谢

  2. 哦还有就是。我上面说的是用的12版本。。。我用14那个。他算完会给我在骨骼上直接添加了两个point~~ctrl+z撤销也没反应。。好像14不稳定。max会崩。。

  3. 这个是不能撤销么?我按ctrl+z、没反应。。。我算那种全bone绑定的。他直接就缩进去了。。骨骼变形的厉害,
    – -!~是我绑定链接有问题么!我那个bone直接用的父子链接。。这个插件刚用。不是很熟。是不是哪里操作有问题。看你视频好像都没出现这些问题

  4. 大佬 max2016 每次都报错 还会出现一些多余的 虚拟体 插件也失效了
    — Error occurred in item loop; filename: D:\SpringMax (1)\SpringMax.mse; position: 61298; line: 1506
    — Defined in encrypted script
    — called in springMax_Main(); filename: D:\SpringMax (1)\SpringMax.mse; position: 61298; line: 1506
    — Defined in encrypted script
    — called in springMax_Launcher(); filename: D:\SpringMax (1)\SpringMax.mse; position: 67891; line: 1683
    — Defined in encrypted script
    — called in springApply_btn.pressed(); filename: D:\SpringMax (1)\SpringMax.mse; position: 89136; line: 2050
    — Defined in encrypted script
    >> MAXScript Rollout Handler Exception:
    — Unknown system exception <<

      1. 你好。我是新开的场景新建的骨骼。就出现这个问题。所以给你发文件应该意义不大。是否跟V-Ray有关呢。你那边没遇到的话。空了重装MAX试试。

    1. 填1的话是每帧震荡 1/π 次,所以会比较快,其实我当初应该把这个值放大10倍,这样更人性化一点,但已经做成这样了,再改会引起老用户混乱,就仍旧保留吧

  5. 我有个关于碰撞的想法。我们创建骨骼的时候都是纵向的创建,以至于碰撞体由下往上的运动造成碰撞不成功。我的想法是能不能在骨骼和骨骼之间创建一个横向的骨骼,就像高级工具里面骨骼关联的那样(只不是里面创建的是线,这里创建是的关联骨骼),一个物体由横向和纵向十字交叉的骨骼群去控制,运算碰撞出错的概率应该就会大大减少

    1. 你是说 Max 自身的隐藏骨骼功能,不能隐藏脚本计算过的骨骼?这个有可能是因为我关闭了骨骼的 “bone on” 属性导致的,你可以用点击显示界面里“Bone Objects”下方的“Bone”字样来隐藏

    1. 仅凭你的描述,我不知道是为什么。我所能说的是在我本地的MAX 2016上使用这个工具,一切正常。
      另外也有其他人跟你有类似的情况,他们把出问题的文件发我以后,我发现在我这边一切正常,并且操作录像也发还他们了,然而并没有下文。所以我只能猜测出现这种情况的人可能是装了某些插件造成与 spring max 发生冲突导致的,但具体什么插件我不知道。
      目前来看,建议重装一个干净的 max 试试。

    1. 如果你有女朋友,她劈头盖脸只说一句:“我不开心,你看怎么办吧”,不知你能否哄她开心?嗯,我现在的想法跟那时候的你是一样的 🙂

  6. Hi, Spring Max is the most useful toolkit on soft-material solution that I ever see. Very impressive.
    However the current version doesn’t work on 3ds-max 2011
    The max listener shows:
    — Error occurred during fileIn in
    — Error occurred in anonymous codeblock; filename: C:\Program Files\Autodesk\3ds Max 2011\Scripts\SpringMax_2012.mse; position: 69143; line: 276
    >> MAXScript FileIn Exception: — Syntax error: at [, expected name
    — In line: <<

          1. Since I got some trouble when install Max 2011, so may not able to find what exactly cause the crash, but from your crash report, i think you could try re-extract zip package and make sure mse file and icon folder place in same path then try again.

  7. 个人在软件的使用过中出现了些问题.然后有些想法希望对完善软件功能有所帮助.目前使用中感觉软件只是支持骨骼数量比较多的模型,演示的视频文件中模型文件纵列有布线的地方就有一条骨骼.但是很多时候一般都是2-3条线,我们使用一根骨骼控制的,.这样问题就被放大了.然后目前的算法我理解为,单纯的bone骨骼与碰撞体小胶囊的碰撞算法.这样的话没有架设骨骼的地方很容易出现穿插,而且也是不可避免的.然而在演示的视频文件中我看到可以对面片进行k帧.我自己测试软件的时候也是测试的跑步动作.然后就产生了一些想法.假设我们把面片或者碰撞胶囊改变成可编辑多边形..文字说可能不是很直观我举个例子吧.正面看跑步动画双腿移动的形状是一个四边形或者是梯形,侧偏看的话双腿的移动的形状就是3角形四边形梯形又或者是菱形.顶视图的话基本上就是不断变化的椭圆 .然后我们使用可编辑多边形来替换目前的碰撞体.面片又或者胶囊.只需要改变多边形的形状是不是可以计更多更好的计算碰撞而不会出现滑到一边的情况呢(因为本身就是一个整体)又或者是碰撞不到碰撞体的情况呢. 特殊说明本评论只是意见和想法.希望对大神有所帮助.而且作为一名动画师 深深的明白穿插无论怎么样都不可能完全的避免,我们能做的只是尽量的避免.如果在这个软件的帮助下肯定会更高更快的提高的我们的制作效率就是了.

    1. 将骨骼加宽后启用“骨骼形状”功能,是否能解决你的问题?
      另外将胶囊改成多边形进行碰撞,会大大增加计算量,这也是游戏引擎里推荐使用胶囊或者是长方形来计算物理效果的原因。

  8. 大佬你好,非常感谢大佬为国内动画师开发这个插件,提高了工作效率。遇到个问题是,这个如果选了一整串骨骼一起计算,就会报错,生成很多个点对象

  9. 每次在计算和平面碰撞的时候会报错,但是碰撞结果是正确的。然后就必须要关了插件重新开才行,这是我找到的MAX报错记录,希望能优化

    — Error occurred during fileIn in #C:\Program Files\Autodesk\3ds Max 2014\scripts\startup\vraylightlister.ms; line number: 113
    >> MAXScript Auto-load Script Error – C:\Program Files\Autodesk\3ds Max 2014\scripts\startup\vrayinstall.ms Exception:
    — Compile error: Duplicate struct member name: LightInspectorListRollout
    — In line: LightInspectorListRollout, <> MAXScript Auto-load Script Error – C:\Program Files\Autodesk\3ds Max 2014\scripts\startup\vraylightlister.ms Exception:
    — Compile error: Duplicate struct member name: LightInspectorListRollout
    — In line: LightInspectorListRollout, <> MAXScript Rollout Handler Exception:
    — Unknown system exception <<

    1. 看报错内容,是跟你的 vray 插件有关系,因为计算时会调用一个光线追踪的功能,那个功能如果被修改了可能会引发这样的问题。就目前我所了解,你这个可能是孤例,所以我无法解决。

      1. Welcome to MAXScript.

        — Error occurred in item loop; filename: C:\Program Files\Autodesk\3ds Max 2014\plugins\sprigmax\SpringMax.mse; position: 56536; line: 1389
        — Defined in encrypted script
        — called in springMax_Main(); filename: C:\Program Files\Autodesk\3ds Max 2014\plugins\sprigmax\SpringMax.mse; position: 56536; line: 1389
        — Defined in encrypted script
        — called in springMax_Launcher(); filename: C:\Program Files\Autodesk\3ds Max 2014\plugins\sprigmax\SpringMax.mse; position: 62963; line: 1565
        — Defined in encrypted script
        — called in springApply_btn.pressed(); filename: C:\Program Files\Autodesk\3ds Max 2014\plugins\sprigmax\SpringMax.mse; position: 83343; line: 1917
        — Defined in encrypted script
        — Error occurred in anonymous codeblock; filename: C:\Program Files\Autodesk\3ds Max 2014\plugins\sprigmax\SpringMax.mse; position: 56536; line: 1389
        >> MAXScript Rollout Handler Exception:
        — Unknown system exception <<
        重装了新的VRAY之后报的这个错,还是骨骼和地面碰撞,一切都正常就是要报错,然后要重启插件,Bone003_SpringMaxRefLoc骨骼上面也多了很多这种虚拟体

  10. 很好用的插件,但是大佬,我碰到个问题,不知道是不是插件的原因,我们项目是所有动作在一个max文件里面,我用这个插件的时候,第一个动作算完飘带,算第二个的时候,第一个飘带的骨骼会被压扁并且算完的帧也会消失

    1. 如果你计算第二个骨骼链时并没有选中第一个骨骼链,则不会对其产生任何影响。除非两个骨骼链共享一个父物体,而且那个父物体自身缩放值为负的。但具体还得看到那个文件我才能查找问题。

      1. 没有第二个骨骼链,两个动作是同一个骨骼连,只不过两个动作做到了一个max文件里,算完第一个动作的飘带,算第二个文件的时候第一个就会出问题,你可以自己找个文件试试,有的项目需要把一个角色的所有动作做到同一个max文件里,我自己新建bone试了下也会出错,第一段动作算完,算完第二段,第一段就会出错

        1. 明白你意思了,你是一个文件里有很长的一段动画,内容分别是一个角色的不同动作如走炮攻击都做在一个文件里了对吧?目前是这样的,计算后只会处理在时间轴范围内的帧,超过时间轴显示范围的帧就会被清理掉,造成你遇到的问题。会考虑在下个版本修正这个问题,尽量保留其他部分动画。谢谢意见!

发表评论

电子邮件地址不会被公开。 必填项已用*标注