如何在实体上生成遮罩,或仅通过脚本在Adobe After Effects上在该实体上创建自定义(复杂)图形

如何在实体上生成遮罩,或仅通过脚本在Adobe After Effects上在该实体上创建自定义(复杂)图形,adobe,extendscript,after-effects,Adobe,Extendscript,After Effects,我正在制作一个后效脚本,为孩子们生成简单的形状和动画,我试图避免将Illustrator中的矢量形状导入后效来制作动画。这是完美的工作与简单的形状,如正方形和圆形 在Extendscript工具包中生成复杂形状有什么解决方案吗?这是一个纯代码,不需要导入或定位某些.txt文件,只需设置形状的顶点、位置和颜色,并通过在After Effects中运行脚本将其作为遮罩应用于新实体 如果我想手动操作,我将添加一个新实体,从Illustrator复制第一条路径,然后返回到after effects将其粘

我正在制作一个后效脚本,为孩子们生成简单的形状和动画,我试图避免将Illustrator中的矢量形状导入后效来制作动画。这是完美的工作与简单的形状,如正方形和圆形

在Extendscript工具包中生成复杂形状有什么解决方案吗?这是一个纯代码,不需要导入或定位某些.txt文件,只需设置形状的顶点、位置和颜色,并通过在After Effects中运行脚本将其作为遮罩应用于新实体

如果我想手动操作,我将添加一个新实体,从Illustrator复制第一条路径,然后返回到after effects将其粘贴到该实体上,然后我将添加另一个实体,返回Illustrator,复制另一条路径,返回after effect,将其粘贴到solid 2上,我将重复此过程,直到最终结果出现

我想结束软件1和软件2之间的切换,并将图形保存为[顶点]、[切线内]和[切线外]的数组,并随时调用它


我就是这样做的,它可以用于导入任何类型的镜头

var path = "File Path";

 var input = new ImportOptinputns(File(path));
 if (input.canImportAs(ImportAsType.FOOTAGE));
     input.importAs = ImportAsType.FOOTAGE;
或者,如果你想导入一个图像序列,你可以这样做

// or if your footage is an image sequence             
     input.sequence = true;
     input.forceAlphabetical = true;

     imageSequence = app.project.importFile(input);    
     imageSequence.name = 'My automatically imported foorage";

     theComp = app.project.activeItem;  //import in to currently selected composition
     theComp.layers.add(imageSequence); 

我知道如何通过脚本创建简单的向量对象,但我不确定它是否适合您。 两组矩形的一个例子

var shapeLayer = newComp.layers.addShape(); // adding shape layer    
        shapeLayer.name = "bannerLayer"; // name the shape layer
var shapeGroup1 = shapeLayer.property("Contents").addProperty("ADBE Vector Group"); / creating a group1
        shapeGroup1.name = "Banner"; //name the group1
        myRect= shapeGroup1.property("Contents").addProperty("ADBE Vector Shape - Rect"); // adding rectangle to the group1
另一个更复杂形状的示例是,将三角形添加到现有形状层中,可以使用此代码作为基础,创建更复杂的形状

var shapeLayer = newComp.layers.addShape(); // adding shape layer    
shapeLayer.name = "bannerLayer"; // name the shape layer
var shapeGroup1 = shapeLayer.property("Contents").addProperty("ADBE Vector Group"); // creating a group1
shapeGroup1.name = "Banner"; //name the group1
myRect = shapeGroup1.property("Contents").addProperty("ADBE Vector Shape - Rect"); // adding rectangle to the group1

// construct a Shape object that forms a triangle
var myTriShape = new Shape();
myTriShape.vertices = [[-50,50], [50,50], [0,100]];
myTriShape.closed = true;

// add a Path group to our existing shape layer
myTriGroup = shapeLayer.property("Contents").addProperty("ADBE Vector Group"); // adding rectangle to the group1
myTriGroup.name = "Triangle";
myTri = myTriGroup.property("Contents").addProperty("ADBE Vector Shape - Group");

// set the Path property in the group to our triangle shape
myTri.property("Path").setValue(myTriShape);
您可以在此页面上找到更多信息。我自己用谷歌搜索了一下


查看此链接

我在问是否有避免导入的方法,而不是如何导入。我不是在谈论图像,我需要通过编码来绘制矢量(与在实体上使用画笔工具绘制遮罩时的方式相同)。我的错误,但你确实需要解决你的问题,“如何仅通过脚本将矢量导入Adobe After Effects”它明确要求通过脚本将矢量导入After Effects!如果我弄错了,我很抱歉,那是个错误。谢谢你提醒我的答案,我真的很感激。我们几乎接近我的观点,我希望用一种更明显的方式来表达。这条线:myTriShape.vertices=[-50,50],[50,50],[0100];当我在Adobe Illustrator上绘制复杂的图形时,我应该如何知道这个数组的确切数字?我在谷歌上搜索了一下,没有找到任何相近的东西。谢谢你的帮助。这一点基本上是像素位置。这意味着您需要逐一解决所有问题。由于该点是合成尺寸的基础,找到每个点的准确位置的最佳解决方案是在Photoshop或Illustrator中创建一个项目,该项目具有项目合成宽度和高度的准确大小,并使用滚轮工具检查所有点的位置。如果不清楚就告诉我。