1

我正在开发一个向 Maya 发送命令的应用程序,就像 iOS 应用程序CameraMan一样。但是,我正在寻找一种方法来使这个基于网络,而不是构建一个原生应用程序。我相信这是可以做到的,但我被困在如何建立初始联系上。Maya 创建一个可通过特定 IP 地址访问的命令端口:端口号。例如,我可以从 Eclipse 发送命令,甚至可以发送简短的 python 脚本。我已经在本机应用程序中看到了这一点,但是如何通过 Javascript 做到这一点?

Maya 确实提供了一个浏览器插件来执行此操作,但它当然是一个插件,不能在移动浏览器上运行,我也不能针对我正在尝试制作的确切应用程序自定义它。

作为背景,我具备 Javascript、Python 和 MEL 脚本的基本知识。

更新:我应该指定我不希望通过 Internet 控制 Maya。相反,我正在寻找一种通过本地网络建立连接的方法,我知道 IP 地址,就像我上面引用的 CameraMan 应用程序(只是不是作为本机应用程序)。

更新 2:不幸的是,这个项目在这一点上有点不可行。我没有意识到,为了在 Maya“服务器”上启用 websockets,我需要实现一些第三方库。适合个人使用,但如果我试图为其他人发布工具则不行。

4

1 回答 1

2

一切皆有可能,可能不切实际,或者在这种情况下,Autodesk 的许可可能是一个小问题。首先让我们更好地定义 JavaScript,看看 JavaScript 是一种编程语言,而 Web 浏览器嵌入的 JavaScript 是由浏览器绑定的。它不是关于 JavaScript 的普遍事物,并非所有 JavaScript 都在浏览器中运行。Web浏览器内部的JavaScript受浏览器和浏览器的安全规则约束,一般不能仅与网页内部的数据和服务器进行通信。因此,为了让浏览器中的 java 脚本与 Maya 对话,您需要一个服务器连接。

将 Maya 包装为 Web 服务器是可能的,我过去曾使用 mel。用python做会更容易。您可以在CreativeCrash上找到现有的演示代码,这更像是一个概念证明,而不是其他任何东西。除了反省开放场景外,您对演示无能为力。与某些帖子所说的相反,代码应该按原样工作。很难远程调试人们的防火墙,因为除非另有说明,否则大多数防火墙软件都会阻止服务器,许多用户通过覆盖将整个 Maya 与外界隔离,因此请务必仔细检查这些内容。

或者,您可以只使用现有的 java 脚本 telnet 工具和 telnet 到未过滤的 Maya 命令端口,然后直接在 Maya 中调用 mel/python。像anyterm这样的东西会符合要求。我之前已经成功地将 Maya 与电话 ssh 应用程序一起使用,以修复我假期中的脚本错误。如果您只需要编程访问,这可能是一个更容易的攻击媒介。

当您执行此类操作时,请确保您了解这涉及到一个很大的安全问题。Maya 拥有对系统的完全用户访问权限,通常是完全管理员访问权限。Maya 可以在用户级别调用计算机上的所有内容,因此没有什么能阻止攻击者远程接管整个计算机。

PS:老实说,通过私有虚拟网络使用远程桌面或 VNC 可能是更好的选择。

于 2013-01-22T12:45:02.227 回答