Spring Magic – Maya 版

Spring Magic Maya版本是一个用于创建骨骼链跟随动画的脚本工具

功能亮点:

在骨骼链上创建摆动,扭转,伸缩等动画效果

生成可循环动画

支持碰撞效果

支持已有角色绑定控制器

可应用风力效果

特别感谢:

Benoit Degand 帮助提高工具性能,并重构代码

最新版本: 3.5a

新功能介绍:

https://www.bilibili.com/video/av16035104/

下载 Spring Magic 3.5a

下载 Spring Magic 3.5a Python 3 版
( 用于 Maya 2022+,特别感谢 “MCL” 和 “二次元bug” )

另外还有 MotionBuilder 版本可供选择 点此查阅

版本历史

v3.5a

  • 修复“张力”计算错误(Benoit Degand)
  • 修复“惯性”计算错误(Benoit Degand)
  • 修复书签栏按钮功能错误

v3.5

  • 调整 Python 架构(Benoit Degand)
  • 可以中断计算(Benoit Degand)
  • 提高约 2 倍性能(Benoit Degand)
  • 默认关闭姿态拟合

v3.4b

  • 修复碰撞缺陷
  • 修复风向缺陷

v3.4

  • 增加平面碰撞
  • 增加姿态拟合

v3.3

  • 增加惯性参数

v3.2

  • 修复风属性设置关键帧无效的问题
  • 对于可能计算出错的情况添加警告,以避免 ” No valid objects supplied to ‘xform’ command” 错误提示

《Spring Magic – Maya 版》有195个想法

  1. 白老师你好,用了您的插件Spring Magic – Maya 版1年,感觉非常优秀,不过我和我身边的Maya同学目前遇到些困难始终困扰着我们,看看是否能解决。在我们完成一个飘带文件时,比如100帧的完成文件(控制器烘焙完),到了后期需要优化中间30-60帧的飘带,只重新计算这分部就需要把整条控制器动画全部删除重新绑定计算,这样就失去了30-60帧之外的完成动画。在控制器烘焙完成的情况,能否加上局部解算,保留其它控制器的段落动画的功能,这样就能保留好其它的完成动画效果,这会大大提高工作效率!

    1. 最早的时候是可以只计算局部的,后来好像是因为和 pose match 功能冲突了还是什么其他原因,才改成现在这样的
      两个方案,一是可以尝试去掉 pose match 的勾,看看行为是不是有变化,二是借助第三方工具,先把其他需要的帧复制或者迁移到其他物体,计算后再 copy 回来

  2. 大佬您好,我在计算裙摆的时候如果不使用碰撞就能正常计算,但是一启用碰撞就提示’NoneType’ object has no attribute ‘vtx’,请问该怎么解决呢

  3. 大佬,我是2020的maya安装3.5a的飘带插件,报错是# 错误: ImportError: file C:/Users/yhy4eve/Documents/maya/scripts\springmagic\ui.py line 5: No module named request
    这个有什么解决办法吗

  4. I use Maya 2025. I followed the instructions, checked the folder again….
    When entering the script below:

    import springmagic
    springmagic.main()

    , I get this message:

    # Error: ModuleNotFoundError: file C:\Users/Admin/Documents/maya/scripts\springmagic\ui.py line 14: No module named ‘pymel’

    please help .-.

  5. 大佬好,我用的是maya2024,装得是3.5a,python3版,也在bin目录下安装了pymel,但是运行的时候还是报错如下:
    import springmagic
    springmagic.main()
    # pymel.internal.apicache : Rebuilding the API Caches… #
    modelingToolkit
    # Warning: No initializePlugin() function
    #
    # Error: (pyside2-rcc-script) #
    # Warning: No initializePlugin() function
    #
    # Error: (pyside2-uic-script) #
    # Warning: No initializePlugin() function
    #
    # Error: (shiboken_tool) #
    # Warning: No initializePlugin() function
    #
    # Error: (pyside_tool) #
    updateRenderOverride;
    // cgfxShader 4.5 for Maya 202402.0 (Oct 18 2023) //
    // AbcBullet v1.0 using Alembic 1.8.3 (built Oct 18 2023 13:02:50) //
    updateRendererUI;
    +++++++ Turtle for Maya registered successfully ++++++
    # Warning: No initializePlugin() function
    #
    # Error: (precompTemplate) #
    # Error: OSError: file C:\Users\DELL\AppData\Roaming\Python\Python310\site-packages\pymel\internal\parsers.py line 801: Cannot find maya documentation. Expected to find it at C:\Program Files\Autodesk\Maya2024\docs\Maya2024\en_US #
    updateRendererUI;
    不知道是我操作没到位呢,还是目前这个版本对maya2024还不兼容呢~

    1. 啊,大佬,你把我的评论删掉吧,问题我已经解决了,是我安装的pymel版本太低导致的,我重新手动安装了pymel1.4.0 后就能正常启动了。^_^

  6. 这个错误要怎么解决呢.跪求帮忙.
    # 错误: ModuleNotFoundError: file C:\Users/Administrator/Documents/maya/2023/zh_CN/scripts\springmagic\ui.py line 9: No module named ‘pymel’

    1. 1.win+r 打开运行框,输入cmd;

      2.在黑窗口中输入”cd maya安装目录的bin文件夹”;
      例如:
      【cd C:\Program Files\Autodesk\Maya2022\bin】

      3.输入”mayapy -m pip list“;查询是否有pymel插件;

      4.如果没有看到pymel字符,电脑联网后,
      输入mayapy -m pip install pymel~=1.3.0a

      5.等待自动下载安装完成后,再输入”mayapy -m pip list”查询

      6.没成功继续安装pymel插件,成功了可以关掉窗口.在maya中安装插件

      查询和安装pymel的两行代码:
      mayapy -m pip list (查询)
      mayapy -m pip install pymel~=1.3.0a (下载安装)

  7. Error: RuntimeError: file C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages\pymel\internal\pmcmds.py line 134: Objects with existing connections cannot be constrained when the animation blending preference is off. 同样操作其他同事电脑没问题。 就我这台不行提示这个,是和玛雅别的查件哪里有冲突?

  8. Hello! Thank you for your work, it’s really helpful.
    I encountered an error related to some python code that I don’t understand.

    – I load the script
    – I select some bones
    – I clic apply
    – The tool goes through the timeline but no spring happens and no keys are places
    – I get the following error :
    # Error: TypeError: file C:\Program Files\Autodesk\Maya2019\Python\lib\site-packages\pymel\internal\pmcmds.py line 134: Not enough objects for this command (expected at least 1). #
    – The loading bar stays stuck at 100% and the apply button is stuck in a “grayed-out” state

    Could you please help?

    1. Hollow, bro. maby I kown your question.
      -First, Animating the Root Bone
      – And then, Select the bones you want to move, except for the root bones.
      – tips,For example, select the second bone, click the right mouse button, and then select Layers

      Bless you have a good day.

      1. # 错误: TypeError: file C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages\pymel\internal\pmcmds.py line 134: 此命令没有足够的对象(至少应有 1 个)。
        我用的3.5a 出错了,求大神帮助…

  9. 您好,想问一下末端骨骼解算出来没有动画要怎么解决,我这现在是 有些头发上面只有两个控制器,一个根部,一个末端,绑定完后单独选择末端骨骼计算出来是没有动画的。这种情况要怎么办呢?

  10. 你好大佬,有个疑问请教一下,我把其他软件绑定好的怪兽翅膀,做好了动画的文件,翅膀控制器加绑定的时候会有错误,那么我改用最笨的方法,直接把翅膀的骨骼断开约束的链接,直接选那些骨骼去计算动画,而算出的动画却是非常大角度的乱转,这是为什么呢?为什么我手动新建骨骼就没问题,我也查看了翅膀的骨骼,初始旋转值都是0的,却无法正确计算。

    1. 我试出骨骼的问题了,就是我如果先建立了左侧的骨骼链,再用镜像命令,镜像出右侧的骨骼链,那么左侧是可以正常计算的,但是右侧就无法正常计算,大佬有解决办法吗

      1. 如果你稍微动动手,翻翻楼下其他人的问题就会发现大家都在反复讨论这个同样的问题
        因为计算只支持 +X 轴指向子骨骼的骨骼链,镜像后是 -X 轴指向子骨骼,需要调整 Maya 的镜像设置

  11. 不好意思,我这边碰撞功能始终不能用,应该是什么问题? 或者可能是哪些节点的问题?我自己去研究一下,可不可以给我一些提示?我用的是Maya 2018 SP6

    1. 如果你指的不能用是说场景里按照教程视频那样有类似的骨骼和胶囊体,但碰撞后没有任何报错,只是胶囊提穿过骨骼,无事发生的话,可能是因为骨骼链没动的缘故,可以给需要被碰撞的骨骼链一个小的移动,再做测试

  12. hello,请问一下,我在骨骼计算完成之后,没有点烘焙,然后直接把骨骼隐藏了,之后点了控制器进行烘焙,当我再次对这几个控制器进行绑定计算的时候出现下面这种警告,无法进行下一步# Warning: Tauren_sample:fk_pifeng_l_01_anim_SpringProxy|Tauren_sample:fk_pifeng_l_02_anim_SpringProxy|Tauren_sample:fk_pifeng_l_03_anim_SpringProxy has duplicate name objcet! Stopped! # ;请问知道该如何处理吗

  13. hi,你好,我发现我在结算的时候,maya会闪退,每次在24帧的时候都会闪退,请问知道是怎么回事吗?是不是我的文件太过庞大,我也是使用ARTV1搭建的骨骼,除了基本骨骼外有将近40-50根骨骼。

  14. # Error: RuntimeError: file I:\maya2018\Maya2018\Python\lib\site-packages\pymel\internal\pmcmds.py line 134: Objects with existing connections cannot be constrained when the animation blending preference is off.
    Spring Magic – Maya 版,绑定完之后点计算会报这个错是什么问题?请教下大佬有办法解决吗

    1. 因为你的控制器已经被其他物体约束了,所以产生这个报错
      Spring Magic 的“绑定”功能,只能对没有受到任何额外约束的控制器生效

  15. 不好意思,前面发错地方了。
    大佬,是这样的。不知道是不是Maya版本问题。
    Maya2018使用过程中,创建碰撞体会报错# 警告: pymel.core.general : Could not create desired MFn. Defaulting to MFnDagNode.场景中无法看见碰撞体,创建风场也看不见,不过好在风场看不到也能产生效果。
    比较麻烦的是碰撞体看不见就没法确定体积了 T_T

  16. Hellow.
    this is nice scripts!

    I am using v3.2 with maya2019, but v3.5a gives an error.

    # Error: ImportError: file C:\Users\〇〇\Documents\maya\2019\scripts\ springMagic.py line 14: No module named springmagic #

    Can I use the same command as “HowToInstall.txt”?

  17. 大佬为什么我点击计算后,运算到100%出现错误:# 错误: TypeError: file D:\Program Files (x86)\Autodesk\Maya2020\Python\lib\site-packages\pymel\internal\pmcmds.py line 130: 此命令没有足够的对象(至少应有 1 个)。 #

  18. 您好 ,我想问一下在使用Spring Magic 3.1 maya 解算飘带后,C盘的缓存持续增加,除了每次去删除C盘用户路径下的\AppData\Roaming\Autodesk\ADPSDK\JSON 文件夹,还有什么好办法吗 感谢~

  19. 非常感谢你的回答,CgAbBlastPanelOptChangeCallback这个确实是MAYA的问题,spring Magic 停止运算是MAYA animation blending 首选项设置没开启的原因,已经解决,非常感谢.

  20. 您好,非常感谢你的插件,这对我的工作效率有很大提升,
    最近使用MAYA2019经常出现报错// Error: line 1: Cannot find procedure “CgAbBlastPanelOptChangeCallback”.
    然后插件停止解算运行,请问是什么原因了,同样的文件放到2018又可以正常运行的,非常感谢能在百忙中抽空解答,万分感谢!!

  21. execfile(r’C:\Scripts\SpringMagic\springMagic.py’)
    # 错误: NameError: file line 1: name ‘execfile’ is not defined #
    大神,请问maya2022安装时提示这个错误,怎么解决?

  22. Hello, when using v3.4, an error occurs when using collision capsules (springMagic.py line 947: ‘NoneType’ object has no attribute ‘vtx’)
    there are no such problems in version 3.1

    maya 2020.3

  23. 大佬,为什么我测试解算的时候,从次节第二根骨骼开始就一直乱飞。每次都这样,一次也没成功过~~~~~我操作是看你教程的。

  24. 老师您好 耽误下您的时间。我在使用时有些问题搞不明白 Maya当中 ,空场景中,新建骨骼和碰撞体后可以正确解算,但是我在应用在实例的时候,总是解算失败 ,裙子在走路时一点都不碰撞腿和手,直接穿过(根关节k了),就是一点碰撞都没有,
    不知道啥问题,会不会和蒙皮有关,

发表评论

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