You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maya Python脚本技术问询:如何用纹理滑块控制模型凹凸深度

Controlling Bump Depth with a Maya Python Slider

Got it, let's get this sorted. You already have a bump map applied to your model, so we just need to link a slider in your existing window to Maya's built-in bumpDepth attribute (found on the bump2D node that powers your bump map).

Step 1: Identify Your Bump Node First

First, grab the name of your bump2D node. You can find this by selecting your model, opening the Attribute Editor, navigating to the bump map section, and checking the node name (it’ll look something like bump2D1 by default).

Step 2: Update Your Window Code with the Slider

Here’s how to modify your existing script to add a functional bump depth slider that syncs with your model:

import maya.cmds as mc

# Replace this with YOUR bump2D node name!
bump_node_name = "bump2D1"

# Clean up existing window if it exists
if mc.window("Mat_Tex", exists=True):
    mc.deleteUI("Mat_Tex")

# Create the main window
ram = mc.window("Mat_Tex", title="Material & Texture Controls", widthHeight=(300, 200))

# Set up a layout for the controls
mc.columnLayout(adjustableColumn=True, columnAlign="center", rowSpacing=10)

# Add bump depth slider with input field
mc.text(label="Bump Depth", align="left")
mc.floatSliderGrp(
    "bump_depth_slider",
    field=True,  # Shows a numeric input box for precise values
    minValue=-3.0,  # Adjust min/max to fit your workflow (negative inverts the bump)
    maxValue=3.0,
    value=mc.getAttr(f"{bump_node_name}.bumpDepth"),  # Sync slider to current bump depth
    changeCommand=lambda val: mc.setAttr(f"{bump_node_name}.bumpDepth", val)
)

# Display the window
mc.showWindow(ram)

What’s Happening Here:

  • floatSliderGrp: This creates a slider paired with an input field for both quick adjustments and precise value entry.
  • changeCommand: Every time you move the slider (or type in the field), this lambda function instantly updates the bumpDepth attribute on your bump node.
  • Initial Sync: We use mc.getAttr() to set the slider’s starting position to match your current bump depth, so it’s never out of sync when you open the window.

Quick Troubleshooting:

  • If the slider doesn’t do anything, double-check that bump_node_name exactly matches the name of your bump2D node in Maya.
  • Ensure your bump map is properly connected to your model’s material—if the bump isn’t showing up at all, the slider won’t have an effect.

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:10:14