0

最近,我想制作一个动画,其中 GIMP 中的超新星从小开始,然后为我正在制作的视频慢慢成长。

我想过只使用滤镜->光影->超新星...效果制作一个巨大的超新星,并使其具有较大的半径,然后通过视频编辑软件将其缩小...

但是它会散发出很大的光环,我希望白色中心在最后一帧之前填充整个 1920x1080p 区域。

我决定制作自己的 GIMP 插件来做我想做的事(我知道有点傻......)

为了让您更好地了解我想要做什么,这是我的插件的执行功能。

def novaFunction(image):
  w = image.width
  h = image.height
  layerCount = len(image.layers)
  pdb.gimp_image_select_rectangle(image,0,0,0,w,h)
  color = gimpcolorhex("009c82")
  for x in range(150):
    newLayer = pdb.gimp_layer_new(image,w,h,0,"frame " + str(x+1) + " (17ms)(replace)",100.00,NORMAL_MODE)
    pdb.gimp_layer_add_alpha(newLayer)
    image.add_layer(newLayer,layerCount+x)
    pdb.gimp_edit_clear(newLayer)
    pdb.plug_in_nova(image,newLayer,w/2,h/2,color,(x*10)+1,1,0)

不要介意“gimpcolorhex”功能。这只是我制作的一个小辅助函数,而不是像 gimpcolor.RGB(decimal,decimal,decimal) 这样的东西。

问题是……每次产生新的超新星时……它开始“旋转”。

我很确定这是因为似乎没有我可以设置的“随机种子”参数,所以它不断创建一个新的超新星,每层随机添加一个半径。

我正在使用http://oldhome.schmorp.de/marc/pdb/plug_in_nova.html 作为我的文档。让我知道你是否可以帮助我!

不确定我是否应该为每个后续层或其他东西尝试 Iterator_ALT 函数。

4

0 回答 0