如何批量编辑swf动画电影剪辑的形状



对于一个flash游戏项目,我有通过3D渲染软件(即Maya矢量渲染器)生成的swf动画片段。现在我需要在单独的多帧剪辑中隔离剪辑的各个部分(角色的身体、盔甲、剑等)。但我需要这些剪辑被角色的身体掩盖(例如,当剑在身体后面摆动时,它应该被裁剪,这样我就可以把剑的动画剪辑放在身体剪辑的前面,即使剑在身体的后面摆动…)

为了做到这一点,我使用了一种传统的sfx技术:我在纯绿色背景上渲染每个项目(例如剑),并且角色的身体也有相同的绿色着色器。然后我只需要擦除Flash中剪辑的每一帧上的绿色形状。问题是我会有很多剪辑,每个剪辑都有很多帧。。。有没有一种方法可以使用flash或任何软件进行批量编辑?或者有人能想出一个更方便的方法来做这件事吗?

如果你有一个透明的背景png,试着把其中一个带到flash中并位图跟踪它。这应该只剩下你的对象,省去了在每一帧上"擦除绿色形状"的步骤。

如果这是可以接受的/你想要的,那么你可以做的是将大量的帧作为movieclip导入到时间线中,然后使用jsfl脚本一次对所有帧进行位图跟踪。

这是我编写的一个jsfl脚本,它可以跟踪分布在多个帧上的位图(其中每帧有一个位图)。复制内容并将其保存为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();
}

最新更新