Adobe After Effects:复制多层时保留 "Expression-Relations"
Adobe After Effects: Keep "Expression-Relations" when duplicating multiple layers
只是想问一下,有没有办法在复制图层时保持表达式的关系。
例如。我有两层,"LayerA" 和 "LayerB"。现在我在 "LayerB" 中有一个表达式说,它的位置总是等于 "LayerA" 的位置。
现在,当我复制这两个并得到 "LayerA 2" 和 "LayerB 2" 时,我希望 "LayerB 2" 中的表达式引用 "LayerA 2" 的位置而不是 "LayerA" 的位置!
虽然当只有一个表达式时简单地改变表达式是没有问题的,但是当你有多个表达式时就变得很困难了...
您可能最终想要以不同的方式组织您的排版,但是,根据您的示例(以及确切的名称长度),此位置表达式将用于找到合适的 'target layer':
//base name to work from:
baseName = "Layer";
//length of that:
nameLen = baseName.length;
//this layer's name:
myName = thisLayer.name;
if (myName.length == nameLen) {
//if they are the same, then it is the original
// (non-duplicated) version
thisComp.layer("LayerA").transform.position;
} else {
//get tail string, the space and number:
tailStr = myName.substring(nameLen+1, myName.length);
//build new target layer name with "A":
targetName = myName.substring(0, (nameLen)) + "A" + tailStr
//new line pointing to target layer:
thisComp.layer(targetName).transform.position;
}
只是想问一下,有没有办法在复制图层时保持表达式的关系。 例如。我有两层,"LayerA" 和 "LayerB"。现在我在 "LayerB" 中有一个表达式说,它的位置总是等于 "LayerA" 的位置。 现在,当我复制这两个并得到 "LayerA 2" 和 "LayerB 2" 时,我希望 "LayerB 2" 中的表达式引用 "LayerA 2" 的位置而不是 "LayerA" 的位置!
虽然当只有一个表达式时简单地改变表达式是没有问题的,但是当你有多个表达式时就变得很困难了...
您可能最终想要以不同的方式组织您的排版,但是,根据您的示例(以及确切的名称长度),此位置表达式将用于找到合适的 'target layer':
//base name to work from:
baseName = "Layer";
//length of that:
nameLen = baseName.length;
//this layer's name:
myName = thisLayer.name;
if (myName.length == nameLen) {
//if they are the same, then it is the original
// (non-duplicated) version
thisComp.layer("LayerA").transform.position;
} else {
//get tail string, the space and number:
tailStr = myName.substring(nameLen+1, myName.length);
//build new target layer name with "A":
targetName = myName.substring(0, (nameLen)) + "A" + tailStr
//new line pointing to target layer:
thisComp.layer(targetName).transform.position;
}