이 항목에서는 유용한 표현식 기술에 대해 요약합니다.
이 항목에는 애니메이션을 만들 때 유용하게 사용할 수 있는 표현식 리스트가 있습니다.
[ 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와 같은 미리 정의된 시간 변수이고 Pos1과 Pos2는 다른 두 다른 오브젝트의 위치 제어기입니다.
부분식 (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개 세그먼트를 유지하도록 합니다.