星期六, 1月 14, 2017

製程

想要讓製程順利這檔事真是一門藝術。

其實我真的覺得一開始就到大公司學3D不是一件好事
到了大公司,流程被細分到一定的程度,你能看到的流程面視野很少
所以你不容易體會前的人做的東西交給你的時後正不正常,你做好的東西丟出去之後,後面的人好不好接手。
當然你可以用時間去累積這些東西

那去小公司呢?沒時間給你累積喔,這些都是你自己一個人要做
做差了也沒關係,死的都是你自己。
模型佈線沒好,RIGGING 畫權重都畫不好時很苦你自己吃。
UV 沒上好,動一下就貼圖拉扯也自己吃。
貼圖解析度超高,視窗更新超慢你自己吃。
燈光亂打算出來的光調不連續,你自己吃
合成出了一堆 PASS 才知道用不上,或是根本沒必要,算圖時間你自己吃。
模型做的細到哭爸,SIM 下去才知道應該做低模,重刻低模的時間自己吃。
直接就做動畫,連於腳本都不做,進度做到哪都不知道的苦也你自己吃。

然後你就體會到流程的重要了。

在流程中貪圖方便,在其他地方就會有不方便反應出來。
怕麻煩,麻煩不會消失,會出現在另一個地方,只是在大公司裡,體現的地方可能不是你自己吃而已。

有些好功能為何不用?因為用了會讓後面處理的人變麻煩。
有些事好麻煩,為什麼要做?因為做了後面的流程會變簡單。

都轉 CACHE 不就都沒事,對啊。前提是你要有夠大的硬碟,要網路算圖的話還要有夠快的網路線。

「那我們寫工具來解決?」
通常寫完工具的時間,問題已經手動解完了…
「等下次問題又出現還是用的上啊?」
但是常常遇上的是下次問題會演變成另一種變體,上次寫的工具不是那麼通用…
「那為什麼不寫的通用一點?」
通用的工具最難寫,花費在寫工具的時間可能就不只是在手工解完問題之後了…

終究,時間還是要花的。
而且除了這之外還有一大堆的繁瑣的事要處理。
但我們什麼都有,就是沒時間(其實還有沒錢),交案的時間就在哪,一動也不動。

星期一, 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分鐘看了…

星期五, 9月 20, 2013

nexus 7 2代 解鎖跟root

買了 nexus 7 2代,在還沒真的深入始用之前資料都沒進去之前,第一件要做的事就是搞清楚怎麼解鎖跟root

http://www.wugfresh.com/nrt/
 <- 好物

跟 google 大師 討教了一番,找到了樓上連結裡的好物

但是要用好物,也須要先啟動 "開發者模式"

設定->關於平板電腦->版本號碼
按七下

這樣就打開了開發者模式的功能選單了

 

而把 NRT 下載安裝完之後,執行之後他會很貼心的提示你,它目前在做什麼。
在我的電腦上,打開它之後他會開始自動幫你 unlock,會有 "告知你他要下載某某修改過的 img 之類的訊息" 跳出來。
你看看~真好,連自己下載找 img 的工作都幫你包辦了。之前用 odin 刷手機時還要自已先備好 核心、rom等等的…

看的懂英文的話,再來就沒什麼難度可言了。依照它提示視窗一步一步確認就好了,記得要看仔細點就是了

 

 

如果刷壞了…