2013-02-19 97 views
1

對於Flash遊戲項目,我通過3D渲染軟件(即Maya矢量渲染器)生成了swf動畫剪輯。現在我需要在單獨的多幀剪輯中分離部分剪輯(角色的身體,盔甲,劍等)。但我需要這些短片被角色的身體掩蓋(例如,當劍在身體後面擺動時,它應該被裁剪掉,所以即使劍在身體後面晃動,我仍然可以將劍的動畫片夾持在身體夾的前面...)如何批量編輯swf動畫動畫片段的形狀?

要做到這一點,我正在使用一種傳統的SFF技術:我在普通的綠色背景上渲染每個物品(例如劍),並且還使用具有相同綠色着色器的角色身體。然後,我只需要擦除Flash中每個剪輯幀的綠色形狀。問題是我會有很多剪輯,每個剪輯都有很多幀...有沒有一種方法可以使用閃存或任何軟件批量編輯這些內容?或者任何人都可以想到一個更方便的方法來做到這一點?

+0

是否有可能呈現每個對象的幀具有透明背景,保存爲PNG? – mitim 2013-02-19 10:54:14

+0

是的,爲什麼不,因爲我要使用位圖精靈表 – 2013-02-20 09:09:42

回答

0

如果你有一個透明的背景PNG,嘗試將其中的一個引入閃存和位圖跟蹤它。這應該讓你只有你的對象,節省你在每一幀「消除綠色形狀」的步驟。

如果這是可以接受的/你想要什麼,那麼你可以做的就是將一大堆幀作爲動畫片段導入到時間線中,然後使用jsfl腳本將它們一次全部位圖化。

這是我寫的一個jsfl腳本,它可以跟蹤位於許多幀(每幀有1個位圖)的位圖。複製內容並將其保存爲jsfl文件。

要運行它,將一串png導入到時間軸中,並選擇它們所在的所有幀。然後轉到「命令」 - >「運行命令」以跟蹤所選幀中的每個位圖。

var timeline = fl.getDocumentDOM().getTimeline(); 

// get selected frame numbers 
var selectedFrameObject = timeline.getSelectedFrames(); 

var start = selectedFrameObject[1]; 
var end = selectedFrameObject[2]; 

fl.trace("Selected frames: "+ start +"-"+ end); 

for(var counter = start; counter < end; counter++){ 
    timeline.currentFrame = counter; 
    document.selectAll(); 
    // you can play with these values to change the tracing parameters 
    document.traceBitmap(100, 8, "normal", "many corners"); 
    document.selectNone(); 
} 
+0

是的!這個jsfl的東西正是我正在尋找的東西......我對你的腳本做了一些小的改動,並設法做我想做的。非常感謝! – 2013-02-20 15:49:42