맥스스크립트 기초

오브젝트의 옵션

스크립팅하는애님 2019. 7. 18. 16:59
728x90
반응형

안녕하세요.

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

오늘은 오브젝트의 여러 가지 옵션에 대해서 알아보겠습니다.

 

우선 저는 뷰포트에서 다음과 같이 오브젝트를 만들었습니다.

2개 이상만 있으면 되니 적당히 만들어 줍시다.

저는 더미까지 3개를 만들었습니다.

 

적당히 2개 이상 만들어 주세요.

 

맥스 스크립트로 오브젝트(노드)를 지칭할 때는 $'오브젝트 이름'이라고 하면 됩니다.

우선 박스를 숨겨 볼까요?

제가 만든 박스 이름은 Box001이기 때문에 저는 다음과 같이 적겠습니다.

 

1
hide $'Box001'
cs

 

 

 

아까까지만 해도 존재했던 박스가 없어졌습니다.

삭제된 것은 아니고 숨긴 것입니다.

 

박스의 외곽이 점선인것을 보니 숨김이 됐습니다.

 

그럼 숨겼던 오브젝트를 다시 나오게 할까요?

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

2
unhide $'Box001'
cs

 

숨겨졌던 박스가 다시 보입니다.

 

'unhide $'Box001' doLayer:true'라고 뒤에 'doLayer:true'를 붙이면 레이어로 숨긴 오브젝트까지 볼 수 있습니다.

 

이번에는 스피어를 프리즈 하겠습니다.

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

3
freeze $'Sphere001'
cs

 

조금 전에 배운 하이드와 같은 구조입니다.

 

 

스피어가 프리즈 됐습니다.

다시 원래대로 돌려놓을까요?

 

4
unfreeze $'Sphere001'
cs

 

 

원래 상태로 돌아왔습니다.

이것도 'doLayer:true'를 붙이면 레이어로 숨긴 오브젝트까지 볼 수 있습니다.

 

이번에는 더미를 스크립트를 이용하여 선택하도록 하겠습니다.

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

5
select $'Dummy001'
cs

 

 

선택이 잘 됩니다.

이 상태에서 박스도 선택해 볼까요?

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

1
select $'Box001'
cs

 

 

더미의 선택이 해제되고 박스가 선택이 됐습니다.

그런데 여기서 저는 박스와 더미 둘을 선택하고 싶습니다.

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

7
selectMore $'Dummy001'
cs

 

 

원하는 대로 박스와 더미가 선택되었습니다.

까짓 거 스피어도 선택해 봅시다.

 

8
selectMore $'Sphere001'
cs

 

 

모두 선택이 되었네요.

선택을 할 수 있다는 것은 그 반대의 것도 할 수 있다는 것이죠.

우선 박스를 선택 해제해 볼까요?

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

9
deselect $'Box001'
cs

 

 

박스만 쏙 빠졌습니다.

방금 한 deselect는 하나의 오브젝트(노드)만 적용이 됩니다.

모든 선택된 오브젝트(노드)를 한방에 해제하는 방법을 알아봅시다.

 

10
clearSelection()
cs

 

 

선택된 오브젝트(노드)가 모두 해제됐습니다.

 

다음으로 오브젝트의 링크를 해보겠습니다.

더미의 부모를 스피어로, 스피어의 부모를 박스로 하겠습니다.

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

11
12
$'Dummy001'.parent = $'Sphere001'
$'Sphere001'.parent = $'Box001'
cs

 

뷰포트상에서는 별다른 변화가 없지만 노드의 트리구조를 확인해 보면 알 수 있습니다.

 

 

잘 링크가 이루어졌습니다.

이번에는 반대로 더미만 링크를 끊어 보겠습니다.

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

13
$'Dummy001'.parent = undefined
cs

 

 

네 더미만 링크에서 떨어졌습니다.

$'Dummy001'.parent = undefined는 부모가 없음(정의되어 있지 않음)이라는 의미입니다.

 

다음으로 오브젝트의 삭제를 해보겠습니다.

스피어가 저는 맘에 않드네요. ㅎㅎ

삭제해 보겠습니다.

이어서 다음과 같이 적은 후 실행을 해봅시다.

 

14
delete $'Sphere001'
cs

 

 

깔끔히 삭제가 되었네요. ㅎㅎ

 

오늘은 오브젝트를 컨트롤할 수 있는 옵션에 대해서 알아보았습니다.

음.. 다음에는 무엇을 이야기할까요?

다음에 글을 쓸 때 정해 보겠습니다.

728x90
반응형

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

함수(3)  (3) 2019.08.13
함수(2)  (0) 2019.08.12
함수(1)  (3) 2019.08.11
Color Values  (0) 2019.08.02
오브젝트의 Transform (4)  (0) 2019.07.17
오브젝트의 Transform (3)  (3) 2019.07.16
오브젝트의 Transform (2)  (0) 2019.07.15
오브젝트의 Transform (1)  (2) 2019.07.14