Automatyczne usuwanie przerw cz. 2
Znalazłem czas na pogrzebanie w API Vegasa, by znaleźć parę przydatnych nazw obiektów i metod. Efekt jest więcej, niż zadowalający. Od teraz skrypt działa w ramach zwykłego zaznaczenia na osi czasu i tylko dla zaznaczonych ścieżek.
Klip musi się zaczynać w ramach zaznaczenia, ale nie musi się kończyć. W zasadzie wszystkie warianty prezentuje poniższy przykład:
/**
* Program:
* Description: This script will Delete Empty Space Between Events In Selected Tracks
* Author: Philip
*
* Date: August 31, 2003
*
* --------------------------
* Modified by Radomir Rytych
* Date: November 24, 2013
* Script will delete space only if events and tracks are in selection and move it to start of selection
* Note: It ignores groups, so use it carefully.
**/
import Sony.Vegas;
import System.Windows.Forms;
import Microsoft.Win32;
try
{
var selEnd = Vegas.SelectionStart+Vegas.SelectionLength;
for (var track in Vegas.Project.Tracks) {
if (!track.Selected) continue;
var tracktime = new Timecode(Vegas.SelectionStart);
for (var evnt in track.Events) {
if (evnt.Start<tracktime) continue;
if (evnt.Start>selEnd) break;
evnt.Start = tracktime;
evnt.Offset = evnt.ActiveTake.Offset
tracktime += evnt.Length;
}
}
}
catch (errorMsg)
{
MessageBox.Show(errorMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
Gdyby ktoś miał problem, to zamieszczam także paczkę z gotowym skryptem i ikonką. Pojawi się ona w menu skryptów a także, jeżeli umieścisz skrót na toolbarze: Download. Zawartość paczki należy wypakować do Script Menu w folderze instalacji Vegasa.