Dodano: , kategorie: Vegas

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.