Technical/Riging

[MAX]Controller

ParkJinseok 2021. 3. 1. 15:04
  • Max의 기본 컨트롤러
    • Position : Position XYZ
    • Rotation : Euler XYZ
    • Scale : Bezier Scale
  • 대부분의 애니메이션들이 Bezier Controller에 의해 제어 됨.

Controller 이해하기

  • 대부분의 Parameter (주전자의 Radius) 들은 애니메이션을 하기 전까지 Controller가 지정되지 않다가 애니메이션을 하는 순간 Default Controller가 할당 됨.
  • Position, Rotation, Scale과 관련된 Controller는 애니메이션의 여부와 관계 없이 Controller가 지정되어 있음.

Controller에 접근하기

  • Track View
    • Controller마다 고유한 아이콘을 가지고 있음.
  • Motion Panel
    • 주로 Position, Rotation, Scale과 같은 Transform과 관련된 Controller에 접근 할 수 있음.
    • 대부분의 기능은 Curve Editor와 같지만 IK Solver처럼 특수한 목적의 기능들이 존재함.
    • Controller를 살펴보고 수정하는 작업은 Object가 하나만 선택 된 상태에서 가능함.

Controller의 분류와 구조

  • Single-Parameter(단일) Controller
    • 단순히 한가지 값이 애니메이션 되는 경우
      (RGB 값처럼 3가지 요소가 모여서 1개의 색을 이루는 것과 같이 하나의 Parameter를 제어하는 경우)
  • Compound(혼합) Controller
    • Euler XYZ Rotation Controller와 같이 XYZ축에 서로 다른 Controller를 할당 할 수 있는 Controller들.

Controller의 속성 변경

  • Noise Controller처럼 절차적인(Procedual) Controller들은 키프레임(Key Frame)이 아닌 속성 창(Properties Dialog)를 통해 애니메이션을 변경하고 제어함.

속성 창이 여러 개 활성화 되어 있을 경우의 규칙

  • 각 트랙은 단 하나으 속성 창을 표시한다.
  • 여러 트랙에서 여러 속성 창이 표시 된 경우 하나만 활성화 된다.
  • 키프레임(KeyFrame)을 사용하는 Controller의 속성 창은 키가 선택되지 않은 상태에서는 비활성화된다.

절차적인(Procedual) Controller 속성 변경 방법

  • Controller를 선택한 후, 마우스 우클릭해서, 표시 되는 단축 메뉴에서 Properties를 선택
  • Controller를 더블 클릭

키프레임(KeyFrame)을 사용하는 Controller 속성 변경 방법

  • Curve Editor에서 키 정보 살펴보기
  • Motion Panel에서 키 정보 살펴보기
  • Track Bar에서 키 정보 살펴보기

아무런 속성도 표시되지 않는 Controller

  • 아무것도 표시 되지 않는 Controller의 경우, AutoKey를 사용해서 애니메이션 해야 함.

 

Controller 지정하기

Track View에서 지정하기

  1. Animation Parameter를 선택 후, Controller > Assign … 을 통해서 Controller를 할당
  2. 원하는 트랙을 선택 후, 마우스 우클릭해서 나오는 Quad 메뉴에서 Assign Controller … 를 통해 Controller 할당
  • 선택 된 Parameter들이 같은 타입의 Controller를 사용할 경우, 여러 개를 선택한 상태에서 Controller를 변경 해 줄 수 있음.
  • 이미 애니메이션이 있는 Parameter의 Controller를 변경 할 경우, 두 가지의 경우가 있을 수 있다.
    • 새로운 Controller에 맞게 가능한 비슷하도록 재 계산 됨.
      ex) TCB Position Controller <->Bezier Position Controller
    • 애니메이션 값이 사라짐
      ex) 부드러운 Rotation Controller를 Noise로 바꿀 경우 기존의 애니메이션은 모두 사라짐.

Animation 메뉴에서 지정하기

  • 이 방법을 사용 할 경우, 자동으로 List Controller가 생성 됨.
  • Controller나 Constraint를 할당 할 때, 여러 Object를 선택하고 동시에 적용 할 수도 있음.
  • 여러 Object에 동시에 Constraint을 걸 경우, 추가로 선택하는 선이 1개만 나타나지만 선택 된 모든 Object에 적용 됨.

Controller 복사하고 붙이기

  • Track View 툴 바의 빈 곳에 마우스 우클릭후 Show Toolbars > Controller : TrackView를 선택하면 Tool Bar가 나옴.
  • Controller를 마우스 우클릭해서 나오는 Quad 메뉴에서도 Copy&Paste가 가능함.

Copy & Paste에 관한 규칙

  • Copy는 하나의 Controller에서만 가능.
    List Controller와 같이 복합적인 Controller도 하나의 Controller처럼 취급되어 List Controller 안쪽의 Controller까지 전부 다 복사 된다.
  • Copy 된 Controller는 하나 이상의 Controller에 Paste로 적용 될 수 있음.
    이 경우 모두 같은 데이터 타입(Data Type)을 사용하게 된다.
  • Paste를 할 때 Instance 방식으로도 가능함.

Biped 머리 모양 바꾸는 방법

  • Skin 없이 Biped에 Mesh를 입히는 방법으로 사용 할 수 있음.
    • Object의 속성을 Copy & Paste해서 바꾸는 방법
    • Biped의 Mesh를 Editable Poly로 변환하고 바꾸려는 Mesh를 Attach하여 교체하는 방법
      (이 방법을 더 선호 함.)

Default Controller 설정

  • Make Default를 누르면 이후에 만드는 Object들의 기본 Controller로 지정 됨.

 

  • Customize > Preference > Animation Tab에서 Set Defaults…를 클릭하면 아래와 같이 각종 Controller들이 뜨는데Controller들을 더블 클릭하게 되면 해당 Controller의 Parameter들의 기본 값을 설정할 수 있다.

Animation Range

  • Max의 기본 설정은 Ignore Animation Range 방식으로 Frame 제한없이 Procedual Controller들이 작동하는 방식이지만, 특정 Frame까지만 Controller가 작동하게 하려면 Respect Animation Range를 설정해주면 된다.

 

  • maxOps.overrideControllerRangeDefault = true 를 해주면 이후 생성 되는 모든 Procedual Controller들이 Ignore Animation Range 방식으로 작동하게 되며, false를 할 경우 Respect Animation Range 방식이 된다.