首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何批量编辑swf动画电影剪辑的形状?

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

Stack Overflow用户
提问于 2013-02-19 18:36:22
回答 1查看 264关注 0票数 1

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

为了做到这一点,我使用了一种传统的sfx技术:我将每个物品(例如剑)渲染到一个普通的绿色背景上,并且角色的身体也有相同的绿色着色器。然后我只需要在Flash中删除剪辑的每一帧上的绿色形状。问题是我会有很多剪辑,每个剪辑都有很多帧……有没有办法使用闪存或其他软件批量编辑?或者任何人都能想出一种更方便的方法来做这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-20 17:36:26

如果你有一个透明的背景png,试着把它们中的一个放到flash中,并用位图跟踪它。这应该只留下你的对象,省去了在每一帧上“删除绿色形状”的步骤。

如果这是可接受的/您想要的,那么您可以做的是将一整吨的帧作为电影剪辑导入到时间线中,然后使用jsfl脚本一次位图跟踪所有这些帧。

这是我写的一个jsfl脚本,它可以跟踪分布在许多帧上的位图(其中每帧有一个位图)。复制内容并将其另存为jsfl文件。

要运行它,请将一堆pngs导入到时间线中,并选择它们所在的所有帧。然后转到“命令”->“运行命令”来跟踪所选帧中的每个位图。

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14955342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档