Нажмите для перехода на сайт ProVegas.ru  

Вернуться   PROVEGAS.RU: SONY VEGAS FORUM > ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ > Sony Vegas > Скрипты и утилиты для Sony Vegas

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.02.2018, 13:03   #376
VictorGtV Меню пользователя
Научный сотрудник
 
Регистрация: 08.02.2011
Сообщений: 74
Рейтинг: 5282
VictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверия
По умолчанию

Финальная версия. Снимает выделение со всех клипов в проекте и выделяет клип под курсором на выделенном треке.

/**

* PURPOSE OF THIS SCRIPT:

*

* Select event at cursor, and de-select all other events.

*

* A video track must be selected. If an audio track is selected, nothing happens.

* If the track beneath the video track contains audio, the audio event in that track

* that lies beneath the cursor will also be selected.

*

* Copyright © John Meyer 2004

* Written: September 23, 2004

*

**/


import System;

import System.IO;

import System.Windows.Forms;

import Sony.Vegas;

try
{
// step through all the tracks
for (var track in Vegas.Project.Tracks)
{
// Step through all events
for (var evnt in track.Events)
{
evnt.Selected = false;
}
}
}
catch (errorMsg)
{
MessageBox.Show(errorMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}





try {


//Global declarations

var dStart : Double;

var dLength : Double;

var dCursor : Double;

var trackEnum : Enumerator;

// var evnt : TrackEvent;

var CurrentEvnt : TrackEvent;


var track = FindSelectedTrack(); // Use this function to find the first selected track.

var eventEnum = new Enumerator(track.Events);


// if (track.IsVideo()) { // Proceed only if selected track is video track.


if ( SelectEventAtCursor() ) { // Function that selects events under cursor.


// Get set to look at track directly below the video track.

trackEnum.moveNext(); // Go to next track.


if (!trackEnum.atEnd()) { // Only proceed if there is a track below the video track.

track = Track(trackEnum.item()); // When doing the first track (above), these two lines were executed

eventEnum = new Enumerator(track.Events); // in the FindSelectedTrack() function.

//if (track.IsAudio()) { // Only trim the event if this is an audio track.

//SelectEventAtCursor();

//}

}

}

// }

// Vegas.Cursor = CurrentEvnt.Start; // Enable this line to move cursor to start of selected event.

Vegas.UpdateUI();


} catch (e) {

MessageBox.Show(e);

}


// End of main program




// Beginning of functions


function FindSelectedTrack() : Track {

trackEnum = new Enumerator(Vegas.Project.Tracks);

while (!trackEnum.atEnd()) {

var track : Track = Track(trackEnum.item());


if (track.Selected) {

return track;

}

trackEnum.moveNext();

}

return null;

}



/**

*

* The following function finds the event on the selected track

* that lies under the cursor. It also deselects all other events.

*

**/


function SelectEventAtCursor() {


var EventFound : boolean = false; // Function returns false if no video media under cursor.


dCursor = Vegas.Cursor.ToMilliseconds(); // Remember the cursor position.


//Go through each event on the track.


while (!eventEnum.atEnd()) {

evnt = TrackEvent(eventEnum.item());

evnt.Selected = false; // De-select the event


// Get the event's start and length timecode, in milliseconds.

dStart = evnt.Start.ToMilliseconds();

dLength = evnt.Length.ToMilliseconds();



/**

* If the cursor timecode is between the beginning and end of the

* event timecodes, then select the event.

**/


if ( (dCursor >= dStart) && ( dCursor < (dLength + dStart) ) ) {

evnt.Selected = true; // Select this event.

EventFound = true;

CurrentEvnt = evnt;

}

eventEnum.moveNext(); // Go to next event on this timeline.


}

return EventFound;

}
VictorGtV вне форума  Ответить с цитированием
Старый 25.02.2018, 16:51   #377
Проходчик Меню пользователя
Старший научный сотрудник
 
Аватар для Проходчик
 
Регистрация: 30.05.2009
Сообщений: 1,512
Рейтинг: 363927
Проходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверия
По умолчанию

вау!!! больше ста строк? если тебе нужно резать евент под курсором, совсем не обязательно его выделять, и, соответственно, снимать выделение - лишние телодвижения т.е скрипт, в своем действии, конечно же это делает, но ты этого не видишь... скрипт(по хоткею) просто режет эвент под курсором на выделенном треке во время проигрывания -это ведь нужно?
__________________
Меня постоянно преследуют умные мысли - но я всегда быстрее...
Проходчик вне форума  Ответить с цитированием
Старый 26.02.2018, 00:49   #378
VictorGtV Меню пользователя
Научный сотрудник
 
Регистрация: 08.02.2011
Сообщений: 74
Рейтинг: 5282
VictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверия
По умолчанию

Выделяет евент на выделенном треке, а выделение с других снимает, что бы не получилось что несколько евентов будут выделены, так сказать "техника безопасности." А потом можно не только резать... чтоб ставить фэйды тоже нужно выделить. Смотрю сейчас скрипт который тут в архиве был "FadeIn-OutCursor" (Fade clip to/from cursor position), но там выскакивает меню выбора вначале или в конце, я бы сделал отдельно 2 скрипта для In и для Out, может быть уже есть готовый?
VictorGtV вне форума  Ответить с цитированием
Старый 26.02.2018, 11:31   #379
Проходчик Меню пользователя
Старший научный сотрудник
 
Аватар для Проходчик
 
Регистрация: 30.05.2009
Сообщений: 1,512
Рейтинг: 363927
Проходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверия
По умолчанию

Ты не понял, это я предлагаю, набросал на досуге исходя из
Цитата:
Сообщение от VictorGtV Посмотреть сообщение
Цель - резать клип без мышки
, и описываю функционал...
__________________
Меня постоянно преследуют умные мысли - но я всегда быстрее...
Проходчик вне форума  Ответить с цитированием
Старый 26.02.2018, 16:13   #380
VictorGtV Меню пользователя
Научный сотрудник
 
Регистрация: 08.02.2011
Сообщений: 74
Рейтинг: 5282
VictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверия
По умолчанию

Тогда выкладывай, попробую. Возможно где-то будет удобнее сразу резать, а где-то сначала выделить. Главное, чтоб хоткеев на всё хватило
По фэйдам не подскажешь? Из скрипта "FadeIn-OutCursor" нужно убрать меню с выбором и оставить что-то одно In или Out. Я так в Reaper настроил (на кнопки F8 и F9) - ставлю курсор, и сразу фэйд под курсором. B идеале, чтобы это было для видео, аудио, фото, т.е для любого содержимого на дорожке.
VictorGtV вне форума  Ответить с цитированием
Старый 26.02.2018, 17:08   #381
Проходчик Меню пользователя
Старший научный сотрудник
 
Аватар для Проходчик
 
Регистрация: 30.05.2009
Сообщений: 1,512
Рейтинг: 363927
Проходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверия
По умолчанию

Пользуйся, адаптировал к 13 и ниже:
Код:
*Trim  no selected event from cursor in selected track
*written by Frontovik
*02/2018
using System;
using System.Collections.Generic;
using Sony.Vegas;
using VegasWrapper = Sony.Vegas.Vegas;
using System.Windows.Forms;

namespace EventSelector
{
    public class EntryPoint
    {
        public void FromVegas(VegasWrapper vegas)
        {
            vegas.ResumePlaybackOnScriptExit = true;
            var selectedTrak = getSelectedTrack(vegas);

            foreach (var ev in selectedTrak.Events)
            {
                if (ev.Start < vegas.Cursor && ev.Start + ev.Length > vegas.Cursor)
                {
                    ev.Selected = true;
                    ev.Split(vegas.Cursor - ev.Start);
                }
            }
            DeselectAllEvents(vegas);

        }

        private static Track getSelectedTrack(VegasWrapper vw)
        {
            foreach (var track in vw.Project.Tracks)
            {
                if (track.Selected) return track;
            }
            return null;
        }
        private static void DeselectAllEvents(VegasWrapper vw)
        {
            foreach (var track in vw.Project.Tracks)
            {
                foreach(var ev in track.Events)
                {
                    ev.Selected = false;
                }
            }
        }
    }
}

По фейдам -есть готовый, ставит фейды (1000мс) по обе стороны от курсора, на любой эвент на выделенном треке можешь оставить нужную сторону -там все интуитивно:
Код:
* Find events on selected tracks that start on cursor, set their fadeIn length to 1 second.
*
* Written By: Alexander Anikin
* Written: Mar 31, 2013
*
**/ 

import Sony.Vegas; 

try { 
    var bFound : Boolean = false;

    for (var trackEnum = new Enumerator(Vegas.Project.Tracks); !bFound && !trackEnum.atEnd(); trackEnum.moveNext())
        if (trackEnum.item().Selected)
        {
            for (var eventEnum = new Enumerator(Track(trackEnum.item()).Events); !eventEnum.atEnd(); eventEnum.moveNext())
                if (eventEnum.item().Start == Vegas.Cursor)
                {
                    eventEnum.item().FadeIn.Length = Timecode.FromMilliseconds(1000);
                }
                else if (eventEnum.item().End == Vegas.Cursor)
                    eventEnum.item().FadeOut.Length = Timecode.FromMilliseconds(1000);
        }
} catch (e) { 
 Vegas.ShowError(e); 
}
__________________
Меня постоянно преследуют умные мысли - но я всегда быстрее...

Последний раз редактировалось Проходчик; 26.02.2018 в 17:19.
Проходчик вне форума  Ответить с цитированием
Старый 26.02.2018, 19:30   #382
VictorGtV Меню пользователя
Научный сотрудник
 
Регистрация: 08.02.2011
Сообщений: 74
Рейтинг: 5282
VictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверияVictorGtV с Максимальным уровнем доверия
По умолчанию

Выдает ошибки:
1-й
C:\Program Files\Sony\Vegas Pro 12\Script Menu\Split.cs(1) : A namespace does not directly contain members such as fields or methods

2-й
C:\Program Files\Sony\Vegas Pro 12\Script Menu\Fade.js(1) : Expected expression

Винда 7 SP1, вегас 12 r770 репак Кролика
VictorGtV вне форума  Ответить с цитированием
Старый Вчера, 12:52   #383
Проходчик Меню пользователя
Старший научный сотрудник
 
Аватар для Проходчик
 
Регистрация: 30.05.2009
Сообщений: 1,512
Рейтинг: 363927
Проходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверияПроходчик с Максимальным уровнем доверия
По умолчанию

Ты ж не обозначил, что у тебя 12, а для меня стало открытием, что компилятор 12 Вегаса не подозревает ещё о переменных var, в 13 уже обновили. вот адаптировано к 12:
Код:
// Script Trim  no selected event from cursor in selected track
// written by Frontovik
// 02/2018
using System;
using System.Collections.Generic;
using Sony.Vegas;
using VegasWrapper = Sony.Vegas.Vegas;
using System.Windows.Forms;

namespace EventSelector
{
    public class EntryPoint
    {
        public void FromVegas(VegasWrapper vegas)
        {
          vegas.ResumePlaybackOnScriptExit = true;
            Track selectedTrak = getSelectedTrack(vegas);

            foreach (TrackEvent ev in selectedTrak.Events)
            {
                if (ev.Start < vegas.Cursor && ev.Start + ev.Length > vegas.Cursor)
                {
                    ev.Selected = true;
                    ev.Split(vegas.Cursor - ev.Start);
                }
            }
            DeselectAllEvents(vegas);

        }

        private static Track getSelectedTrack(VegasWrapper vw)
        {
            foreach (Track track in vw.Project.Tracks)
            {
                if (track.Selected) return track;
            }
            return null;
        }
        private static void DeselectAllEvents(VegasWrapper vw)
        {
            foreach (Track track in vw.Project.Tracks)
            {
                foreach(TrackEvent ev in track.Events)
                {
                    ev.Selected = false;
                }
            }
        }
    }
}

по второму -не моё,и писано на jave -не сильно понимаю, но исходя из сообщения об ошибке в первой строке....Точно сейчас глянул, нет первой строки с комментом / *, не все скопировал...Потому компилятор и дуреет от * в первой строке :-)
__________________
Меня постоянно преследуют умные мысли - но я всегда быстрее...

Последний раз редактировалось Проходчик; Вчера в 13:07.
Проходчик вне форума  Ответить с цитированием
Ответ

Теги
scripts, sony vegas, скрипты

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Sony Vegas: ProVegas.ru
© 2008-2014 При полном или частичном использовании материалов ссылка на ProVegas.ru обязательна.

Часовой пояс GMT +4, время: 22:18.