1.메쉬 LOD 변환툴
- LOD를 적용할 메쉬를 선택하여 수치를 정하여 메쉬를 변환시켜주는 툴입니다.
1. 툴 화면
2. 비대칭 실행시 적용화면 - 원본 오브젝트의 50퍼센트의 LOD를 적용하여 비대칭 메쉬를 새로 생성합니다.
3. 대칭 실행시 적용 화면 - 원본 오브젝트의 50퍼센트의 LOD를 적용하여 대칭 메쉬를 새로 생성합니다.
- 이 스크립트 제작을 통해 배운 내용
1. if문의 사용법 숙지(조건문)
2. roll과 button을 사용하여 메뉴 창 생성하는 법
3. 오브젝트의 모디파이의 속성을 제어하는 방법
코드 원문
global TEST
rollout noskin "스킨없을때"
(
spinner noskin1 "버텍스수치" range:[0,100,50] type:#integer
button btn1 "비대칭"
button btn2 "대칭"
on btn1 pressed do
(
if selection.count != 1 then
(
messagebox "한개만 선택하세요"
return 0
)
if $.modifiers[#skin] == undefined then
(
local VF = noskin1.value
a= $
copyobj = copy$
select copyobj
--modPanel.setCurrentObject $.baseObject
modPanel.addModToSelection (MultiRes ()) ui:on
$.modifiers[#MultiRes].reqGenerate = on
$.modifiers[#MultiRes].vertexPercent = VF
maxOps.CollapseNodeTo $ 1 off
clearselection()
delete a
select copyobj
)
else
(
messagebox "스킨없애시오"
return 0
)
)
----------스킨 없고 대칭 일때-------------------
on btn2 pressed do
(
if selection.count != 1 then
(
messagebox "한개만 선택하세요"
return 0
)
if $.modifiers[#skin] == undefined then
(
local VF = noskin1.value
a= $
copyobj = copy$
---헬퍼박스 생성----
Box lengthsegs:1 widthsegs:1 heightsegs:1 length:5000 width:5000 height:5000 pos:[0,0,0] name:"Helper_Box"
select $Helper_Box
max rotate
toolMode.coordsys #local
rotate $(angleaxis -90 [0,1,0])
move $ [-0.1,0,0]
macros.run "Modifier Stack" "Convert_to_Poly"
select copyobj
modPanel.addModToSelection (Vol__Select ()) ui:on
$.modifiers[#Vol__Select].level = 1
$.modifiers[#Vol__Select].volume = 3
$.modifiers[#Vol__Select].node = $Helper_Box
modPanel.addModToSelection (Edit_Poly ()) ui:on
subobjectLevel = 1
max delete
maxOps.CollapseNode $ off
modPanel.addModToSelection (MultiRes ()) ui:on
$.modifiers[#MultiRes].reqGenerate = on
$.modifiers[#MultiRes].vertexPercent = VF
modPanel.addModToSelection (symmetry ()) ui:on
$.modifiers[#Symmetry].threshold = 0
maxOps.CollapseNode $ off
clearselection()
delete a
delete $Helper_Box
select copyobj
)
else
(
messagebox "스킨없애시오"
return 0
)
)
)
----------------스킨있을때-------------------------------------
rollout yeskin "스킨있을때"
(
spinner yeskin1 "버텍스수치" range:[0,100,50] type:#integer
button btn3 "비대칭"
button btn4 "대칭"
on btn3 pressed do
(
if selection.count != 1 then
(
messagebox "한개만 선택하세요"
return 0
)
if $.modifiers[#skin] != undefined then
(
local VF = yeskin1.value
a= $
copyobj = copy$
select copyobj
$.modifiers[#Skin].Enabled = off
modPanel.setCurrentObject $.baseObject
modPanel.addModToSelection (MultiRes ()) ui:on
$.modifiers[#MultiRes].reqGenerate = on
$.modifiers[#MultiRes].vertexPercent = VF
maxOps.CollapseNodeTo $ 2 on
$.modifiers[#Skin].Enabled = on
clearselection()
delete a
select copyobj
)
else
(
messagebox "스킨을 넣으세요"
)
)
------------스킨 있고 대칭 일때---------------------------------------------------------------
on btn4 pressed do
(
if selection.count != 1 then
(
messagebox "한개만 선택하세요"
return 0
)
if $.modifiers[#skin] != undefined then
(
local VF = yeskin1.value
a= $
copyobj = copy$
---헬퍼박스 생성----
Box lengthsegs:1 widthsegs:1 heightsegs:1 length:5000 width:5000 height:5000 pos:[0,0,0] name:"Helper_Box"
select $Helper_Box
max rotate
toolMode.coordsys #local
rotate $(angleaxis -90 [0,1,0])
move $ [-0.1,0,0]
macros.run "Modifier Stack" "Convert_to_Poly"
select copyobj
$.modifiers[#Skin].Enabled = off
modPanel.setCurrentObject $.baseObject
modPanel.addModToSelection (Vol__Select ()) ui:on
$.modifiers[#Vol__Select].level = 1
$.modifiers[#Vol__Select].volume = 3
$.modifiers[#Vol__Select].node = $Helper_Box
modPanel.addModToSelection (Edit_Poly ()) ui:on
subobjectLevel = 1
max delete
maxOps.CollapseNodeTo $ 2 off
modPanel.setCurrentObject $.baseObject
modPanel.addModToSelection (MultiRes ()) ui:on
$.modifiers[#MultiRes].reqGenerate = on
$.modifiers[#MultiRes].vertexPercent = VF
modPanel.addModToSelection (symmetry ()) ui:on
$.modifiers[#Symmetry].threshold = 0
maxOps.CollapseNodeTo $ 2 on
$.modifiers[#Skin].Enabled = on
clearselection()
delete a
delete $Helper_Box
select copyobj
)
else
(
messagebox "스킨을 달라"
return 0
)
)
)
TEST = newrolloutfloater "공부용 LOD시스템" 200 200
addrollout noskin TEST
addrollout yeskin TEST
'3DMAX > Script' 카테고리의 다른 글
FBX임포트 데이터를 맥스 파일로 자동 저장해주는 스크립트 (0) | 2015.12.17 |
---|---|
은면제거(2) - Hidden Surface 방식 (0) | 2015.12.17 |
은면 제거 스크립트 (0) | 2015.12.17 |
SpaceWarpToMorph(스페이스워프 투 모프) (0) | 2015.12.14 |
바이패드 박스모드 변환 툴(Biped to BoxMode) (0) | 2015.12.14 |