Technical/Riging

[MAX] Expression Controller - 함수

ParkJinseok 2021. 4. 10. 01:10

삼각 함수

  • 삼각함수는 주로 원운동을 하는 경우에 주로 사용
    Ex) 피스톤의 왕복운동을 할 때, 크랭크축의 각도 또는 거리 계산
  • 기본적인 sin, cos, tan 함수는 라디안이 아닌 각도 단위의 값을 입력 받음.
    Ex) sin(90) = 1

 

역삼각함수

  • Arc가 붙으면 역삼각함수가 됨. (arcsin, arccos, arctan)
  • 즉, 삼각함수의 역함수가 됨. 역함수의 대표적 예는 제곱근
  • Sin(90) = 1 이고 arcsin(90) = 1임. 즉, sin함수의 결과 값이 -1~1이기때문에 arcsin함수의 입력 값도 항상 -1~1 사이가 됨.

 

쌍곡선함수

  • sinh(x), cosh(x), tanh(x)

 

지수 함수, 로그, 자연로그

  • 지수함수 exp(x)
  • 로그함수 log(x)
  • 자연로그 함수 ln(x)

 

라디안과 각도 변환 함수

  • 180도 = Pi = 3.1415 
    즉, 360도 = 2*pi = 6.2831
  • 라디안 -> 각도 함수
    • radToDeg()
      Ex) radToDeg(pi) = 180도
  • 각도 -> 라디안 함수
    • degToRad()
      Ex) degToRad(180) = pi

 

소수점 올림과 버림 함수

  • Floor
    • 버림함수, 바닥이라는 뜻.
      Ex) floor(1.9) = 1
    • 소수점 둘째 자리 이하 버림을 하는 방법
      Ex) floor(1.2345 * 100) / 100
  • Ceil
    • 올림함수, 천장이라는 뜻.
      Ex) ceil(1.2) = 2

 

일반적인 함수

  • Pow(p,q)
    •  제곱함수.
    • Pow(p,q)와 p^q는 같은 의미
    • '^'연산자는 Expression에서는 부동소수점(float) 연산을 하지만, MaxScript에서는 정수(Integer) 연산을 할 수 있다.
  • Sqrt(p)
    • 제곱근 함수 (Square Root)
  • Abs(p)
    • 절대 값 함수.
  • Min(p,q), Max(p,q)
    • Min (최소값을 Return)
    • Max(최대값을 Return)
    • MaxScript의 amin, amax라는 함수는 여러 값 중 가장 큰 값 또는 가장 작은 값을 리턴함.

 

조건 함수

관계 연산자

  •  If(p,q,r)
    • If 함수
    • P가 0이 아니면 q를 리턴하고 0이면 r을 리턴함.

논리 연산자

  • 논리 합 (OR) |
  • 논리 곱 (AND) &

vif 함수

  • vif(c, v1, v2)
    c가 참이면 v1이 결정되고 거짓이면 v2로 결정 된다.
  • If와 매우 유사한 함수이며 벡터를 사용한다는 점이 다르다.
  • 조건을 검사하는 부분만 숫자이고 나머지 v1,v2에는 벡터를 입력해야 함.
  • 리턴 되는 값은 벡터

 

벡터 함수

  • Length(v)
    • 벡터의 길이를 리턴하는 함수
    • 원점 (0,0,0)으로부터 해당 오브젝트까지의 길이(Length)를 리턴함.
    • 리턴되는 값은 스칼라
  • Comp(V,i)
    • 벡터의 i번째 컴포넌트를 리턴함.
    • i는 0,1,2의 값을 입력 받는다. (3 이상 입력해도 되긴함. 3은 0, 4는 1, 5는 2 식으로 반복 됨)
  • Unit(V)
    • 방향을 유지한채 V의 단위 벡터(길이가 1인 벡터)를 리턴함.
    • MaxScript에서는 Normalize V

 

변수의 좌표계

일반적인 Object

  • World Transform 접근 방법
    • Track에서 Object의 이름을 선택한다.
  • Local Transform 접근 방법
    • Track에서 Object의 Position Controller를 선택한다.

 

World Transform 선택하기
Local Transform 선택하기

 

Biped Object

  • World Transform 접근 방법
    • 일반적인 Object와 동일하게 Object의 이름을 선택한다.
  • Local Transform 접근 방법
    • ExposeTransform Helper
    • 일반적인 Object
    • Biped Object