在打开时运行命令的Illustrator文件

时间:2016-03-22 11:31:30

标签: javascript maya adobe-illustrator mel

这是一个很长的镜头,但是有可能在Adobe Illustrator文件中存储JavaScript(或任何类型的可执行代码)吗?

我之所以这样问是因为我目前正在尝试自动化从Autodesk Maya导入渲染结果的过程。这个概念是,Maya完成渲染所有帧/层后,MEL脚本可以生成一个Illustrator可以打开并运行其中的命令的文件,将插图画家引导到渲染结果并开始导入它们。

最初的想法是通过MEL脚本发出一个系统命令,在渲染完成后立即启动Illustrator并以某种方式启动该过程。但是,由于这种自动化适用于不那么精通技术的人,因此要求启动另一个应用程序的应用程序会相当令人沮丧并且可能令人困惑。

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

将其视为.mel文件,在打开时,它会启动所需的应用程序(Maya),当应用程序准备就绪时,执行包含的命令(MEL)。有没有办法用Adobe应用程序,特别是Illustrator,文件自动被识别为Illustrator文件(例如.ai),启动应用程序然后运行其中包含的代码(例如JS)?

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

感谢。

1 个答案:

答案 0 :(得分:2)

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

您的需求:

  • 创建一个“文件”或在插图画家场景中导入所有Maya渲染图像的内容。
  • 可以随时执行(没有后期渲染过程打开插图画家)
  • 像我妈一样的非技术人员必须能够使用它。
  • 跨平台(Win / Osx)

解决方案:

  • 为Maya创建一个后期渲染脚本(mel或python)
  • 关于此脚本(.mel或.py):
    • 在渲染完所有帧后运行
    • 复制已呈现帧的文件夹中的现有JavaScript(.jsx)文件
    • 为Windows和OSX创建两个可执行文件(.bat和.command)
  • 关于.jsx文件:
    • 创建新的.ai文件
    • 逐个导入渲染帧并将其添加到新画板中
    • 将.ai文件保存在当前文件夹中
  • 关于.bat和.command可执行文件:
    • 运行Illustrator
    • 启动时执行.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"
}