스크립트 컨트롤러는 표현식 컨트롤러와 유사하게 동작합니다. 이러한 제어기는 제어기 값을 계산하기 위한 스크립트를 입력할 수 있는 스크립트 제어기 대화상자를 제공합니다.
3ds Max에서는 다음과 같은 스크립트 제어기를 사용할 수 있습니다.
여러 스크립트 제어기 유형의 차이점은 주로 제어기를 할당할 수 있는 애니메이션 트랙 유형에 있습니다. 예를 들어 변형 스크립트 제어기는 변형 트랙에 할당하고, 위치 스크립트 제어기는 위치 트랙에 할당하고, 위치 제어기가 위치 XYZ인 경우 모든 또는 임의의 개별 위치 트랙(위치 X/Y/Z)에 부동 스크립트 제어기를 할당할 수 있습니다.
스크립트 제어기의 주요 장점은 다음과 같습니다.
이 스크립트 언어에 대한 자세한 내용은 MAXScript 도움말을 참조하십시오.
변형 스크립트 제어기는 위치/회전/배율 조정(PRS) 제어기에 포함된 모든 정보를 하나의 스크립트된 매트릭스 값에 포함합니다. 위치, 회전 및 배율 조정에 대해 세 개의 별도 트랙을 사용하는 대신 단일 스크립트 제어기 대화상자에서 세 값에 동시에 액세스할 수 있습니다. 스크립트에서 변환 값을 정의하므로 애니메이션하기가 더 쉽습니다.
제어기 스크립트의 값은 matrix3 값이어야 합니다. matrix3 값은 4x3 3D 변형 매트릭스입니다. 자세한 내용은 MAXScript 도움말의 Matrix3 값 항목을 참조하십시오.
3ds Max에서는 스크립트 텍스트 상자에 입력하는 텍스트를 MAXScript 블록 표현식의 본문으로 해석합니다. 원하는 만큼 여러 행에 걸쳐 많은 식을 입력할 수 있으며, 입력된 식은 차례대로 평가됩니다. 마지막 식의 값이 제어기 값으로 사용됩니다. 이 값은 부동에 대해 float, 위치에 대해 point3, 회전에 대해 quat, 변환에 대해 matrix3 등 제어기에 맞는 유형이어야 합니다.
문자는 블록 표현 내에 있으므로 해당 스크립트 내에서만 보이고 하나의 평가를 위하여 임시적인 지역 변수를 선언할 수 있습니다. 또한 MAXScript의 다른 모든 스크립트와 공유되며 하나의 식의 값을 유지했다가 다음 식에 넘겨 주는 글로벌 변수를 선언하거나 액세스할 수도 있습니다.
제어기는 특정 애니메이션 시간과 관련하여 3ds Max에서 항상 평가됩니다. 따라서 현재 시간 슬라이더가 될 수도 있고 애니메이션이 재생 중이거나 렌더링 진행 중일 경우 프레임 시간이 증가할 수도 있습니다. 스크립트 제어기의 경우, 평가 중인 시간은 제어기 스크립트 주변 자동 "at time" 컨텍스트를 설정하는 데 사용되므로, 다른 명시적 "at time" 식 외부에서 액세스하는 모든 특성이 현재 제어기 평가 시간에 대한 올바른 값을 제공합니다. 다시 말해서 적당한 시기에 스크립트를 작동시키기 위해 별다른 작업을 수행할 필요가 없다는 뜻입니다. 표준 MAXScript 변수 현재 시간을 갖는 평가 시간을 액세스할 수 있습니다. 또한 일반 MAXScript 프로그래밍에서처럼 스크립트의 "at time" 식을 사용하여 다른 시간에 장면 특성 값을 참조할 수도 있습니다.
장면의 노드나 애니메이션 트랙을 참조해야 하는 경우 스크립트 제어기 변수 툴셋을 사용하여 특수 노드 또는 제어기 트랙에 할당할 수 변수를 생성하는 것이 좋습니다. 즉, 나중에 장면 오브젝트 이름 변경하기로 한 경우 변수가 노드 링크를 유지하기 때문에 스크립트 제어기는 이러한 오브젝트를 사용하여 유지됩니다.
그렇지 않을 경우, 예를 들어 대화 상자의 표현식 창에 변수에 노드를 수동으로 할당하는 경우 해당 특정 노드의 이름을 변경하자 마자 해당 링크가 손상됩니다.
예: 애니메이션 도중에 배경 내의 다른 오브젝트를 기준으로 특정 오브젝트를 중앙에 유지하기
새 변수가 자동으로 변수 리스트에 추가됩니다.
트랙 뷰 선택 대화상자가 열리고 장면의 내용이 나열됩니다.
foo 노드가 변수에 할당됩니다.
local pos=[0,0,0]
for o in objects where o != foo do
pos += o.pos
pos / (objects.count - 1)
이 스크립트는 로컬을 설정하고 foo를 제외한 모든 오브젝트에 대하여 반복하면서 전체 위치 벡터를 누적하고 마지막 행에서 평균을 계산함으로써 현재 오브젝트(여기서는 foo)를 제외한 모든 오브젝트의 평균 위치를 계산하며 이 값은 이 스크립트의 최종 결과가 됩니다.
변형 스크립트 제어기를 사용하려면:
스크립트 제어기 대화 상자가 열립니다.
스크립트 제어기 할당은 스크립트를 입력할 수 있는 스크립트 제어기를 자동으로 엽니다. 모션 패널이나 트랙 뷰 계층의 트랙을 오른쪽 클릭하고 특성을 선택하거나 트랙 뷰 도구 모음의 특성 버튼을 클릭함으로써 이 대화상자를 그 후에 열 수도 있습니다.
제어기의 사용 가능한 모든 변수를 나열합니다. 다음의 미리 정의된 상수 변수는 모든 스크립트 제어기에서 사용할 수 있으며 삭제하거나 이름을 변경할 수 있습니다.