问题标签 [maxscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
12638 浏览

3dsmax - 如何通过 Maxscript 以编程方式更改 3dsmax 透视窗口的 F​​OV?

我需要访问透视视口的 FOV 属性。这与与目标和自由相机关联的 FOV 属性不同。

要以非编程方式访问 FOV 属性,请右键单击视口名称(每个视口的左上角),转到配置并在“透视用户视图”下更改 FOV。

0 投票
1 回答
652 浏览

.net - 有没有办法从自定义 3ds Max 插件返回 dotNetObject 值?

我有一个用于 3ds Max 的自定义插件,它与后端的一些托管代码交互。在某些情况下,我想将托管对象转发到 MAXScript 以进行直接交互,即从我的一个函数返回一个包装的对象。

MAXScript 能够通过 Max 附带的另一个插件 (msxdotNet) 直接相对较好地操作托管对象(我使用的是 3ds Max 2008)。它基本上包装了一个对象并使用反射来进行后期绑定调用,但它完全是自包含的,没有任何 sdk 暴露。除了 Max 添加一些顶级脚本类所需的最小接口外,插件 dll 本身也没有暴露任何东西。

脚本类允许通过构造函数实例化一个新对象

就我而言,我已经有一个我想使用的对象的实例。

有没有办法从我的插件中构造一个 dotNetObject 包装器的实例以返回 Max?


理想情况下,我想要一个带有(C++/CLI)签名的辅助函数,类似于:

我可以做出的一些基本保证:

  • msxdotNet 插件已加载。
  • msxdotNet 插件和我的托管程序集位于同一个 AppDomain 中。

msxdotNet 插件的源代码作为sdk 示例包含在内,但出于管理/理智的考虑,修改它并重新编译它不是一种选择。

0 投票
2 回答
1722 浏览

scripting - 如何正确扩展 3Ds Max 材质

基本上,我只是想在 3Ds Max 9 中为“标准”材质添加更多属性。我实际上已经通过 max 脚本实现了这一点,但它破坏了我们的导出器。

导出器适用于任何使用普通“标准”材质蒙皮的东西,但扩展版本似乎对导出器隐藏了基类的属性。

我到目前为止是这样的:

通过自己声明变量,导出器可以读取它们,但这实际上并没有链接到 UI 设置的值。为了解决这个问题,我使用了“on XXX get/set”事件来链接到隐藏的项目。所以这些现在可以正常工作,但是诸如漫反射和镜面反射之类的材质贴图不起作用(这是对事物进行纹理化的唯一方法 AFAIK)。

我应该如何将这两个设置添加到材质类型中,以便它也导出“委托”类中的所有数据(要求基本继承太多了)?

谢谢

0 投票
6 回答
2748 浏览

git - 我应该解析 git status 还是使用 gitsharp?

我想将 git 集成到生产管道中以暂存 3dsmax 文件。虽然可以通过 TortoiseGit 使用 git,但我想通过 Maxscript 与它进行通信,以将自定义菜单命令添加到 3dsmax。

我应该解析git status输出文本以确定文件夹状态还是应该使用一些包装工具来正确地与 git 通信?

我正在考虑,gitsharp因为从 Maxscript 调用 dotNet 对象很容易,但我没有使用外部 dotNet 程序。

0 投票
2 回答
1252 浏览

animation - MaxScript 随时间推移导出顶点

嘿,我有一个随着时间的推移动画的蒙皮网格。我正在编写一个快速导出脚本来导出我的顶点。

如何输出每帧的顶点?

我正在使用 getVert 获取顶点,但是如何指定从哪个帧获取顶点?

谢谢 ASH

0 投票
2 回答
1830 浏览

memory-leaks - 3ds max中已知的内存泄漏?

我在 3ds max 中设置了一个脚本来将一堆动画渲染到帧中。为此,我打开一个包含所有材料的文件,将动画(作为 bip)加载到图形上,然后进行渲染。

我们看到了一个问题,最终脚本将失败,因为它无法打开下一个文件——max 已经消耗了所有的系统内存。当然,关闭 max 会释放内存,我们可以继续执行脚本。

我检查了heapfree变量,希望在我的脚本中看到内存泄漏,希望在我自己的(maxscript)代码中看到内存泄漏——但是每个动画之后的可用空间量都是相同的。

然后,它必须是消耗所有内存的 3ds max。max 中的任何内容都不需要从动画保存到动画——有什么方法可以让 max 释放内存吗?(我已经尝试resetMaxFile()手动删除场景中的所有对象)。是否有任何已知的操作集导致 max 失控?

0 投票
4 回答
4690 浏览

3dsmax - 如何以编程方式为 3ds max 中的对象分配随机颜色?

如何以编程方式为 3ds max 中的对象分配随机颜色?

0 投票
1 回答
748 浏览

3dsmax - -mxs 命令行开关是否总是关闭 3DSMax?

我想通过命令行运行一个非常简单的脚本命令,而 -mxs 开关似乎正是这样做的。但是,每次我使用它 3DSMax 2011 之后都会自动关闭。我是否使用 quitMax 调用。有没有办法解决这个问题?

0 投票
4 回答
5257 浏览

3dsmax - 如何使用最大脚本增量保存单个渲染

当我在建模时,我喜欢渲染一个框架来显示我正在进行的进度。我想对渲染器进行编程以将渲染保存为渲染输出并在其末尾添加一个增量数字。所以最后我会有一些渲染,就像动画的渲染序列一样,但我决定制作的帧。这样做的目的是自动化创建制作的过程。

0 投票
1 回答
2065 浏览

3dsmax - 重新计算可编辑多边形对象的法线

我正在研究出口商,但我遇到的问题是正常计算。

我一直在阅读很多关于此的帖子,似乎“getnormal”功能不像预期的那样工作。(这是为我的出口商造成错误结果的原因)。

所以我需要手动重新计算。

问题是 - 我该怎么做?计算法线的部分现在看起来像这样:

如果你提供了一个函数,那么请记住下面的这段代码,我不想重写所有内容。

提前致谢。