2013-02-19 49 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