這...最後可能會是一場空....
總之,我只是在想一些可能的方法...然後嘗試...
max 的 container 的功能,其實很不錯,基本上他可以讀取外部的 max 檔放到現在的場景,算是 xref 的加強。
所以如果可以讀序列檔的話,那麼就等於是一個強大的 cache 功能,而且可以保留所有的屬性!!
可惜他不行...反正 ad 總是作半套也不是今天才知道的事情......
怎麼實現呢....
過程其實只遇到一個老問題....動態的 string 格式在 max 裡不會作用....
也就是一般你可以自己用 script controller 當控制器來控制動畫沒錯,但是這些控制器都有一個限制,就是你最後必須輸出相對應的"值",而 max 雖然號稱所有參數都可以設動態,但其實也不外乎就是 float、point2、point3、point3

所以 string 的改變是沒有控制器在處理的,你必須要自己兜~~~~
這裡我用一個範例...

給三個自定義參數,兩個 integer 的 spinner 和一個 string,用 integer 是因為序列都是整數來算...
接著進 trackview,這時你就會發現只有兩個 spinner 的值而沒有 string ,理由就如上面所說,string 是沒動畫能力的....

這就是我要用兩個 spinner 的理由了...
這裡的技巧是,第一個 frame 這個 spinner 是我要用來指定我要的數字,也就等於序列的編號
第二個 spinner 是用來放 script 控制,因為用了 script controller 之後,spinner 會失去手動輸入的功能, 所以你不能直接寫在第一個裡面。

先定義一個變數,並 assign node 為自己,這裡是為了後面取參數好用,而且避免部份 self reference 的問題(真的只能避過一部分....)
在 expression 裡面輸入 self.frame,就等於是取得 frame 這個 spinner 的值,這時你就會發現 frame 和 temp 這兩個值已經是連動的了。
接著我們要把數字轉成 string 然後帶給我們自己定義的那個 string,在 expression 裡輸入:

這裡用到了 formattedprint 的指令,這超好用,可以把數字轉成 string 並自動補 0,
最下面一行我寫了一個 0,這算是使用上的技巧,因為 float script controller 最後輸出的必須是要一個數字,不會管你前面做了什麼事情,所以我前面隨便包都可以,只要最後給個數字就好了,反正這個數字也不重要。
接著把 frame 設個動畫然後拖一下時間軸,就可以得到動態的 string 了 。


