본문 바로가기
3DsMax/Tips

오브젝트 단위 스케일

by biped 2012. 5. 9.

파일을 Import 했을 때 시스템 단위의 차이로 크기가 동일하지 않는 경우 아래와 같은 방법 등을 이용해 봅니다. 

 

 

 

1. 다른 시스템의 작업물 유닛을 현재 시스템의 유닛 설정에 맞게 불러오기.

 

예제: 

 1.  현재 장면의 시스템 단위가 [ inch] 로 설정한 상태에서 XYZ가  10 inch인 박스(아래 그림의 좌측 오브젝트)를 만듭니다. 

 

 

( 위 그림은, 장면의 단위 설정이 Cm인 상태에서 10인치(1inch = 2.54 cm)와  10cm  박스를 만들어 크기를 비교한 장면입니다. )

 

 

2. 새로운 장면을 열고,  장면의 유닛(unit)이 [ Cm ]을 설정한 후, 시스템단위 설정 옵션의 'Respect Sysem Units in File' 을 체크 해지한 후 10인치 박스를 merge 합니다.

 

 

( 결과:  10inch->10cm로 수치는 변화 없이 씬의 설정 단위로 리스케일 되었음을 알 수 있습니다. )

 

 

* 2016 버젼이상에서는 Merge 할 때 'Rescale Objects to System Unit Scale' 를 비활성 시키면 됩니다. 

 

 

 

------------------------------------------------------------------------------------------------------------------------

 

 

< 객체의 크기 변화와 속성(object properties) 변화 >

 

다음 설정은 새장면에서 각각 다른 환경의 객체를 사용하기 위해 불러오는 경우

새장면 system unit 환경으로 뷰포트를 통해서 보는 객체의 크기 변화와 속성(object properties) 변화이다.

 

 

 

A)   장면 안에서 Units setup 을 바꾸었을 경우 객체들의 변화 

장면에 안에 객체들이  현재 시스템에 맞는 단위로 변경, 크기 변경 (객체 속성 변경 O)

 

 

B)   Import : 새장면에서 파일안에 객체를 불러오는 경우

Rescale Objects to System Unit Scale (객체 크기를 시스템 단위 배율로 조정한다.)

이 옵션이 체크되지 않으면 다른 시스템 단위 설정된 파일을 open, merge, xref , 또는 드래그드롭 할때 현재 시스템과 동일한 단위로 간주한다. 그래서 '파일 로드: 단위불일치' 대화 상자가 표시되지 않는다. 

 

체크 시: 현재 시스템 단위로 변경 되면서 질량의 변화는 없다. (객체 속성 변경 X)

 

체크 해제시 : 현재 시스템에 맞는 단위만 변경된다.  시각적 크기에 대한 변화는 없다. (객체 속 변경 O)

 

 

 

C)  Mismatch Dialog : 서로다른 환경의 장면에서 파일을 불러오는 경우

 

Rescale the file objects to the system unit scale (파일 객체 크기를 시스템 단위 배율로 재조정)

: 현재 시스템에 맞는 단위로 변경, 'Rescale Objects to System Unit Scale' 체크시 예와 같이 현재 시스템 단위에 맞게 재조정 된다.

 

 

Adopt the file's unit scale (파일의 단위 배율을 채택한다)

: 파일에 사용된 단위와 객체 속성 그대로 사용됨. 

 

 

 

 

------------------------------------------------------------------------------------------------------------------------

 

 

2. 스크립트 사용하기

 

 타 프로그램에서( 예를 들어 캐드 같은) 오브젝트를 만들어 임포트했는데 치수가 너무 크거나 작거나 할 때 유용한 스크립트.

http://studio2k.teamnop.com/tt/category/33  여기서 프로그램을 받아 설치한다. 

 

● 설치시 맥스 경로는 설치된 맥스 루트로 설정해준다.(맥스2012 버전에서 테스트)

 

●스크립트 등록은 다음 그림과 같은 위치에서 등록한다.

 

 

 

● 100mm/100mm/100mm 오브젝트를 스크립트를 사용하여 10mm로 입력했을 때 사이즈가 10mm로 줄었음을 알 수 있다.

 

 

 

 

Sergo's script pack ( SergoScripts )

http://www.scriptspot.com/3ds-max/scripts/sergos-script-pack

 

 

 

Resizer Modifier (AtelierBumpResizerModifier)

축척비율 대신 직접 사이즈 입력으로 스케일 가능

atelierbump.com/tools/resize-modifier

 

 

Scale To

위 'Resizer Modifier' 와 같음.

http://www.scriptspot.com/3ds-max/scripts/scale-to

아래 코멘트(댓글) 에 달린 개선 된 버젼 ( walid-scaleto_modified.mcr )을 사용하는 것이 좋음.  그룹으로 묶어서 할수 있음. 

 

 

 

 

3.  Utilities > Rescale World Units 이용

 

모델링을 시작하고 시스템 단위 스케일 (System Unit Scale)의 값을 변경한 경우 Rescale World Units 로 장면이나 선택된 객체만 다시 스케일을 변경할 수 있다.

0.01(100배축소), 0.1(10배축소), 10 (10배 확대) 등의 수치를 직접 사용.

 

 

 

 

 

 

4. 다른 오브젝트를 참고해서 동일한 크기로 스케일 하기

 

● Transform Toolbox 사용하기

Rescale World Units 를 사용하면 백분율로 조절하기 때문에 미세한 조정까지는 힘들다.

다음 기능을 사용하면 입력한 크기로 조절할 수 있다.

 

* Edit 메뉴 > Transform Toolbox를 사용하여 다른 오브젝트의 size를 참고하여 원하는 축으로 스케일 할 수 있음. 

 

 Get... 버튼 : 선택된 오브젝트의 사이즈 정보

X,Y,Z : 원하는 축의 정보를 size 입력란에 등록 또는 스케일 하고 싶은 축을 선택할 때.

All : 모든 축 방향으로 동일하게 스케일 하고 싶을 때.  

 ↑ 버튼 : 체크된 축의 사이즈 정보를 Size 입력란에 등록해준다. 

set size : 선택된 오브젝트를 입력된 size 값과 체크된 축방향으로 스케일 해준다. 

R 버튼 : Reset Xform (스케일 정보를 초기화한다. Scale Transform Type-in를 통해서 100% 됨을 알 수 있다.)

 

 

 

Align  툴을 사용하는 방법

 

match scale  만 체크 하고 사용하면 타겟 오브젝트의 Transform Type-In 에서 볼 수 있는 스케일 값이 그대로 복사된다. 

스케일이 조정되지 않거나 스케일이 재설정된(Reset Xform) 경우 해당이 안됨. 

 

 

 

 선택한 오브젝트의 축 크기만큼 동일하게 모든 오브젝트에 일률적으로 스케일을 적용할 수 있는 스크립트

http://www.scriptspot.com/3ds-max/scripts/batch-rescale

 

 

( 선택한 오브젝트의 Z 축을 기준으로  스케일이 똑같이 적용됨)

 

 

 

 

 

* 참고)

 

1. 모든 오브젝트의 최종 스케일 상태는 object properties 또는 Scale Transform Type-in 대화창에서 다시 한번 확인해봐야 합니다. 

오브젝트 속성의 내용에 변화가 없으면 Reset Xform을 적용합니다. Scale Transform Type-in 값이 100%가 아닐때 계층구조 애니메이션에서도 문제가 발생할 수 있다. 

오브젝트에 편집을 가하여 다른 환경으로 내보낼 때도 Reset Xform을 사용하고 스택을 합쳐줘야 한다. 

( Reset Xform은 오브젝트 내부 속성의 transform정보를 리셋시키는 역할을 합니다.)

 

 

2. 오브젝트를 import 하기 전 또는 새로 만들기 전에 미리 시스템의 단위 설정을 변경하고, merge를 사용해야 한다.

기존 장면 안에서 시스템 단위를 바로 변경하는 것은 나쁜 결과를 얻을 수 있어서 권장되지 않는다.

이 경우  Utilities > Rescale World Units 를 사용해서 장면의 크기를 재조정해야 한다. 

 

3. 프로젝트 규모와 일치하도록 시스템 단위를 설정하는게 가장 좋다. 

큰 물체를 만드는 경우 큰 시스템 단위로 설정하고, 작은 물체를 만드는 경우 작은 시스템 단위로 설정하는 것이다.

큰 단위에서 작은 물체나 작은 단위에서 큰 물체를 만들어야 할 경우 시스템의 유닛에 배율로 적용한다. 

예를 들어 큰 장면에서 작은 동전 같은 것을 모델링할 때  1Unit = 1m라면  0.1m나 0.01m 같은 배율로 변경한다.

또는 작은 장면에서 운동장처럼 큰 오브젝트를 모델링하는 경우라면 배율을 높인다. 

이렇게 하는 이유는 부동소수점 (floating point) 오류로 인한 문제를 방지하기 위해서이다. 

 

3ds Max 및 기타 널리 사용되는 3D 소프트웨어는 단정밀도 부동 소수점 형식(single-precision floating-point format)을 기반으로 합니다. 이것은 숫자가 증가함에 따라 사용할 수 있는 소수 자릿수가 적다는 것을 의미합니다. 이로 인해 부정확한 반올림이 발생합니다(예: "1000000.445669"가 "1000000.4"가 됩니다.)

https://knowledge.autodesk.com/support/3ds-max/troubleshooting/caas/sfdcarticles/sfdcarticles/Object-s-exhibits-polygon-z-fighting-moves-erratically-and-or-form-becomes-distorted.html?_ga=2.29209788.1432255423.1652142343-271518728.1598888778

 

 

4. 만약 스케일 툴을 사용하여 배율을 크게하거나 작게 할 경우 sub-object 수준에서 사용하는 것이 좋다.

(버텍스 레벨에서 모든 버텍스를 선택해서 스케일을 적용하거나  Xform 모디파이어를 적용하고 Gizmo 에 스케일을 적용할 수 있다. 마지막에 오브젝트 자체의 Scale Transform Type-in 값이 100% 상태인지 확인하도록 한다.)

 

 

5. 물리적 렌더링 엔진에서 단위 변화는 영향을 받는다.  렌더 설정이 다시 필요할 수 있다.

기존 장면에서 'real world scale' 옵션을 사용했을 경우, 재질의 크기도 변경이 필요하다. 

 

 

 

 

 

댓글