2015-08-05 6 views
0

Я не знает, как написать этот вопрос правильно, вещи я хочу, чтобы иметь возможность управлять два другими эффектами с помощью одного эффекта, как это:Управления других эффектов в одном эффекте Expression

var a=value; 
var b=thisLayer.effect("Form")("Y Displace"); 
var c=thisLayer.effect("Form")("X Displace"); 
snd=thisComp.layer("Bass").effect("Sound Keys")("Output 1"); 

if(thisComp.layer("Funcion").effect("On/off Displace")("Slider")==0){ 
    a=snd*10; 
    b=snd*4; 
    c=snd*4; 
} else { 
    a=0; 
    b=0; 
    c=0; 
}; 

Проблема заключается в том, что другие эффекты (Y Displace и X Displace) не изменяются, и значение этого эффекта, когда я пишу выражение, принимает значение вместо var a, поскольку я хочу, чтобы это было сделано ,

Мне нужно написать выражение одним эффектом, потому что мне нужно скопировать одно и то же выражение на разные уровни с одним и тем же набором эффектов, и очень сложно настроить его для каждого слоя.

ответ

0

Он не может работать так, как вам хотелось бы: выражение в свойстве влияет на это свойство и ничего больше (переменные a, b, c могут ссылаться на некоторые другие свойства, но не изменять их значение).

Таким образом, в собственности, соответствующий 'а' (, которого не дать свое название) выражение будет:

if(thisComp.layer("Funcion").effect("On/off Displace")("Slider").value==0){ 
    10*thisComp.layer("Bass").effect("Sound Keys")("Output 1").value; 
} else { 
    0; 
}; 

И в свойстве "Y Displace":

if(thisComp.layer("Funcion").effect("On/off Displace")("Slider").value==0){ 
    4*thisComp.layer("Bass").effect("Sound Keys")("Output 1").value; 
} else { 
    0; 
}; 

Etc.

Редактировать: причина, по которой вы всегда получаете случай «c», состоит в том, что After Effects сохраняет последнее вычисленное значение (оно вычисляет a, затем b, затем c, следовательно, результат - c).