PROFILE
RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'Tip and Tech/Max script'에 해당되는 글 13

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



플로터 도킹... 서로를 부모로 인식하게도 가능할거 같은데?
바로 해결..ㅡ_ㅡ;;

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/02/27 12:26 2009/02/27 12:26
http://studio2k.teamnop.com/tt/trackback/278
(
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 를 이용해서 오브젝트를 선택할때마다 스크립트는 활동(?)합니다.
기본적으로 지오메트리의 오브젝트들만 델수 있게 되어 있습니다..^^

사용자 삽입 이미지

사용자 삽입 이미지
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/02/12 10:11 2009/02/12 10:11
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

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/12/23 16:05 2008/12/23 16:05
http://studio2k.teamnop.com/tt/trackback/275

(
--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
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/12/12 11:32 2008/12/12 11:32
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 에서 편의상 맞추어 주면 될것이다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/11/21 18:35 2008/11/21 18:35
http://studio2k.teamnop.com/tt/trackback/271
studio2k:개발자로 살아가기
개발자로 살아가기
    전체 : 523515 오늘 : 28 어제 : 185
    Name
    Message
전체 (220)
Gossip (160)
Portfolio (2)
Tip and Tech (31)
Script Download (3)
3D studio Max Scripts (20)
Photoshop scripts (3)
«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
  1. 모바일스튜디오 (Mobile Studio)  2009
    소니 엑스페리아 안드로이드폰 Rachael UI 공개
  2. "Wish~!"  2008
    Unreal 3.x ED 통한 맵작업
  3. 도아의 세상사는 이야기  2008
    다기능의 가벼운 IE 기반 브라우저, TheWorld
  4. Conya In BackStreet  2005
    음악바톤이어받기ㅇ_ㅇ
  5. 젊은거장의 서재 속 이야기 - 시즌2  2005
    바보 이미 다 하고 있어요.
  1. 2010/06 (1)
  2. 2010/05 (4)
  3. 2010/01 (1)
  4. 2009/08 (3)
  5. 2009/07 (2)