打开时运行命令的 Illustrator 文件

Illustrator file that runs commands upon opening

希望不大,但是否有可能在 Adob​​e Illustrator 文件中存储 JavaScript(或任何类型的可执行代码)?

我问这个问题的原因是因为我目前正在尝试自动执行从 Autodesk Maya 导入渲染结果的过程。这个概念是,一旦 Maya 渲染完所有 frames/layers,MEL 脚本就可以生成 Illustrator 可以打开的文件,并在其中找到 运行 命令,将 Illustrator 引导至渲染结果并开始导入它们。

最初的想法是通过 MEL 脚本发出系统命令,在渲染完成后立即启动 Illustrator 并以某种方式启动该过程。但由于这种自动化是为不太懂技术的人准备的,一个应用程序要求启动另一个应用程序会令人沮丧,甚至可能会造成混淆。

让 Maya 生成一个文件,当用户打开它时可以完成任务是一个更受欢迎的解决方案。为用户提供更多控制权,并且不会使已经忙于处理更多应用程序调用的系统过载。

把它想象成一个 .mel 文件,打开后,它会启动所需的应用程序 (Maya),当应用程序准备就绪时,执行包含的命令 (MEL)。有没有办法用 Adob​​e 应用程序,特别是 Illustrator 来做到这一点,其中文件自动被识别为 Illustrator 文件(例如 .ai),启动应用程序,然后 运行s 代码包含在其中(例如 JS )?

欢迎任何帮助,但我想避免使用 applescripts/VBS,因为它们是特定于平台的,并且在 Mac/Windows 之间很难管理。

谢谢。

这是一个相对宽泛的问题,因为有很多方法可以实现这一点。 我会在这里尝试给你一个可能的解决方案,它显然可能不是最好的。


您的需求:

  • 创建一个 "file" 或导入插画场景中所有 Maya 渲染图像的东西。
  • 可以随时执行(没有 post 打开 Illustrator 的渲染过程)
  • 像我妈妈这样的非技术人员必须能够使用它。
  • 跨平台(Win/Osx)

解决方案:

  • 为 Maya 创建 post-渲染脚本(mel 或 python)
  • 关于此脚本(.mel 或 .py):
    • 是运行一旦所有帧都被渲染
    • 复制已渲染帧的文件夹中的现有 JavaScript (.jsx) 文件
    • 创建两个可执行文件(.bat 和 .command,都用于 Windows 和 OSX)
  • 关于 .jsx 文件:
    • 创建一个新的 .ai 文件
    • 将渲染的帧一一导入并添加到新的画板中
    • 将 .ai 文件保存到当前文件夹
  • 关于 .bat 和 .command 可执行文件:
    • 运行 插画家
    • 启动时执行 .jsx 脚本

总而言之,渲染帧后,将在与帧相同的文件夹中创建所有三个文件(.jsx、.bat、.command)。 当您的艺术家想要创建他们的 Illustrator 场景时,他们只需双击 .bat 或 .command 文件即可自动 运行 Illustrator 并导入渲染的帧并保存文件。

运行 Windows 上 Illustrator (CS 5.1) 脚本的命令是,这将是 .bat 文件的内容:

"C:\Program Files (x86)\Adobe\Adobe Illustrator CS5.1\SupportFiles\Contents\Windows\Illustrator.exe" C:\Path\To\Script.jsx

您可以轻松地为 .command 文件创建一个等效文件。

Script.jsx 可以是这样的:

// Get the fullpath of the script
var script_fullpath = $.fileName
// Only get the folder path
var script_folder   = Folder(script_fullpath).path
// Get renderred frames
var rendered_frames = Folder(script_folder).getFiles("*.exr");

if(rendered_frames.length == 0){
    alert("No images to import");
}else{
    // Loop through all the images
    // Create a new artbook
    // Import Fram
    // Then save the file here: script_folder + "/" + "illustratorFile"
}