본문 바로가기

Tutorial

[itutorial] 두 레이어 사이에 평균으로 위치하는 레이어들.

반응형

-------------------------------------------------------------


이후 공부를 하면서 


2개의 타겟레이어를 지정해주면 한 콤포지션안에 여러개 중첩가능하도록 수정을 했다.


t = thisComp.layer("layer_A");

e = thisComp.layer("layer_B");

a = t.transform.position;

b = e.transform.position;

d = e.index - t.index;


if ( a[0] < b[0]) {invertx = 1} else {invertx = -1}

if ( a[1] < b[1]) {inverty = 1} else {inverty = -1}



dx = length(a[0], b[0]) / (d) * (index - t.index) * invertx;

dy = length(a[1], b[1]) / (d) * (index - t.index) * inverty;




a + [dx, dy]


------------------------------------------------------------

안녕하세요:D


작업중에 궁금한점이 있어서 이렇게 질문 드립니다.

제가 두 포지션 사이에 균일하게 배치되어있는 라이트를 만들려고 하는데요

라이트 1 과 라이트 2 은 고정된 라이트고

라이트 1과 라이트 2 사이에 라이트를 추가하면 인덱스 값으로 위, 아래 라이트 포지션의 중간위치값을 갖도록 만들려고 했습니다.

추가되는 라이트(사진에서는 라이트 3, 4, ... n 개) 에

upL = thisComp.layer(index-1).transform.position;
downL = thisComp.layer(index+1).transform.position;
(upL + downL)/2

라는 익스프레션을 넣고 추가하면 라이트 1과 2 사이에 균일하게 위치해야되는게 맞는것같은데
그렇게 되지가 않네요;;

텍스트에 넣어서 확인해 보면 저렇게 올바른 위치가 나오는데 정작 포지션은 500에 고정되어있습니다;;

표현식에 문제가 있는건가요? ㅠㅠ




-----

아래 주소에 영상 올렸습니다.
익스프레션 문장과 영상 참고하세요


http://cafe.naver.com/ArticleRead.nhn?clubid=21524684&articleid=1706&referrerAllArticles=true



a = thisComp.layer("Solid-2").transform.position;
b =  thisComp.layer("Solid-1").transform.position;

if ( a[0] < b[0]) {invertx = 1} else {invertx = -1}
if ( a[1] < b[1]) {inverty = 1} else {inverty = -1}
if ( a[2] < b[2]) {invertz = 1} else {invertz = -1}

dx = length(a[0], b[0]) / (thisComp.numLayers - 1) * (index -1) * invertx;
dy = length(a[1], b[1]) / (thisComp.numLayers - 1) * (index -1) * inverty;
dz = length(a[2], b[2]) / (thisComp.numLayers - 1) * (index -1) * invertz;


a + [dx, dy, dz]







반응형