안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
이번에는 '선택한 노드 Controller 변경하기'를 알아보겠습니다.
물론 '맥스 스크립트 기본'에 'Constraints'으로 관련 설명을 드렸지만, 실제적으로 사용하는 방법에 대해서는 안 드린 것 같네요.(티스토리 내용이 많아져 찾지를 못했습니다. ㅎㅎㅎ)
그래서 이번 목표는 이전에 설명한 내용을 잘 다듬어 사용하기 편하게 해 보겠습니다.
우선 박스 오브젝트를 맥스 뷰포트에 만들어 보겠습니다.
해당 오브젝트를 선택해 'Assign Controller'를 확인해 보면 다음과 같이 나옵니다.
위 내용을 'TCB'로 변경하는 것은 다음과 같습니다.
1
2 |
$.position.controller=TCB_Position()
$.rotation.controller=TCB_Rotation() |
cs |
1번 라인은 'Position'을 2번 라인은 'Rotation'을 'TCB'로 변경합니다.
그럼 다시 'Position'은 'Position XYZ'으로 'Rotaition'은 'Euler XYZ'로 바꾸기 위해서는 다음과 같이 입력하면 됩니다.
1
2
|
$.position.controller = Position_XYZ()
$.rotation.controller = Euler_XYZ()
|
cs |
그냥 이렇게 써도 상관은 없지만 조금 더 편하게 쓰고 싶네요.
라디오 버튼은 사용해 사용하기 편하게 바꿔 보겠습니다.
UI를 사용하기 때문에 대화창의 기본형을 먼저 만들어 보겠습니다.
1
2
3
4
|
rollout controllerChange_Rollout "ControllerChange"
(
)
createdialog controllerChange_Rollout
|
cs |
여기에 라디오 버튼과 일반 버튼을 만들어 주겠습니다.
1
2
3
4
5
6
|
rollout controllerChange_Rollout "ControllerChange"
(
radiobuttons changeType_rbt "변경" labels:#("원래", "TCB")
button run_btn "실행"
)
createdialog controllerChange_Rollout
|
cs |
라디오 버튼의 상태에 따라 '원래 Controller'와 'TCB Controller'를 오가도록 실행 버튼을 누르면 변경을 하도록 하겠습니다.
다음과 같이 이벤트를 추가하겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
rollout controllerChange_Rollout "ControllerChange"
(
radiobuttons changeType_rbt "변경" labels:#("원래", "TCB")
button run_btn "실행"
on run_btn pressed do
(
if(changeType_rbt.state == 1) then
(
$.position.controller = Position_XYZ()
$.rotation.controller = Euler_XYZ()
)
else
(
$.position.controller = TCB_Position()
$.rotation.controller = TCB_Rotation()
format "changeType_rbt.state = %\n" changeType_rbt.state
)
)
)
createdialog controllerChange_Rollout
|
cs |
외형적으론 바뀐 게 없지만 이제 라디오 버튼에 따라 'Controller' 속성이 변경되는 것을 볼 수 있습니다.
하지만 사용하기에는 부족해 보이네요.
'Position'과 'Rotation'을 각각 별도로 변경할 수가 없고, 다른 녀석들도 좀 추가해서 더 쓰기 편했으면 좋겠습니다.
다음 시간에는 해당 내용에 대해서 이야기하도록 하겠습니다.
'맥스스크립트 심화' 카테고리의 다른 글
파일머지 편하게하기(2) (0) | 2021.04.23 |
---|---|
파일머지 편하게하기(1) (0) | 2021.04.22 |
선택한 노드 Controller 변경하기(3) (0) | 2021.04.21 |
선택한 노드 Controller 변경하기(2) (0) | 2021.04.20 |
actionMan을 이용한 대화상자(3) (0) | 2021.04.16 |
actionMan을 이용한 대화상자(2) (0) | 2021.04.15 |
actionMan을 이용한 대화상자(1) (0) | 2021.04.14 |
RolloutCreator Functions(6) (0) | 2021.04.12 |