After Effects 표현식 요소를 표준 JavaScript 요소와 함께 사용하여 표현식을 작성합니다. 언제든지 [표현식 언어] 메뉴를 사용하여 메서드 및 특성을 표현식에 삽입하거나 뚝딱 툴을 사용하여 속성을 삽입할 수 있습니다.

인수 설명에 등호(=) 및 값(t=time 또는 width=.2 등)이 포함된 경우 인수에 다른 값을 지정하지 않으면 포함된 기본값이 사용됩니다.

일부 인수 설명에는 대괄호로 묶은 숫자가 포함되며 이 숫자는 필요한 속성 또는 배열의 차원을 나타냅니다.

일부 반환 값 설명에는 대괄호로 묶은 숫자가 포함되며 이 숫자는 반환되는 속성 또는 배열의 차원을 지정합니다. 특정 차원이 포함되지 않은 경우 반환된 배열의 차원은 입력의 차원을 따릅니다.

W3Schools JavaScript 참조 웹 사이트에서는 JavaScript MathString 개체에 대한 페이지를 비롯하여 표준 JavaScript 언어에 대한 정보를 제공합니다.

표현식: JavaScript 엔진

After Effects에서는 표현식을 평가할 때 JavaScript 엔진을 사용합니다. 렌더링 중에 표현식을 평가하는 성능은 레거시 ExtendScript 엔진보다 5배까지 빠를 수 있습니다.

Windows에서 After Effects는 V8 오픈 소스 JavaScript 엔진을 사용합니다. macOS에서는 JavaScriptCore 프레임워크를 사용합니다. 이러한 두 버전은 모두 세 번째 버전의 ECMA-262 표준만 지원하는 ExtendScript보다 최신 버전의 JavaScript를 제공합니다.

프로젝트에서 JavaScript 엔진을 사용할지, 아니면 레거시 ExtendScript를 사용할지를 선택하려면 프로젝트 설정 대화 상자에서 표현식 탭을 클릭하고 표현식 엔진 옵션을 변경합니다. 이전 버전의 After Effects에서 저장한 프로젝트는 기본적으로 레거시 ExtendScript로 설정됩니다.

JavaScript의 개선 사항

  • 부동 소수점 연산의 수학적 정밀도가 향상되었습니다.
  • 최신 JavaScript의 배열 및 문자열 메서드를 사용할 수 있습니다.
  • 형식화된 배열, 키워드 'let' 및 'const'의 사용, 최신 버전의 ECMA-262 표준에 추가된 사항 같은 그 밖의 최신 JavaScript 개체도 사용할 수 있습니다.

JavaScript 엔진과 ExtendScript 간의 차이점

  • if/else 문의 구문이 JavaScript 엔진에서는 엄격하며, 구문을 표준화된 JavaScript용으로 작성해야 합니다.
  • 텍스트 레이어의 문자 인덱스에 배열로 액세스하는 경우 text.sourceText[i] 대신 text.sourceText.value[i]를 사용하십시오.
  • this_comp 및 to_world 같이 ExtendScript에서 이전에 사용이 중단된 오래된 snake_case 표현식 메서드는 지원되지 않습니다.
  • 단순화된 'this(arg)' 구문은 지원되지 않습니다.

전역 개체, 특성 및 메서드(표현식 참조)

comp(name)

반환 유형: 컴포지션

인수 유형: name은 문자열입니다.

이름으로 다른 컴포지션을 검색합니다.

footage(name)

반환 유형: 푸티지

인수 유형: name은 문자열입니다.

이름으로 푸티지 항목을 검색합니다.

thisComp

반환 유형: 컴포지션

표현식이 포함된 컴포지션을 나타냅니다.

thisLayer

반환 유형: 레이어, 광원 또는 카메라

표현식이 포함된 레이어를 나타냅니다. thisLayer는 기본 개체이므로 표현식에서 생략할 수도 있습니다. 예를 들어 thisLayer.width로 시작하는 표현식과 width로 시작하는 표현식의 결과는 동일합니다.

thisProperty

반환 유형: 속성

표현식이 포함된 속성을 나타냅니다. 예를 들어 [회전] 속성에 표현식을 작성하는 경우 thisProperty로 표현식을 시작하여 [회전] 속성을 참조할 수 있습니다.

time

반환 유형: 숫자

표현식이 계산된 컴포지션 시간을 초 단위로 나타냅니다.

colorDepth

반환 유형: 숫자

프로젝트 색상 심도 값을 반환합니다. 예를 들어 프로젝트 색상 심도가 채널당 16비트인 경우 colorDepth는 16을 반환합니다.

posterizeTime(framesPerSecond)

반환 유형: 숫자

인수 유형: framesPerSecond는 숫자입니다.

framesPerSecond 값은 나머지 표현식이 작동하는 프레임 속도입니다. 이 표현식을 사용하면 속성의 프레임 속도를 컴포지션의 프레임 속도보다 낮게 설정할 수 있습니다. 예를 들어 다음 표현식에서는 초당 한 번씩 난수 값으로 속성 값을 업데이트합니다.

  posterizeTime(1);   random()

value

반환 유형: 숫자, 배열 또는 문자열

표현식이 포함된 속성의 현재 값을 나타냅니다.

시간 변환 메서드(표현식 참조)

timeToFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)

반환 유형: 숫자

인수 유형: tfps는 숫자이고 isDuration은 부울입니다.

기본값이 현재 컴포지션 시간인 t의 값을 정수인 프레임 수로 변환합니다. 초당 프레임 수는 fps 인수에 지정되며 기본값은 현재 컴포지션의 프레임 속도(1.0 / thisComp.frameDuration)입니다. 기본값이 false인 isDuration 인수는 t 값이 절대 시간이 아니라 두 시간 간의 차이를 나타내는 경우 인수 값이 true여야 합니다. 절대 시간은 음수 무한대로 반내림되고 지속 시간은 0에서 양수로 반올림됩니다.

framesToTime(frames, fps = 1.0 / thisComp.frameDuration)

반환 유형: 숫자

인수 유형: framesfps는 숫자입니다.

timeToFrames의 역수입니다. 필수 인수인 frames에 해당하는 시간을 반환합니다. 정수일 필요는 없습니다. fps인수에 대한 자세한 내용은 timeToFrames를 참조하십시오.

timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false)

반환 유형: 문자열

인수 유형: ttimecodeBase는 숫자이고 isDuration은 부울입니다.

t 값을 시간 코드를 나타내는 문자열로 변환합니다. tisDuration 인수에 대한 자세한 내용은 timeToFrames를 참조하십시오. timecodeBase 값은 초당 프레임 수를 지정하며 기본값은 30입니다.

timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false)

반환 유형: 문자열

인수 유형: t는 숫자이고, ntscDropFrameisDuration은 부울입니다.

t를 NTSC 시간 코드를 나타내는 문자열로 변환합니다. tisDuration 인수에 대한 자세한 내용은 timeToFrames를 참조하십시오. ntscDropFrame이 false(기본값)이면 결과 문자열은 NTSC 비드롭 프레임 시간 코드입니다. ntscDropFrame이 true이면 결과 문자열은 NTSC 드롭 프레임 시간 코드입니다.

timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false)

반환 유형: 문자열

인수 유형: t, fpsframesPerFoot는 숫자이고 isDuration은 부울입니다.

t 값을 필름 및 프레임의 피트를 나타내는 문자열로 변환합니다. t, fpsisDuration 인수에 대한 자세한 내용은 timeToFrames를 참조하십시오. framesPerFoot 인수는 필름 1피트당 프레임 수를 지정합니다. 기본값은 16이며 이는 35mm 푸티지에 가장 일반적인 속도입니다.

timeToCurrentFormat(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)

반환 유형: 문자열

인수 유형: tfps는 숫자이고 isDuration은 부울입니다.

t 값을 현재 [프로젝트 설정]의 표시 형식에 있는 시간을 나타내는 문자열로 변환합니다. 모든 인수의 정의는 timeToFrames를 참조하십시오.

After Effects CS5.5 이상에서는 선택적 인수인 ntscDropFrametimeToCurrentFormat() 함수에 추가되었습니다. 기본값: ntscDropFrame = thisComp.ntscDropFrame

참고:

푸티지의 시간 코드 표시를 세부적으로 제어하려면 [시간 코드] 또는 [숫자] 효과를 사용하는 대신 timeToCurrentFormat 메서드 또는 다른 timeTo 메서드를 사용하여 시간 코드를 생성합니다. 텍스트 레이어를 만들고 [소스 텍스트] 속성에 표현식을 추가한 후 표현식 필드에 timeToCurrentFormat()을 입력합니다. 이 방법을 사용하면 시간 코드 텍스트에 형식을 지정하고 애니메이션을 적용할 수 있습니다. 또한 시간 코드에서는 현재 프로젝트 설정에 정의된 것과 같은 표시 스타일을 사용합니다.

벡터 수학 메서드(표현식 참조)

벡터 수학 함수는 배열에 대해 연산을 수행하는 전역 메서드이며 배열을 수학적 벡터로 처리합니다. Math.sin 등의 기본 JavaScript 메서드와 달리 이러한 메서드는 Math 접두사와 함께 사용되지 않습니다. 별도로 지정하지 않는 한 벡터 수학 메서드는 차원에 대해 관대합니다. 벡터 수학 메서드는 가장 큰 입력 배열 개체의 차원 값을 반환하고 누락된 요소는 0으로 채웁니다. 예를 들어 표현식 add([10, 20], [1, 2, 3])에서는 [11, 22, 3]을 반환합니다.

JJ Gifford의 웹 사이트에서는 표현식에서 간단한 기하 및 삼각법을 사용하는 방법을 보여 주는 예제 및 설명을 제공합니다.

add(vec1, vec2)

반환 유형: 배열

인수 유형: vec1vec2는 배열입니다.

두 벡터를 더합니다.

sub(vec1, vec2)

반환 유형: 배열

인수 유형: vec1vec2는 배열입니다.

두 벡터를 뺍니다.

mul(vec, amount)

반환 유형: 배열

인수 유형: vec는 배열이고 amount는 숫자입니다.

벡터의 각 요소에 amount의 값을 곱합니다.

div(vec, amount)

반환 유형: 배열

인수 유형: vec는 배열이고 amount는 숫자입니다.

벡터의 각 요소를 amount의 값으로 나눕니다.

clamp(value, limit1, limit2)

반환 유형: 숫자 또는 배열

인수 유형: value, limit1limit2는 숫자 또는 배열입니다.

value의 각 구성 요소 값은 limit1limit2의 값을 양 끝으로 하는 값 범위에 속하도록 제한됩니다.

dot(vec1, vec2)

반환 유형: 숫자

인수 유형: vec1vec2는 배열입니다.

두 벡터 인수의 내적을 반환합니다.

cross(vec1, vec2)

반환 유형: 배열[2 또는 3]

인수 유형: vec1vec2는 배열[2 또는 3]입니다.

vec1vec2의 벡터 외적을 반환합니다. 자세한 내용은 수학 참조 또는 JavaScript 가이드를 참조하십시오.

normalize(vec)

반환 유형: 배열

인수 유형: vec는 배열입니다.

길이가 1.0이 되도록 벡터를 정규화합니다. normailze 메서드를 사용하면 div(vec, length(vec)) 연산을 수행하는 것에 비해 작업이 간단해집니다.

length(vec)

반환 유형: 숫자

인수 유형: vec는 배열입니다.

벡터 vec의 길이를 반환합니다.

length(point1, point2)

반환 유형: 숫자

인수 유형: point1 point2 는 배열입니다.

두 점 사이의 거리를 반환합니다. point2 인수는 선택 사항입니다. 예를 들어 length(point1, point2)length(sub(point1, point2))와 같습니다.

예를 들어 다음 표현식을 카메라의 [피사체와의 거리] 속성에 추가하여 카메라의 관심 영역에 초점이 맞춰지도록 초점면을 이 관심 영역으로 잠글 수 있습니다.

  length(position, pointOfInterest)

lookAt(fromPoint, atPoint)

반환 유형: 배열[3]

인수 유형: fromPointatPoint는 배열[3]입니다.

fromPoint 인수는 방향을 설정할 레이어의 월드 공간에서의 위치입니다. atPoint 인수는 레이어가 향하도록 할 월드 공간의 점입니다. 반환 값은 [방향] 속성에 대한 표현식으로 사용할 수 있으며 레이어의 z 축이 atPoint를 향하도록 합니다. 이 메서드는 특히 카메라 및 광원에 유용합니다. 이 표현식을 카메라에 사용하는 경우 방향 자동 설정을 해제하십시오. 예를 들어 lookAt(position, thisComp.layer(1).position)이라는 표현식을 집중 조명의 [방향] 속성에 사용하면 스포트라이트가 동일한 컴포지션에 있는 레이어 번호 1의 기준점을 향합니다.

난수 메서드(표현식 참조)

참고:

속성 값을 임의로 변경하는 데 사용되는 wiggle 메서드는 속성 특성 및 메서드 범주에 속합니다. 자세한 내용은 속성 특성 및 메서드(표현식 참조)를 참조하십시오.

seedRandom(offset, timeless=false)

반환 유형: 없음

인수 유형: offset은 숫자이고 timeless는 부울입니다.

randomgaussRandom 메서드에서는 숫자의 시퀀스를 제어하는 시드 값을 사용합니다. 기본적으로 시드는 고유 레이어 식별자, 레이어 내의 속성, 현재 시간 및 오프셋 값 0의 함수로 계산됩니다. 다른 임의 시퀀스를 만들려면 seedRandom을 호출하여 오프셋을 0 이외의 값으로 설정합니다.

현재 시간을 임의 시드에 대한 입력으로 사용하지 않으려면 timeless 인수에 대해 true를 사용합니다. timeless 인수에 대해 true를 사용하면 계산 시간에 따라 달라지지 않는 난수를 생성할 수 있습니다.

timeless 값이 아닌 오프셋 값이 wiggle 함수의 초기 값을 제어하는 데 사용되기도 합니다.

예를 들어 [불투명도] 속성에 다음 표현식을 사용하면 [불투명도] 값이 시간에 따라 변하지 않는 난수 값으로 설정됩니다.

  seedRandom(123456, true);   random()*100

이 예제에서는 random 메서드에서 반환된 0에서 1 사이의 값에 100을 곱하여 0에서 100 사이의 숫자로 변환합니다. 이 범위는 0%에서 100% 사이의 값을 갖는 [불투명도] 속성에 특히 유용합니다.

random()

반환 유형: 숫자

0에서 1 사이의 난수를 반환합니다.

After Effects CC 및 CS6에서 레이어 ID가 서로 근접하면 random()의 동작이 좀 더 임의적인 상태로 변경됩니다. wiggle() 표현식은 영향을 받지 않습니다.

random(maxValOrArray)

반환 유형: 숫자 또는 배열

인수 유형: maxValOrArray는 숫자 또는 배열입니다.

maxValOrArray가 숫자인 경우 이 메서드는 0에서 maxValOrArray 사이의 숫자를 반환합니다. maxValOrArray 가 배열인 경우 이 메서드에서는 maxValOrArray와 같은 차원의 배열을 반환합니다. 배열의 각 구성 요소는 0에서 maxValOrArray의 해당 구성 요소 사이의 범위에 있습니다.

random(minValOrArray, maxValOrArray)

반환 유형: 숫자 또는 배열

인수 유형: minValOrArraymaxValOrArray는 숫자 또는 배열입니다.

minValOrArraymaxValOrArray가 숫자인 경우 이 메서드는 minValOrArray에서 maxValOrArray 사이의 숫자를 반환합니다. 인수가 배열인 경우 이 메서드는 차원이 더 큰 인수와 동일한 차원을 가지는 배열을 반환하며, 배열의 각 인수는 minValOrArray의 해당 구성 요소에서 maxValOrArray의 해당 구성 요소 사이의 범위에 있습니다. 예를 들어 random([100, 200], [300, 400]) 표현식은 첫 번째 값이 100에서 300 사이에 있고 두 번째 값이 200에서 400 사이에 있는 배열을 반환합니다. 두 입력 배열의 차원이 일치하지 않는 경우 차원이 낮은 배열의 나머지 차원 값은 0으로 채워집니다.

gaussRandom()

반환 유형: 숫자

난수를 반환합니다. 결과는 가우시안(종 모양) 분포입니다. 결과의 약 90%는 0에서 1 사이의 범위에 있으며 나머지 10%는 이 범위 바깥에 있습니다.

gaussRandom(maxValOrArray)

반환 유형: 숫자 또는 배열

인수 유형: maxValOrArray는 숫자 또는 배열입니다.

maxValOrArray가 숫자인 경우 이 메서드에서는 난수를 반환합니다. 결과의 약 90%는 0에서 maxValOrArray 사이의 범위에 있으며 나머지 10%는 이 범위 바깥에 있습니다. maxValOrArray가 배열인 경우 이 메서드에서는 난수 값 배열을 반환하며 이 배열의 차원은 maxValOrArray와 같습니다. 배열에 포함된 값의 90%는 0에서 maxValOrArray 사이의 범위에 있으며 나머지 10%는 이 범위 바깥에 있습니다. 결과는 가우시안(종 모양) 분포입니다.

gaussRandom(minValOrArray, maxValOrArray)

반환 유형: 숫자 또는 배열

인수 유형: minValOrArraymaxValOrArray는 숫자 또는 배열입니다.

minValOrArraymaxValOrArray가 숫자인 경우 이 메서드에서는 난수를 반환합니다. 결과의 약 90%는 minValOrArray에서 maxValOrArray 사이의 범위에 있으며 나머지 10%는 이 범위 바깥에 있습니다. 인수가 배열인 경우 이 메서드에서는 난수의 배열을 반환합니다. 이 배열의 차원은 두 인수 중 차원이 더 큰 인수와 동일합니다. 각 구성 요소에서 결과의 약 90%는 minValOrArray의 해당 구성 요소에서 maxValOrArray의 해당 구성 요소 사이의 범위에 있으며 나머지 10%는 이 범위 바깥에 있습니다. 결과는 가우시안(종 모양) 분포입니다.

noise(valOrArray)

반환 유형: 숫자

인수 유형: valOrArray는 숫자이거나 배열[2 또는 3]입니다.

-1에서 1 사이의 숫자를 반환합니다. 노이즈는 실제로 난수가 아니며 Perlin 노이즈에 기반합니다. 따라서 서로 가까운 두 입력 값의 반환 값 역시 서로 가까운 경향이 있습니다. 이 유형의 노이즈는 서로 크게 다르지 않지만 난수처럼 보이는 숫자 시퀀스가 필요할 때 유용합니다. 일반적으로 자연스러운 임의의 움직임을 애니메이션으로 만드는 경우에 유용합니다. 예를 들어 rotation + 360*noise(time)과 같이 작성할 수 있습니다.

보간 메서드(표현식 참조)

모든 보간 메서드에서 인수 ttime 또는 value인 경우가 많지만 값이 다를 수도 있습니다. ttime인 경우 값은 지속 시간 동안 보간됩니다. tvalue인 경우 표현식에서는 값의 한 범위를 새 범위로 매핑합니다.

보간 메서드의 추가 설명 및 예제는 JJ Gifford의 웹 사이트를 참조하십시오.

Chris와 Trish Meyer는 ProVideo Coalition 웹 사이트의 문서에서 이 메서드들에 대한 추가 정보 및 예제를 제공합니다.

Ian Haigh는 After Effects Scripts 웹 사이트에서 바운스와 같은 고급 보간 메서드 표현식을 간편하게 속성에 적용하기 위해 사용할 수 있는 스크립트를 제공합니다.

Creative COW 웹 사이트에서 Andrew Devis가 제공하는 두 편의 비디오 튜토리얼에서 [오디오를 키프레임으로 변환] 명령과 함께 linear 표현식 기법을 사용하는 방법에 대한 자세한 내용을 확인하십시오.

linear(t, tMin, tMax, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t, tMintMax는 숫자이고 value1value2는 숫자 또는 배열입니다.

t <= tMin인 경우 value1을 반환합니다. t >= tMax인 경우 value2를 반환합니다. tMin < t < tMax인 경우 value1value2 간의 선형 보간을 반환합니다.

예를 들어 [불투명도] 속성에 다음 표현식을 사용하면 0초에서 6초까지의 시간 동안 [불투명도] 값이 20%에서 80%로 선형 경사를 이루게 됩니다.

  linear(time, 0, 6, 20, 80)

이 메서드는 모든 보간 메서드처럼 값 범위 간을 변환할 때도 사용할 수 있습니다. 예를 들어 [불투명도] 속성에 다음 표현식을 사용하면 불투명도 값이 0%-100% 범위에서 20%-80% 범위로 변환됩니다.

  linear(value, 0, 100, 20, 80)

linear(t, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t는 숫자이고 value1value2는 숫자 또는 배열입니다.

t가 0에서 1까지의 범위에 있으면 value1에서 value2로 선형 보간된 값을 반환합니다. t <= 0인 경우 value1을 반환합니다. t >= 1인 경우 value2를 반환합니다.

ease(t, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t는 숫자이고 value1value2는 숫자 또는 배열입니다.

시작점 및 끝점에서 속도가 0이 되도록 보간에서 천천히 들어오고 나가는 것을 제외하면 동일한 인수의 linear와 유사합니다. 이 메서드는 매끄러운 애니메이션을 만듭니다.

ease(t, tMin, tMax, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t, tMintMax는 숫자이고 value1value2는 숫자 또는 배열입니다.

시작점 및 끝점에서 속도가 0이 되도록 보간에서 천천히 들어오고 나가는 것을 제외하면 동일한 인수의 linear와 유사합니다. 이 메서드는 매끄러운 애니메이션을 만듭니다.

easeIn(t, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t는 숫자이고 value1value2는 숫자 또는 배열입니다.

value1 쪽에서만 접선이 0이고 value2 쪽의 보간이 선형이라는 것 외에는 ease와 유사합니다.

easeIn(t, tMin, tMax, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t,tMintMax는 숫자이고 value1value2는 숫자 또는 배열입니다.

tMin 쪽에서만 접선이 0이고 tMax 쪽의 보간이 선형이라는 것 외에는 ease와 유사합니다.

easeOut(t, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t는 숫자이고 value1value2는 숫자 또는 배열입니다.

value2 쪽에서만 접선이 0이고 value1 쪽의 보간이 선형이라는 것 외에는 ease와 유사합니다.

easeOut(t, tMin, tMax, value1, value2)

반환 유형: 숫자 또는 배열

인수 유형: t,tMintMax는 숫자이고 value1value2는 숫자 또는 배열입니다.

tMax 쪽에서만 접선이 0이고 tMin 쪽의 보간이 선형이라는 것 외에는 ease와 유사합니다.

색상 변환 메서드(표현식 참조)

Harry Frank는 자신의 graymachine 웹 사이트에서 이러한 색상 변환 메서드를 사용하여 [전파] 효과로 생성되는 물결의 색상을 변경하는 방법을 보여 주는 비디오 튜토리얼을 제공합니다.

rgbToHsl(rgbaArray)

반환 유형: 배열[4]

인수 유형: rgbaArray는 배열[4]입니다.

색상을 RGBA 공간에서 HSLA 공간으로 변환합니다. 입력은 정규화된 빨강, 녹색, 파랑 및 알파 채널 값의 배열이며 채널 값은 모두 0.0에서 1.0까지의 범위에 속합니다. 결과 값은 색조, 채도, 밝기 및 알파 채널 값의 배열이며 채널 값은 0.0에서 1.0까지의 범위에 속합니다. 예를 들어 다음과 같이 작성할 수 있습니다.

  rgbToHsl.effect("Change Color")("Color To Change")

hslToRgb(hslaArray)

반환 유형: 배열[4]

인수 유형: hslaArray는 배열[4]입니다.

색상을 HSLA 공간에서 RGBA 공간으로 변환합니다. 이 변환은 rgbToHsl 메서드가 수행하는 변환과 반대입니다.

기타 수학 메서드(표현식 참조)

degreesToRadians(degrees)

반환 유형: 숫자

인수 유형: degrees는 숫자입니다.

도를 라디안으로 변환합니다.

radiansToDegrees(radians)

반환 유형: 숫자

인수 유형: radians는 숫자입니다.

라디안을 도 단위로 변환합니다.

컴포지션 특성 및 메서드(표현식 참조)

layer(index)

반환 유형: 레이어, 광원 또는 카메라

인수 유형: index는 숫자입니다.

[타임라인] 패널에서의 순서를 나타내는 숫자로 레이어를 검색합니다. 예를 들어 thisComp.layer(3)과 같이 작성합니다.

layer(name)

반환 유형: 레이어, 광원 또는 카메라

인수 유형: name은 문자열입니다.

이름으로 레이어를 검색합니다. 레이어 이름 또는 소스 이름(레이어 이름이 없는 경우)과 일치하는 이름을 검색합니다. 중복된 이름이 있는 경우 After Effects에서는 [타임라인] 패널에서의 첫 번째 이름, 즉 맨 위에 있는 이름을 사용합니다. 예를 들어 다음과 같이 작성할 수 있습니다.

  thisComp.layer("Solid 1")

layer(otherLayer, relIndex)

반환 유형: 레이어, 광원 또는 카메라

인수 유형: otherLayer는 레이어 개체이고 relIndex는 숫자입니다.

otherLayer의 위 또는 아래에서 relIndex인 레이어를 검색합니다. 예를 들어 thisComp.layer(thisLayer, 1).active는 [타임라인] 패널 아래의 다음 레이어가 활성 상태인 경우 true를 반환합니다.

marker

반환 유형: MarkerProperty

참고:

마커 번호를 사용하여 컴포지션 마커에 액세스할 수 있습니다. 컴포지션 마커 번호를 표현식에 사용하는 After Effects 이전 버전에서 만든 프로젝트가 있는 경우 marker.key(name)을 대신 사용하도록 해당 호출을 변경해야 합니다. 컴포지션 마커의 기본 이름은 번호이므로 이름을 사용하도록 참조를 변환하려면 번호를 따옴표로 묶기만 하면 됩니다.

marker.key(index)

반환 유형: MarkerKey

인수 유형: index는 숫자입니다.

지정된 인덱스가 있는 마커의 MarkerKey 개체를 반환합니다. 인덱스는 컴포지션 시간의 마커 이름 대신 마커 순서를 참조합니다. 예를 들어 다음 표현식에서는 첫 번째 컴포지션 마커의 시간을 반환합니다.

  thisComp.marker.key(1).time

marker.key(name)

반환 유형: MarkerKey

인수 유형: name은 문자열입니다.

지정된 이름이 있는 마커의 MarkerKey 개체를 반환합니다. name 값은 [마커] 대화 상자의 [주석] 필드에 입력한 마커의 이름입니다(예: marker.key("1")). 컴포지션 마커에서 기본 이름은 번호입니다. 컴포지션의 마커 둘 이상에 같은 이름이 있는 경우 이 메서드에서는 컴포지션 시간에 첫 번째로 나타난 마커를 반환합니다. 마커 키의 값은 숫자가 아니라 문자열입니다. 예를 들어 다음 표현식에서는 이름이 "0"인 컴포지션 마커의 시간을 반환합니다.

  thisComp.marker.key("0").time

marker.nearestKey(t)

반환 유형: MarkerKey

인수 유형: t는 숫자입니다.

시간이 t에 가장 가까운 마커를 반환합니다. 예를 들어 다음 표현식에서는 시간이 1초에 가장 가까운 컴포지션 마커의 시간을 반환합니다.

  thisComp.marker.nearestKey(1).time

다음 표현식에서는 현재 시간에 가장 가까운 컴포지션 마커의 시간을 반환합니다.

  thisComp.marker.nearestKey(time).time

marker.numKeys

반환 유형: 숫자

컴포지션에 있는 컴포지션 마커의 전체 숫자를 반환합니다.

numLayers

반환 유형: 숫자

컴포지션에 있는 레이어 수를 반환합니다.

activeCamera

반환 유형: 카메라

현재 프레임에 컴포지션을 렌더링한 카메라의 카메라 개체를 반환합니다. 이 카메라는 [컴포지션] 패널에서 보는 카메라가 아니어도 됩니다.

width

반환 유형: 숫자

컴포지션의 폭을 픽셀로 반환합니다.

다음 표현식을 레이어의 [위치] 속성에 적용하여 레이어를 컴포지션 프레임의 가운데에 맞춥니다.

  [thisComp.width/2, thisComp.height/2]

height

반환 유형: 숫자

컴포지션의 높이를 픽셀로 반환합니다.

duration

반환 유형: 숫자

컴포지션의 지속 시간을 초 단위로 반환합니다.

ntscDropFrame

반환 유형: 부울

시간 코드가 드롭 프레임 형식이면 true를 반환합니다. (After Effects CS5.5 이상)

displayStartTime

반환 유형: 숫자

컴포지션 시작 시간을 초 단위로 반환합니다.

frameDuration

반환 유형: 숫자

프레임의 지속 시간을 초 단위로 반환합니다.

shutterAngle

반환 유형: 숫자

컴포지션의 셔터 각도 값을 도 단위로 반환합니다.

shutterPhase

반환 유형: 숫자

컴포지션의 셔터 위상을 도 단위로 반환합니다.

bgColor

반환 유형: 배열[4]

컴포지션의 배경색을 반환합니다.

pixelAspect

반환 유형: 숫자

컴포지션의 픽셀 종횡비를 반환합니다.

name

반환 유형: 문자열

컴포지션의 이름을 반환합니다.

컴포지션 마커 보호 영역 특성

컴포지션 마커의 보호 영역 옵션은 protectedRegion 컴포지션 마커 특성과 함께 읽을 수 있습니다.

푸티지 특성 및 메서드(표현식 참조)

[프로젝트] 패널에서 푸티지 항목을 표현식의 개체로 사용하려면 footage("file_name")과 같이 전역 footage 메서드를 사용합니다. 소스가 푸티지 항목인 레이어의 source 특성을 사용하여 푸티지 개체에 액세스할 수도 있습니다.

width

반환 유형: 숫자

푸티지 항목의 폭을 픽셀로 반환합니다.

height

반환 유형: 숫자

푸티지 항목의 높이를 픽셀로 반환합니다.

duration

반환 유형: 숫자

푸티지 항목의 지속 시간을 초 단위로 반환합니다.

frameDuration

반환 유형: 숫자

푸티지 항목의 프레임 지속 시간을 초 단위로 반환합니다.

ntscDropFrame

반환 유형: 부울

시간 코드가 드롭 프레임 형식이면 true를 반환합니다. (After Effects CS5.5 이상)

pixelAspect

반환 유형: 숫자

푸티지 항목의 픽셀 종횡비를 반환합니다.

name

반환 유형: 문자열

[프로젝트] 패널에 표시된 푸티지 항목의 이름을 반환합니다.

레이어 하위 개체 특성 및 메서드(표현식 참조)

참고:

After Effects CC 및 CS6에서 [표현식 언어] 메뉴, [레이어 하위 개체], [레이어 일반], [레이어 속성], [레이어 3D] 및 [레이어 공간 변형]이 [레이어] 하위 메뉴로 정렬되었습니다.

source

반환 유형: 컴포지션 또는 푸티지

레이어의 소스 컴포지션 또는 소스 푸티지 개체를 반환합니다. 기본 시간은 소스의 시간으로 조정됩니다. 예를 들어 source.layer(1).position과 같이 작성합니다.

sourceTime(t = time)

반환 유형: 숫자

t 시간에 해당하는 레이어 소스를 반환합니다 (After Effects CS5.5 이상)

sourceRectAtTime(t = time, includeExtents = false)

반환 유형: [top, left, width, height]라는 네 개의 특성이 있는 JavaScript 개체. 모양 레이어에만 범위가 적용되어 레이어 경계가 필요에 따라 늘어나고 단락 텍스트 레이어(After Effects 15.1 이상)의 경우 단락 상자의 경계가 반환됩니다. 예: myTextLayer.sourceRectAtTime().width

effect(name)

반환 유형: 효과

인수 유형: name은 문자열입니다.

After Effects에서는 [효과 컨트롤] 패널에서 이름으로 효과를 찾습니다. 이 이름은 기본 이름이거나 사용자 정의 이름입니다. 여러 효과의 이름이 같은 경우 [효과 컨트롤] 패널에서 맨 위에 있는 효과가 사용됩니다. 예를 들어 다음과 같이 작성할 수 있습니다.

  effect("Fast Blur")("Blurriness")

effect(index)

반환 유형: 효과

인수 유형: index는 숫자입니다.

After Effects에서는 [효과 컨트롤] 패널에서 인덱스로 효과를 찾습니다. 인덱스는 [효과 컨트롤] 패널의 맨 위에서 1부터 시작됩니다.

mask(name)

반환 유형: 마스크

인수 유형: name은 문자열입니다.

이 이름은 기본 이름이거나 사용자 정의 이름입니다. 여러 마스크의 이름이 같은 경우 첫 번째(맨 위) 마스크가 사용됩니다. 예를 들어 다음과 같이 작성할 수 있습니다.

  mask("Mask 1")

mask(index)

반환 유형: 마스크

인수 유형: index는 숫자입니다.

After Effects에서는 [타임라인] 패널에서 인덱스로 마스크를 찾습니다. 인덱스는 [타임라인] 패널의 맨 위에서 1부터 시작됩니다.

레이어 일반 특성 및 메서드(표현식 참조)

width

반환 유형: 숫자

레이어의 폭을 픽셀로 반환합니다. 이는 source.width와 같습니다.

height

반환 유형: 숫자

레이어의 높이를 픽셀로 반환합니다. 이는 source.height 와 같습니다.

index

반환 유형: 숫자

컴포지션에 있는 레이어의 인덱스 번호를 반환합니다.

parent

반환 유형: 레이어, 광원 또는 카메라

레이어의 부모 레이어 개체가 있으면 이를 반환합니다. 예를 들어 position[0] + parent.width와 같이 작성할 수 있습니다.

hasParent

반환 유형: 부울

레이어에 부모가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

hasParent 특성을 사용하여 레이어에 부모 레이어가 있는지 확인합니다. 이 특성은 레이어에 현재 부모 레이어가 없어도 사용할 수 있습니다. 예를 들어 다음 표현식에서는 이 특성이 적용된 레이어가 부모 레이어의 위치에 따라 흔들리도록 합니다. 부모가 없는 레이어는 자신의 위치에 따라 흔들립니다. 나중에 레이어에 부모를 지정하는 경우에는 그에 따라 레이어 동작이 변경됩니다.

  idx = index;   if (hasParent) {     idx = parent.index;   }   thisComp.layer(idx).position.wiggle(5,20)

inPoint

반환 유형: 숫자

레이어의 인 시점을 초 단위로 반환합니다.

참고:

일반적으로 outPoint의 값은 inPoint의 값보다 큽니다. 그러나 레이어가 시간상 반전되는 경우 inPoint의 값이 outPoint의 값보다 큽니다. 마찬가지로 startTime의 값이 inPoint의 값보다 클 수 있습니다.

outPoint

반환 유형: 숫자

레이어의 아웃 시점을 초 단위로 반환합니다.

startTime

반환 유형: 숫자

레이어의 시작 시간을 초 단위로 반환합니다.

hasVideo

반환 유형: 부울

레이어에 비디오가 있으면 true를 반환하고 없으면 false를 반환합니다.

hasAudio

반환 유형: 부울

레이어에 오디오가 있으면 true를 반환하고 없으면 false를 반환합니다.

active

반환 유형: 부울

레이어에 대해 [비디오] 스위치가 설정되어 있고 현재 시간이 레이어의 시작 지점에서 종료 지점 사이에 있는 경우에는 true를 반환하고, 그렇지 않으면 false를 반환합니다.

enabled

반환 유형: 부울

[비디오] 스위치 가 레이어에 대해 설정되어 있는 경우 true를 반환하고 그렇지 않은 경우 false를 반환합니다.

audioActive

반환 유형: 부울

레이어에 대해 [오디오] 스위치가 설정되어 있고 현재 시간이 레이어의 시작 지점에서 종료 지점 사이에 있는 경우에는 true를 반환하고, 그렇지 않으면 false를 반환합니다.

sampleImage(point, radius = [.5, .5], postEffect=true, t=time)

반환 유형: 배열[4]

인수 유형: pointradius는 배열[2]이고 postEffect는 부울, t는 숫자입니다.

레이어의 색상 및 알파 채널 값을 샘플링하고 점의 지정된 거리 내에 있는 픽셀의 알파 가중 평균값을 [red, green, blue, alpha] 배열로 반환합니다. postEffect가 true이면 레이어에 마스크 및 효과가 렌더링된 후에 해당 레이어 대한 값을 샘플링하고, postEffect가 false이면 레이어에 마스크 및 효과가 렌더링되기 전에 해당 레이어에 대한 값을 샘플링합니다. 입력 값 point는 레이어 공간에 위치합니다. 예를 들어 점 [0,0]은 레이어에서 왼쪽 위 픽셀의 중심입니다. 입력 값 radius는 샘플 중심에서 샘플링된 사각형의 가장자리에 이르는 가로 및 세로 거리를 지정합니다. 기본값은 1픽셀을 샘플링합니다.

참고:

postEffect 매개 변수는 조정 레이어에서처럼 레이어에 간접 적용되는 효과가 아닌 레이어에 직접 적용되는 효과를 참조합니다.

참고:

표현식으로 sampleImage를 사용하면 더 이상 다중 처리가 비활성화되지 않습니다.

이 예제에서는 레이어의 왼쪽 위 모퉁이에서 아래 및 오른쪽으로 100픽셀 위치에 있는 점을 중심으로 하는 폭 4픽셀, 높이 3픽셀의 사각형을 샘플링합니다.

  thisComp.layer(1).sampleImage([100, 100], [2, 1.5])

Dan Ebberts는 sampleImage 메서드의 사용 방법의 예제를 자신의 MotionScript 웹 사이트에서 제공합니다.

Todd Kopriva는 색상 교정 중에 sampleImage 메서드 및 지점 컨트롤 효과를 사용하여 지정된 지점에 대해 색상을 모니터링하기 위한 지침을 자신의After Effects Region of Interest 블로그에서 제공합니다.

레이어 속성 특성 및 메서드(표현식 참조)

레이어에 마스크, 효과, 페인트 및 텍스트를 추가하면 After Effects에서는 [타임라인] 패널에 새 속성을 추가합니다. 이러한 속성이 너무 많아 여기에 모두 나열하기 어려우므로 표현식에서 이러한 속성을 참조하는 데 필요한 구문을 알아보려면 뚝딱 툴을 사용합니다.

anchorPoint

반환 유형: 속성[2 또는 3]

레이어의 좌표계(레이어 공간)에서 레이어의 기준점 값을 반환합니다.

position

반환 유형: 속성[2 또는 3]

레이어에 부모가 없는 경우 월드 공간에서 레이어의 위치 값을 반환합니다. 레이어에 부모가 있는 경우에는 부모 레이어의 좌표계(부모 레이어의 레이어 공간)에서 레이어의 위치 값을 반환합니다.

scale

반환 유형: 속성[2 또는 3]

레이어의 비율 값을 백분율로 반환합니다.

rotation

반환 유형: 속성

레이어의 회전 값을 도 단위로 반환합니다. 3D 레이어에서는 z 회전 값을 도 단위로 반환합니다.

opacity

반환 유형: 속성

레이어의 불투명도 값을 백분율로 반환합니다.

audioLevels

반환 유형: 속성[2]

레이어의 [오디오 레벨] 속성 값을 데시벨(dB)로 반환합니다. 이는 2D 값입니다. 첫 번째 값은 왼쪽 오디오 채널을 나타내고 두 번째 값은 오른쪽 오디오 채널을 나타냅니다. 이 값은 소스 질감의 오디오 트랙 진폭이 아닙니다. 대신 이 값은 키프레임의 영향을 받을 수 있는 [오디오 레벨] 속성의 값입니다.

timeRemap

반환 유형: 속성

[시간 다시 매핑]이 사용된 경우 [시간 다시 매핑] 속성의 값을 초 단위로 반환합니다.

marker.key(index)

반환 유형: MarkerKey

인수 유형: index는 숫자입니다.

지정된 인덱스가 있는 레이어 마커의 MarkerKey 개체를 반환합니다.

marker.key(name)

반환 유형: MarkerKey

인수 유형: name은 문자열입니다.

지정된 이름이 있는 레이어 마커의 MarkerKey 개체를 반환합니다. name 값은 [마커] 대화 상자의 [주석] 필드에 입력한 마커의 이름입니다(예: marker.key("ch1")). 레이어의 마커 둘 이상에 같은 이름이 있는 경우 이 메서드에서는 레이어 시간에 첫 번째로 나타난 마커를 반환합니다. 마커 키의 값은 숫자가 아니라 문자열입니다.

속성에 다음 표현식을 사용하면 이름으로 식별된 두 마커 간에 속성 값이 0에서 100으로 경사를 이루게 됩니다.

  m1 = marker.key("Start").time;   m2 = marker.key("End").time;   linear(time, m1, m2, 0, 100);

marker.nearestKey(t)

반환 유형: MarkerKey

인수 유형: t는 숫자입니다.

시간이 t에 가장 가까운 레이어 마커를 반환합니다. 예를 들어 다음 표현식에서는 시간이 1초에 가장 가까운 레이어 마커의 시간을 반환합니다.

  marker.nearestKey(1).time

다음 표현식에서는 현재 시간에 가장 가까운 레이어 마커의 시간을 반환합니다.

  marker.nearestKey(time).time

marker.numKeys

반환 유형: 숫자

레이어에 있는 마커의 전체 숫자를 반환합니다.

name

반환 유형: 문자열

레이어의 이름을 반환합니다.

레이어 3D 특성 및 메서드(표현식 참조)

orientation

반환 유형: 속성[3]

3D 레이어의 3D 방향 값을 도 단위로 반환합니다.

rotationX

반환 유형: 속성

3D 레이어의 x 회전 값을 도 단위로 반환합니다.

rotationY

반환 유형: 속성

3D 레이어의 y 회전 값을 도 단위로 반환합니다.

rotationZ

반환 유형: 속성

3D 레이어의 z 회전 값을 도 단위로 반환합니다.

lightTransmission

반환 유형: 속성

3D 레이어의 [광선 투과] 속성 값을 반환합니다.

castsShadows

반환 유형: 속성

레이어에 그림자가 표시된 경우 값 1.0을 반환합니다.

acceptsShadows

반환 유형: 속성

레이어에 그림자가 허용된 경우 값 1.0을 반환합니다.

acceptsLights

반환 유형: 속성

레이어에 광원이 허용된 경우 값 1.0을 반환합니다.

ambient

반환 유형: 속성

주변광 구성 요소 값을 백분율로 반환합니다.

diffuse

반환 유형: 속성

확산 구성 요소 값을 백분율로 반환합니다.

specular

반환 유형: 속성

반사 구성 요소 값을 백분율로 반환합니다.

shininess

반환 유형: 속성

밝기 구성 요소 값을 백분율로 반환합니다.

metal

반환 유형: 속성

메탈 구성 요소 값을 백분율로 반환합니다.

레이어 공간 변형 메서드(표현식 참조)

레이어 공간 변형 메서드를 사용하여 한 공간에서 다른 공간으로 값을 변형합니다. 예를 들어 레이어 공간에서 세계 공간으로 값을 변형할 수 있습니다. “from” 메서드는 명명된 공간(컴포지션 또는 월드)에서 레이어 공간으로 값을 변형합니다. “to” 메서드는 레이어 공간에서 명명된 공간(컴포지션 또는 월드)으로 값을 변형합니다. 각 변형 메서드에서는 선택적인 인수를 받아들여 변형이 계산되는 시간을 확인하지만 사용자는 거의 항상 현재(기본) 시간을 사용할 수 있습니다.

두 점 값 사이의 차이와 같은 방향 벡터를 변형하는 경우 “Vec” 변형 메서드를 사용합니다. 위치와 같은 점을 변형하는 경우에는 “Vec”이 아닌 일반 변형 메서드를 사용합니다. 컴포지션 및 세계 공간은 2D 레이어에서 같은 공간입니다. 그러나 3D 레이어의 경우 컴포지션 공간은 활성 카메라에 상대적이고 세계 공간은 활성 카메라와 연관되지 않습니다.

toComp(point, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: point는 배열[2 또는 3]이고 t는 숫자입니다.

레이어 공간에서 컴포지션 공간으로 점을 변형합니다.

fromComp(point, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: point는 배열[2 또는 3]이고 t는 숫자입니다.

컴포지션 공간에서 레이어 공간으로 점을 변형합니다. 3D 레이어의 결과 점은 레이어 공간에 있는 경우에도 0이 아닌 값을 가질 수 있습니다. 예를 들어 fromComp(thisComp.layer(2).position)과 같이 작성할 수 있습니다.

toWorld(point, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: point는 배열[2 또는 3]이고 t는 숫자입니다.

레이어 공간에서 뷰 독립적인 세계 공간으로 점을 변형합니다. 예를 들어 다음과 같이 작성할 수 있습니다.

  toWorld.effect("Bulge")("Bulge Center")

Dan Ebberts는 자신의 MotionScript 웹 사이트에서 toWorld 메서드를 사용하여 한 축을 따라 레이어 방향을 자동으로 설정하는 표현식을 제공합니다. 이 표현식은 위아래 방향은 그대로 두고 문자를 카메라에 따라 옆으로 돌리려는 등의 경우에 유용합니다.

 

Rich Young은 자신의 AE Portal 웹 사이트에서 toWorld 메서드를 사용하여 카메라와 조명을 레이어에 링크해 CC Sphere 효과를 적용하는 일련의 표현식을 제공합니다.

fromWorld(point, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: point는 배열[2 또는 3]이고 t는 숫자입니다.

월드 공간에서 레이어 공간으로 점을 변형합니다. 예를 들어 fromWorld(thisComp.layer(2).position)과 같이 작성할 수 있습니다.

이 메서드를 어떻게 사용할 수 있는지에 대한 예제는 표현식 예제: 두 레이어 간 돌출 만들기를 참조하십시오.

toCompVec(vec, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: vec는 배열[2 또는 3]이고 t는 숫자입니다.

레이어 공간에서 컴포지션 공간으로 벡터를 변형합니다. 예제: toCompVec([1,0])

fromCompVec(vec, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: vec는 배열[2 또는 3]이고 t는 숫자입니다.

컴포지션 공간에서 레이어 공간으로 벡터를 변형합니다. 예를 들어 2D 레이어의 경우 다음과 같이 작성할 수 있습니다.

  dir=sub(position, thisComp.layer(2).position);   fromCompVec(dir)

toWorldVec(vec, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: vec는 배열[2 또는 3]이고 t는 숫자입니다.

레이어 공간에서 세계 공간으로 벡터를 변형합니다. 예를 들어 다음과 같이 작성할 수 있습니다.   p1 = effect("Eye Bulge 1")("Bulge Center");    p2 = effect("Eye Bulge 2")("Bulge Center");     toWorld(sub(p1, p2))

fromWorldVec(vec, t=time)

반환 유형: 배열[2 또는 3]

인수 유형: vec는 배열[2 또는 3]이고 t는 숫자입니다.

월드 공간에서 레이어 공간으로 벡터를 변형합니다. 예를 들어 fromWorld(thisComp.layer(2).position)과 같이 작성할 수 있습니다.

fromCompToSurface(point, t=time)

반환 유형: 배열[2]

인수 유형: point는 배열[2 또는 3]이고 t는 숫자입니다.

활성 카메라에서 볼 때 나타나는 위치에 있는 레이어 표면(z 값 0) 위의 한 점으로 컴포지션 공간에 있는 한 점을 투영합니다. 이 메서드는 효과 조절점을 설정할 때 유용합니다. 3D 레이어에만 사용하십시오.

카메라 특성 및 메서드(표현식 참조)

카메라 개체의 source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap 및 모든 질감 속성을 제외한 나머지 특성과 메서드는 레이어 개체의 특성 및 메서드와 동일합니다.

pointOfInterest

반환 유형: 속성[3]

월드 공간에서 카메라의 관심 영역 값을 반환합니다.

zoom

반환 유형: 속성

카메라의 확대/축소 값을 픽셀 단위로 반환합니다.

다음은 레이어의 z 위치(심도) 또는 카메라의 [확대/축소] 값을 변경하는 동안 프레임의 레이어 상대 크기를 유지하는 레이어의 [비율] 속성에 대한 표현식입니다.

  cam = thisComp.activeCamera;    distance = length(sub(position, cam.position));    scale * distance / cam.zoom;

depthOfField

반환 유형: 속성

카메라의 [피사계 심도] 속성이 설정되어 있으면 1을 반환하고, [피사계 심도] 속성이 해제되어 있으면 0을 반환합니다.

focusDistance

반환 유형: 속성

카메라의 피사체와의 거리 값을 픽셀 단위로 반환합니다.

aperture

반환 유형: 속성

카메라의 조리개 값을 픽셀 단위로 반환합니다.

blurLevel

반환 유형: 속성

카메라의 흐림 레벨 값을 백분율로 반환합니다.

active

반환 유형: 부울

카메라가 현재 시간에 컴포지션의 활성 카메라이면 true를 반환합니다. 이 경우 카메라 레이어에 대해 [비디오] 스위치 가 설정되어 있고, 현재 시간이 카메라 레이어의 시작 지점에서 종료 지점 사이의 범위에 있으며, 해당 레이어는 [타임라인] 패널에 나열되어 있는 카메라 레이어 중 첫 번째(맨 위) 레이어입니다. 활성 카메라가 아니면 false를 반환합니다.

광원 특성 및 메서드(표현식 참조)

광원 개체의 source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap 및 모든 질감 속성을 제외한 나머지 특성과 메서드는 레이어 개체의 특성 및 메서드와 동일합니다.

pointOfInterest

반환 유형: 속성[3]

월드 공간에서 광원의 관심 영역 값을 반환합니다.

intensity

반환 유형: 속성

광원의 강도 값을 백분율로 반환합니다.

color

반환 유형: 속성[4]

광원의 색상 값을 반환합니다.

coneAngle

반환 유형: 속성

광원의 광원뿔 각도를 각도 단위로 반환합니다.

coneFeather

반환 유형: 속성

광원의 광원뿔 페더 값을 백분율로 반환합니다.

shadowDarkness

반환 유형: 속성

광원의 그림자 농도 값을 백분율로 반환합니다.

shadowDiffusion

반환 유형: 속성

광원의 그림자 확산 값을 픽셀 단위로 반환합니다.

David Van Brink는 omino pixel blog에서 광원에 대해 표현식을 사용하는 방법을 보여 주는 문서와 샘플 프로젝트를 제공합니다.

효과 특성 및 메서드(표현식 참조)

active

반환 유형: 부울

효과가 켜져 있는 경우, 즉 [효과] 스위치 가 선택된 경우 true를 반환합니다.

param(name)

반환 유형: 속성

인수 유형: name은 문자열입니다.

효과 내의 속성을 반환합니다. 효과 조절점은 항상 레이어 공간 내에 있습니다. 예를 들어 다음과 같이 작성할 수 있습니다.

  effect("Bulge").param("Bulge Height")

param(index)

반환 유형: 속성

인수 유형: index는 숫자입니다.

효과 내의 속성을 반환합니다. 효과 조절점은 항상 레이어 공간 내에 있습니다. 예를 들어 effect("Bulge").param(4)는 [돌출 높이] 속성을 반환합니다.

마스크 특성 및 메서드(표현식 참조)

참고:

[마스크 패스] 속성을 다른 패스 속성(모양 레이어 및 브러시 선의 패스)에 연결할 수 있지만 표현식을 통해 수치를 직접 조작하기 위해 [마스크 패스] 속성에 액세스할 수는 없습니다.

maskOpacity

반환 유형: 속성

마스크의 불투명도 값을 백분율로 반환합니다.

maskFeather

반환 유형: 속성

마스크의 페더 값을 픽셀 단위로 반환합니다.

maskExpansion

반환 유형: 속성

마스크의 확장 값을 픽셀 단위로 반환합니다.

invert

반환 유형: 부울

마스크가 반전된 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.

속성 특성 및 메서드(표현식 참조)

value

반환 유형: 숫자, 배열 또는 문자열

현재 시간의 속성 값을 반환합니다.

valueAtTime(t)

반환 유형: 숫자 또는 배열

인수 유형: t는 숫자입니다.

지정된 시간의 속성 값을 초 단위로 반환합니다.

예를 들어 각 프레임의 특정 속성 값이 네 가지 값 중에서 임의로 선택되도록 하려면 네 가지 값을 0, 1, 2, 및 3초에서 키프레임으로 설정한 후 해당 속성에 다음 표현식을 적용합니다.

  valueAtTime(random(4))

참고:

Dan Ebberts는 자신의 MotionScript 웹 사이트에서 valueAtTime 및 velocityAtTime 메서드 사용에 대한 추가 예제 및 기법을 제공합니다.

velocity

반환 유형: 숫자 또는 배열

현재 시간의 임시 속도 값을 반환합니다. [위치]와 같은 공간 속성에 대해서는 접선 벡터 값을 반환합니다. 결과는 속성과 같은 차원을 가집니다.

velocityAtTime(t)

반환 유형: 숫자 또는 배열

인수 유형: t는 숫자입니다.

지정된 시간의 임시 속도 값을 반환합니다.

speed

반환 유형: 숫자

기본 시간에 속성이 변경되는 속력과 동일한 1차원의 양수 속력 값을 반환합니다. 이 요소는 공간 속성에만 사용할 수 있습니다.

speedAtTime(t)

반환 유형: 숫자

인수 유형: t는 숫자입니다.

지정된 시간의 공간 속력 값을 반환합니다.

wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)

반환 유형: 숫자 또는 배열

인수 유형: freq, amp, octaves, amp_multt는 숫자입니다.

속성 값을 임의로 흔듭니다.

freq 값은 초당 흔들기 빈도입니다.

amp 값은 진폭이 적용된 속성 단위로 나타낸 진폭입니다.

octaves는 함께 더한 노이즈의 옥타브 수입니다. 이 값으로 흔들기의 세밀한 정도를 제어합니다. 높은 빈도를 포함하려면 이 값을 기본값인 1보다 높게 설정하고 흔들기에 진폭 배음을 포함하려면 이 값을 낮춥니다.

amp_multamp에 각 옥타브를 곱한 양입니다. 이 값으로 배음의 감소 속도를 제어합니다. 기본값은 0.5입니다. 기본 빈도와 같은 진폭으로 배음을 추가하려면 1에 가깝게 지정하고 세밀한 정도를 낮춰서 추가하려면 0에 가깝게 지정합니다.

t는 기본 시작 시간입니다. 기본값은 현재 시간입니다. 서로 다른 시간에 샘플링된 속성 값의 흔들기를 출력하려면 이 매개 변수를 사용합니다.

예를 들어 position.wiggle(5, 20, 3, .5)는 평균 크기가 약 20픽셀인 흔들기를 초당 5번 만듭니다. 기본 흔들기 이외에 두 가지 레벨의 세밀한 흔들기, 즉 초당 빈도 10, 크기 10픽셀의 흔들기와 초당 빈도 20, 크기 5픽셀의 흔들기가 각각 추가로 발생합니다.

다음 예제에서는 [비율]과 같은 2차원 속성에서 각 차원을 같은 정도로 흔듭니다.

  v = wiggle(5, 10);   [v[0], v[0]]

다음 예제에서는 2차원 속성에서 y 축만을 따라서 흔듭니다.

  freq = 3;   amp = 50;   w = wiggle(freq,amp);   [value[0],w[1]];

Dan Ebberts는 자신의 MotionScript 웹 사이트에서 wiggle 메서드의 time 매개 면수를 사용하여 루핑 애니메이션을 만들기 위한 예제 표현식과 자세한 설명을 제공합니다.

temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)

반환 유형: 숫자 또는 배열

인수 유형: freq, amp, octaves, amp_multt는 숫자입니다.

흔들린 시간에 속성을 샘플링합니다. freq 값은 초당 흔들기 빈도이고 amp는 진폭이 적용된 속성의 단위로 나타낸 진폭입니다. octaves는 함께 더한 노이즈의 옥타브 수이고 amp_multamp에 각 옥타브를 곱한 양이며 t는 기본 시작 시간입니다. 이 함수가 의미를 가지려면 샘플링한 속성에 애니메이션이 적용되어야 합니다. 이 함수에서는 샘플링 값이 아닌 샘플링 시간을 변경하기 때문입니다. 예를 들어 scale.temporalWiggle(5, .2)와 같이 작성할 수 있습니다.

smooth(width=.2, samples=5, t=time)

반환 유형: 숫자 또는 배열

인수 유형: width, samplest는 숫자입니다.

속성 값의 단기적인 큰 편차를 작고 고르게 분포된 편차로 점차 매끄럽게 만듭니다. 이와 같은 매끄럽게 하기는 지정된 시간에 상자 필터를 속성 값에 적용하여 수행됩니다. width 값은 필터를 평균화하는 시간 범위(초 단위)입니다. samples 값은 일정 시간에 걸쳐 고르게 배치된 이산 샘플의 수입니다. 큰 값을 사용하면 샘플이 더 매끄럽게 되지만 성능은 떨어집니다. 일반적으로 samples에는 홀수를 사용하여 현재 시간의 값이 평균에 포함되도록 할 수 있습니다. 예를 들어 position.smooth(.1, 5)와 같이 작성합니다.

loopIn(type="cycle", numKeyframes=0)

반환 유형: 숫자 또는 배열

레이어의 첫 번째 키프레임에서 레이어의 종료 지점까지 앞으로 측정된 시간 세그먼트를 반복합니다. 이 반복은 레이어의 시작 지점부터 재생됩니다. numKeyframes 값은 반복할 세그먼트를 결정합니다. 반복되는 세그먼트는 첫 번째 키프레임에서 numKeyframes+1 키프레임까지의 레이어 부분입니다. 예를 들어 loopIn("cycle", 3)은 첫 번째와 네 번째 키프레임 구간의 세그먼트를 반복합니다. 기본값 0은 모든 키프레임이 반복됨을 의미합니다.

키프레임 루핑 메서드를 사용하여 일련의 키프레임을 반복할 수 있습니다. 이러한 메서드는 대부분의 속성에 사용할 수 있습니다. [레벨] 효과의 [소스 텍스트] 속성, 패스 모양 속성 및 [막대 그래프] 속성처럼 [타임라인] 패널에서 간단한 숫자 값으로 표현할 수 없는 속성은 예외입니다. 너무 큰 키프레임 또는 지속 시간 값은 허용된 최대 값으로 잘립니다. 값이 너무 작으면 루프가 계속됩니다.

 

루프 유형

결과

cycle

지정된 세그먼트를 반복합니다(기본값).

pingpong

앞뒤로 방향을 바꾸며 지정된 세그먼트를 반복합니다.

offset

지정된 세그먼트를 반복하지만 세그먼트 시작 및 끝에 있는 속성 값의 차이에 세그먼트가 반복된 횟수를 곱하여 각 순환에 오프셋을 지정합니다.

continue

지정된 세그먼트를 반복하지 않고 첫 번째 또는 마지막 키프레임의 속도에 따라 속성에 애니메이션을 계속 적용합니다. 예를 들어 레이어에 있는 [비율] 속성의 마지막 키프레임이 100%인 경우 레이어는 종료 지점으로 바로 돌아가 반복되지 않으며, 해당 비율이 100%에서 종료 지점까지 계속 조정됩니다. 이 유형에는 keyframes 또는 duration 인수를 사용할 수 없습니다.

loopOut(type="cycle", numKeyframes=0)

반환 유형: 숫자 또는 배열

레이어의 마지막 키프레임에서 레이어의 시작 지점까지 뒤로 측정된 시간 세그먼트를 반복합니다. 이 반복은 레이어의 종료 지점까지 재생됩니다. 지정한 키프레임 수에 따라 반복할 선분이 결정됩니다. numKeyframes 값으로 반복할 키프레임 세그먼트 수를 설정합니다. 지정된 범위는 마지막 키프레임에서 뒤로 측정됩니다. 예를 들어 loopOut("cycle", 1)은 마지막 키프레임에서 바로 앞 키프레임 구간의 세그먼트를 반복합니다. 기본값 0은 모든 키프레임이 반복됨을 의미합니다. 자세한 내용은 loopIn 항목을 참조하십시오.

David Van Brink는 ominopixel blog에서[에코]효과, [입자 필드] 효과 및 loopOut 메서드를 사용하여 스타일화된 헤엄치는 박테리아 무리에 애니메이션을 적용하는 방법을 보여 주는 문서와 샘플 프로젝트를 제공합니다.

loopInDuration(type="cycle", duration=0)

반환 유형: 숫자 또는 배열

레이어의 첫 번째 키프레임에서 레이어의 종료 지점까지 앞으로 측정된 시간 세그먼트를 반복합니다. 이 반복은 레이어의 시작 지점부터 재생됩니다. 지정한 지속 시간에 따라 반복할 선분이 결정됩니다. duration 값은 세그먼트에서 반복할 컴포지션 수에 해당하는 시간을 초 단위로 설정합니다. 지정된 범위는 첫 번째 키프레임에서부터 측정합니다. 예를 들어 loopInDuration("cycle",1)은 전체 애니메이션에서 처음 1초를 반복합니다. 기본값인 0으로 설정하면 반복할 세그먼트가 레이어의 종료 지점에서 시작됩니다. 자세한 내용은 loopIn 항목을 참조하십시오.

loopOutDuration(type="cycle", duration=0)

반환 유형: 숫자 또는 배열

레이어의 마지막 키프레임에서 레이어의 시작 지점까지 뒤로 측정된 시간 세그먼트를 반복합니다. 이 반복은 레이어의 종료 지점까지 재생됩니다. 지정한 지속 시간에 따라 반복할 선분이 결정됩니다. duration 값은 세그먼트에서 반복할 컴포지션 수에 해당하는 시간을 초 단위로 설정합니다. 지정된 범위는 마지막 키프레임에서 뒤로 측정됩니다. 예를 들어 loopOutDuration("cycle", 1)은 전체 애니메이션의 마지막 1초를 반복합니다. 기본값인 0으로 설정하면 반복할 세그먼트가 레이어의 시작 지점에서 시작됩니다. 자세한 내용은 loopIn 항목을 참조하십시오.

key(index)

반환 유형: 키 또는 MarkerKey

인수 유형: index는 숫자입니다.

키 또는 MarkerKey 개체를 번호별로 반환합니다. 예를 들어 key(1)은 첫 번째 키프레임을 반환합니다.

key(markerName)

반환 유형: MarkerKey

인수 유형: markerName은 문자열입니다.

이 이름을 가진 MarkerKey 개체를 반환합니다. 마커 속성에만 사용됩니다.

nearestKey(t)

반환 유형: 키 또는 MarkerKey

지정된 시간에 가장 가까운 키 또는 MarkerKey 개체를 반환합니다.

numKeys

반환 유형: 숫자

속성의 키프레임 숫자를 반환합니다. 마커 속성의 마커 숫자를 반환합니다.

참고:

[차원 분리] 명령을 사용하여 [위치] 속성의 차원을 개별 구성 요소로 분리하는 경우 키프레임 수가 변경되어 이 메서드가 반환하는 값이 달라집니다.

propertyGroup(countUp = 1)

반환 유형: 그룹

표현식이 작성된 속성에 관련된 속성 그룹을 반환합니다. 예를 들어 propertyGroup(1) 표현식을 브러시 선의 [회전] 속성에 추가하는 경우 이 표현식에서는 [회전] 속성이 포함된 [변형] 속성 그룹을 대상으로 합니다. propertyGroup(2)를 대신 추가하면 이 표현식에서는 [브러쉬] 속성 그룹을 대상으로 합니다. 이렇게 하면 속성 계층 구조에서 이름 독립적인 관계를 만들 수 있습니다. 이 메서드는 표현식을 포함하는 속성을 복제할 때 특히 유용합니다.

propertyGroup에 대한 numProperties 메서드는 속성 그룹의 속성 수를 반환합니다.

이 예제에서는 표현식이 작성된 속성을 포함하는 그룹의 속성 수를 반환합니다.

  thisProperty.propertyGroup(1).numProperties

propertyIndex

반환 유형: 숫자

마스크, 효과, 텍스트 애니메이터, 선택기, 모양, 추적기 및 추적 점 내의 속성 그룹을 비롯한 속성 그룹에서 다른 속성에 상대적인 특정 속성의 인덱스를 반환합니다.

name

반환 유형: 문자열

속성 또는 속성 그룹의 이름을 반환합니다.

예제: propertyGroup 메서드 및 propertyIndex 특성으로 애니메이션 적용

브러시 선의 [위치] 속성을 기준으로 하는 propertyGroup 값
브러시 선의 [위치] 속성을 기준으로 하는 propertyGroup 값

A. propertyGroup(4) B. propertyGroup(3) C. propertyGroup(2) D. propertyGroup(1) E. 위치의 propertyIndex 값은 2이고 회전의 propertyIndex 값은 4입니다. 

이 예제에서 각 브러시 선에 대한 propertyGroup 메서드는 [브러쉬] 속성 그룹을 대상으로 합니다. 해당 그룹이 [회전] 속성으로부터 두 단계 위 속성 그룹이기 때문입니다. 각 브러시 선의 propertyIndex 특성은 각 브러시 선의 고유 값을 반환합니다. 그런 다음 결과 값에 시간 및 200을 곱하여 각 회전 값에 적용합니다. 이에 따라 각 브러시 선이 각각 다르게 회전하여 소용돌이치는 페인트 선이 만들어집니다.  propertyGroup(2).propertyIndex * time * 200

  propertyGroup(2).propertyIndex * time * 200
표현식으로 브러시 선에 애니메이션 적용
표현식으로 브러시 선에 애니메이션 적용

프로젝트 속성(표현식 참조)

표현식 메서드:

  • thisProject 개체 thisProject - 표현식이 포함된 프로젝트를 나타냅니다.

유형:

프로젝트 개체, 읽기 전용

  • 프로젝트 fullPath 특성 thisProject.fullPath - 플랫폼별 절대 파일 경로(프로젝트 파일 이름 포함)입니다. 저장되지 않은 프로젝트의 경우 빈 문자열을 반환합니다.
유형:
문자열, 읽기 전용.
  • 프로젝트 bitsPerChannel 특성 thisProject.bitsPerChannel - 프로젝트 설정 > 색상 관리에 설정된 프로젝트의 색상 심도(채널당 비트(bpc))이며 8, 16 또는 32 중 하나입니다. 스크립팅 프로젝트 특성 app.project.bitsPerChannel과 동일합니다.
유형
숫자, 읽기 전용
  • 프로젝트 linearBlending 특성 thisProject.linearBlending - 프로젝트 설정 > 색상 관리에 있는 [1.0 감마를 사용한 색상 혼합] 옵션의 상태입니다. 스크립팅 프로젝트 특성 app.project.linearBlending과 동일합니다.
유형:
부울, 읽기 전용

주요 특성 및 메서드(표현식 참조)

키 개체에 액세스하면 time, indexvalue 속성을 가져올 수 있습니다. 예를 들어 다음 표현식 position.key(3).value에서는 세 번째 [위치] 키프레임의 값을 반환합니다.

다음 표현식을 키프레임이 있는 [불투명도] 속성에 작성하면 깜박임이 나타날 곳을 결정하는 데 키프레임의 시간 배치만 사용되고 키프레임 값은 무시됩니다.   d = Math.abs(time - nearestKey(time).time);   easeOut(d, 0, .1, 100, 0)

  d = Math.abs(time - nearestKey(time).time); 
  easeOut(d, 0, .1, 100, 0)

value

반환 유형: 숫자 또는 배열

키프레임의 값을 반환합니다.

time

반환 유형: 숫자

키프레임의 시간을 반환합니다.

index

반환 유형: 숫자

키프레임의 인덱스를 반환합니다.

MarkerKey 특성(표현식 참조)

동일한 메서드를 사용하여 컴포지션 마커 및 레이어 마커의 값에 액세스할 수 있습니다. thisLayer.marker 개체를 통해 레이어 마커에 액세스하고 thisComp.marker 개체를 통해 컴포지션 마커에 액세스합니다.

표현식에서 마커는 특별한 종류의 키 개체입니다. 따라서 nearestKey(time)와 같은 메서드를 사용하여 마커에 액세스할 수 있으며 마커에는 timeindex 특성도 있습니다. index 특성은 마커의 번호(이름)가 아니며 시간 눈금자에서 마커의 순서를 나타내는 키프레임 인덱스 번호입니다.

표현식에서는 [컴포지션 마커] 또는 [레이어 마커] 대화 상자에서 설정할 수 있는 마커의 모든 값에 액세스할 수 있습니다. 텍스트 레이어의 [소스 텍스트] 속성에 다음 표현식을 사용하면 시간, 지속 시간, 색인, 주석(이름), 장, URL, 프레임 대상, 현재 시간에 가장 가까운 레이어 마커에 대한 큐 포인트 이름 및 해당 마커가 이벤트 큐 포인트에 대한 것인지 여부가 표시됩니다.

  m = thisLayer.marker.nearestKey(time);  
  s = "time:" + timeToCurrentFormat(m.time) + "\r" +  
      "duration: " + m.duration + "\r" +  
      "key index: " + m.index + "\r" +  
      "comment:" + m.comment + "\r" +  
      "chapter:" + m.chapter + "\r" +  
      "URL:" + m.url + "\r" +  
      "frame target: " + m.frameTarget + "\r" +  
      "cue point name: " + m.cuePointName + "\r" +  
      "Event cue point? " + m.eventCuePoint + "\r";  
  for (param in m.parameters){  
       s += "parameter: " + param + " value: " + m.parameters[param] + "\r";  
  } 
  s

푸티지 항목의 XMP 메타데이터는 해당 항목을 기반으로 레이어에 대한 레이어 마커로 변환할 수 있으므로 표현식이 XMP 메타데이터와 상호 작용할 수 있습니다. 자세한 내용은 After Effects의 XMP 메타데이터를 참조하십시오.

Dan Ebberts는 After Effects Developer Center에서 표현식과 XMP 메타데이터를 사용하는 예제가 포함된 튜토리얼을 제공합니다.

duration

반환 유형: 숫자

초 단위로 표시되는 마커의 지속 시간입니다.

comment

반환 유형: 문자열

마커 대화 상자에 있는 [주석] 필드의 콘텐트입니다.

chapter

반환 유형: 문자열

마커 대화 상자에 있는 [장] 필드의 콘텐트입니다.

url

반환 유형: 문자열

마커 대화 상자에 있는 [URL] 필드의 콘텐트입니다.

frameTarget

반환 유형: 문자열

마커 대화 상자에 있는 [프레임 대상] 필드의 콘텐트입니다.

eventCuePoint

반환 유형: 부울

마커 대화 상자에 있는 큐 포인트 유형에 대한 설정입니다. 큐 포인트 유형이 [이벤트]이면 true이고 [탐색]이면 false입니다.

cuePointName

반환 유형: 문자열

마커 대화 상자에 있는 큐 포인트 [이름] 필드의 콘텐트입니다.

parameters

반환 유형: 문자열 값의 결합형 배열

마커 대화 상자에 있는 [매개 변수 이름] 및 [매개 변수 값] 필드의 콘텐트입니다.

예를 들어 이름이 "background color"인 매개 변수가 있는 경우 다음 표현식을 사용하여 가장 가까운 마커에서 해당 매개 변수의 값에 액세스할 수 있습니다.

  thisComp.marker.nearestKey(time).parameters["background color"]

MarkerValue.protectedRegion(표현식 참조)

표현식 메서드:

thisComp.marker.key(index).protectedRegion

설명:

true일 경우 컴포지션 마커가 보호 영역처럼 작동합니다.

유형:

부울, 읽기 전용.

표현식을 통해 모양, 마스크 및 브러시 선의 패스 지점 액세스(표현식 참조)

표현식을 사용하여 다음 항목에 있는 패스 지점(정점)의 x 및 y 좌표를 읽고 쓸 수 있습니다.

  • 레이어 마스크
  • 베지어 모양
  • [페인트], [로토 브러시] 및 [가장자리 다듬기] 효과의 브러시 선

표현식 메서드:

  • Path points() 메서드: {pathProperty}.points(t = time) 패스에 있는 모든 지점의 x,y 좌표를 가져옵니다. 레이어 마스크 패스 지점의 좌표는 왼쪽 위 모퉁이의 레이어 원점을 기준으로 합니다. 베지어 모양 패스 지점의 좌표는 패스 모양 그룹의 기준점을 기준으로 합니다(예: 변형: 모양 1 > 기준점). 브러시 선 패스 지점의 좌표는 선의 시작 부분을 기준으로 하며 첫 번째 지점은 [0,0]입니다. 필요에 따라 패스를 샘플링할 시간을 지정합니다. 패스를 복제할 때 이 메서드를 points 매개 변수의 createPath() 메서드로 전달할 수 있습니다.

매개 변수:

t 숫자(선택 사항). 패스를 샘플링할 컴포지션 시간(초)입니다. 기본값은 시간(현재 시간)입니다.

반환:

4번째 소수 자릿수로 반올림된 숫자 쌍 배열의 배열

  • 패스 inTangents() 메서드: {pathProperty}.inTangents(t = 시간) 패스에 있는 모든 지점의 들어오는 접선 핸들 x,y 좌표를 가져옵니다. 접선 좌표 값은 부모 지점 좌표를 기준으로 하는 오프셋입니다. 즉, 값이 [0,0]이면 들어오는 접선에서 곡률이 생성되지 않습니다. 패스를 복제할 때 이 메서드를 inTangents 매개 변수의 createPath() 메서드로 전달할 수 있습니다. 필요에 따라 패스를 샘플링할 시간을 지정합니다.

매개 변수:

t 숫자(선택 사항). 패스를 샘플링할 컴포지션 시간(초)입니다. 기본값은 시간(현재 시간)입니다.

반환:

4번째 소수 자릿수로 반올림된 숫자 쌍 배열의 배열

  • 패스 outTangents() 메서드: {pathProperty}.outTangents(t = 시간) 패스에 있는 모든 지점의 나가는 접선 핸들 x,y 좌표를 가져옵니다. 접선 좌표 값은 부모 지점 좌표를 기준으로 하는 오프셋입니다. 값이 [0,0]이면 나가는 접선에서 곡률이 생성되지 않습니다. 패스를 복제할 때 이 메서드를 outTangents 매개 변수의 createPath() 메서드로 전달할 수 있습니다. 필요에 따라 패스를 샘플링할 시간을 지정합니다.

매개 변수:

t 숫자(선택 사항). 패스를 샘플링할 컴포지션 시간(초)입니다. 기본값은 시간(현재 시간)입니다.

반환:

4번째 소수 자릿수로 반올림된 숫자 쌍 배열의 배열

  • 패스 isClosed() 메서드{pathProperty}.isClosed()패스가 열려 있는지 아니면 닫혀 있는지를 확인합니다. 패스가 닫혀 있으면 true를 반환하고 열려 있으면 false를 반환합니다. 패스를 복제할 때 이 메서드를 is_closed 매개 변수의 createPath() 메서드로 전달할 수 있습니다.

매개 변수:

없음

반환:

부울

  • 패스 pointOnPath() 메서드 {pathProperty}.pointOnPath(백분율 = 0.5, t = 시간)패스를 따라 임의 지점의 x,y 좌표를 가져옵니다. 지점은 패스 호 길이의 백분율로 표현됩니다. 0%가 첫 번째 지점이고 100%가 마지막 지점입니다. 패스가 닫혀 있으면 0%와 100%에서 같은 좌표가 반환됩니다. 호 길이의 백분율이 사용되므로 패스를 따라 균일한 속도를 유지할 수 있습니다. 0% 및 100% 이외의 백분율과 패스의 베지어 지점 간에 상관 관계가 있는 것은 아닙니다. 예를 들어 지점이 3개인 패스의 경우 두 번째 지점의 백분율이 반드시 50%인 것은 아닙니다. 그리고 닫힌 패스는 길이가 더 길기 때문에 동일한 지점을 포함하는 열린 패스와 닫힌 패스에서 열린 패스의 백분율과 닫힌 패스의 백분율이 같아도 같은 좌표가 반환되지는 않습니다. 필요에 따라 패스를 샘플링할 시간을 지정합니다.

매개 변수:

백분율 0과 1 사이의 숫자(선택 사항). 샘플링할 패스의 호 길이를 따른 백분율입니다. 0보다 작은 값과 1보다 큰 값은 잘립니다. 기본값은 0.5입니다.
t 숫자(선택 사항). 패스를 샘플링할 컴포지션 시간(초)입니다. 기본값은 시간(현재 시간)입니다.

반환:

숫자 쌍 배열

  • 패스 tangentOnPath() 메서드 {pathProperty}.tangentOnPath(백분율 = 0.5, t = 시간) 패스를 따라 임의 지점의 나가는 접선 핸들에 대해 계산된 x,y 좌표를 가져옵니다. 접선 좌표 값은 부모 지점 좌표를 기준으로 하는 오프셋입니다. 값이 [0,0]이면 나가는 접선에서 곡률이 생성되지 않습니다. 들어오는 접선 핸들은 이 값의 역수입니다. 즉, x,y 좌표에 -1을 곱한 결과 값입니다. 접선의 부모 패스 호 길이의 백분율로 표현됩니다. tangentOnPath()에서 반환되는 좌표는 부모 지점에서 계산되며, 해당 호 길이 백분율에 사용자 정의 지점도 있으면 outTangents()에서 반환되는 좌표와 다릅니다. 부모 지점 좌표와 tangentOnPath() 좌표 간의 선형 거리는 항상 1입니다. 반환되는 좌표를 곱하면 더 긴 접선을 만들 수 있습니다. 예를 들면 (myPath.tangentOnPath() * 100)과 같습니다. 필요에 따라 패스를 샘플링할 시간을 지정합니다.

매개 변수:

백분율 0과 1 사이의 숫자(선택 사항). 샘플링할 패스의 호 길이를 따른 백분율입니다. 0보다 작은 값과 1보다 큰 값은 잘립니다. 기본값은 0.5입니다.
t 숫자(선택 사항). 패스를 샘플링할 컴포지션 시간(초)입니다. 기본값은 시간(현재 시간)입니다.

반환:

숫자 쌍 배열

  • 패스 normalOnPath() 메서드 {pathProperty}.normalOnPath(백분율 = 0.5, t = 시간) 패스를 따라 임의 지점의 법선에 대해 계산된 x,y 좌표를 가져옵니다. 법선의 좌표 값은 부모 지점 좌표를 기준으로 하는 오프셋입니다. [0,0] 값은 부모 지점과 동일합니다. 법선의 부모 지점은 패스 호 길이의 백분율로 표현됩니다. 호 길이 백분율에 대한 자세한 내용은 pointOnPath() 메서드의 설명을 확인하십시오. normalOnPath()에서 반환되는 값은 부모 지점에서 계산됩니다. 부모 지점 좌표와 normalOnPath() 좌표 간의 선형 거리는 항상 1입니다. 반환되는 좌표를 곱하면 더 긴 법선을 만들 수 있습니다. 예를 들면 (myPath.normalOnPath() * 100)과 같습니다. 필요에 따라 패스를 샘플링할 시간을 지정합니다.

매개 변수:

백분율 0과 1 사이의 숫자(선택 사항). 샘플링할 패스의 호 길이를 따른 백분율입니다. 0보다 작은 값과 1보다 큰 값은 잘립니다. 기본값은 0.5입니다.
t 숫자(선택 사항). 패스를 샘플링할 컴포지션 시간(초)입니다. 기본값은 시간(현재 시간)입니다.

반환:

숫자 쌍 배열

  • 패스 createPath() 메서드 {pathProperty}.createPath(지점 = [[0,0], [100,0], [100,100], [0,100]], inTangents = [], outTangents = [], is_closed = true) 지점 및 접선 세트에서 패스 개체를 만듭니다. 지점은 해당 x,y 좌표를 나타내는 숫자 쌍 배열의 배열로 정의됩니다. 배열 길이는 1보다 큰 원하는 값으로 지정할 수 있습니다. 지점의 들어오는 접선 핸들과 나가는 접선 핸들은 해당 x,y 좌표를 나타내는 숫자 쌍 배열의 배열로 정의됩니다. 접선 배열의 길이는 points 매개 변수와 정확히 같아야 합니다. 접선 좌표 값은 부모 지점 좌표를 기준으로 하는 오프셋입니다. 값이 [0,0]이면 들어오는 접선에서 곡률이 생성되지 않습니다. 패스의 points(), inTangents()outTangents() 및 isClosed() 메서드를 points, inTangents, outTangents 및 is_closed 매개 변수로 전달하여 패스를 복제할 수 있습니다. 같은 패스의 지점과 접선을 수정하여 createPath()로 전달하면 다른 결과를 생성할 수 있습니다. 예를 들어 다음 표현식에서는 inTangents 또는 outTangents 매개 변수를 전달하지 않는 방식으로 Mask 1에서 곡선을 제거합니다.

myMask = mask("Mask 1").path;
myMask.createPath(myMask.points());

다음 예제에서는 Mask 1의 지점과 접선을 전달한 다음 is_closed를 false로 설정하여 Mask 1을 열린 패스로 변환합니다.

myMask = mask("Mask 1").path;
myMask.createPath(myMask.points(), myMask.inTangents(), myMask.outTangents(), false);

 

points 패스 지점의 [x,y] 좌표를 나타내는 숫자 쌍 배열이 포함된 길이가 1보다 큰 배열입니다. createPath()와 같이 매개 변수를 전달하지 않는 경우를 제외하면 필수입니다. 기본값은 [[0,0], [100,0], [100,100], [0,100]]입니다.
is_closed 부울(선택 사항). 마스크가 닫혀 있는지를 결정합니다. true인 경우 마지막 지점이 첫 번째 지점에 연결됩니다. 기본값은 true입니다.
inTangents 나가는 접선 핸들에서 패스 지점으로의 [x,y] 오프셋 좌표를 나타내는 숫자 쌍 배열이 포함된 배열입니다. createPath()와 같이 매개 변수를 전달하지 않는 경우를 제외하면 필수입니다. 배열 길이는 지점과 같아야 합니다. []와 같이 빈 배열을 전달할 수도 있습니다. 이 경우 길이는 지점과 같으며 모든 접선의 좌표는 [0,0]이라고 가정합니다. 기본값은 빈 배열입니다.
outTangents 들어오는 접선 핸들에서 패스 지점으로의 [x,y] 오프셋 좌표를 나타내는 숫자 쌍 배열이 포함된 배열입니다.createPath()와 같이 매개 변수를 전달하지 않는 경우를 제외하면 필수입니다. 배열 길이는 지점과 같아야 합니다. []와 같이 빈 배열을 전달할 수도 있습니다. 이 경우 길이는 지점과 같으며 모든 접선의 좌표는 [0,0]이라고 가정합니다. 기본값은 빈 배열입니다.

반환:

path 개체

예제:

  • 예제 1

이 예제에서는 Shape Layer 1에 있는 Shape 1의 Path 1에서 지점 및 접선 좌표 목록을 문자열로 작성합니다(시간=0). 이 문자열을 텍스트 레이어의 소스 텍스트 속성에 적용하면 모양의 들어오는 접선 및 나가는 접선과 좌표 판독값이 생성됩니다.

pointsList = "";
sampleTime = 0;

myShape = thisComp.layer("Shape Layer 1").content("Shape 1").content("Path 1").path;

for (i = 0; i < myShape.points(sampleTime).length; i++) {
    pointsList += "c: " + myShape.points(sampleTime)[i].toString() + "  i: " + myShape.inTangents(sampleTime)[i].toString() + " o: " + myShape.outTangents(sampleTime)[i].toString() + "\n";
}

pointsList;

  • 예제 2

이 예제에서는 Dark Gray Solid 1에 있는 Mask 1의 첫 번째 정점 좌표를 읽고 컴포지션 좌표로 변환합니다. 이 좌표를 선 그리기 또는 CC Particle Systems II와 같은 효과의 2D 지점 컨트롤에 적용하면 효과 추적을 만들거나 애니메이션 마스크의 첫 번째 지점을 추적할 수 있습니다. 마스크의 다른 지점을 추적하려면 효과를 복제하고 패스 지점 인덱스 값([0])을 변경합니다.

myLayer = thisComp.layer("Dark Gray Solid 1");
myLayer.toComp(myLayer.mask("Mask 1").maskPath.points()[0]);

데이터 구동 애니메이션(표현식 참조)

표현식 메서드:

  • Footage sourceText 특성 {footageItem}.sourceText .JSON 파일의 컨텐츠를 문자열로 반환합니다. eval() 메서드는 문자열을 sourceData 개체의 배열(sourceData 속성의 결과와 동일)로 변환하는 데 사용될 수 있으며 배열의 개별 데이터 스트림은 데이터의 계층적 특성으로 참조될 수 있습니다. 예를 들면 다음과 같습니다. 

var myData = eval(footage("sample.json").sourceText);

myData.sampleValue;

유형:

문자열, .JSON 파일의 컨텐츠, 읽기 전용

  • Footage sourceData 특성 {footageItem}.sourceData .JSON 파일의 컨텐츠를 sourceData 개체의 배열로 반환합니다. .JSON 파일의 구조에 따라 배열의 크기와 복잡도가 결정됩니다. 개별 데이터 스트림은 데이터의 계층적 특성으로 참조될 수 있습니다. 예를 들어 Color라는 데이터 스트림이 있다고 가정할 경우 다음 표현식은 첫 번째 데이터 개체에서 Color의 값을 반환합니다. footage("sample.json").sourceData[0].Color

일반적으로 .JSON 파일의 sourceData를 변수에 할당한 다음 원하는 데이터 스트림을 참조하는 방법을 사용합니다. 예를 들면 다음과 같습니다.

var myData = footage("sample.json").sourceData;

myData[0].Color;

유형:

sourceData 개체의 배열(읽기 전용)

  • Footage dataValue() 메서드 {footageItem}.dataValue(dataPath) .mgJSON 파일의 지정된 정적 또는 동적 데이터 스트림의 값을 반환합니다. 원하는 데이터 스트림으로 향하는 패스를 계층 구조에 정의하는 단일 배열 값을 허용합니다. 예를 들면 다음과 같습니다.

footage("sample.mgjson").dataValue([0])는 첫 번째 하위 항목의 데이터를 반환합니다.

footage("sample.mgjson").dataValue([1][0])는 두 번째 그룹에 있는 첫 번째 하위 항목의 데이터를 반환합니다.

매개 변수:

dataPath  배열(필수). 정적 또는 동적 데이터 스트림으로 향하는 계층 구조의 패스입니다.

반환:

데이터 스트림 값입니다.

  • Footage dataKeyCount() 메서드 {footageItem}.dataKeyCount(dataPath).mgJSON 파일의 지정된 동적 데이터 스트림에 있는 샘플 수를 반환합니다. 원하는 동적 데이터 스트림으로 향하는 패스를 계층 구조에 정의하는 단일 배열 값을 허용합니다. 

예를 들면 다음과 같습니다.

  • footage("sample.mgjson").dataKeyCount([0]) 첫 번째 하위 항목에 대한 샘플 개수를 반환합니다.
  • footage("sample.mgjson").dataKeyCount([1][0]) 두 번째 그룹에 대한 샘플 개수를 반환합니다.

매개 변수:

dataPath  배열(필수). 정적 또는 동적 데이터 스트림으로 향하는 계층 구조의 패스입니다.

반환:

동적 데이터 스트림의 샘플 수

  • Footage dataKeyTimes() 메서드 {footageItem}.dataKeyTimes(dataPath, t0 = startTime, t1=endTime).mgJSON 파일의 지정된 동적 데이터 스트림의 샘플에 대한 시간(초)을 반환합니다. 필요에 따라 샘플을 반환할 시간 범위를 지정합니다. .mgJSON 파일에 있는 데이터 스트림 samplesTemporalExtent 속성에 정의된 대로 기본적으로 동적 데이터 스트림의 startTime과 endTime 사이에 있는 모든 샘플에 대한 시간이 반환됩니다. 원하는 동적 데이터 스트림으로 향하는 패스를 계층 구조에 정의하는 단일 배열 값을 허용합니다.

다음 예제에서는 첫 번째 하위 항목에 대해 1초와 3초 사이에 있는 샘플 수를 반환합니다.

footage("sample.mgjson").dataKeyTimes([0], 1, 3)

매개 변수:

dataPath 배열(필수). 동적 데이터 스트림으로 향하는 계층 구조의 패스입니다.
t0 숫자(선택 사항). 샘플을 반환할 범위의 시작 시간(초)입니다. 기본값은 startTime입니다.
t1
숫자(선택 사항). 샘플을 반환할 범위의 끝 시간(초)입니다. 기본값은 endTime입니다.

반환:

샘플 시간을 나타내는 숫자의 배열.

  • Footage dataKeyValues() 메서드 {footageItem}.dataKeyValues(dataPath, t0 = startTime, t1=endTime).mgJSON 파일의 지정된 동적 데이터 스트림에 대한 샘플 값을 반환합니다. 필요에 따라 샘플을 반환할 시간 범위를 지정합니다. .mgJSON 파일에 있는 데이터 스트림 samplesTemporalExtent 속성에 정의된 대로 기본적으로 동적 데이터 스트림의 startTime과 endTime 사이에 있는 모든 샘플에 대한 시간이 반환됩니다. 원하는 동적 데이터 스트림으로 향하는 패스를 계층 구조에 정의하는 단일 배열 값을 허용합니다.

예를 들면 다음과 같습니다.

footage("sample.mgjson").dataKeyValues([0], 1, 3) 첫 번째 하위 항목의 1초와 3초 사이에 있는 샘플의 값을 반환합니다.

매개 변수:

dataPath 배열(필수). 동적 데이터 스트림으로 향하는 계층 구조의 패스입니다.
t0 숫자(선택 사항). 샘플을 반환할 범위의 시작 시간(초)입니다. 기본값은 startTime입니다.
t1
숫자(선택 사항). 샘플을 반환할 범위의 끝 시간(초)입니다. 기본값은 endTime입니다.

반환:

샘플 값을 나타내는 숫자의 배열.

16진수-RGB 색상 변환 메서드(표현식 참조)

색상 변환 메서드 hexToRgb()는 16진수 색상 값(예: #FF00FF)을 RGBA 색상 값으로 변환합니다. 이는 JSON 또는 CSV/TSV 데이터 원본에서 16진수 문자열로 표현된 색상 값에 색상 매개 변수를 연결하는 데 유용할 수 있습니다.

표현식 메서드:

hexToRgb(hexString) 16진수 트리플렛 영역의 색상을 RGB로, 16진수 콰르텟 영역의 색상을 RGBA 영역으로 변환합니다. 16진수 트리플렛의 경우 알파가 기본적으로 1.0으로 설정됩니다.

매개 변수:

hexString 숫자 또는 문자만 포함된 16진수 트리플렛(6자리, 알파 채널 없음) 또는 콰르텟(8자리, 알파 채널 포함)을 나타내는 문자열로, 선택적 선행 문자 0x, 0X 또는 #은 무시됩니다. 8자리를 초과하는 문자는 무시됩니다.

반환:

RGBA 색상 값 배열입니다.

예제:

다음은 [1.0, 0.0, 1.0, 1.0]을 반환합니다.

  • hexToRgb("FF00FF")
  • hexToRgb("#FF00FF")
  • hexToRgb("0xFF00FF")
  • hexToRgb("0XFF00FFFF") 참고: 8자리 16진수 콰르텟이며 마지막 두 자리는 알파가 1.0으로 설정됩니다.

이 작업에는 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License의 라이센스가 부여되었습니다.  Twitter™ 및 Facebook 게시물은 Creative Commons 약관을 적용받지 않습니다.

법적 고지 사항   |   온라인 개인 정보 보호 정책