global studio2k_RollTestFloater1,studio2k_RollTestFloater2
rollout studio2k_RollTestParent "Parent"
(
label lbl1 "부모 플로터가 움직이면 아들도 움직인다 "
on studio2k_RollTestParent open do (
if studio2k_RollTestFloater2 != undefined then (
try(closeRolloutFloater studio2k_RollTestFloater2) catch()
)
studio2k_RollTestFloater2 = newRolloutFloater "Parent" 300 150 (studio2k_RollTestFloater1.pos.x+315) 75
addRollout studio2k_RollTestChildren studio2k_RollTestFloater2 rolledUp:false
)
on studio2k_RollTestParent moved pos do (
studio2k_RollTestFloater2.pos = (studio2k_RollTestFloater1.pos + [315,0])
)
)
rollout studio2k_RollTestChildren "Children"
(
label lbl2 "아들 플로터가 움직이면 부모는 움직이지 않는다 "
/* 이부분 주석 풀면 아들이 움직이면 부모도 움직임
on studio2k_RollTestChildren moved pos do (
studio2k_RollTestFloater1.pos = (studio2k_RollTestFloater2.pos - [315,0])
)*/
)
if studio2k_RollTestFloater1 != undefined then (
try(closeRolloutFloater studio2k_RollTestFloater1) catch()
)
studio2k_RollTestFloater1 = newRolloutFloater "Children" 300 150 40 75
addRollout studio2k_RollTestParent studio2k_RollTestFloater1 rolledUp:false
article search result of 'Tip and Tech/Max script' : 13
- 2009년 02월 27일 RolloutFloater Docking Sample
- 2009년 02월 12일 기본 오브젝트 생성시 기본 머트리얼과 와이어컬러 고정
- 2008년 12월 23일 Remove Rollout From current Window (1)
- 2008년 12월 12일 Mxs dotnet Datagridview Sample
- 2008년 11월 21일 startup script 를 이용한 project unit setup (2)
(
global std_set_mat_wire
local std_default_mat_name = "Std_Default_mat"
fn std_set_mat_wire = (
obj = for i in selection collect i
if obj.count == 1 then (
if (superclassof obj[1]) == GeometryClass and (classof obj[1]) != BoneGeometry and (classof obj[1]) != Biped_Object and (classof obj[1]) != PF_Source and (classof obj[1]) != Spray and (classof obj[1]) != Snow and (classof obj[1]) != Blizzard and (classof obj[1]) != PArray and (classof obj[1]) != PCloud and (classof obj[1]) != SuperSpray and (classof obj[1]) != ParticleGroup and (classof obj[1]) != mr_Proxy and (classof obj[1]) != dummy and (classof obj[1]) != Targetobject then (
if obj[1].wirecolor != black and obj[1].material == undefined then (
if (sceneMaterials [std_default_mat_name]) == undefined then (
std_set_sceneMaterials = Standardmaterial ()
std_set_sceneMaterials.name = std_default_mat_name
obj[1].material = std_set_sceneMaterials
obj[1].wirecolor = black
)
if (sceneMaterials [std_default_mat_name]) != undefined then (
obj[1].material = sceneMaterials [std_default_mat_name]
obj[1].wirecolor = black
)
)
)
)
)
callbacks.removeScripts #selectionSetChanged
callbacks.addScript #selectionSetChanged "std_set_mat_wire ()" id:#mz_smw
)마야에 익숙해 있던 친구의 부탁으로 만들었던 스크립트 입니다.
기본적으로 오브젝트 생성시 Standardmaterial 머트리얼을 적용합니다.(뷰포트 그레이용) 그리고 와이어컬러를 블랙으로 놓습니다.(와이어 컬러가 블랙이아니며 머트리얼이 없는 경우에만 동작 합니다.)
selectionSetChanged callback 를 이용해서 오브젝트를 선택할때마다 스크립트는 활동(?)합니다.
기본적으로 지오메트리의 오브젝트들만 델수 있게 되어 있습니다..^^
트랙백 주소 : http://studio2k.teamnop.com/tt/trackback/277
댓글을 달아 주세요
global test_floater
rollout test_roll_1 "test rollout 1" (
label lbl_test "test rollout 1"
)
rollout test_roll_2 "test rollout 2" (
label lbl_test "test rollout 2"
)
rollout test_subroll_1 "test subrollout 1" (
label lbl_test "test subrollout 1"
)
rollout test_subroll_2 "test subrollout 2" (
label lbl_test "test subrollout 2"
)
rollout test_control "test control" (
checkbutton ckb_roll_1 "rollout 1"
checkbutton ckb_roll_2 "rollout 2"
checkbutton ckb_subroll_1 "subrollout 1"
checkbutton ckb_subroll_2 "subrollout 2"
subrollout sub_roll "subrollout here" width:256 height:64 align:#center
on ckb_roll_1 changed state do (
if (state) then ( addrollout test_roll_1 test_floater )
else ( removerollout test_roll_1 test_floater )
)
on ckb_roll_2 changed state do (
if (state) then ( addrollout test_roll_2 test_floater )
else ( removerollout test_roll_2 test_floater )
)
on ckb_subroll_1 changed state do (
if (state) then ( addsubrollout sub_roll test_subroll_1 )
else (removesubrollout sub_roll test_subroll_1 )
)
on ckb_subroll_2 changed state do (
if (state) then ( addsubrollout sub_roll test_subroll_2 )
else ( removesubrollout sub_roll test_subroll_2 )
)
)
test_floater = newRolloutFloater "Hello" 512 512
addrollout test_control test_floater
출처:http://forums.cgsociety.org/showthread.php?t=699242
트랙백 주소 : http://studio2k.teamnop.com/tt/trackback/275
댓글을 달아 주세요
-
productionkim
2009年 01月 04日 00時 59分
수정/삭제
댓글쓰기
아놔 테터툴즈 스킨들 너무 안이쁘다....미치겠다. 아 맘에 드는게 없노!!! 그래도 윤호야 새해복 많이 받어 !!!
(
--dotnet.loadassembly "System.Data"
rollout ro_test "test"
(
dotnetcontrol dg "System.Windows.Forms.DataGridView"
on ro_test open do
(
local colWidth = 160
local fromCol = dotNetObject "System.Windows.Forms.DataGridViewTextBoxColumn"
fromCol.headerText = "Original Textures"
fromCol.readOnly = true
fromCol.frozen = true
fromCol.width = colWidth
local toCol = dotNetObject "System.Windows.Forms.DataGridViewTextBoxColumn"
toCol.headerText = "New Textures"
toCol.width = colWidth
dg.columns.add fromCol
dg.columns.add toCol
dg.Location = dotNetObject "System.Drawing.Point" 10 10
dg.Width = 400
dg.Height = 400
dg.Visible = true
for i = 1 to 5 do
(
local row = #(dotNetObject "System.String" ("row str"))
dg.rows.add row
)
)
)
createdialog ro_test 500 500
)
-출처 Cgtalk.com
트랙백 주소 : http://studio2k.teamnop.com/tt/trackback/272
댓글을 달아 주세요
프로젝트를 진행하면서 많은 사람들이 가장 쉽게 가장 큰 실수를 범하는 경우가 굉장히 많다..
그중 하나는 unit setup 을 잘못한채 작업을 다 진행하고 최종에서야 잘못됨을 알고 수정하는 경우를 많이 봤다..
본인도 그런실수를 할때가 종종 있는데..
이를 최소화 할수 있는 방법을 소개해볼까 한다.
Max root \Scripts\Startup 에 스크립트를 등록하면 맥스가 띠워질때 실행을 하게 된다.
fn std_viewport_setting = (
viewport.getLayout()
viewport.setLayout #layout_4hb
units.DisplayType = #Generic
gridPrefs.spacing = 16
)
callbacks.addscript #systemPostReset "std_viewport_setting()" id:#std_new_seting
callbacks.addscript #systemPostNew "std_viewport_setting()" id:#std_new_seting
std_viewport_setting()
callback을 이용해서 맥스가 reset 될때나 new 될때도 본스크립트는 동작하게 된다.
viewport.getLayout()
viewport.setLayout #layout_4hb
부분은 뷰포트의 레이아웃을 설정하는 부분이다..(삭제하여도 상관은 없다)
#layout_1 -- 1 viewport
#layout_2v -- 2 viewports, vertical split, both same size
#layout_2h -- 2 viewports, horizontal split, both same size
#layout_2ht -- 2 viewports, horizontal split, top smaller
#layout_2hb -- 2 viewports, horizontal split, top larger
#layout_3vl -- 3 viewports, 2 on left, 1 on right
#layout_3vr -- 3 viewports, 1 on left, 2 on right
#layout_3ht -- 3 viewports, 2 on top, 1 on bottom
#layout_3hb -- 3 viewports, 1 on top, 2 on bottom
#layout_4 -- 4 viewports, all same size
#layout_4vl -- 4 viewports, 3 on left, 1 on right
#layout_4vr -- 4 viewports, 1 on left, 3 on right
#layout_4ht -- 4 viewports, 3 on top, 1 on bottom
#layout_4hb -- 4 viewports, 1 on top, 3 on bottom
viewport.setLayout #layout_4hb
붉은 컬러 부분에 바꾸어서 넣으면 된다.(레이아웃은 지극히 본인취향)
units.DisplayType = #Generic
gridPrefs.spacing = 16
부분은 실질적인 unit setup 이다.
units.DisplayType = #Generic
마찬가지로 붉은 부분에는 아래의 옵션들로 교체가 가능하다.
#Generic
#Metric
#US
#custom
#Metric #US #custom 의 경우 units.DisplayType = #Generic 의 뒤부분에 아래의 코드를 삽입해주어야한다.
units.MetricType = #Millimeters
#Millimeters
#Centimeters
#Meters
#Kilometers
#US #custom 의 경우에는 맥스 스크립트 레퍼런스의 3ds Max System Globals 항목 의 U 파트를 참고하면 될것이다.
gridPrefs.spacing = 16
부분은 뷰포트 그리드의 스페이스를 정의하는 부분인데 본인의 편의상 16unit 를 사용한다.프로젝트의 unit 에서 편의상 맞추어 주면 될것이다.


std_default_mat.ms

댓글을 달아 주세요