Hi all, please help me with a script
I want to assign to keyboard shortcuts to execute a command for Black Bar Fill that it immediately becomes and with keyframes 5 sec. Animation.
Here is a script that outputs all video effects.
using System; using System.Collections.Generic; using ScriptPortal.Vegas; using System.Windows.Forms; namespace ApplyAnyEffect { public class EntryPoint { public void FromVegas(Vegas vegas) { try { // Get the list of available effects List<string> availableEffects = GetAvailableEffects(vegas); if (availableEffects.Count == 0) { MessageBox.Show("No available video effects found!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // User selects an effect string selectedEffect = ShowEffectSelectionDialog(availableEffects); if (string.IsNullOrEmpty(selectedEffect)) { MessageBox.Show("No effect selected!", "Cancel", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // Get the effect PlugInNode effectNode = vegas.VideoFX.GetChildByName(selectedEffect); if (effectNode == null) { MessageBox.Show("Effect '" + selectedEffect + "' not found!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Get the selected video clips List<VideoEvent> selectedEvents = GetSelectedVideoEvents(vegas); if (selectedEvents.Count == 0) { MessageBox.Show("Please select at least one video clip before running the script!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Apply the effect int appliedCount = 0; foreach (VideoEvent videoEvent in selectedEvents) { Effect effect = videoEvent.Effects.AddEffect(effectNode); if (effect != null) { appliedCount++; } } vegas.UpdateUI(); MessageBox.Show("Effect '" + selectedEffect + "' successfully applied to " + appliedCount + " clips!", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Script execution error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } // Method to get all available effects private List<string> GetAvailableEffects(Vegas vegas) { List<string> effects = new List<string>(); foreach (PlugInNode effect in vegas.VideoFX) { effects.Add(effect.Name); } return effects; } // Method to get selected video clips private List<VideoEvent> GetSelectedVideoEvents(Vegas vegas) { List<VideoEvent> selectedEvents = new List<VideoEvent>(); foreach (Track track in vegas.Project.Tracks) { if (!track.IsVideo()) continue; foreach (TrackEvent evnt in track.Events) { if (evnt.Selected && evnt is VideoEvent) { selectedEvents.Add((VideoEvent)evnt); } } } return selectedEvents; } // Method to display the list of effects and allow the user to select one private string ShowEffectSelectionDialog(List<string> effects) { Form form = new Form(); form.Text = "Select a Video Effect"; form.Width = 400; form.Height = 300; form.StartPosition = FormStartPosition.CenterScreen; ListBox listBox = new ListBox() { Dock = DockStyle.Fill }; listBox.Items.AddRange(effects.ToArray()); Button btnOk = new Button() { Text = "OK", Dock = DockStyle.Bottom }; btnOk.DialogResult = DialogResult.OK; form.Controls.Add(listBox); form.Controls.Add(btnOk); form.AcceptButton = btnOk; return (form.ShowDialog() == DialogResult.OK && listBox.SelectedItem != null) ? listBox.SelectedItem.ToString() : null; } } }
And here is the application of the script to the Black Bar Fill video effect, but I can't add animation.
Then I'll assign this script to keyboard shortcuts.
using System; using System.Collections.Generic; using ScriptPortal.Vegas; using System.Windows.Forms; namespace ApplyPresetScript { public class EntryPoint { public void FromVegas(Vegas vegas) { try { // Set the name of the effect to be applied string selectedEffect = "Black Bar Fill"; PlugInNode effectNode = vegas.VideoFX.GetChildByName(selectedEffect); if (effectNode == null) { MessageBox.Show("Effect '" + selectedEffect + "' not found!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Get the list of selected video events List<VideoEvent> selectedEvents = GetSelectedVideoEvents(vegas); if (selectedEvents.Count == 0) { MessageBox.Show("Select at least one video clip before running the script!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int appliedCount = 0; foreach (VideoEvent videoEvent in selectedEvents) { // Apply the effect to the event Effect effect = videoEvent.Effects.AddEffect(effectNode); if (effect != null) { appliedCount++; } } vegas.UpdateUI(); MessageBox.Show("Effect '" + selectedEffect + "' successfully applied to " + appliedCount + " clips!", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Script execution error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } // Method to get the selected video events private List<VideoEvent> GetSelectedVideoEvents(Vegas vegas) { List<VideoEvent> selectedEvents = new List<VideoEvent>(); foreach (Track track in vegas.Project.Tracks) { if (!track.IsVideo()) continue; foreach (TrackEvent evnt in track.Events) { if (evnt.Selected && evnt is VideoEvent) selectedEvents.Add((VideoEvent)evnt); } } return selectedEvents; } } }
If you can assign presets that are saved to a key from the filter package