표현식 제어기 기술

이 항목에서는 유용한 표현식 기술에 대해 요약합니다.

일반적으로 사용하는 표현식

이 항목에는 애니메이션을 만들 때 유용하게 사용할 수 있는 표현식 리스트가 있습니다.

순환 경로

[ Radius * cos(360*Time),
Radius * sin(360*Time), 0 ]

여기서 시간은 NT 또는 S와 같이 미리 정의된 시간 변수 중 하나입니다.

두 개의 반지름 값을 다르게 지정하면 타원 경로가 만들어집니다.

Z 구성요소를 0이 아닌 다른 수로 지정하면 더 이상 평면 경로가 아닙니다.

기타 오브젝트

[X, Y, Z] + Position

여기서 위치는 두 번째 오브젝트의 위치 제어기입니다.

벡터 [X, Y, Z]는 두 번째 오브젝트의 간격띄우기입니다. [0,0,0]이면 두 오브젝트가 같은 위치에 있습니다. 일부 움직임을 지정하는 벡터 표현식이 될 수도 있습니다.

두 오브젝트 사이에 오브젝트 유지하기

(Position1 + Position2) / 2

여기서 위치1위치2는 두 오브젝트의 위치 제어기입니다.

약수 2는 한 오브젝트가 다른 두 오브젝트 사이의 중간에 위치하도록 제한합니다. 다른 값은 오브젝트를 다른 위치로 제한합니다.

다른 오브젝트 사이에 진동하게 하기

(1+sin(360*Time))/2 * (Pos1-Pos2) + Pos2

여기서 시간은 NT 또는 S와 같은 미리 정의된 시간 변수이고 Pos1Pos2는 다른 두 다른 오브젝트의 위치 제어기입니다.

부분식 (1+sin(360*Time))/2는 시간에 따라 0과 1 사이에서 진동하는 값입니다. (Pos1-Pos2)는 다른 두 오브젝트 사이의 벡터입니다. 2를 곱한 다음 간격띄우기로 Pos2를 더하면 이 벡터를 따라 오브젝트가 배치됩니다.

카메라 거리를 기준으로 오브젝트의 세그먼트 수 변경

이 표현식은 카메라의 거리를 기준으로 실린더의 세그먼트 수를 변경합니다. 실린더의 세그먼트 만들기 매개변수에 할당됩니다.

if ( (length(Camera-Myself) > 35),
3 + (50*Height) / length(Camera-Myself),
MaxSegs)

여기서 Camera는 카메라의 위치 제어기이고 Myself는 실린더의 위치 제어기이며 Height(= 70)은 실린더의 높이이고 MaxSegs(=100)는 세그먼트의 최대 수입니다.

카메라가 가까워지면 세그먼트가 많아져 실린더를 더 부드럽게 만듭니다. 카메라가 멀어지면 부드러운 효과는 별로 중요하지 않으며 세그먼트가 적어져 더 빨리 렌더링됩니다.

첫 번째 인수가 참이면 if() 함수는 두 번째 인수를 반환합니다. 거짓이면 세 번째 인수를 반환합니다. 이 예에서, 카메라가 실린더에서 35단위를 초과하여 떨어져 있으면 표현식은 세그먼트 수를 계산합니다. 카메라가 35단위 이하로 떨어져 있으면 세그먼트 수는 MaxSegs 상수입니다.

거리가 임계값 35까지 줄어들면서 세그먼트 수가 MaxSegs까지 늘어나도록 두 번째 인수의 값이 선택됩니다. 추가 "3+"는 약수가 0이 되더라도(세그먼트는 정수임) 실린더가 최소 3개 세그먼트를 유지하도록 합니다.

주: 표현식에서 카메라 또는 실린더가 움직이는지 여부는 중요하지 않습니다.