分享一个AI写的归零插件

7 点赞
4 收藏
1 打赏
1 评论
163 人气
扫码分享
扫码分享给朋友
当前帖子链接已复制,快去粘贴分享吧~
下载文件
×
本帖全部文件列表
插件类型:
动画插件
插件语言:
中文




拖入脚本编辑器py选项卡运行

  1. import maya.cmds as cmds

  2. def zero_attribute(axis, attr_type):
  3.     selected = cmds.ls(selection=True)
  4.     if not selected:
  5.         cmds.warning("请选择要归零的对象!")
  6.         return
  7.    
  8.     attr = f"{attr_type}{axis}"
  9.     default_value = 1 if attr_type == "scale" else 0
  10.    
  11.     for obj in selected:
  12.         if not cmds.getAttr(f"{obj}.{attr}", lock=True):
  13.             cmds.setAttr(f"{obj}.{attr}", default_value)

  14. def zero_translation():
  15.     for axis in ["X", "Y", "Z"]:
  16.         zero_attribute(axis, "translate")

  17. def zero_rotation():
  18.     for axis in ["X", "Y", "Z"]:
  19.         zero_attribute(axis, "rotate")

  20. def zero_scale():
  21.     for axis in ["X", "Y", "Z"]:
  22.         zero_attribute(axis, "scale")

  23. # 创建窗口
  24. if cmds.window("ZeroAttrWindowPrecise", exists=True):
  25.     cmds.deleteUI("ZeroAttrWindowPrecise")

  26. window = cmds.window(
  27.     "ZeroAttrWindowPrecise",
  28.     title="精确归零属性窗口",
  29.     width=240,
  30.     height=155,
  31.     menuBar=False,
  32.     maximizeButton=False,
  33.     minimizeButton=False
  34. )

  35. main_form = cmds.formLayout(parent=window)
  36. tab_layout = cmds.tabLayout(parent=main_form, innerMarginWidth=5, innerMarginHeight=5)

  37. # 位移选项卡
  38. translation_tab = cmds.columnLayout(parent=tab_layout, adjustableColumn=True)
  39. cmds.button(translation_tab, label="X轴归零", command=lambda _: zero_attribute("X", "translate"))
  40. cmds.button(translation_tab, label="Y轴归零", command=lambda _: zero_attribute("Y", "translate"))
  41. cmds.button(translation_tab, label="Z轴归零", command=lambda _: zero_attribute("Z", "translate"))
  42. cmds.button(translation_tab, label="整体归零", command=lambda _: zero_translation())

  43. # 旋转选项卡
  44. rotation_tab = cmds.columnLayout(parent=tab_layout, adjustableColumn=True)
  45. cmds.button(rotation_tab, label="X轴归零", command=lambda _: zero_attribute("X", "rotate"))
  46. cmds.button(rotation_tab, label="Y轴归零", command=lambda _: zero_attribute("Y", "rotate"))
  47. cmds.button(rotation_tab, label="Z轴归零", command=lambda _: zero_attribute("Z", "rotate"))
  48. cmds.button(rotation_tab, label="整体归零", command=lambda _: zero_rotation())

  49. # 缩放选项卡
  50. scale_tab = cmds.columnLayout(parent=tab_layout, adjustableColumn=True)
  51. cmds.button(scale_tab, label="X轴归零", command=lambda _: zero_attribute("X", "scale"))
  52. cmds.button(scale_tab, label="Y轴归零", command=lambda _: zero_attribute("Y", "scale"))
  53. cmds.button(scale_tab, label="Z轴归零", command=lambda _: zero_attribute("Z", "scale"))
  54. cmds.button(scale_tab, label="整体归零", command=lambda _: zero_scale())

  55. # 设置选项卡标签
  56. cmds.tabLayout(tab_layout, edit=True,
  57.                tabLabel=((translation_tab, "位移归零"),
  58.                          (rotation_tab, "旋转归零"),
  59.                          (scale_tab, "缩放归零")))

  60. # 布局约束
  61. cmds.formLayout(main_form, edit=True,
  62.                 attachForm=[(tab_layout, "top", 10),
  63.                             (tab_layout, "left", 10),
  64.                             (tab_layout, "right", 10),
  65.                             (tab_layout, "bottom", 10)])

  66. cmds.showWindow(window)
点击复制这段代码

根据您的等级权限,您可以免回复直接查看内容,升级到更高等级可获得更多方便的权限哦~


                               
[点击下载]归零.txt
大小:3.08 KB,
该文件免费
微妙网打赏了 2 微豆 172 活力值 并说:谢谢分享,希望能看到你分享的更多精彩帖子.
复制以下链接分享到 QQ群 QQ空间 贴吧 或其他CG网站上,每进来一个人你将获得: 2微豆
谢谢你的赞噢~

客服
快速回复 返回列表