对于flash游戏项目,我有swf动画剪辑通过3D渲染软件(即Maya矢量渲染器)生成。现在我需要隔离剪辑的部分(角色的身体,护甲,剑,等等)在单独的多帧剪辑中。但我需要这些片段被角色的身体遮盖(例如,当剑在身体后面摆动时,它应该被裁剪,这样我就可以将剑的动画剪辑放在身体剪辑的前面,即使剑实际上在身体后面摆动……)
为了做到这一点,我使用了一种传统的sfx技术:我将每个物品(例如剑)渲染到一个普通的绿色背景上,并且角色的身体也有相同的绿色着色器。然后我只需要在Flash中删除剪辑的每一帧上的绿色形状。问题是我会有很多剪辑,每个剪辑都有很多帧……有没有办法使用闪存或其他软件批量编辑?或者任何人都能想出一种更方便的方法来做这件事?
发布于 2013-02-20 17:36:26
如果你有一个透明的背景png,试着把它们中的一个放到flash中,并用位图跟踪它。这应该只留下你的对象,省去了在每一帧上“删除绿色形状”的步骤。
如果这是可接受的/您想要的,那么您可以做的是将一整吨的帧作为电影剪辑导入到时间线中,然后使用jsfl脚本一次位图跟踪所有这些帧。
这是我写的一个jsfl脚本,它可以跟踪分布在许多帧上的位图(其中每帧有一个位图)。复制内容并将其另存为jsfl文件。
要运行它,请将一堆pngs导入到时间线中,并选择它们所在的所有帧。然后转到“命令”->“运行命令”来跟踪所选帧中的每个位图。
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();
}https://stackoverflow.com/questions/14955342
复制相似问题