拖入腳本編輯器py選項卡運行
- import maya.cmds as cmds
- def zero_attribute(axis, attr_type):
- selected = cmds.ls(selection=True)
- if not selected:
- cmds.warning("請選擇要歸零的對象!")
- return
-
- attr = f"{attr_type}{axis}"
- default_value = 1 if attr_type == "scale" else 0
-
- for obj in selected:
- if not cmds.getAttr(f"{obj}.{attr}", lock=True):
- cmds.setAttr(f"{obj}.{attr}", default_value)
- def zero_translation():
- for axis in ["X", "Y", "Z"]:
- zero_attribute(axis, "translate")
- def zero_rotation():
- for axis in ["X", "Y", "Z"]:
- zero_attribute(axis, "rotate")
- def zero_scale():
- for axis in ["X", "Y", "Z"]:
- zero_attribute(axis, "scale")
- # 創建窗口
- if cmds.window("ZeroAttrWindowPrecise", exists=True):
- cmds.deleteUI("ZeroAttrWindowPrecise")
- window = cmds.window(
- "ZeroAttrWindowPrecise",
- title="精確歸零屬性窗口",
- width=240,
- height=155,
- menuBar=False,
- maximizeButton=False,
- minimizeButton=False
- )
- main_form = cmds.formLayout(parent=window)
- tab_layout = cmds.tabLayout(parent=main_form, innerMarginWidth=5, innerMarginHeight=5)
- # 位移選項卡
- translation_tab = cmds.columnLayout(parent=tab_layout, adjustableColumn=True)
- cmds.button(translation_tab, label="X軸歸零", command=lambda _: zero_attribute("X", "translate"))
- cmds.button(translation_tab, label="Y軸歸零", command=lambda _: zero_attribute("Y", "translate"))
- cmds.button(translation_tab, label="Z軸歸零", command=lambda _: zero_attribute("Z", "translate"))
- cmds.button(translation_tab, label="整體歸零", command=lambda _: zero_translation())
- # 旋轉選項卡
- rotation_tab = cmds.columnLayout(parent=tab_layout, adjustableColumn=True)
- cmds.button(rotation_tab, label="X軸歸零", command=lambda _: zero_attribute("X", "rotate"))
- cmds.button(rotation_tab, label="Y軸歸零", command=lambda _: zero_attribute("Y", "rotate"))
- cmds.button(rotation_tab, label="Z軸歸零", command=lambda _: zero_attribute("Z", "rotate"))
- cmds.button(rotation_tab, label="整體歸零", command=lambda _: zero_rotation())
- # 縮放選項卡
- scale_tab = cmds.columnLayout(parent=tab_layout, adjustableColumn=True)
- cmds.button(scale_tab, label="X軸歸零", command=lambda _: zero_attribute("X", "scale"))
- cmds.button(scale_tab, label="Y軸歸零", command=lambda _: zero_attribute("Y", "scale"))
- cmds.button(scale_tab, label="Z軸歸零", command=lambda _: zero_attribute("Z", "scale"))
- cmds.button(scale_tab, label="整體歸零", command=lambda _: zero_scale())
- # 設置選項卡標簽
- cmds.tabLayout(tab_layout, edit=True,
- tabLabel=((translation_tab, "位移歸零"),
- (rotation_tab, "旋轉歸零"),
- (scale_tab, "縮放歸零")))
- # 布局約束
- cmds.formLayout(main_form, edit=True,
- attachForm=[(tab_layout, "top", 10),
- (tab_layout, "left", 10),
- (tab_layout, "right", 10),
- (tab_layout, "bottom", 10)])
- cmds.showWindow(window)
點擊復制這段代碼
根據您的等級權限,您可以免回復直接查看內容,升級到更高等級可獲得更多方便的權限哦~
25-4-7 21:57 上傳
點擊文件名下載附件
|