星期一, 12月 29, 2014

改變 3dsMax viewcube 的 外觀

原討論串
方塊圖下載站
資源修改器 free 
想看原文的可以去上面的連結找資料
事實上我還真沒用過 viewcube,對我而言快速鍵拿來切換 viewport 已足已。
所以把他換成好看一點的外觀是我會想保留他在 viewport 裡的唯一原因。
準備想替代的圖檔。png格式,大小為 寬128px 高 1024px
格式可以用這張圖來制作,會比較清楚。
備好圖後就可以用 resource hacker 打開 max 根目錄下的 stdplugs 下的 AutoCamResENU.dll 在data目錄下找名為 vc 開頭的目錄,會有好幾個。
找到一個名字叫 VCFACEMAP 的,打開之後按右鍵可以選用 Replace resource 用我們準備好的貼圖來取代。
選取圖檔後也把其他欄位填寫完,
依序是

  • DATA
  • VCFACEMAP
  • 1033

按確定,存檔,重開 Max 就 ok 了 
改完了這張,其他的文字圖,前後左右,你應該也可以類推出來要如何修改了~

星期四, 12月 18, 2014

shotgun api 心得


Shotgun API

第一眼要看的函式

schema_read()

find( 類型, 條件式, 欄位名,...)
  • 第一個參數為要找的表。可用 schema_read() 找出所有能用的表格名。 
  • 第二個參數是條件式,為了要可以代入多於一個以上的條件式,所以用了二維 list 。
  • 第三個參數為想取得的欄位
範例1 - 用名稱查專案:
filter = [['name','is', 'yourProjectName']]
sgPrjs = sg.find('Project',filter)

範例2 - 用封存態狀取得專案,並回傳專案圖片跟名稱:
theFilters = [['archived','is', False]]
theFields = ['id','name','image']
sgPrjs = sg.find('Project', theFilters, theFields)
如果有用到 entity 資料型態的,似乎一定要用上字典,像是要拿某 project 下一個叫做 "cut001" 的 shot就要寫成
theFilters = [['code','is','cut001'],
              ['project','is',{'type':'Project','id':99}]
]
sg.find('shot',theFilters)

關於 Step 這個 Entity

官方說 Step 是流程中的某個特定點,比如建模,調動畫,畫貼圖,上骨架等等的。
在應用上,比較重要的是 Step 本身就代表著一個目錄
目錄名由 shot code 這個 field 決定。決定後就不要亂改了嘿,不然會後悔的。


reference

星期一, 11月 10, 2014

把 Eclipse 拿來當 3dsMAX Python IDE 的設定方式

3dsMAX 在 2014總算是有了 python,雖然很令人覺得難過…它的執行方式要透過 maxscript,但總也是好過沒有、或是自己還要另外安裝(Blur 的 Py3dsmax
另一個令人垢病的地方在於一直以來都沒有一個比較好用的 IDE 可以讓 TA 在開發時可以少死一點腦細胞。看看 Maxscript 的 debuger 就說明了這一切。所以大家無不想盡辦法使用其他的 IDE 來替代。
以 maxscript 而言,眾 max user 早就受其茶毒很久了, max 9 之前沒有語法提示,2008之後換成新一代以 SciTE 時大家眼淚都流下來了(再見了 mxscom.com ~, 再見了 N++ ~)
但是這種情況在 3dsMAX 2014 又再次上演了。
提供了 Python 卻不提供相對應的語法提示和語法上色的功能…(2008 的 dotnet 我們就不計較了…)
所以網路上就出現了拿 sublime 或是 pycharm 設定為外部開發工具的教學。
但是 pycharm 要錢才有 remote debug,sublime 本來就沒有我想要的 remote debug。所以我就用回了我比較熟悉的 Eclipse。

安裝 Eclipse

官網找一下,用標準版的就行了。下載完成之後解壓縮,放在你想放的地方。看要在 C:\ 或是 D:\ 都可以。


安裝 SmartGit/Hg

(你要用 MyGit 當然也是 ok ~ 請由此去)
一樣我們到官網去把東西抓下來安裝即可
(可能要裝一下 JRE ,就不多寫這一步驟了)


安裝相關 Python 模組

接著就可以用 SmartGit/Hg 來安裝我們所須要的模組了。好佳在,其實最難的事有人已經幫我們做好了,就是怎麼跟已經開啟的 3dsMAX 連結。

請至下面這個網址 https://github.com/arturleao/YCDIVFX_MaxPlus 在右下方有個 HTTPS clone URL ,把這裡的網址複制下來。
打開 SmartGit/Hg

選 File 下的 Clone

把剛剛的網址貼上
看要放在那個位置

PyDev

好~ 再來是 eclipse 的部份。 在 eclipse 要安裝 PyDev 這個 Python 開發外掛。

打開  Eclipse 到 Help 下


執行 Install software




按下 add,在 Name 的欄位寫個名字(自由發揮)
Location請打上 http://pydev.org/updates
就可以按 ok 鈕了


把找到的二個項打勾,按下 next 安裝吧,安裝過程中會要求你接受他們的授權。多按個幾次按鈕(next)就把他裝完了。

設定專案

東西都裝完了,可以開始測試我們想要的 Remote Debug 了
開啟新的 Python 專案

先把我們的 Python 環境設定好,按上圖中藍色部份的連結



按下 Add 把 max 的 python 設定加入



按下 New 把 max 的 python 設定加入



加入相關的 Lib



按下 New Folder,加入 YCDIVFX_MaxPlus 這個我們之前藉由 smartGit 安裝的模組。
還有另一個重要路徑也要加入的是 3dsMax 2014 安裝的根目錄。




這樣我們就可以在專案設定時選用我們剛剛建立的 Python 直譯器設定


Pydevd 模組

到 windows \ preferences 裡的  Pydev \ Interpreter \ Python Interpreter 下選好 3dsMax 2014 ,再下方的 Libraries 頁標下按 New Folder 按鈕,把 pydev 套件的位置加入,我的位置路徑如下(僅供參考)D:\‧‧‧‧\eclipse\plugins\org.python.pydev_3.6.0.xxxxxxxxxxxxx\pysrc



加在這裡主要是讓 Eclipse 不會跳出找不到模組訊息的警告,而且也有自動完成可以用。
在寫程式的時後還是要再加入 sys.path 中。因為我們最後是 max 要跑的,不會是用 Eclipse 來執行的。

建立一個 PY 檔,我們就叫他 test.py 好了,內容簡單一點,就像下面這樣就好了
import sys
sys.path.append(r'D:\Dropbox\green software\eclipse\plugins\org.python.pydev_3.6.0.201406232321\pysrc')
import pydevd
import MaxPlus
pydevd.settrace()
print MaxPlus
之後跳到 debug perspective 開啟 debug server

可以直接按下右上角的那個小蟲子打開 debug perspective

再來按下上方工具列的 start the pydev server

到下方的 console 找他回報的 port 號碼,沒意外的話應該是 5678 這數字

debug 頁標裡的內容多了 Debug server 了 XD


再回頭來把程試碼加寫一些東西

pydevd.settrace()
改成
pydevd.settrace(host='local_ip', port=5678, suspend=True )
那個 local ip 請自已替換成你的 ip 如 192.168.0.2 之類的

Link To Existing Source

為了讓他可以在 max 裡跑我們要借重上面提到的 YCDIVFX_MaxPlus 模組,這時應該已經抓下來了才是,但是為了在目前的專案可以引用我們還要跟 Eclipse 說一下它在哪裡。

在 explorer 視窗中對專案按下右鍵,依圖示選至 link to existing source
再來選取相關位置(圖裡的路徑供參考)

再來就可以設定 RUN 了,利用 run 指令只是為了讓 Eclipse 幫我們快速的做出一個 configuration,還要再去改裡的設定,


利用run ,快速的做出 configuration (圖做的有點誤差,是上面那個指令)

再選擇 run configurtaions 進入設定視窗

把第一個頁標的 Main Module 的檔案路徑改到第二頁去,前綴 -f


再把本來的  Main Module 改成 YCDIVFX_MaxPlus 目錄裡的 run.py
現在真的可以 run了~
確定一下 debug server 有開,切到 debug perspective
恭喜,你現在可以在 debug perspective 裡一步一步的執行程式碼了~


看右邊那滿滿的執行時期資訊完全是 maxscript 辦不到的啊~  > U <

後記:自己做的時後很快,但是要寫出來就花了很長的時間,而且還要一直來回勘錯 冏…

星期四, 7月 17, 2014

python 2.6.5 64 + py2exe +PySide

python 2.6.5 64 + py2exe +PySide
本來想用 pyinstall ,但他要先裝 pyWin32 。
但在安裝 PyWin32 時出問題,苦於找不到 pywintypes26.dll 64位元版作罷。
cx_Freeze 看起來又太複雜
py2exe 有給 2.6 用的 64 位元本~好佳在…
不過也要先裝個 Microsoft Visual C++ 2008 Redistributable Package (x86) 保險一下。
寫個 setup.py 像下面這個樣子, 放在跟要轉 exe 的 py 檔同一個目錄裡
from distutils.core import setup
import py2exe

setup(
    options = {'py2exe': {'bundle_files': 3}}, #64版不支援1 跟 2
    windows = [{'script': 'c:\\your_script.py'}],
    zipfile = None, #這樣才不會有 library.zib
)
之後再用 python 下個指令如下
python "path to your setup.py" py2exe
會在下指令的目錄下產生 dist 跟 build 二個目錄,我們要的檔會在dist目錄中,build 裝的是暫存的東西,不重要。
在 dist 裡除了 exe 外會有很多檔案,是執行我們所產生的 exe 檔時須要的程式庫,不能少。
有遇到過程中找不到 msvcp90.dll 之類的檔案的話,就搜尋電腦裡有的,把找到的任一個 copy 到 python 的目錄下(我的 msvcp90.dll 大小約為 800 多k)

星期四, 5月 15, 2014

NAB 上講解的 3ds MAX 2015 新功能

影片:3ds MAX 2015 新功能解說由此去

大家都很關心有什麼新功能。
這裡有個45分鐘左右的影片,看了一遍,分成三個大段落,利用了客戶提供的檔案,用類實戰的方式來帶入新功能講解。
個人順便把重點節録如下:

其實 3ds MAX 2015 是為忍者而生(誤)

  1. Fast for layout 
    • spacing tool
    • asset browser 跟 placement tool 協同作戰
    • object paint (舊功能) 多了個 paint on painted object 選項
  2. It is great If you have to fix something quickly
    • 整合後的場景管理工具 (連 layer 也包了,現在可以做巢狀管理)
    • 可以開二個一起 dock 在某一邊,快速的整理( ex:parent, select... etc )感覺很屌。
    • state set 可以用特殊語法來自動命名 ( 在 rendering dialog 也可以用 )
    • state set 增加了對應 render element 的 composite node,並且會自動設定好 render element 的合成模式
  3. When you know it, you can fake everything
    • 好像沒有講新功能…

 

好了…你不用浪費45分鐘看了…