맥스스크립트 기본

BipedKey(5)

스크립팅하는애님 2021. 3. 1. 19:43
728x90
반응형

안녕하세요.

애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.

오늘은 BipedKey 이야기를 마무리 짓겠습니다.

 

우선은 바이패드를 생성해주시고 손에 SetKey를 만들어 줍니다.

 

우선 만든 후 Isolate Selection으로 손과 손가락만 보이게 했습니다.

 

#body

지난 시간에 이어서 하겠습니다.

 

<bodykey>.ikPivotIndex Integer Default: 1

<bodykey>.ikPivots를 사용할 때 선택할 수 있는 축 위치 배열의 인덱스입니다.

다음과 같이 입력해 봅시다.

 

1
(biped.getKey $'Bip001 R Hand'.controller 1).ikPivotIndex
cs

 

6번이라는 숫자가 나옵니다.

'Commond Panel > Motion > Key Info > Select Pivot'를 활성화시켜 축을 선택할 수 있는 위치를 볼 수 있도록 하겠습니다.

선택할 수 있는 축이 나옵니다.

이 상태에서 다음과 같이 입력하겠습니다.

 

1
(biped.getKey $'Bip001 R Hand'.controller 1).ikPivotIndex = 1
cs

 

축의 위치가 변경됐습니다.

입력값을 '1'외에 여러가지 다른 값을 넣어 보며 확인해 봅시다.

 

<bodykey>.ikNumPivots Integer Default: Varies --읽기 전용

<bodykey>.ikPivots에서 사용할 수 있는 축의 배열 수입니다.

쉽게 말하자면 축이 몇개가 되는지 알 수 있습니다. 손가락 수가 늘어날수록 축의 수도 늘어납니다.

읽기 전용 이기 때문에 따로 입력을 할 수는 없습니다.

다음과 같이 입력하여 확인해 봅시다.

 

1
(biped.getKey $'Bip001 R Hand'.controller 1).ikNumPivots
cs

 

'8'이 나왔습니다.

손에는 선택할 수 있는 축이 8개 있다는 이야기입니다.

 

<bodykey>.ikPivots Array Deafult: Varies --Point3 값의 배열

선택할 수 있는 축의 위치를 Point 3 값의 배열로 보여줍니다.

다음과 같이 입력하고 확인해 봅시다.

 

1
(biped.getKey $'Bip001 R Hand'.controller 1).ikPivots
cs

 

손의 크기나 위치에 따라 다르게 나오겠지만, 8개의 위치 값이 나옵니다.

 

#biped

#biped 유형 키는 추가 매개 변수를 노출하지 않습니다.

 

#head

<headkey>.headBlend Float Default: 0.0

헤드의 회전에 Target Object를 처다 보는 것을 결정합니다.

값이 0.0이면 Target Object는 Head에 아무런 영향도 미치지 않습니다.

값이 1.0이면 해드는 Target Object는 Head를 처다 봅니다.

값이 0.0 ~ 1.0 사이면 중간 위치를 처다 봅니다.

바이패드의 머리에 키를 만들고 다음과 같이 설정해 주세요.

 

Target Object를 왼팔 상박으로 해줍니다.

다음과 같이 입력하고 확인해 봅시다.

 

1
(biped.getKey $'Bip001 Head'.controller 1).headBlend 
cs

 

'0.0'값이 나옵니다.

이번에는 그 값을 바꿔 보겠습니다.

다음과 같이 입력해 봅시다.

 

1
(biped.getKey $'Bip001 Head'.controller 1).headBlend = 1
cs

 

'1'값을 입력하면 머리가 팔 상박을 바라봅니다.

0 ~ 1 사이의 값을 넣어 보며 확인해 봅시다. (저는 패스합니다. ㅎㅎㅎ)

 

#prop

<propkey>.posSpace Integer Default: 1

<propkey>.rotSpace Integer Default: varies

우선은 prop을 하나 만들어 주고 키를 생성합니다.

 

그리고 MAXScript editor에 다음과 같이 입력하여 실행해 보겠습니다.

 

1
2
(biped.getKey $'Bip001 Prop1'.controller 1).posSpace
(biped.getKey $'Bip001 Prop1'.controller 1).rotSpace 
cs

'2'와 '1'이라는 결과 값이 나왔습니다.

 

여기서 나온 값은 Prop이 어떤 오브젝트를 기준으로 움직이는지를 말하는 것으로

0 - World (위치 / 회전은 월드 좌표 공간에서 이루어집니다).

1 - Body (위치 / 회전은 몸의 좌표 공간에서 이루어집니다).

2 - Right Hand(위치 / 회전은 오른손의 좌표 공간에서 이루어집니다).

3 - Left Hand(위치 / 회전은 왼쪽의 좌표 공간에서 이루어집니다).

당연히 변경할 수 있는데 다음과 같이 입력하고 실행해 보겠습니다.

 

1
2
(biped.getKey $'Bip001 Prop1'.controller 1).posSpace = 0
(biped.getKey $'Bip001 Prop1'.controller 1).rotSpace = 0
cs

 

UI가 업데이트 되지 않아 결과 값이 다르게 나오는 경우가 있습니다. 이럴때는 오브젝트 선택을 풀었다가 다시 선택하면 됩니다.

둘 다 '0'값을 넣었기 때문에 'World'가 표시됩니다.

 

BipedKey가 생각보다 길어졌네요.

금방 끝날 줄 알았는데... -_-;;;

다음 시간에 뵙겠습니다.

728x90
반응형

'맥스스크립트 기본' 카테고리의 다른 글

Biped Copy and Paste Posture Methods(4)  (0) 2021.03.05
Biped Copy and Paste Posture Methods(3)  (0) 2021.03.04
Biped Copy and Paste Posture Methods(2)  (0) 2021.03.03
Biped Copy and Paste Posture Methods(1)  (0) 2021.03.02
BipedKey(4)  (0) 2021.02.28
BipedKey(3)  (0) 2021.02.27
BipedKey(2)  (0) 2021.02.26
Biped Keys(3) / BipedKey(1)  (0) 2021.02.25