안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
지난 시간에 이어서 오늘도 바이패드의 Vertical_Horizontal_Turn에 대해서 이야기합니다.
오늘도 바이패드를 하나 만들고 시작하겠습니다.
<biped_ctrl>.arms Boolean Default: True
바이패드 팔의 유무를 확인하거나 변경할 수 있습니다. 다음과 같이 입력하고 확인해 보겠습니다.
팔이 이미 존재하기 때문에 'true'라고 나옵니다.
그렇다면 값을 변경해서 팔을 없애 보겠습니다.
다음과 같이 입력하여 확인해 보겠습니다.
1
|
$'bip001'.controller.arms = false
|
cs |
팔이 없어졌습니다.
혹시 팔이 없어지지 않고 MAXScript Listener에 다음과 같은 오류 메시지가 나오나요?
바이패드는 체형을 바꿀 때 피규어모드에서 바꾸게 되는데 피규어 모드가 아니면 오류를 발생합니다.
피규어모드로 바꾸고 실행하시면 됩니다.
한 가지 더 지금 이야기하고 있는 것은 바이패드의 최상위 노드인 COM을 기준으로 이야기를 하는 것이기 때문에 바이패드의 다른 노드를 선택하면 에러가 발생합니다.
여기서 '그렇다면 COM의 이름을 모르면 어떻게 적용하는가?'를 생각하게 되는데 그 부분이 이전 시간에 이야기한 것과 연결이 됩니다.
예를 한 가지 예를 들어보겠습니다.
지금 선택한 COM의 이름을 알 수 없는 바이패드의 팔이 있는지 없는지 알아보는 방법에 대해서 이야기하겠습니다.
우선 바이패드 아무 부위나 하나 선택하고 다음과 같은 방식으로 스크립트를 짜 보도록 하겠습니다.
1 지금 선택한 바이패드의 COM이름을 확인한다.
2 확인한 COM이름으로 선택한 바이패드의 팔의 정보를 확인한다.
3 보너스로 팔이 없으면 생성하고 있으면 삭제한다.
MAXScript Editer에서 다음과 같이 입력하고 그 결과를 확인해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
rootObj = $.controller.rootNode
rootObjCtrl = rootObj.controller
isArm = rootObjCtrl.arms
rootObjCtrl.figureMode = true
if(isArm == true) then
(
rootObjCtrl.arms = false
)
else
(
rootObjCtrl.arms = true
)
rootObjCtrl.figureMode = false
|
cs |
1번 라인 : 현재 선택한 노드의 최상위 노드(COM)를 찾아 rootObj 변수에 넣습니다.
2번 라인 : 찾아낸 최상위 노드(COM)의 Controller를 찾아 rootObjCtrl 변수에 넣습니다.(꼭 할 필요는 없지만 자주 쓰이는 값은 변수에 넣어주면 재사용할때 편하니 습관화 하면 좋습니다.)
3번 라인 : 찾아낸 최상위노드(COM)의 Controller의 하위 정보인 Arm에서 팔의 존재를 확인하여 결과 값을 isArm변수에 넣습니다.
4번 라인 : 바이패드 구조가 변경될 것이기 때문에 피규어모드로 변경합니다.
5 ~ 8번 라인 : isArm값이 true(즉 팔이 있으면) 팔을 없앱니다.
9 ~ 12번 라인 : 5 ~ 8라인에 해당하지 않는 경우(팔이 없으면) 팔을 만들어 줍니다.
13번 라인 : 피규어모드를 해제합니다.
치킨이 왔네요.
오늘은 여기까지 하겠습니다. ㅎㅎ
'맥스스크립트 기본' 카테고리의 다른 글
Biped Vertical_Horizontal_Turn(Body):Matrix3 Controller(6) (0) | 2021.03.12 |
---|---|
Biped Vertical_Horizontal_Turn(Body):Matrix3 Controller(5) (0) | 2021.03.11 |
Biped Vertical_Horizontal_Turn(Body):Matrix3 Controller(4) (0) | 2021.03.10 |
Biped Vertical_Horizontal_Turn(Body):Matrix3 Controller(3) (0) | 2021.03.09 |
Biped Vertical_Horizontal_Turn(Body):Matrix3 Controller(1) (0) | 2021.03.07 |
Biped Node Hierarchy (0) | 2021.03.06 |
Biped Copy and Paste Posture Methods(4) (0) | 2021.03.05 |
Biped Copy and Paste Posture Methods(3) (0) | 2021.03.04 |