3DS Max Python脚本

问题描述 投票:0回答:1

我一直在寻找几个小时如何在Python中为3DS Max(v2017)执行一个非常简单的脚本,但API很糟糕 - 至少可以说。

我甚至无法获得如何选择场景中的现有对象。另外我不明白我是否应该使用pymxs wrapper或MaxPlus。

我需要做的就是告诉3ds Max在选择某个场景摄像机时更改渲染效果属性 - 或者将视图切换到该摄像机。

我会用伪代码写下你的脚本,这样你就可以 - 希望 - 更好地理解这个主题:

camera_1 = MaxPlus.Factory.SelectCameraObject("36x24_MoreDof")
# camera name is 36x24_MoreDof

camera_2 = MaxPlus.Factory.SelectCameraObject("36x24_LessDof")
# camera name is 36x24_LessDof

effect1 = RenderingTab.EnvironmentAndEffects.Effects.Attribute1
effect2 = RenderingTab.EnvironmentAndEffects.Effects.Attribute2

effect1.active = False
effect2.active = False

while True:
    if camera_1.isSelected == True:
        effect1.active = True
        effect2.active = False
    elif camera_2.isSelected == True:
        effect1.active = False
        effect2.active = True

我希望它足够清楚..你知道如何在3DS Max的实际Python代码中翻译它吗?

提前谢谢大家,

里卡多

python scripting 3dsmax
1个回答
0
投票

下面是python脚本,用作您的请求的指南。

  • PyMXS;我的建议是主要使用它。它几乎包含了所有MaxScript(除了一些奇特的MaxScript语法功能)。它已经持续发展了数十年,功能强大,并且与其构建的3ds Max SDK相比,它提供了许多辅助功能和简化。
  • MAXPLUS;我的建议是使用PyMXS未涵盖的某些部分(例如函数MaxPlus.GetQMaxMainWindow()来创建基于Qt的UI),但不要将其用作Python中的主要工具。它更新,虽然从长远来看,它可能比3ds Max SDK的Python曝光更好,但您可能更喜欢PyMXS在短期内的覆盖和简单性。

基本上,我建议您将自己视为使用Python获得语言优势的MaxScript程序员。要访问3ds Max场景,请浏览MaxScript(通过PyMXS)。然后,您将Python的优势用于字符串处理和数据管理(字典!)。必要时使用MaxPlus进行某些较低级别的SDK访问。

下面的脚本按名称获取对象,通过索引获取渲染效果,并根据对象选择启用/禁用渲染效果:

import pymxs
mxs = pymxs.runtime

object_1 = mxs.getNodeByName( "Camera001" )

effect_1 = mxs.getEffect(1)
effect_1.camera

mxs.setActive(effect_1, mxs.false)

if object_1.isSelected:
    mxs.setActive(effect_1, mxs.true)

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.