[MMF2]事件編輯 - 順序的重要性

  使用MMF2也有蠻長一段時間了,在台灣是個很冷門的設計軟體,不過還是想多少分享一下使用過後的心得,對其他正在使用MMF2或是對這軟體有興趣的朋友也許會有一點幫助。所以呢,小弟多新增了"MMF2心得"分類(用心得這一詞是因為FFTA都把得到某種職業的要訣稱作心得的緣故),大概會寫個兩三篇吧╮(﹋﹏﹌)╭



  Multimedia Fusion 2,簡稱MMF2,是由Click Team所製作的多媒體製作軟體,在歐美等地區盛傳已久(~以下省略廢話一千字~)。而在整個製作流程上最重要的,非Event Editor莫屬(等同於程式碼編輯的部分),要讓程式有好的執行效率、正確無誤,非得在這裡下點功夫。小弟瞭解的並不多,不過在這邊把自己目前所知道的部分介紹一次。



  Event Editor最重要的就是「事件、原因、結果的順序」



  能做到事件排序正確,那麼大部分跑出來的成果就不會有錯誤了,大部分。小部分是相同物件在選擇時所導致的錯誤,留到之後的改進篇再說~









  事件的順序是由上往下進行的,跟其他程式語言一樣,只有"前進"一個方向;同個事件則可分成因、果部分,左邊的原因成立,便會執行右邊的結果。要注意的是在Event Editor可看出原因的順序,但不能看出結果動作的順序(需要在同事件雙擊左鍵來編輯先後,不過編輯後可能導致物件排序混亂,要注意...)。因此便能利用這特性用因果事件作許多變化了。這邊舉兩個常用的例子:






example:先用always,再扣除特定狀況(事件順序)



  以一般邏輯而言,如果要讓A、B狀況套用相同結果,應該是像左圖一樣分為「非A非B,A,B」再各自定各自的結果(例子為讓人物的flag為on或是off)。但是這樣一來,如果特定狀況太多,會讓第一個事件變成「非A非B非C非D...」,看起來很惱人。所以可以在第一個事件先將全部人物的flag設為off,下面幾個事件再挑出符合特定狀況的人物將flag設為on。可以用OR operator(filter)再簡化事件,OR operator選擇處如下圖所示。









example:紀錄前面的按鍵動作(結果順序)



  由上面的例子來看,當這個事件(玩家按搖桿鍵1)被觸發第一次時,PrsBBtn的數值先給PrsABtn,接著C給B、D給C、E給D.....直到H給G後,再給PrsHBtn新的數值。等到搖桿鍵1被放開、PrsA恢復0後,便能在玩家按第二次搖桿鍵1時再觸發一次第一個事件。接著,又是B給A、C給B、D給C....、給PrsHBtn新的數值。數值像滾輪一樣傳遞,如此便可記錄之前(此範例記錄八個步驟)的按鍵動作了。



  如果沒有特殊的事件限制(如Fast loop、Run this event once等等),這些事件每個畫格(frame)都會被跑一次,顯示速度FPS是50的話,事件就每秒跑50次。所以只要能每秒讓電腦承受得了這麼多事件(每個物件需要計算的量都不同),那麼成果畫面便會順暢而不LAG了。當然,能讓計算量越少、越簡潔當然是越好,不過MMF2顯然不是為了讓程式跑得快而設計的軟體,所以只要能達到基本需求就可以啦。



  ....今天先打到這裡好了<( ̄︶ ̄)>

沒有留言:

張貼留言