PROFILE
RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

사용자 삽입 이미지

[Flash]


------사용법--------
Selected Objects 와 Each Objects 는 아래의 모든 설정에적용됩니다.
Affect Pivot Only : Off 버튼을 누르면 뷰포트의 피봇설정모드가 활성화됩니다.(이는 확인이 필요한경우 활성화시킨후 사용하시면 됩니다.)
Reset All : 오브젝트 의 Transform,Scale,Pivot,XForm 을 Reset 합니다.

--Bounding box Pivot Setting --

-Selected Objects 를 선택했을경우
선택되어진 모든 오브젝트의 전체크기의 XYZ 의 min Center Max 값을 기준으로 설정합니다.
-Each Objects 를 선택했을경우
선택되어진 각각의 오브젝트 크기의 XYZ 의 min Center Max 값을 기준으로 설정합니다.

--Object Pivot Setting --
Pickobject : 하나의 다른 오브젝트를 선택 하여 다른 오브젝트의 피봇값으로 설정합니다.(XYZ 따로 설정 가능합니다)
SetVertex : 버텍스를 선택후 클릭하면 피봇의 위치를 버텍스의 위치에 설정합니다.
[0,0,0] : 선택한 오브젝트의 피봇위치를 0,0,0으로 설정합니다.
Center : 선택한 오브젝트의 피봇위치를 x center,y center,z center 으로 설정합니다.

------3DSMAX 8.0 - 3DSMAX 2010 사용가능        (테스트환경 2010)--------


PivotSetting and Export 의 마이너 업데이트 격입니다..
Pivot설정기능만 가지고 있습니다.같이 있던 export 부분은 강화되어 분리 되었습니다.
설치법의 경우 공지사항의 "Studio2k's Script 설치법" 의 .exe 부분을 참고해주세요.


Fn 보기

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

오브젝트의 사이즈를 정해서 스케일할수 있는 툴입니다.
맥스의 Scale 와 별반 차이는 없습니다..
맥스의 Scale 는 % 로 적용하는 반면 Width Resize tool 은 실제 수치로 Scale 할수 있습니다.
MM , Cm , M 외 다른 unit 에 대한 현제 수치가 표시 않되고 Generic unit 에 대한 표시가 되는 버그(?) 가 있습니다. --수정완
자세한 설명은 아래 사용 동영상을 보시는것이 빠를것같습니다.

사용자 삽입 이미지

[Flash]


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/11 14:32 2009/05/11 14:32
http://studio2k.teamnop.com/tt/trackback/250

     Global Thread,MainThread,SecondaryThread
     Fn WorkThread sender e =
     (
       for i = 1 to Thread.spnLoops.value do
         (
         If MainThread.CancellationPending Then
          (
          e.cancel = true
          Thread.lbl2.text = "Primary Thread Aborted"
          )    
           else
           (
           -- test for object 'Box01'
           -- Box01'.height = i
                             --max zoomext sel               
                                
                             -- or do some nonsense calculation
                             local asum = i*pi
                             local prog  = (i as float)/Thread.spnLoops.value * 100           
                             --    MainThread.ReportProgress prog asum               
                             Thread.lbl2.text = asum as string
                             Thread.pb2.value = prog
                             sleep 0.05                       
                         )
                 )               
                 Thread.lbl2.text = "Primary Thread Complete"
                 Thread.pb2.value = 0
     )
     Fn WorkThread2 sender e =
     (   
                     for i = 1 to Thread.spnLoops.value do
                     (
                     If SecondaryThread.CancellationPending Then
                         (
                         e.cancel = true
                         Thread.lbl3.text = "Secondary Thread Aborted"
                         )                   
                         else
                         (
                         -- do some nonsense calculation
                         local asum = i/pi
                         local prog  = (i as float)/Thread.spnLoops.value * 100           
                         --    MainThread.ReportProgress prog asum               
                         Thread.lbl3.text = asum as string
                         Thread.pb3.value = prog
                         sleep 0.025                           
                         )   
                     )   
                    
                     Thread.lbl3.text = "Secondary Thread Complete"
                     Thread.pb3.value = 0
      )
      Fn MxsFn =
     (   
                     for i = 1 to Thread.spnLoops.value do
                     (
                     -- test for object 'Box01'
                     --    Box01'.height = i
                     --        max zoomext sel           
                        
                     -- or do some nonsense calculation
                     local asum = i*pi
                     local prog  = (i as float)/ Thread.spnLoops.value * 100
                     Thread.lbl1.text = asum as string
                     Thread.pb1.value = prog
                     sleep 0.025           
                     )   
                    
     Thread.lbl1.text = "MXS Fn Complete"
     Thread.pb1.value = 0
      )
      Fn UpdateThread sender e =
     (   
     format "FnValue -  % Percentage done - % \n" e.progresspercentage e.userstate
     )
      -- Specify the BackgroundWorker Class
          MainThread = dotnetobject "System.ComponentModel.BackGroundWorker"
         --    MainThread.WorkerReportsProgress = true
         MainThread.WorkerSupportsCancellation = true       
         dotNet.addEventHandler MainThread "DoWork" WorkThread
         --dotNet.addEventHandler MainThread "ProgressChanged" UpdateThread
        
         SecondaryThread = dotnetobject "System.ComponentModel.BackGroundWorker"
         SecondaryThread.WorkerSupportsCancellation = true
         --    SecondaryThread.WorkerReportsProgress = true
         dotNet.addEventHandler SecondaryThread  "DoWork" WorkThread2
         --dotNet.addEventHandler SecondaryThread  "ProgressChanged" UpdateThread
        
     rollout Thread "Running Multiple Threads in DotNet" width:728 height:147
     (
         GroupBox grp1 "MaxScript Function Execution" pos:[7,28] width:192 height:114
         GroupBox grp2 "DotNet BackgroundWorker Class" pos:[202,7] width:522 height:135
         progressBar pb1 "" pos:[19,88] width:168 height:16 color:(color 255 255 0)
         GroupBox grp3 "Function Value" pos:[18,44] width:171 height:39
         button btnMXstart "Start" pos:[16,110] width:173 height:23
         label lbl1 "" pos:[24,61] width:160 height:18
         progressBar pb2 "" pos:[394,33] width:168 height:25 color:(color 0 255 0)
         GroupBox grp4 "Function Value" pos:[215,22] width:171 height:39
         button btnDNstart "Start Primary" pos:[566,31] width:109 height:28
         label lbl2 "" pos:[220,37] width:161 height:18   
         progressBar pb3 "" pos:[394,70] width:168 height:24 color:(color 30 10 190)
         GroupBox grp18 "Function Value" pos:[215,62] width:170 height:39
         button btnDNboth "Run Both Threads" pos:[214,105] width:461 height:28
         label lbl3 "" pos:[220,78] width:158 height:18
         button btncancel1 "Cancel" pos:[678,31] width:42 height:28       
         button btnDN2 "Start Secondary" pos:[566,67] width:109 height:28
         button btnCancel2 "Cancel" pos:[678,66] width:42 height:28
         spinner spnLoops "Number of Loop Iterations" pos:[114,8] width:84 height:16 range:[10,10000,100] type:#integer
         button btncancelboth "Cancel" pos:[679,104] width:42 height:28
    
         on Thread open do
         (       
             try
             (
             If MainThread.IsBusy do MainThread.CancelAsync()
             )
             catch()   
         )
        
         on btnDN2 pressed do
         (
         if not SecondaryThread.IsBusy do SecondaryThread.RunWorkerAsync()
         )
        
         on btnMXstart pressed do    MXSFn()
        
         on btnDNstart pressed do
         (
             if not MainThread.IsBusy do MainThread.RunWorkerAsync()       
         )
        
         on btnDNboth pressed do
         (
             if (not MainThread.IsBusy) and (not SecondaryThread.IsBusy) do
             (
             MainThread.RunWorkerAsync()
             SecondaryThread.RunWorkerAsync()
             )
         )
        
         on btncancel1 pressed do
             If MainThread.IsBusy Then MainThread.CancelAsync()
    
         on btnDN2 pressed do
             if not SecondaryThread.IsBusy do SecondaryThread.RunWorkerAsync()
        
         on btnCancel2 pressed  do
             If SecondaryThread.IsBusy Then SecondaryThread.CancelAsync()
        
         on btncancelboth pressed  do
         (
         if MainThread.IsBusy do MainThread.CancelAsync()
         if SecondaryThread.IsBusy do SecondaryThread.CancelAsync()
         )
     )
     createdialog thread  style:#(#style_toolwindow, #style_sysmenu)


굉장히 흥미로운 스크립트...
후.....내머리속에선 언제 이런게 나올까?ㅡㅡ;;;

출처 : cgsociety.org
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/08/08 12:50 2008/08/08 12:50
http://studio2k.teamnop.com/tt/trackback/254

사용자 삽입 이미지

[Flash]



배치 익스포터 입니다.
씬의 선택오브젝트의 익스포트 또는 선택되어진 오브젝트 각각으로 익스포트 합니다.
익스포트시 피봇의 위치 (X = Center Y = Center Z = Min) 으로 위치시킨후 0,0,0 으로의 이동은 선택사항이 될수 있습니다.

또한 각각의 오브젝트를 익스포트가 아닌 Max file 로의 저장도 가능합니다.

(현제의 기능은 위와같습니다.)
추후 개별로 피봇과 위치(0,0,0)의 변경시 씬에서의 위치또한 저장할수 있게 만들려고 합니다.
임포터 또한 만들려고 하고 있습니다..

계획된 임포트의 기능
- 씬의 각 오브젝트의 위치값 (export의 기능)을 읽어 오브젝트와 위치에 맞게 구성

해야할일 XML 공부..............
아마 임포트와 익스포트시 위치저장은 제가 XML 을 어느정도 공부하고 만들지 않을까 합니다..쿠..쿨럭..



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

얼마전 포스팅 했던 Shadermap GUI Preview 영상 입니다.

ps.개인적으로 필요하신분은 답글로 요청 부탁드립니다..
아무래도 저쪽에서도 GUI를 팔고 있는 입장에서 바로 공개하긴 껄끄럽고요.
개인적인 사용이시라면 보내 드리도록 하겠습니다.--오류로인한 중단.



http://studio2k.teamnop.com/tt/274         이곳에 공개되어 있습니다..^^

2008/07/07 - [Tip and Tech/Max script] - Crazybump & Shadermap

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/07/21 15:27 2008/07/21 15:27
http://studio2k.teamnop.com/tt/trackback/248
studio2k:개발자로 살아가기
개발자로 살아가기
    전체 : 523502 오늘 : 15 어제 : 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)