OtomadHelper icon indicating copy to clipboard operation
OtomadHelper copied to clipboard

The Brightness and Contrast Plugin could not be loaded.

Open LDcode17 opened this issue 1 year ago • 3 comments

Vegas Pro Version

Vegas Pro 13

Otomad Helper Version

Latest

Describe the bug

Screenshot 2024-01-28 111330

Logs

No response

Screenshot or screencast

Screenshot 2024-01-28 111330

Additional

No response

LDcode17 avatar Jan 28 '24 08:01 LDcode17

It seems that Vegas pro 13 doesn't provided "Brightness and Contrast" video FX. Please make sure that in "Visual" tab, click "Presets" button, and select "None" if it doesn't raise an error.

otomad avatar Feb 07 '24 07:02 otomad

It seems that Vegas pro 13 doesn't provided "Brightness and Contrast" video FX. Please make sure that in "Visual" tab, click "Presets" button, and select "None" if it doesn't raise an error.

其实是有的,只是脚本适配做的有问题。

比如亮度和对比度这一段代码,当前脚本是这样写的:

			contrast = vegas.VideoFX.FindChildByName("亮度和对比度")
				?? vegas.VideoFX.FindChildByName("Brightness and Contrast")
				?? vegas.VideoFX.FindChildByName("VEGAS 亮度和对比度")
				?? vegas.VideoFX.FindChildByName("VEGAS Brightness and Contrast")
				?? vegas.VideoFX.FindChildByUniqueID("{Svfx:com.vegascreativesoftware:brightnessandcontrast}");

也就是先通过中英文名称去找,再找不到就通过 UID 去找,但这个思路稍微有些问题。在 13 版本中,自带的所有 FX 的名称均以 Sony 开头,而不是 VEGAS。通过名称寻找对应 FX 的办法就失效了。而对于 UID,实际上,Vegas 在 17 版本中更改了所有 OFX 效果的 UID 格式,从 {Svfx:com.sonycreativesoftware:xxx} 改成了现在的 {Svfx:com.vegascreativesoftware:xxx}。在 13 版本中,所有 OFX 的 UID 格式均为 {Svfx:com.sonycreativesoftware:xxx},而脚本只认 {Svfx:com.vegascreativesoftware:xxx},所以也没法找到对应的 FX。

总而言之,改成下面这样就可以了:

			contrast = vegas.VideoFX.FindChildByUniqueID("{Svfx:com.vegascreativesoftware:brightnessandcontrast}")
				?? vegas.VideoFX.FindChildByUniqueID("{Svfx:com.sonycreativesoftware:brightnessandcontrast}");

其他 FX 也是同理。

zzzzzz9125 avatar May 12 '24 12:05 zzzzzz9125

@zzzzzz9125

由于 Otomad Helper v0.1 元祖版本原作者 Chaosinism 在疑难解答中提到

补充说明:具体可见我之前专栏中对于安装方法的说明。如果仍然不能解决,另一种方式是找到脚本中的所有的

vegas.AudioFX.FindChildByName("Pitch Shift")

字样(一共4处),并将它替换为

vegas.AudioFX.FindChildByUniqueID("{ED1B4100-93BE-11D0-AEBC-00A0C9053912}")

但这个办法也不保证能成功。这类错误留有一些疑点,我还没有完全解决。

他说到如果完全采用 FindChildByUniqueID 方法也有一些错误,但并没具体说明这个错误是什么,然而由于这个错误在我这里并未复现,因此我也不敢动原本 FindChildByName 的代码,怕在其它环境下又会引发其它未知的异常。

otomad avatar Jun 28 '24 15:06 otomad