* fixed MessageLog bug #537

* taseditor-ru: updates

[[Split portion of a mixed commit.]]
This commit is contained in:
ansstuff 2012-08-26 19:50:44 +00:00
parent bd43c39e12
commit 4c556052a6
25 changed files with 297 additions and 272 deletions

View File

@ -56,9 +56,9 @@
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps10"><span class="rvts22">Тасэдитор управляется с помощью </span><a class="rvts28" href="Controls.html#mouse">мыши</a><span class="rvts22"> и </span><a class="rvts28" href="Controls.html#keyboard">клавиатуры</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Для каждой операции в Тасэдиторе существует несколько вариантов её осуществления (через меню, либо с помощью хоткея, либо с помощью элемента оконного интерфейса).</span></p>
<p class="rvps10"><span class="rvts22">С помощью одной мыши можно совершить практически</span><span class="rvts22"> л</span><span class="rvts22">юбое действие, но некоторые функции быстрее запускаются с помощью клавиатуры. </span><span class="rvts22">В данном Руководстве подразумевается, что правая рука пользователя всё время управляет мышью, а левая рука лежит на клавиатуре, периодически зажимая </span><span class="rvts34">Shift</span><span class="rvts22">/</span><span class="rvts34">Ctrl</span><span class="rvts22">/</span><span class="rvts34">Alt</span><span class="rvts22"> или нажимая комбинацию клавиш.</span></p>
<p class="rvps10"><span class="rvts22">Некоторые действия (например, включение/выключение функции "Auto-adjust Input due to lag") можно совершить только с помощью мыши.</span></p>
<p class="rvps10"><span class="rvts22">Для каждой операции в Тасэдиторе существует несколько альтернативных вариантов её осуществления (через меню, либо с помощью хоткея, либо с помощью элемента оконного интерфейса).</span></p>
<p class="rvps10"><span class="rvts22">С помощью одной мыши можно совершить</span><span class="rvts22"> л</span><span class="rvts22">юбое действие, но некоторые функции быстрее запускаются с помощью клавиатуры. </span><span class="rvts22">В данном Руководстве подразумевается, что одна рука пользователя управляет мышью, а другая рука лежит на клавиатуре, периодически зажимая </span><span class="rvts34">Shift</span><span class="rvts22">/</span><span class="rvts34">Ctrl</span><span class="rvts22">/</span><span class="rvts34">Alt</span><span class="rvts22"> или нажимая комбинацию клавиш.</span></p>
<p class="rvps10"><span class="rvts22">Некоторые действия (например, включение/выключение "Follow cursor") можно совершить только с помощью мыши.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps2"><a name="mouse"></a>
@ -80,12 +80,12 @@
<p class="rvps10"><span class="rvts22">Курсор мыши служит указателем на элементы оконного интерфейса.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">A. </span><span class="rvts37">Отображение скриншотов и описаний для Закладок</span></p>
<p class="rvps10"><span class="rvts22">При наведении курсором мыши на правую половину любой Закладки (в Списке Закладок) появляется скриншот из игры, соответствующий происходящему на экране в кадре Закладки в указанном ответвлении мувика. Под скриншотом появляется текстовое описание (Заметка Маркера в данном ответвлении).</span></p>
<p class="rvps10"><span class="rvts22">При наведении курсором мыши на правую половину любой Закладки (в Списке Закладок) сбоку появляется скриншот из игры, соответствующий происходящему на экране в кадре Закладки в указанном ответвлении мувика. Под скриншотом появляется текстовое описание данного ответвления.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">B. </span><span class="rvts37">Отображение информации о Закладке</span></p>
<p class="rvps10"><span class="rvts22">При наведении курсором мыши на иконку любой Закладки (в Дереве ответвлений) появляется информация об указанном ответвлении, а также появляется скриншот и описание. При наведении на Закладки, не принадлежащие хронологии текущего ответвления, курсор мыши изменяется на стрелку с вопросительным знаком.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">C. </span><span class="rvts37">Подсвечивание кнопок в Заголовке Piano Roll</span></p>
<p class="rvps10"><span class="rvts26">C. </span><span class="rvts37">Подсвечивание символов кнопок в Заголовке Piano Roll</span></p>
<p class="rvps10"><span class="rvts22">При наведении курсором мыши на любой символ в Заголовке Piano Roll этот символ подсвечивается зелёным светом, если в Piano Roll есть выделенные строки. Свет подсказывает, что можно щёлкнуть по этому символу для изменения </span><span class="rvts22">Ввод</span><span class="rvts22">а или Маркеров в выделенных кадрах.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><a name="leftbutton"></a>
@ -115,37 +115,35 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">D. </span><span class="rvts37">Установка/снятие Ввода в Piano Roll</span></p>
<p class="rvps10"><span class="rvts22">Навести курсор мыши на нужную ячейку (выбрав пересечение строки нужного кадра со столбцом нужной кнопки) и нажать левую кнопку мыши. </span><span class="rvts22">Ввод</span><span class="rvts22"> изменяется сразу же в момент нажатия. Если в данной клетке не было нажатия, оно устанавливается, если было, то снимается.</span></p>
<p class="rvps10"><span class="rvts22">При этом выбранная строка Piano Roll становится выделенной, а с других строк выделение снимается. Благодаря этой особенности Курсор Выделения всегда появляется там, где редактируется </span><span class="rvts22">Ввод</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Строка, содержащая эту ячейку, становится выделенной, а с других строк выделение снимается. Благодаря этой особенности Курсор Выделения всегда появляется там, где редактируется </span><span class="rvts22">Ввод</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если </span><span class="rvts22">зажать левую кнопку мыши и</span><span class="rvts22"> перемещать курсор мыши</span><span class="rvts22">, м</span><span class="rvts22">ожно рисовать и стирать Ввод в других ячейках Piano Roll, проводя по ним курсором мыши. Рисование начинается при щелчке по пустой клетке, стирание начинается при щелчке по заполненной клетке.</span></p>
<p class="rvps10"><span class="rvts22">Если перед щелчком зажать клавишу </span><span class="rvts34">Shift</span><span class="rvts22">, при щелчке изменится состояние указанной кнопки во всех кадрах, начиная с Курсора Выделения и заканчивая кадром щелчка. Состояние Выделения при этом не изменится.</span></p>
<p class="rvps10"><span class="rvts22">Если перед щелчком зажать клавишу </span><span class="rvts34">Alt</span><span class="rvts22">, </span><span class="rvts22">состояние указанной кнопки во всех кадрах, начиная с Курсора Выделения, будет установлено по шаблону. Состояние Выделения при этом не изменится.</span></p>
<p class="rvps10"><span class="rvts22">Если в настройках установлена галочка </span><a class="rvts28" href="ProgramCustomization.html#DrawInputbydragging">Config -&gt; Draw Input by dragging</a><span class="rvts22">, м</span><span class="rvts22">ожно рисовать и стирать Ввод, </span><span class="rvts22">зажав левую кнопку мыши и</span><span class="rvts22"> перемещая курсор мыши вверх или вниз. Рисование начинается при щелчке по пустой клетке, стирание начинается при щелчке по заполненной клетке. </span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">E. </span><span class="rvts37">Щелчки по кнопкам в Заголовке Piano Roll</span></p>
<p class="rvps10"><span class="rvts22">Если никакие строки Piano Roll не выделены, ничего не произойдёт. Нужно сначала выделить несколько кадров, к ним и будет применена операция при щелчке по Заголовку. Операция выполняется сразу же в момент нажатия левой кнопки.</span></p>
<p class="rvps10"><span class="rvts22">Если в некоторых выделенных кадрах нажатие выбранной кнопки отсутствует, после щелчка нажатия появляются во всех выделенных кадрах.</span></p>
<p class="rvps10"><span class="rvts22">Если же во всех выделенных строках соответствующая кнопка уже нажата, при щелчке все нажатия снимаются.</span></p>
<p class="rvps10"><span class="rvts26">E. </span><span class="rvts37">Установка/снятие Ввода с помощью Заголовка Piano Roll</span></p>
<p class="rvps10"><span class="rvts22">При щелчке по символу кнопки в Заголовке состояние этой кнопки в выделенных кадрах изменяется. Если ни один кадр не выделен, ничего не происходит. </span><span class="rvts22">Если в некоторых выделенных кадрах нажатие выбранной кнопки отсутствует, после щелчка нажатия появляются во всех выделенных кадрах. </span><span class="rvts22">Если же во всех выделенных строках соответствующая кнопка уже нажата, при щелчке все нажатия снимаются.</span></p>
<p class="rvps10"><span class="rvts22">Если перед щелчком зажать и держать клавишу </span><span class="rvts34">Alt</span><span class="rvts22">, в выделенных кадрах будет установлен </span><span class="rvts22">Ввод</span><span class="rvts22"> по шаблону.</span></p>
<p class="rvps10"><span class="rvts22">Если щёлкать по "Frame#", вместо </span><span class="rvts22">Ввод</span><span class="rvts22">а в Выделении будут установлены или удалены Маркеры.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">F. </span><span class="rvts37">Установка и перетаскивание Маркеров</span></p>
<p class="rvps10"><span class="rvts22">При двойном щелчке по любому номеру кадра в Piano Roll вы устанавливаете на этот кадр Маркер и одновременно начинаете его перетаскивание. При отпускании левой кнопки Маркер физически переносится на кадр, над номером которого он был отпущен. Если отпустить Маркер над колонками </span><span class="rvts22">Ввод</span><span class="rvts22">а, перетаскивание будет отменено, и Маркер останется на старом месте. Если отпустить Маркер прямо над другим Маркером, эти Маркеры будут поменяны местами.</span></p>
<p class="rvps10"><span class="rvts22">Если отпустить Маркер за пределами Piano Roll, этот Маркер будет выброшен. Таким образом, чтобы удалить существующий Маркер, нужно дважды щёлкнуть по нему и перенести его за пределы окна Тасэдитора.</span></p>
<p class="rvps10"><span class="rvts26">F. </span><span class="rvts37">Создание и перетаскивание Маркеров</span></p>
<p class="rvps10"><span class="rvts22">При двойном щелчке по любому номеру кадра в Piano Roll вы устанавливаете на этот кадр Маркер и одновременно начинаете его перетаскивание. При отпускании левой кнопки Маркер физически переносится на кадр, над номером которого он был отпущен. Так можно переносить уже существующие Маркеры с места на место. Если отпустить Маркер над колонками </span><span class="rvts22">Ввод</span><span class="rvts22">а, перетаскивание будет отменено, и Маркер останется на старом месте. Если отпустить Маркер прямо над другим Маркером, эти Маркеры будут поменяны местами.</span></p>
<p class="rvps10"><span class="rvts22">Если отпустить Маркер за пределами Piano Roll, этот Маркер будет выброшен. Таким образом, чтобы удалить существующий Маркер, нужно дважды щёлкнуть по нему и перенести его куда-нибудь за пределы окна Тасэдитора.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">G. </span><span class="rvts37">Вход/выход из поля редактирования Заметки</span></p>
<p class="rvps10"><span class="rvts22">При щелчке по верхнему или нижнему текстовому полю начинается редактирование Заметки, отображаемой в этом поле в данный момент.</span></p>
<p class="rvps10"><span class="rvts22">Для выхода (с сохранением изменений) нужно щёлкнуть по любому другому элементу окна TAS Editor.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">H. </span><span class="rvts37">Щелчки по Списку Закладок</span></p>
<p class="rvps10"><span class="rvts22">При щелчке по номеру кадра в Списке Закладок (левая половина любой строчки) будет произведён прыжок Курсором Проигрывателя на этот кадр (так называемый "прыжок на Закладку").</span></p>
<p class="rvps10"><span class="rvts22">При щелчке по индикатору времени в Списке Закладок (правая половина любой строчки) будет произведено восстановление состояния мувика из Закладки ("прыжок во времени"), а также </span><span class="rvts22">прыжок Курсором Проигрывателя на кадр Закладки</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts26">H. </span><span class="rvts37">Управление Списком Закладок</span></p>
<p class="rvps10"><span class="rvts22">При щелчке по номеру кадра в Списке Закладок (левая половина любой строчки) будет произведён прыжок Курсором Проигрывателя на этот кадр.</span></p>
<p class="rvps10"><span class="rvts22">При щелчке по индикатору времени в Списке Закладок (правая половина любой строчки) будет произведено восстановление состояния мувика из Закладки, а также </span><span class="rvts22">прыжок Курсором Проигрывателя на кадр Закладки</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Эти операции срабатывают в момент отпускания левой кнопки мыши.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">I. </span><span class="rvts37">Щелчки по Дереву ответвлений</span></p>
<p class="rvps10"><span class="rvts22">При одинарном щелчке по иконке Закладки &nbsp;будет произведён прыжок Курсором Проигрывателя на кадр этой Закладки (так называемый "прыжок на Закладку").</span></p>
<p class="rvps10"><span class="rvts22">При двойном щелчке </span><span class="rvts22">по иконке Закладки </span><span class="rvts22">будет произведено восстановление состояния мувика из этой Закладки ("прыжок во времени"), а также </span><span class="rvts22">прыжок Курсором Проигрывателя на кадр этой Закладки</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts26">I. </span><span class="rvts37">Управление Деревом ответвлений</span></p>
<p class="rvps10"><span class="rvts22">При одинарном щелчке по иконке Закладки &nbsp;будет произведён прыжок Курсором Проигрывателя на кадр этой Закладки.</span></p>
<p class="rvps10"><span class="rvts22">При двойном щелчке </span><span class="rvts22">по иконке Закладки </span><span class="rvts22">будет произведено восстановление состояния мувика из этой Закладки, а также </span><span class="rvts22">прыжок Курсором Проигрывателя на кадр этой Закладки</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Эти операции срабатывают в момент нажатия левой кнопки мыши.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">J. </span><span class="rvts37">Щелчки по Журналу Истории</span></p>
<p class="rvps10"><span class="rvts26">J. </span><span class="rvts37">Управление Журналом Истории</span></p>
<p class="rvps10"><span class="rvts22">С помощью щелчка левой кнопкой по любой строке в Журнале Истории вы можете вернуть мувик на момент времени, отмеченный в начале указанной строки.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><a name="rightbutton"></a>
@ -155,7 +153,7 @@
<p class="rvps10"><span class="rvts22">Правая кнопка мыши используется реже, чем левая.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">A. </span><span class="rvts37">Навигация Курсором Проигрывателя с помощью колеса</span></p>
<p class="rvps10"><span class="rvts22">Зажать правую кнопку и вращать колесом мыши вверх/вниз. При этом курсор мыши не обязательно должен находиться над Piano Roll, он может быть на любом пустом месте окна TAS Editor или даже над окном FCEUX.</span></p>
<p class="rvps10"><span class="rvts22">Зажать правую кнопку и вращать колесом мыши вверх/вниз. При этом курсор мыши не обязательно должен находиться над Piano Roll, он может быть на любом пустом месте окна TAS Editor или даже над окном эмулятора.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">B. </span><span class="rvts37">Скроллинг обозримой области Piano Roll</span></p>
<p class="rvps10"><span class="rvts22">Если зажать правую кнопку, когда курсор мыши находится над Piano Roll, можно скроллировать Piano Roll вправо/влево и вверх/вниз простым перемещением мыши за границы Piano Roll. Благодаря этому отпадает необходимость использовать горизонтальный скроллбар Piano Roll.</span></p>
@ -187,11 +185,11 @@
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts51">Средняя кнопка</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">У средней кнопки мыши есть только одна функция ставить и снимать паузу эмуляции. Не имеет значения, где находится курсор мыши в момент щелчка средней кнопкой.</span></p>
<p class="rvps10"><span class="rvts22">У средней кнопки мыши есть только одна функция ставить и снимать паузу эмуляции. Не имеет значения, где находится курсор мыши в момент щелчка средней кнопкой. Кнопка</span><span class="rvts22"> срабатывает в момент нажатия.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Когда эмулятор стоит на паузе, нажатие средней кнопки снимет паузу (аналогично нажатию хоткея </span><span class="rvts27">Pause</span><span class="rvts22">). Более того, если в Piano Roll за пределами Гринзоны находится зелёная стрелка, при щелчке по средней кнопке запустится добегание к зелёной стрелке (аналогично нажатию хоткея </span><span class="rvts27">Restore Playback</span><span class="rvts22">).</span></p>
<p class="rvps10"><span class="rvts22">Если перед щелчком зажать клавишу </span><span class="rvts34">Shift</span><span class="rvts22">, запустится добегание к ближайшему Маркеру.</span></p>
<p class="rvps10"><span class="rvts22">Если перед щелчком зажать клавишу </span><span class="rvts34">Ctrl</span><span class="rvts22">, запустится добегание к Курсору Выделения (если он расположен ниже Курсора Проигрывателя) или же начнётся повторный просмотр участка, начиная с Курсора Выделения (если он расположен выше Курсора Проигрывателя).</span></p>
<p class="rvps10"><span class="rvts22">Если перед щелчком зажать клавишу </span><span class="rvts34">Ctrl</span><span class="rvts22">, либо запустится добегание к Курсору Выделения (если он расположен ниже Курсора Проигрывателя), либо начнётся повторный просмотр участка, начиная с Курсора Выделения (если он расположен выше Курсора Проигрывателя).</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Когда эмулятор не стоит на паузе, нажатие средней кнопки поставит его на паузу.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
@ -203,7 +201,7 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Колесо можно вращать вверх и вниз с различной скоростью. Когда требуется высокая точность, вращайте колесо медленно. Когда требуется быстрое перемещение, вращайте колесо быстро.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">A. </span><span class="rvts37">Скроллинг обозримой области Piano Roll</span></p>
<p class="rvps10"><span class="rvts26">A. </span><span class="rvts37">Скроллинг обозримой области Piano Roll или Журнала Истории</span></p>
<p class="rvps10"><span class="rvts22">Если курсор мыши при вращении колеса находится над Журналом Истории, то осуществляется скроллинг Журнала Истории. Во всех остальных случаях осуществляется скроллинг Piano Roll.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">B. </span><span class="rvts37">Навигация Курсором Проигрывателя</span></p>
@ -216,7 +214,8 @@
<p class="rvps10"><span class="rvts22">Если зажать клавишу </span><span class="rvts34">Ctrl</span><span class="rvts22">, при прокручивании колеса Курсор Выделения будет прыгать по Маркерам, позволяя быстро перейти к любому кадру мувика. Piano Roll всегда будет следовать за Курсором Выделения.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">D. </span><span class="rvts37">Пересечение промежутков во Вводе или Маркерах</span></p>
<p class="rvps10"><span class="rvts22">Зажать клавишу </span><span class="rvts34">Alt</span><span class="rvts22">, навести курсор мыши на середину длинного ряда кнопочных нажатий (или, наоборот, на пустоту) и сделать одинарный поворот колеса вверх или вниз. Piano Roll проскроллируется соответственно вверх или вниз на некое количество кадров, рассчитав расстояние так, чтобы курсор мыши указывал на кадр перед началом или после окончания этого длинного ряда кнопочных нажатий (или на начало/окончание пустоты). После этого можно либо дорисовать продолжение этого ряда, либо укоротить ряд.</span></p>
<p class="rvps10"><span class="rvts22">Зажать клавишу </span><span class="rvts34">Alt</span><span class="rvts22">, навести курсор мыши на любое место длинного столбика кнопочных нажатий (или, наоборот, на пустоту) и сделать одинарный поворот колеса вверх или вниз. Piano Roll проскроллируется соответственно вверх или вниз на некое количество кадров, рассчитав расстояние так, чтобы курсор мыши указывал на кадр перед началом или после окончания этого длинного ряда кнопочных нажатий (или на начало/окончание пустоты).</span></p>
<p class="rvps10"><span class="rvts22">Такой же подход можно применять для поиска соседних Маркеров.</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps2"><a name="keyboard"></a>
@ -226,20 +225,20 @@
<p class="rvps5"><img alt="" style="padding : 1px;" src="lib/keyboard-all-keys.png"/></p>
<p class="rvps5"><span class="rvts39"><br/></span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps2" style="text-indent: 30px"><a class="rvts56" href="Controls.html#modifiers">модификаторы (Shift, Ctrl и Alt)</a></li>
<li class="rvps2" style="text-indent: 30px"><a class="rvts56" href="Controls.html#accelerators">клавиатурные акселераторы</a></li>
<li class="rvps2" style="text-indent: 30px"><a class="rvts56" href="Controls.html#hotkeys">хоткеи FCEUX</a></li>
<li class="rvps2" style="text-indent: 30px"><a class="rvts56" href="Controls.html#virtual_joypad">кнопки виртуальных джойстиков</a></li>
<li class="rvps2" style="text-indent: 30px"><a class="rvts60" href="Controls.html#modifiers">модификаторы (Shift, Ctrl, Alt)</a></li>
<li class="rvps2" style="text-indent: 30px"><a class="rvts60" href="Controls.html#accelerators">клавиатурные акселераторы</a></li>
<li class="rvps2" style="text-indent: 30px"><a class="rvts60" href="Controls.html#hotkeys">хоткеи FCEUX</a></li>
<li class="rvps2" style="text-indent: 30px"><a class="rvts60" href="Controls.html#virtual_joypad">кнопки виртуальных джойстиков</a></li>
</ul>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><a name="modifiers"></a>
<span class="rvts6"><br/></span></p>
<p class="rvps10"><span class="rvts51">Модификаторы (Shift, Ctrl и Alt)</span></p>
<p class="rvps10"><span class="rvts51">Модификаторы (Shift, Ctrl, Alt)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Зажатие этих клавиш изменяет функции щелчка левой кнопкой мыши, а также функции вращения колеса.</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts34">Shift</span><span class="rvts22"> отвечает за выделение региона кадров, а также за навигацию Курсором Проигрывателя.</span></li>
<li class="rvps15"><span class="rvts34">Ctrl</span><span class="rvts22"> отвечает за выделение добавочных кадров, а также за навигацию Курсором Выделения.</span></li>
<li class="rvps15"><span class="rvts34">Shift</span><span class="rvts22"> отвечает за навигацию Курсором Проигрывателя, а также за выделение региона кадров.</span></li>
<li class="rvps15"><span class="rvts34">Ctrl</span><span class="rvts22"> отвечает за навигацию Курсором Выделения, а также за выделение добавочных кадров.</span></li>
<li class="rvps15"><span class="rvts34">Alt</span><span class="rvts22"> отвечает за генерацию </span><span class="rvts22">Ввод</span><span class="rvts22">а/Маркеров/выделения по шаблону, а также за пересечение промежутков колесом.</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
@ -261,8 +260,8 @@
<p class="rvps10"><span class="rvts34">Ctrl + Z</span><span class="rvts22"> = откат последнего изменения (undo)</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + Y</span><span class="rvts22"> = возврат к отменённым изменениям (redo)</span></p>
<p class="rvps10"><span class="rvts57"><br/></span></p>
<p class="rvps10"><span class="rvts34">Ctrl + Q</span><span class="rvts22"> = восстановление предыдущего Выделения (selection undo)</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + W</span><span class="rvts22"> = восстановление следующего Выделения (selection redo)</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + Q</span><span class="rvts22"> = восстановление предыдущего Выделения (Selection undo)</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + W</span><span class="rvts22"> = восстановление следующего Выделения (Selection redo)</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + A</span><span class="rvts22"> = выделить все кадры между двумя соседними Маркерами</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + B</span><span class="rvts22"> = выделить участок, ранее скопированный в Буфер Обмена</span></p>
<p class="rvps10"><span class="rvts57"><br/></span></p>
@ -428,14 +427,14 @@
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts51">Кнопки виртуальных джойстиков</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Аналоги кнопок настоящего геймпада приставки, настраиваемые либо на клавиши клавиатуры, либо на кнопки реального джойстика. См. главу </span><a class="rvts28" href="ProgramCustomization.html#fceux-config">Настройка программы</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Аналоги кнопок настоящего геймпада приставки, настраиваемые либо на клавиши клавиатуры, либо на кнопки реального джойстика. Их можно использовать для Записи, а также для быстрой установки Ввода в выделенных кадраз. Подробнее см. главу </span><a class="rvts28" href="ProgramCustomization.html#fceux-config">Настройка программы</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Если вам нужно помимо кнопок джойстика ещё вводить команды приставки, используйте меню FCEUX или хоткеи:</span></p>
<p class="rvps10"><span class="rvts22">Когда вам нужно помимо кнопок джойстика ещё вводить команды приставки, используйте меню FCEUX или хоткеи:</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">NES -&gt; Reset или хоткей "</span><span class="rvts27">Reset</span><span class="rvts22">" (по умолчанию </span><span class="rvts27">Ctrl + R</span><span class="rvts22">) для команды "Сброс"</span></li>
<li class="rvps15"><span class="rvts22">NES -&gt; Power или хоткей "</span><span class="rvts45">Power</span><span class="rvts22">" для команды "Включение" (в реальной работе не требуется)</span></li>
<li class="rvps15"><span class="rvts22">NES -&gt; Eject/Insert Disk или хоткей "</span><span class="rvts45">Eject or Insert FDS Disk</span><span class="rvts22">" для команды "Вытащить/Вставить диск" (актуально только для Famicom Disk System)</span></li>
<li class="rvps15"><span class="rvts22">NES -&gt; Switch Disk Side или хоткей "</span><span class="rvts45">Switch FDS Disk Side</span><span class="rvts22">" для команды "Поменять сторону диска" (актуально только для Famicom Disk System)</span></li>
<li class="rvps15"><span class="rvts37">NES -&gt; Reset</span><span class="rvts22"> или хоткей "</span><span class="rvts27">Reset</span><span class="rvts22">" (по умолчанию </span><span class="rvts27">Ctrl + R</span><span class="rvts22">) для команды "Сброс"</span></li>
<li class="rvps15"><span class="rvts37">NES -&gt; Power</span><span class="rvts22"> или хоткей "</span><span class="rvts45">Power</span><span class="rvts22">" для команды "Включение" (в реальной работе не требуется)</span></li>
<li class="rvps15"><span class="rvts37">NES -&gt; Eject/Insert Disk</span><span class="rvts22"> или хоткей "</span><span class="rvts45">Eject or Insert FDS Disk</span><span class="rvts22">" для команды "Вытащить/Вставить диск" (актуально только для Famicom Disk System)</span></li>
<li class="rvps15"><span class="rvts37">NES -&gt; Switch Disk Side</span><span class="rvts22"> или хоткей "</span><span class="rvts45">Switch FDS Disk Side</span><span class="rvts22">" для команды "Поменять сторону диска" (актуально только для Famicom Disk System)</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Эти команды срабатывают только в режиме Записи, причём для отображения результата на экране FCEUX необходимо после запуска команды (например, после нажатия </span><span class="rvts27">Ctrl + R</span><span class="rvts22">) ещё дополнительно нажать </span><span class="rvts27">Frame Advance </span><span class="rvts22">либо отпустить паузу эмулятора, чтобы впечатать команду в мувик.</span></p>
@ -449,21 +448,21 @@
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps10"><span class="rvts22">При редактировании Заметок клавиатура используется для печатания текста.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">1. Следующие акселераторы действуют иначе:</span></p>
<p class="rvps10"><span class="rvts22">1. Следующие клавиатурные акселераторы действуют иначе:</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + A</span><span class="rvts22"> выделяет весь текст Заметки</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + Z</span><span class="rvts22"> откатывает последний введённый символ</span></p>
<p class="rvps10"><span class="rvts34">Ctrl + X</span><span class="rvts22">, </span><span class="rvts34">Ctrl + C</span><span class="rvts22">, </span><span class="rvts34">Ctrl + V</span><span class="rvts22"> копипаст текста</span></p>
<p class="rvps10"><span class="rvts34">Delete</span><span class="rvts22"> удаляет выделенный текст или один символ после курсора</span></p>
<p class="rvps10"><span class="rvts34">Home</span><span class="rvts22">/</span><span class="rvts34">End</span><span class="rvts22"> перемещают курсор в начало и конец текста</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">2. Хоткеи FCEUX вообще не действуют.</span></p>
<p class="rvps10"><span class="rvts22">2. Хоткеи FCEUX не действуют.</span></p>
<p class="rvps10"><span class="rvts27">Backspace</span><span class="rvts22"> удаление символа перед курсором</span></p>
<p class="rvps10"><span class="rvts27">Esc</span><span class="rvts22"> выход из режима редактирования без сохранения изменений</span></p>
<p class="rvps10"><span class="rvts27">Tab</span><span class="rvts22"> переключение между нижним и верхним полем</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">4. Кнопки виртуальных джойстиков не действуют (но будут действовать в том случае, если в настройках FCEUX стоит галочка Config -&gt; Enable -&gt; Background Input).</span></p>
<p class="rvps10"><span class="rvts22">4. Кнопки виртуальных джойстиков не действуют. Замечание: они будут действовать в том случае, если в настройках FCEUX стоит галочка Config -&gt; Enable -&gt; Background Input, не рекомендуется её устанавливать.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">5. Управление мышью остаётся без изменений. Щелчок за пределами поля редактирования завершает редактирование Заметки, сохраняя изменения. Также, если во время редактирования увести соответствующий курсор из области редактируемого Маркера, изменения сохранятся, и начнётся редактирование Заметки другого Маркера.</span></p>
<p class="rvps10"><span class="rvts22">5. Управление мышью остаётся без изменений. Любой щелчок за пределами поля редактирования (кроме щелчков средней кнопкой) завершает редактирование Заметки, сохраняя изменения. Также, если во время редактирования увести Курсор Проигрывателя или Курсор Выделения из области редактируемого Маркера, изменения сохранятся, и начнётся редактирование Заметки другого Маркера.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p>

View File

@ -58,11 +58,12 @@
<p class="rvps10"><span class="rvts22">Здесь подобран ряд вопросов, которые могут возникнуть у вас при работе с Тасэдитором даже после прочтения </span><a class="rvts28" href="BeginnersGuide.html">Курса для новичка</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если у вас возникнет вопрос, на который вы не смогли найти ответ в данном Руководстве, задайте этот вопрос на форуме </span><a class="rvts28" href="http://tasvideos.org/forum/index.php" target="_blank">TASVideos</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Что делать, если обнаружился баг или странное поведение Тасэдитора?</span></p>
<p class="rvps10"><span class="rvts22">Сообщите об этом в </span><a class="rvts28" href="http://tasvideos.org/forum/viewforum.php?f=15" target="_blank">разделе FCEUX</a><span class="rvts22"> форума TASVideos. Постарайтесь сформулировать суть проблемы максимально точно, чтобы автор мог смоделировать проблемную ситуацию. Приложите скриншот, если суть проблемы наглядно отражается на экране.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Можно ли использовать Тасэдитор для других эмуляторов?</span></p>
<p class="rvps10"><span class="rvts22">Нет. Несмотря на то, что программный код Тасэдитора достаточно изолирован от кода эмулятора FCEUX, он всё же не является плагином или фронтендом. Поэтому понадобится вручную портировать исходный код Тасэдитора, при необходимости дорабатывая его в соответствии с особенностями конкретных эмулируемых платформ.</span></p>
<p class="rvps10"><span class="rvts22">Нет. Несмотря на то, что программный код Тасэдитора достаточно изолирован от кода эмулятора FCEUX, он всё же не является отдельным плагином. Поэтому понадобится вручную портировать исходный код Тасэдитора, при необходимости дорабатывая его в соответствии с особенностями конкретных эмулируемых платформ.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Как использовать Тасэдитор для традиционного метода ТАСинга?</span></p>
<p class="rvps10"><span class="rvts22">Вы можете использовать этот метод сразу же, без дополнительных настроек. Однако, если вам морально требуются некоторые ограничения старого подхода (без которых вы чувствуете себя неуютно), можно сделать следующее:</span></p>
@ -75,7 +76,7 @@
<p class="rvps10"><span class="rvts22">Также рекомендуется переключить Список закладок в вид Дерева ответвлений.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Почему не работает меню по правой кнопке в окне FCEUX?</span></p>
<p class="rvps10"><span class="rvts22">Это сделано специально для удобства </span><a class="rvts28" href="Navigation.html#rewinding-by-wheel">навигации Курсором Проигрывателя</a><a class="rvts28" href="Navigation.html#rewinding-by-wheel"> с помощью колеса мыши</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Это сделано специально для удобства </span><a class="rvts28" href="Navigation.html#rewinding-by-wheel">навигации Курсором Проигрывателя с помощью колеса мыши</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Замечено, что курсор мыши зачастую движется синхронно с взглядом человека, работающего за компьютером. Поэтому при просмотре изображения на экране FCEUX курсор мыши будет нередко находиться в рамках окна FCEUX, и при зажимании правой кнопки мыши (для перемотки колесом) контекстное меню будет загораживать часть экрана и раздражать. Так как в этом меню нет никаких существенных пунктов, решено было его убрать.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Почему иногда при щелчке правой кнопкой по Piano Roll появляется контекстное меню, а иногда не появляется?</span></p>
@ -85,10 +86,6 @@
<p class="rvps10"><span class="rvts23">Почему сразу после остановки под Курсором Проигрывателя был зелёный кадр без лага, а после отжатия паузы там оказался красный?</span></p>
<p class="rvps10"><span class="rvts22">Информация о лаге появляется у эмулятора только после завершения эмуляции кадра (при переходе на следующий кадр). Курсор Проигрывателя указывает на текущий кадр, и в это время эмулятор обладает информацией о лаге предыдущего кадра, а о лаге текущего кадра ещё ничего не знает. Поэтому кадр в голове Гринзоны всегда рисуется зелёным цветом (если отодвинуть с него Курсор Проигрывателя).</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Почему при ручном откате операций "AdjustLag" в Тасэдиторе может самопроизвольно происходить повторное срабатывание этой операции?</span></p>
<p class="rvps10"><span class="rvts22">Если вы одновременно с галочкой "Auto-adjust Input due to lag" включили функцию "Auto-restore last position", Тасэдитор будет заново эмулировать участок сразу же после отката Журнала Истории (например, нажатия </span><span class="rvts34">Ctrl + Z</span><span class="rvts22">), а во время эмуляции работает функция авто-подгонки Ввода по лагу.</span></p>
<p class="rvps10"><span class="rvts22">Поэтому в случаях, когда требуется откатить изменения с помощью Журнала Истории, рекомендуется отключать либо галочку "Auto-adjust Input due to lag", либо "Auto-restore last position", чтобы не возникал конфликт этих трёх функций.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Как вставить в мувик команду Сброса?</span></p>
<p class="rvps10"><span class="rvts22">Поставить Курсор Проигрывателя на нужный кадр, включить режим Записи, выбрать в меню FCEUX пункт </span><span class="rvts26">NES -&gt; Reset </span><span class="rvts22">и нажать </span><span class="rvts27">Frame Advance</span><span class="rvts22">. Затем рекомендуется поставить на этот кадр Маркер, так как в Piano Roll нет колонок Ввода для команд Reset/Power и т.д. После этого можно выключить режим Записи и продолжить редактирование Мувика. Кадр с записанным Сбросом можно сдвигать вниз/вверх с помощью вставки/удаления пустых строк перед этим кадром.</span></p>
<p class="rvps10"><span class="rvts22">Точно так же записываются остальные команды приставки. Подробнее см. </span><a class="rvts28" href="Controls.html#virtual_joypad">Управление</a><span class="rvts22">.</span></p>
@ -97,7 +94,7 @@
<p class="rvps10"><span class="rvts22">В fm3-файле обычно сохраняется мгновенный снимок рабочего процесса ТАСера, в том числе вся Гринзона, которая и занимает большую часть файла. Подробнее см. </span><a class="rvts28" href="AdvancedFeatures.html#ProjectsSharing">Продвинутые возможности</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Почему в этом Руководстве так много текста?</span></p>
<p class="rvps10"><span class="rvts22">Помимо сухого перечисления спецификаций здесь находится обучающий Курс, в котором систематизируются принципы эффективного подхода к ТАСингу. Ранее не существовало попыток сформулировать ТАСерский опыт в виде учебника. Поэтому автор посчитал, что многословность является меньшим злом, чем возможная неточность изложения.</span></p>
<p class="rvps10"><span class="rvts22">Помимо сухого перечисления спецификаций здесь находится обучающий Курс, в котором систематизируются принципы эффективного подхода к ТАСингу. Ранее не существовало попыток сформулировать ТАСерский опыт в виде учебника, поэтому автор посчитал, что многословность является меньшим злом, чем неточность изложения.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>

View File

@ -70,7 +70,7 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Заголовок хранится в текстовом формате, в кодировке ASCII.</span></p>
<p class="rvps10"><span class="rvts22">Он состоит из нескольких строк вида "ключевое слово + значение".</span></p>
<p class="rvps10"><span class="rvts22">Символом перевода строки может быть как </span><span class="rvts74">\r\n</span><span class="rvts22">, так и </span><span class="rvts74">\n</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Символом перевода строки может быть как </span><span class="rvts75">\r\n</span><span class="rvts22">, так и </span><span class="rvts75">\n</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если в начале очередной строки идёт символ "|" (вертикальная черта), это значит, что Заголовок закончился, и начался Журнал Ввода.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">В начале каждой строки Заголовка находится ключевое слово, после которого стоит пробел, а затем идёт текстовое представление значения.</span></p>
@ -81,17 +81,17 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts37">Список ключевых слов с целочисленным значением:</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">(включая значения для переменных типа Boolean, где 1 = </span><span class="rvts74">true</span><span class="rvts22">, 0 = </span><span class="rvts74">false</span><span class="rvts22">)</span></p>
<p class="rvps10"><span class="rvts22">(числовое значение должно умещаться в переменную типа </span><span class="rvts74">int32</span><span class="rvts22">)</span></p>
<p class="rvps10"><span class="rvts22">(включая значения для переменных типа Boolean, где 1 = </span><span class="rvts75">true</span><span class="rvts22">, 0 = </span><span class="rvts75">false</span><span class="rvts22">)</span></p>
<p class="rvps10"><span class="rvts22">(числовое значение должно умещаться в переменную типа </span><span class="rvts75">int32</span><span class="rvts22">)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts26">version</span><span class="rvts22"> (наличие обязательно) номер версии формата мувика; на данный момент это </span><span class="rvts26">3</span></li>
<li class="rvps15"><span class="rvts26">emuVersion</span><span class="rvts22"> (обязательно) версия эмулятора, в котором был создан этот файл (например, </span><span class="rvts26">21060</span><span class="rvts22">)</span></li>
<li class="rvps15"><span class="rvts26">rerecordCount</span><span class="rvts22"> (наличие не обязательно) счётчик перезаписей</span></li>
<li class="rvps15"><span class="rvts26">palFlag</span><span class="rvts22"> (</span><span class="rvts74">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts74">true</span><span class="rvts22">, если мувик использует тайминг PAL, а по умолчанию используется NTSC</span></li>
<li class="rvps15"><span class="rvts26">NewPPU</span><span class="rvts22"> (</span><span class="rvts74">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts74">true</span><span class="rvts22">, если мувик использует New PPU</span></li>
<li class="rvps15"><span class="rvts26">FDS</span><span class="rvts22"> (</span><span class="rvts74">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts74">true</span><span class="rvts22">, если мувик создан для игры с Famicom Disk System</span></li>
<li class="rvps15"><span class="rvts26">fourscore</span><span class="rvts22"> (</span><span class="rvts74">bool</span><span class="rvts22">) </span><span class="rvts74">true</span><span class="rvts22">, если мувик создан с использованием устройства fourscore. Если fourscore не использовалось, то в Заголовке обязательно наличие значений для ключевых слов </span><span class="rvts26">port0</span><span class="rvts22"> и </span><span class="rvts26">port1</span><span class="rvts22">.</span></li>
<li class="rvps15"><span class="rvts26">palFlag</span><span class="rvts22"> (</span><span class="rvts75">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts75">true</span><span class="rvts22">, если мувик использует тайминг PAL, а по умолчанию используется NTSC</span></li>
<li class="rvps15"><span class="rvts26">NewPPU</span><span class="rvts22"> (</span><span class="rvts75">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts75">true</span><span class="rvts22">, если мувик использует New PPU</span></li>
<li class="rvps15"><span class="rvts26">FDS</span><span class="rvts22"> (</span><span class="rvts75">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts75">true</span><span class="rvts22">, если мувик создан для игры с Famicom Disk System</span></li>
<li class="rvps15"><span class="rvts26">fourscore</span><span class="rvts22"> (</span><span class="rvts75">bool</span><span class="rvts22">) </span><span class="rvts75">true</span><span class="rvts22">, если мувик создан с использованием устройства fourscore. Если fourscore не использовалось, то в Заголовке обязательно наличие значений для ключевых слов </span><span class="rvts26">port0</span><span class="rvts22"> и </span><span class="rvts26">port1</span><span class="rvts22">.</span></li>
<li class="rvps15"><span class="rvts26">port0</span><span class="rvts22"> тип устройства ввода, настроенного на порт 0 приставки. Возможны следующие значения:</span></li>
</ul>
<ul style="text-indent: 60px; margin-left: 0px; list-style-position: inside;">
@ -114,7 +114,7 @@
<li class="rvps15" style="text-indent: 60px"><span class="rvts22">SIFC_NONE = 0 (ничего не подключено)</span></li>
</ul>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts26">binary</span><span class="rvts22"> (</span><span class="rvts74">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts74">true</span><span class="rvts22">, если Журнал Ввода сохранён в двоичном формате. FM2-файлы обычно хранят Ввод в текстовом формате, чтобы его было удобно редактировать в текстовых редакторах. FM3-файлы обычно хранят Ввод в двоичном формате, чтобы сэкономить место на диске</span></li>
<li class="rvps15"><span class="rvts26">binary</span><span class="rvts22"> (</span><span class="rvts75">bool</span><span class="rvts22">) (не обязательно) </span><span class="rvts75">true</span><span class="rvts22">, если Журнал Ввода сохранён в двоичном формате. FM2-файлы обычно хранят Ввод в текстовом формате, чтобы его было удобно редактировать в текстовых редакторах. FM3-файлы обычно хранят Ввод в двоичном формате, чтобы сэкономить место на диске</span></li>
<li class="rvps15"><span class="rvts26">length</span><span class="rvts22"> (обязательно для fm3) размер мувика (количество кадров в сохранённом Журнале Ввода). Если в Заголовке есть это ключевое слово, и его значение &gt;= 0, то Журнал Ввода оканчивается после означенного количества записей, а затем следуют данные Тасэдитора. Именно наличие этого ключевого слова в Заголовке отличает FM3-файлы от FM2-файлов.</span></li>
</ul>
<p class="rvps15"><span class="rvts22"><br/></span></p>
@ -195,7 +195,7 @@
<li class="rvps10" style="text-indent: 60px"><span class="rvts22">второй байт координата Y мыши</span></li>
<li class="rvps10" style="text-indent: 60px"><span class="rvts22">третий байт 1 = кнопка мышки нажата, 0 = не нажата</span></li>
<li class="rvps10" style="text-indent: 60px"><span class="rvts22">четвёртый байт значение, необходимое для эмуляции пистолета</span></li>
<li class="rvps10" style="text-indent: 60px"><span class="rvts22">байты с 5-го по 12-й (</span><span class="rvts74">uint64</span><span class="rvts22">) значение, необходимое для эмуляции пистолета</span></li>
<li class="rvps10" style="text-indent: 60px"><span class="rvts22">байты с 5-го по 12-й (</span><span class="rvts75">uint64</span><span class="rvts22">) значение, необходимое для эмуляции пистолета</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Если используется fourscore, все устройства ввода считаются геймпадами, и к размеру записи добавляется 4 байта. Биты первого байта отражают состояние сооветствующей кнопки первого джойстика (бит 0 = </span><span class="rvts32">A</span><span class="rvts22">, бит 1 = </span><span class="rvts32">B</span><span class="rvts22">, бит 2 = </span><span class="rvts32">Select</span><span class="rvts22">, бит 3 = </span><span class="rvts32">Start</span><span class="rvts22">, бит 4 = </span><span class="rvts32">Вверх</span><span class="rvts22">, бит 5 = </span><span class="rvts32">Вниз</span><span class="rvts22">, бит 6 = </span><span class="rvts32">Влево</span><span class="rvts22">, бит 7 = </span><span class="rvts32">Вправо</span><span class="rvts22">). Биты второго байта отражают состояние сооветствующей кнопки второго джойстика, и т.д.</span></p>
@ -209,7 +209,7 @@
<tr valign="middle">
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 104px;"><p class="rvps5"><span class="rvts6">4 байта</span></p>
</td>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 146px;"><p class="rvps5"><span class="rvts82">unsigned int32</span></p>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 146px;"><p class="rvps5"><span class="rvts83">unsigned int32</span></p>
</td>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 192px;"><p class="rvps5"><span class="rvts6">FM3 version</span></p>
</td>
@ -217,7 +217,7 @@
<tr valign="middle">
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 104px;"><p class="rvps5"><span class="rvts6">4 байта</span></p>
</td>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 146px;"><p class="rvps5"><span class="rvts82">unsigned int32</span></p>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 146px;"><p class="rvps5"><span class="rvts83">unsigned int32</span></p>
</td>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 192px;"><p class="rvps5"><span class="rvts6">saved modules</span></p>
</td>
@ -293,13 +293,13 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<div class="rvps21"><table width="450" border="1" cellpadding="0" cellspacing="0" style="border-color: #ffffff #000000 #000000 #ffffff; border-style: solid;">
<tr valign="middle">
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; background-color: #0000ff; width: 106px;"><p class="rvps5"><span class="rvts81">Модуль</span></p>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; background-color: #0000ff; width: 106px;"><p class="rvps5"><span class="rvts82">Модуль</span></p>
</td>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; background-color: #0000ff; width: 174px;"><p class="rvps5"><span class="rvts81">Идентификатор</span></p>
<p class="rvps5"><span class="rvts81">сохранённых данных</span></p>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; background-color: #0000ff; width: 174px;"><p class="rvps5"><span class="rvts82">Идентификатор</span></p>
<p class="rvps5"><span class="rvts82">сохранённых данных</span></p>
</td>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; background-color: #0000ff; width: 162px;"><p class="rvps5"><span class="rvts81">Идентификатор</span></p>
<p class="rvps5"><span class="rvts81">отсутствия данных</span></p>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; background-color: #0000ff; width: 162px;"><p class="rvps5"><span class="rvts82">Идентификатор</span></p>
<p class="rvps5"><span class="rvts82">отсутствия данных</span></p>
</td>
</tr>
<tr valign="middle">

View File

@ -60,40 +60,40 @@
<p class="rvps21"><span class="rvts22"><br/></span></p>
<div class="rvps21"><table width="700" border="1" cellpadding="0" cellspacing="0" style="border-color: #000000; border-style: solid;">
<tr valign="top">
<td style="border-color: #000000; border-style: solid; background-color: #0000ff;"><p class="rvps5"><a class="rvts80" href="Ideas.html#ImplementedIdeas">Реализовано в 1.0</a></p>
<td style="border-color: #000000; border-style: solid; background-color: #0000ff;"><p class="rvps5"><a class="rvts81" href="Ideas.html#ImplementedIdeas">Реализовано в 1.0</a></p>
</td>
<td style="border-color: #000000; border-style: solid; background-color: #0000ff;"><p class="rvps5"><a class="rvts80" href="Ideas.html#PlannedIdeas">Запланировано на 2.0</a></p>
<td style="border-color: #000000; border-style: solid; background-color: #0000ff;"><p class="rvps5"><a class="rvts81" href="Ideas.html#PlannedIdeas">Запланировано на 2.0</a></p>
</td>
</tr>
<tr valign="top">
<td style="border-color: #000000; border-style: solid;"><p class="rvps18"><a class="rvts60" href="Ideas.html#PianoRoll">Piano Roll</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Selection">Выделение</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Markers">Маркеры</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#HotChanges">Горячие Правки</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Greenzone">Гринзона</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Playback">Проигрыватель</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#GreenArrow">Зелёная стрелка</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#AutoRestoring">Автовосстановление утраченной позиции</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Recorder">Мультитрекинг-рекордер</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Lua">Lua-автоматизация</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#BookmarksBranches">Закладки и ответвления</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#PopupWindows">Всплывающие окна</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#HistoryLog">Журнал Истории</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#RerecordsCounter">Счётчик перезаписей</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Modifiers">Система клавиш-модификаторов</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Patterns">Шаблоны</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#CrossingGaps">Пересечение промежутков</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#SaveCompact">Компактное сохранение</a></p>
<p class="rvps18"><a class="rvts60" href="Ideas.html#Autosave">Автосохранение</a></p>
<td style="border-color: #000000; border-style: solid;"><p class="rvps18"><a class="rvts61" href="Ideas.html#PianoRoll">Piano Roll</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Selection">Выделение</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Markers">Маркеры</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#HotChanges">Горячие Правки</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Greenzone">Гринзона</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Playback">Проигрыватель</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#GreenArrow">Зелёная стрелка</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#AutoRestoring">Автовосстановление утраченной позиции</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Recorder">Мультитрекинг-рекордер</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Lua">Lua-автоматизация</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#BookmarksBranches">Закладки и ответвления</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#PopupWindows">Всплывающие окна</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#HistoryLog">Журнал Истории</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#RerecordsCounter">Счётчик перезаписей</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Modifiers">Система клавиш-модификаторов</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Patterns">Шаблоны</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#CrossingGaps">Пересечение промежутков</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#SaveCompact">Компактное сохранение</a></p>
<p class="rvps18"><a class="rvts61" href="Ideas.html#Autosave">Автосохранение</a></p>
</td>
<td style="border-color: #000000; border-style: solid;"><p class="rvps5"><a class="rvts79" href="Ideas.html#OutputLog">Журнал Вывода</a></p>
<p class="rvps5"><a class="rvts79" href="Ideas.html#Minimap">Миникарта</a></p>
<p class="rvps5"><a class="rvts79" href="Ideas.html#VirtualJoypad">Виртуальный Джойстик</a></p>
<p class="rvps5"><a class="rvts79" href="Ideas.html#BetterSelection">Усовершенствование Выделения</a></p>
<p class="rvps5"><a class="rvts79" href="Ideas.html#BetterColumns">Гибкая настройка колонок</a></p>
<p class="rvps5"><a class="rvts79" href="Ideas.html#RerecordsHeatmap">Теплокарта перезаписей</a></p>
<p class="rvps5"><a class="rvts79" href="Ideas.html#Etc">Прочие мелочи</a></p>
<p class="rvps5"><a class="rvts79" href="Ideas.html#OtherPlatforms">Поддержка платформ, отличных от NES</a></p>
<td style="border-color: #000000; border-style: solid;"><p class="rvps5"><a class="rvts80" href="Ideas.html#OutputLog">Журнал Вывода</a></p>
<p class="rvps5"><a class="rvts80" href="Ideas.html#Minimap">Миникарта</a></p>
<p class="rvps5"><a class="rvts80" href="Ideas.html#VirtualJoypad">Виртуальный Джойстик</a></p>
<p class="rvps5"><a class="rvts80" href="Ideas.html#BetterSelection">Усовершенствование Выделения</a></p>
<p class="rvps5"><a class="rvts80" href="Ideas.html#BetterColumns">Гибкая настройка колонок</a></p>
<p class="rvps5"><a class="rvts80" href="Ideas.html#RerecordsHeatmap">Теплокарта перезаписей</a></p>
<p class="rvps5"><a class="rvts80" href="Ideas.html#Etc">Прочие мелочи</a></p>
<p class="rvps5"><a class="rvts80" href="Ideas.html#OtherPlatforms">Поддержка платформ, отличных от NES</a></p>
</td>
</tr>
</table>
@ -102,7 +102,7 @@
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps2"><a name="ImplementedIdeas"></a>
<span class="rvts37"><br/></span></p>
<p class="rvps10"><span class="rvts78">Реализованные идеи</span></p>
<p class="rvps10"><span class="rvts79">Реализованные идеи</span></p>
<p class="rvps10"><a name="PianoRoll"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Piano Roll</span></p>
@ -184,15 +184,15 @@
<p class="rvps10"><span class="rvts22">Так как интерфейс Piano Roll предоставляет пользователю почти мгновенный доступ к изменению Ввода на любом кадре мувика, желательно также предоставить быстрый доступ к просмотру состояния игры на любом кадре мувика. Это реализуется с помощью кеширования данных о всех полученных состояниях игры.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">Гринзона представляет собой массив информации о Выводе игры на начало каждого кадра. То есть в ячейке с номером 0 хранится состояние игры до начала эмуляции, в ячейке 1 состояние игры перед началом эмуляции второго кадра (кадра с номером 000001) и т.д. Помимо сэйва для каждого кадра хранится информация о лаге в этом кадре, теоретически возможно хранение и другой информации.</span></li>
<li class="rvps15"><span class="rvts22">Гринзона начинается с нулевого кадра и имеет нижнюю границу (голову) &nbsp; номер кадра, начиная с которого в Гринзоне отсутствует информация о дальнейших состояниях игры. Для кадров, номер которых меньше головы, в Гринзоне может иметься информация.</span></li>
<li class="rvps15"><span class="rvts22">Гринзона представляет собой массив информации о Выводе игры на начало каждого кадра. То есть в ячейке с номером 0 хранится состояние игры до начала эмуляции, в ячейке 1 состояние игры перед началом эмуляции второго кадра (кадра с номером 000001) и т.д. Помимо сэйвов Гринзона хранит Журнал лага, соответствующий Вводу текущего мувика. Теоретически возможно хранение и другой информации.</span></li>
<li class="rvps15"><span class="rvts22">Гринзона начинается с нулевого кадра и имеет нижнюю границу (голову) &nbsp; номер кадра, начиная с которого в Гринзоне отсутствует информация о дальнейших состояниях игры (однако для них может присутствовать информация в Журнале лага). Для кадров, номер которых меньше головы, в Гринзоне может иметься информация.</span></li>
<li class="rvps15"><span class="rvts22">Данные в Гринзону собираются в начале каждого кадра (перед эмуляцией) по следующему принципу: если в массиве Гринзоны ячейка с номером, равным текущему кадру, пустует, или же позиция головы Гринзоны меньше номера текущего кадра, то ячейка массива заполняется информацией о текущем состоянии игры (из эмулятора), а голова Гринзоны при необходимости перемещается вперёд.</span></li>
<li class="rvps15"><span class="rvts22">Для экономии памяти Гринзона периодически разреживается, удаляя сэйвы (но не информацию о лаге) некоторых ранних кадров, от которых Курсор Проигрывателя ушёл достаточно далеко. </span><span class="rvts22">Подробнее см. </span><a class="rvts28" href="ProgramCustomization.html#SetGreenzonecapacity">Настройка программы</a><span class="rvts22">.</span></li>
<li class="rvps15"><span class="rvts22">Вся Гринзона сохраняется и загружается из файла проекта. После загрузки проекта Тасэдитор восстанавливает состояние Курсора Проигрывателя с помощью Гринзоны.</span></li>
<li class="rvps15"><span class="rvts22">При любом изменении Ввода текущего мувика из Гринзоны удаляется информация о кадрах, идущих после первого изменённого кадра. Это реализуется с помощью уменьшения позиции головы Гринзоны и удаления устаревшей информации из массива (но без освобождения памяти, так как на место старых сэйвов вскоре будут записаны новые данные примерно того же размера). Обычно одновременно с этим перемещается Курсор Проигрывателя, чтобы он всегда находился внутри Гринзоны (чтобы на экране FCEUX никогда не отображалось неактуальное состояние игры).</span></li>
<li class="rvps15"><span class="rvts22">При создании Закладки в неё копируется информация из соответствующего кадра Гринзоны. При загрузке ответвления этой Закладки из неё копируется информация в соответствующую ячейку Гринзоны, и при необходимости передвигается позиция головы.</span></li>
<li class="rvps15"><span class="rvts22">Информация из Гринзоны используется при раскрашивании строк Piano Roll. Информация о лаге (Журнал лага) отображается не только для кадров, содержащихся в Гринзоне, но и для отсутствующих в ней кадров. Если в Гринзоне нет информации о лаге на определённом кадре, то предполагается, что этот кадр без лага.</span></li>
<li class="rvps15"><span class="rvts22">Информация о лаге собирается в Гринзону одновременно со сбором текущего состояния игры, то есть перед началом эмуляции текущего кадра. В этот момент эмулятор обладает информацией о лаге предыдущего кадра, поэтому на кадре с номером 000020 данные о лаге сохраняются в ячейку 19. Также именно в этот момент может сработать операция </span><a class="rvts28" href="Operations.html#AdjustLag">AdjustLag</a><span class="rvts22">, которая сдвигает весь Ввод в последующих кадрах мувика на 1 кадр вверх или вниз. Ввод сдвигается вверх, если в Журнале лага на прошлом кадре был лаг, а теперь его не стало. Ввод сдвигается вниз, если в Журнале лага на прошлом кадре не было лага, а теперь он есть. Вместе с Вводом аналогично сдвигается и все последующие ячейки Журнала лага, чтобы красные строки Piano Roll по-прежнему соответствовали сдвинувшимся пропускам во Вводе. Кроме того, после операции AdjustLag Курсор Проигрывателя насильно возвращается на предыдущий кадр (в котором изменилась информация о лаге), чтобы проэмулировать его заново. Это реализуется не простой перемоткой назад, а усечением Гринзоны после предыдущего кадра.</span></li>
<li class="rvps15"><span class="rvts22">Для экономии памяти Гринзона периодически разреживается, удаляя сэйвы (но не трогая Журнал лага) некоторых ранних кадров, от которых Курсор Проигрывателя ушёл достаточно далеко. </span><span class="rvts22">Подробнее см. </span><a class="rvts28" href="ProgramCustomization.html#SetGreenzonecapacity">Настройка программы</a><span class="rvts22">.</span></li>
<li class="rvps15"><span class="rvts22">Вся Гринзона вместе с Журналом лага сохраняется и загружается из файла проекта. После загрузки проекта Тасэдитор восстанавливает состояние Курсора Проигрывателя с помощью Гринзоны.</span></li>
<li class="rvps15"><span class="rvts22">При любом изменении Ввода текущего мувика из Гринзоны удаляется информация о кадрах, идущих после первого изменённого кадра. Это реализуется с помощью уменьшения позиции головы Гринзоны и удаления устаревшей информации из массива сэйвов (без освобождения памяти, так как на место старых сэйвов вскоре будут записаны новые данные примерно того же размера). Обычно одновременно с этим перемещается Курсор Проигрывателя, чтобы он всегда находился внутри Гринзоны (чтобы на экране FCEUX никогда не отображалось неактуальное состояние игры).</span></li>
<li class="rvps15"><span class="rvts22">При создании Закладки в неё копируется Журнал лага и сэйв соответствующего кадра Гринзоны. При загрузке ответвления этой Закладки из неё восстанавливается Журнал лага и сэйв в соответствующую ячейку Гринзоны, и при необходимости передвигается позиция головы.</span></li>
<li class="rvps15"><span class="rvts22">Информация из Гринзоны используется при раскрашивании строк Piano Roll и Списка Закладок. Информация из Журнала лага отображается не только для кадров, содержащихся в Гринзоне, но и для отсутствующих в ней кадров. Если в Журнале нет информации о лаге на определённом кадре, то предполагается, что это кадр без лага.</span></li>
<li class="rvps15"><span class="rvts22">Информация в Журнал лага собирается одновременно со сбором текущего состояния игры в Гринзону, то есть перед началом эмуляции текущего кадра. В этот момент эмулятор обладает информацией о лаге предыдущего кадра, поэтому на кадре с номером 000020 данные о лаге сохраняются в ячейку 19. Также именно в этот момент может сработать операция </span><a class="rvts28" href="Operations.html#AdjustLag">AdjustLag</a><span class="rvts22">, которая сдвигает весь Ввод в последующих кадрах мувика на 1 кадр вверх или вниз. Ввод сдвигается вверх, если в Журнале лага на прошлом кадре был лаг, а теперь его не стало. Ввод сдвигается вниз, если в Журнале лага на прошлом кадре не было лага, а теперь он есть. Вместе с Вводом аналогично сдвигается и все последующие ячейки Журнала лага, чтобы красные строки Piano Roll по-прежнему соответствовали сдвинувшимся пропускам во Вводе. Кроме того, после операции AdjustLag Курсор Проигрывателя насильно возвращается на предыдущий кадр (в котором изменилась информация о лаге), чтобы проэмулировать его заново. Это реализуется не простой перемоткой назад, а усечением Гринзоны после предыдущего кадра, чтобы в следующий раз повторилась проверка на несовпадение флага лага.</span></li>
</ul>
<p class="rvps10"><a name="Playback"></a>
<span class="rvts22"><br/></span></p>
@ -209,6 +209,7 @@
<li class="rvps15"><span class="rvts22">Добегание может осуществляться на максимально возможной скорости эмуляции. В этом случае для относительно небольших участков добегание будет завершено практически мгновенно.</span></li>
<li class="rvps15"><span class="rvts22">Во многих случаях полезно автоматически останавливать эмуляцию на последнем кадре, для которого в мувике есть Ввод. Для этого служит настройка </span><a class="rvts28" href="ProgramCustomization.html#AutopauseattheendofMovie">Autopause at the end of Movie</a><span class="rvts22">, благодаря которой Курсор Проигрывателя при отпущенной паузе не будет убегать слишком далеко.</span></li>
<li class="rvps15"><span class="rvts22">В большинстве случаев пользователю не требуется автоматически скроллировать Piano Roll к Курсору Проигрывателя во время передвижения этого курсора. Для тех случаев, когда это всё-таки нужно, служит галочка "Follow cursor".</span></li>
<li class="rvps15"><span class="rvts22">Когда эмулятор стоит на паузе, если Курсор Проигрывателя находится не на последнем кадре мувика, Проигрыватель устанавливает флаг автоматической остановки. И если пользователь отпустит паузу, Проигрыватель автоматически остановится при достижении последнего кадра мувика.</span></li>
</ul>
<p class="rvps10"><a name="GreenArrow"></a>
<span class="rvts22"><br/></span></p>
@ -282,7 +283,7 @@
<li class="rvps15"><span class="rvts22">При срабатывании какой-либо функции из библиотеки "taseditor" луа-интерпретатор берёт входные данные из стека, при необходимости конвертирует их в формат, принимаемый луа-шлюзом Тасэдитора, и передаёт их соответствующей функции луа-шлюза Тасэдитора.</span></li>
<li class="rvps15"><span class="rvts22">Луа-шлюз Тасэдитора вызывает соответствующие функции Тасэдитора и передаёт полученный результат обратно в луа-интерпретатор.</span></li>
<li class="rvps15"><span class="rvts22">Луа-интерпретатор помещает полученные данные в стек, при необходимости конвертируя их в формат, принимаемый луа-кодом.</span></li>
<li class="rvps15"><span class="rvts22">Функции </span><span class="rvts72">submitinputchange()</span><span class="rvts22">, &nbsp;</span><span class="rvts72">submitinsertframes()</span><span class="rvts22"> и </span><span class="rvts72">submitdeleteframes()</span><span class="rvts22"> не вызывают соответствующее изменение мувика, а только создают запись в массиве отложенных заданий, хранящемся в луа-шлюзе Тасэдитора. Все отложенные задания реализуются при вызове </span><span class="rvts72">applyinputchanges()</span><span class="rvts22">. Благодаря этому луа-скрипт может вносить в мувик сразу несколько изменений, создавая только один пункт Журнала Истории.</span></li>
<li class="rvps15"><span class="rvts22">Функции </span><span class="rvts73">submitinputchange()</span><span class="rvts22">, &nbsp;</span><span class="rvts73">submitinsertframes()</span><span class="rvts22"> и </span><span class="rvts73">submitdeleteframes()</span><span class="rvts22"> не вызывают соответствующее изменение мувика, а только создают запись в массиве отложенных заданий, хранящемся в луа-шлюзе Тасэдитора. Все отложенные задания реализуются при вызове </span><span class="rvts73">applyinputchanges()</span><span class="rvts22">. Благодаря этому луа-скрипт может вносить в мувик сразу несколько изменений, создавая только один пункт Журнала Истории.</span></li>
</ul>
<p class="rvps10"><a name="BookmarksBranches"></a>
<span class="rvts22"><br/></span></p>
@ -427,7 +428,7 @@
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps10"><a name="PlannedIdeas"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts77">Запланированные идеи</span></p>
<p class="rvps10"><span class="rvts78">Запланированные идеи</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><a name="OutputLog"></a>
<span class="rvts22"><br/></span></p>
@ -482,7 +483,7 @@
<li class="rvps15"><span class="rvts22">Содержимое окна автоматически обновляется при каждом внешнем изменении Ввода.</span></li>
<li class="rvps15"><span class="rvts22">Виртуальный Джойстик отражает состояние только текущего джойстика (выбранного радиокнопкой в разделе Recorder).</span></li>
<li class="rvps15"><span class="rvts22">При щелчке по кнопке происходит изменение Ввода текущего джойстика. Нажатая кнопка становится отпущенной, а отпущенная или частично нажатая становится нажатой. Соответственно меняется Ввод во всех выделенных кадрах или на кадре Курсора Проигрывателя.</span></li>
<li class="rvps15"><span class="rvts22">В дополнение к кнопкам Ввода в окне Виртуального Джойстика можно разместить несколько кнопок-слотов для хранения макросов. Щелчок по кнопке Макроса будет аналогичен нескольким щелчкам по разным кнопкам Виртуального Джойстика. Это позволит ещё быстрее менять Ввод в Выделении, например, вместо трёх щелчков по кнопкам </span><span class="rvts32">Вверх</span><span class="rvts22">, </span><span class="rvts32">Вправо</span><span class="rvts22"> и </span><span class="rvts32">B</span><span class="rvts22"> можно будет сделать один щелчок по </span><span class="rvts76">Макросу1</span><span class="rvts22">.</span></li>
<li class="rvps15"><span class="rvts22">В дополнение к кнопкам Ввода в окне Виртуального Джойстика можно разместить несколько кнопок-слотов для хранения макросов. Щелчок по кнопке Макроса будет аналогичен нескольким щелчкам по разным кнопкам Виртуального Джойстика. Это позволит ещё быстрее менять Ввод в Выделении, например, вместо трёх щелчков по кнопкам </span><span class="rvts32">Вверх</span><span class="rvts22">, </span><span class="rvts32">Вправо</span><span class="rvts22"> и </span><span class="rvts32">B</span><span class="rvts22"> можно будет сделать один щелчок по </span><span class="rvts77">Макросу1</span><span class="rvts22">.</span></li>
<li class="rvps15"><span class="rvts22">Если перед щелчком по кнопке Виртуального Джойстика или кнопке макроса зажать клавишу </span><span class="rvts34">Alt</span><span class="rvts22">, будет установлен Ввод по шаблону.</span></li>
<li class="rvps15"><span class="rvts22">После реализации Виртуального Джойстика можно изменить принцип действия щелчков по Заголовку Piano Roll. Теперь вместо изменения инпута щелчки по Заголовку будут выделять соответствующие столбцы Piano Roll.</span></li>
</ul>

View File

@ -61,7 +61,7 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts78">Программные модули (классы)</span></p>
<p class="rvps10"><span class="rvts79">Программные модули (классы)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts21">taseditor.cpp</span></p>
<p class="rvps10"><span class="rvts22">Main главный шлюз между эмулятором и Тасэдитором (Main gate between emulator and Taseditor)</span></p>
@ -127,17 +127,35 @@
<p class="rvps10"><span class="rvts21">snapshot.cpp</span></p>
<p class="rvps10"><span class="rvts22">Snapshot Моментальный снимок всех редактируемых данных (Snapshot of all edited data)</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">хранит всю информацию одного снимка мувика: размер и содержимое Ввода (Ввод = кнопочные нажатия + команды), снимок состояния Маркеров на момент создания снимка, номер ключевого кадра, начальный и конечный кадр операции, тип операции и текстовое описание снимка (включая время создания)</span></li>
<li class="rvps15"><span class="rvts22">хранит всю информацию одного снимка мувика: :Журнал Ввода, Журнал Лага на момент создания снимка, номер ключевого кадра, начальный и конечный кадр операции, тип операции и текстовое описание снимка (включая время создания)</span></li>
<li class="rvps15"><span class="rvts22">дополнительно хранит информацию о последовательной Записи/рисовании Ввода</span></li>
<li class="rvps15"><span class="rvts22">организует создание снимка: копирование Ввода из мувика, копирование Маркеров из Менеджера Маркеров, запоминание времени создания</span></li>
<li class="rvps15"><span class="rvts22">организует восстановление Маркеров из снимка</span></li>
<li class="rvps15"><span class="rvts22">сохраняет и загружает свои данные из файла проекта, при ошибке загрузки передаёт сигнал выше</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts21">inputlog.cpp</span></p>
<p class="rvps10"><span class="rvts22">InputLog Журнал Ввода (Log of Input)</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">хранит снимок Ввода мувика: размер и содержимое Ввода для всех кадров (кнопочные нажатия и команды)</span></li>
<li class="rvps15"><span class="rvts22">опционально может хранить или не хранить карту Горячих Правок</span></li>
<li class="rvps15"><span class="rvts22">реализует детали создания снимка: копирование Ввода, опциональное копирование карты горячих правок, копирование Маркеров, запоминание времени создания</span></li>
<li class="rvps15"><span class="rvts22">реализует детали полного/частичного восстановления данных из снимка: Ввода, карты горячих правок, Маркеров</span></li>
<li class="rvps15"><span class="rvts22">реализует копирование Ввода из мувика себе в Журнал, а также опциональное копирование карты Горячих Правок</span></li>
<li class="rvps15"><span class="rvts22">реализует детали полного/частичного восстановления данных из снимка: Ввода, карты Горячих Правок</span></li>
<li class="rvps15"><span class="rvts22">реализует компрессию и декомпрессию хранимых данных</span></li>
<li class="rvps15"><span class="rvts22">сохраняет и загружает свои данные из файла проекта, при ошибке загрузки передаёт сигнал выше</span></li>
<li class="rvps15"><span class="rvts22">реализует поиск первого несовпадения в содержимом двух снимков или в содержимом данного снимка и текущего состояния мувика</span></li>
<li class="rvps15"><span class="rvts22">предоставляет интерфейс для чтения отдельно взятых данных: чтение Ввода отдельного кадра, чтение любой ячейки карты горячих правок</span></li>
<li class="rvps15"><span class="rvts22">реализует все операции с картами Горячих Правок: копирование, частичное копирование, обновление/угасание, установка новых точек на карте горячих правок, сравнением Ввода двух снимков</span></li>
</ul>
<p class="rvps15"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts21">laglog.cpp</span></p>
<p class="rvps10"><span class="rvts22">LagLog :Журнал лага (Log og Lag appearance)</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">хранит данные о наличии/отсутствии лага для каждого кадра мувика</span></li>
<li class="rvps15"><span class="rvts22">реализует компрессию и декомпрессию хранимых данных</span></li>
<li class="rvps15"><span class="rvts22">сохраняет и загружает свои данные из файла проекта, при ошибке загрузки передаёт сигнал выше</span></li>
<li class="rvps15"><span class="rvts22">предоставляет интерфейс для чтения и записи в Журнал лага</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts21">markers.cpp</span></p>
<p class="rvps10"><span class="rvts22">Markers Моментальный снимок состояния маркеров (Snapshot of Markers state)</span></p>
@ -282,7 +300,7 @@
<li class="rvps15"><span class="rvts22">сохраняет и загружает свои данные из файла проекта, при ошибке загрузки очищает данные</span></li>
<li class="rvps15"><span class="rvts22">Регулярно следит, чтобы размер массива Маркеров был не меньше количества кадров в мувике</span></li>
<li class="rvps15"><span class="rvts22">реализует все операции с Маркерами: установка Маркера на кадр, удаление Маркера, вставка и удаление кадров между Маркерами, усечение массива Маркеров, изменение Заметок, поиск кадра по номеру Маркера, интерфейс доступа к данным внутри снимка состояния Маркеров</span></li>
<li class="rvps15"><span class="rvts22">реализует копирование данных между снимками состояния Маркеров (в том числе частичное копирование) и поиск первого несовпадения в содержимом двух снимков состояния Маркеров</span></li>
<li class="rvps15"><span class="rvts22">реализует копирование данных между снимками состояния Маркеров, а также поиск первого несовпадения в содержимом двух снимков состояния Маркеров</span></li>
<li class="rvps15"><span class="rvts22">здесь же размещается код поиска "похожих" Заметок</span></li>
<li class="rvps15"><span class="rvts22">здесь же размещается код редактирования Заметок к Маркерам</span></li>
<li class="rvps15"><span class="rvts22">здесь же размещается код диалога Find Note</span></li>
@ -311,7 +329,7 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts78">Модификация эмулятора</span></p>
<p class="rvps10"><span class="rvts79">Модификация эмулятора</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Тасэдитор требует внесения следующих модификаций в код самого эмулятора.</span></p>
@ -321,7 +339,7 @@
<li class="rvps10"><span class="rvts22">вызывать центральную функцию Тасэдитора после эмуляции каждого кадра, а также, когда эмулятор на паузе. Частота вызова должна быть не менее 20 раз в секунду (это требуется для плавности анимаций)</span></li>
<li class="rvps10"><span class="rvts22">передавать системные сообщения окну Тасэдитора, в том числе сообщения клавиатурных акселераторов</span></li>
<li class="rvps10"><span class="rvts22">если эмулятор не использует колесо мыши, он должен пересылать WM_MOUSEWHEEL Тасэдитору, а не игнорировать это сообщение. То же самое с обработкой средней кнопки</span></li>
<li class="rvps10"><span class="rvts22">при выходе из эмулятора, если запущен Тасэдитор, необходимо вызывать функцию AskSave(), чтобы Тасэдитор проверил наличие несохранённых изменений и позволил пользователю сохранить их. Если функция AskSave() возвращает </span><span class="rvts74">false</span><span class="rvts22">, отменять выход из эмулятора (это означает, что пользователь выбрал Отмену)</span></li>
<li class="rvps10"><span class="rvts22">при выходе из эмулятора, если запущен Тасэдитор, необходимо вызывать функцию AskSave(), чтобы Тасэдитор проверил наличие несохранённых изменений и позволил пользователю сохранить их. Если функция AskSave() возвращает </span><span class="rvts75">false</span><span class="rvts22">, отменять выход из эмулятора (это означает, что пользователь выбрал Отмену)</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">В модуль, ответственный за </span><span class="rvts26">Movie</span><span class="rvts22">:</span></p>
@ -353,8 +371,8 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">В модуль, ответственный за </span><span class="rvts26">Config</span><span class="rvts22">:</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps10"><span class="rvts22">при запуске эмулятор должен загружать данные </span><span class="rvts74">taseditor_config</span><span class="rvts22"> из файла общих настроек эмулятора, если же файл не найден, не трогать </span><span class="rvts74">taseditor_config</span><span class="rvts22"> (тогда в нём останутся настроки по умолчанию)</span></li>
<li class="rvps10"><span class="rvts22">при выходе эмулятор должен сохранять данные </span><span class="rvts74">taseditor_config</span><span class="rvts22"> в файл общих настроек</span></li>
<li class="rvps10"><span class="rvts22">при запуске эмулятор должен загружать данные </span><span class="rvts75">taseditor_config</span><span class="rvts22"> из файла общих настроек эмулятора, если же файл не найден, не трогать </span><span class="rvts75">taseditor_config</span><span class="rvts22"> (тогда в нём останутся настроки по умолчанию)</span></li>
<li class="rvps10"><span class="rvts22">при выходе эмулятор должен сохранять данные </span><span class="rvts75">taseditor_config</span><span class="rvts22"> в файл общих настроек</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">В модуль, ответственный за </span><span class="rvts26">Lua engine</span><span class="rvts22">:</span></p>

View File

@ -99,17 +99,17 @@
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps10"><a name="registerauto"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.registerauto(function func)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.registerauto(function func)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Регистрирует функцию ("Auto Function", Автофункция), которая будет периодически вызываться эмулятором. Можно зарегистрировать и исполнять Автофункцию, даже когда Тасэдитор не запущен.</span></p>
<p class="rvps10"><span class="rvts22">Когда FCEUX эмулирует игру, Автофункция запускается по окончании каждого кадра (то есть 60 раз в секунду в NTSC-играх и 50 раз в PAL).</span></p>
<p class="rvps10"><span class="rvts22">Когда FCEUX стоит на паузе, Автофункция запускается 20 раз в секунду.</span></p>
<p class="rvps10"><span class="rvts22">Пользователь может включать и отключать вызовы Автофункции с помощью галочки "Auto function" в интерфейсе Тасэдитора.</span></p>
<p class="rvps10"><span class="rvts22">Как и в случае с остальными регистрируемыми Луа-функциями в FCEUX, одновременно может быть зарегистрирована только одна Автофункция. Если вы зарегистрируете две Автофункции, вторая заменит первую, причём второй вызов </span><span class="rvts21">taseditor.registerauto()</span><span class="rvts22"> возвратит ссылку на код старой Автофункции. Вы можете удалить зарегистрированную Автофункцию, вызвав </span><span class="rvts21">taseditor.registerauto(</span><span class="rvts74">nil</span><span class="rvts21">)</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Как и в случае с остальными регистрируемыми Луа-функциями в FCEUX, одновременно может быть зарегистрирована только одна Автофункция. Если вы зарегистрируете две Автофункции, вторая заменит первую, причём второй вызов </span><span class="rvts21">taseditor.registerauto()</span><span class="rvts22"> возвратит ссылку на код старой Автофункции. Вы можете удалить зарегистрированную Автофункцию, вызвав </span><span class="rvts21">taseditor.registerauto(</span><span class="rvts75">nil</span><span class="rvts21">)</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если скрипт заканчивает свою работу, а зарегистрированные функции остались, FCEUX не удаляет скрипт из памяти, чтобы была возможность вызывать эти функции. Скрипт завершается, если пользователь останавливает его вручную, или же если все зарегистрированные функции оказываются удалены.</span></p>
<p class="rvps10"><a name="registermanual"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.registermanual(function func, [string name])</span></p>
<p class="rvps9"><span class="rvts73">taseditor.registermanual(function func, [string name])</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Регистрирует функцию ("Manual Function", Ручная функция), которая может быть вызвана пользователем Тасэдитора вручную. Можно зарегистрировать Ручную функцию даже когда Тасэдитор не запущен.</span></p>
<p class="rvps10"><span class="rvts22">Ручная функция не зависит от состояния паузы эмуляции. Она будет вызвана в конце кадра, в течение которого пользователь нажал кнопку </span><span class="rvts32">Run function</span><span class="rvts22"> в интерфейсе Тасэдитора.</span></p>
@ -117,30 +117,30 @@
<p class="rvps10"><span class="rvts22">Ручную функцию невозможно вызвать чаще, чем частота обновления окна Тасэдитора (60/50 FPS или 20FPS во время паузы).</span></p>
<p class="rvps10"><span class="rvts22">Выполнение Ручной функции расположено в коде FCEUX сразу после выполнения Автофункции.</span></p>
<p class="rvps10"><span class="rvts22">С помощью регистрации Луа-функций вы можете создавать новые инструменты для Тасэдитора. Например, можно написать скрипт, который инвертирует выделенный Ввод, так что пользователь сможет в любой момент выделить регион мувика и нажать кнопку </span><span class="rvts32">Run function</span><span class="rvts22"> для инвертирования Ввода в этом регионе.</span></p>
<p class="rvps10"><span class="rvts22">Как и в случае с остальными регистрируемыми Луа-функциями в FCEUX, одновременно может быть зарегистрирована только одна Ручная функция. Если вы зарегистрируете две Ручные функции, вторая заменит первую, причём второй вызов </span><span class="rvts21">taseditor.registermanual()</span><span class="rvts22"> возвратит ссылку на старую Ручную функцию. Вы можете удалить зарегистрированную Ручную функцию, вызвав </span><span class="rvts21">taseditor.registermanual(</span><span class="rvts74">nil</span><span class="rvts21">)</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Как и в случае с остальными регистрируемыми Луа-функциями в FCEUX, одновременно может быть зарегистрирована только одна Ручная функция. Если вы зарегистрируете две Ручные функции, вторая заменит первую, причём второй вызов </span><span class="rvts21">taseditor.registermanual()</span><span class="rvts22"> возвратит ссылку на старую Ручную функцию. Вы можете удалить зарегистрированную Ручную функцию, вызвав </span><span class="rvts21">taseditor.registermanual(</span><span class="rvts75">nil</span><span class="rvts21">)</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если скрипт заканчивает свою работу, а зарегистрированные функции остались, FCEUX не удаляет скрипт из памяти, чтобы была возможность вызывать эти функции. Скрипт завершается, если пользователь останавливает его вручную, или же если все зарегистрированные функции оказываются удалены.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><a name="engaged"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">bool taseditor.engaged()</span></p>
<p class="rvps9"><span class="rvts73">bool taseditor.engaged()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает </span><span class="rvts74">true</span><span class="rvts22">, если Тасэдитор в данный момент запущен, иначе возвращает </span><span class="rvts74">false</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Возвращает </span><span class="rvts75">true</span><span class="rvts22">, если Тасэдитор в данный момент запущен, иначе возвращает </span><span class="rvts75">false</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Кроме того, когда Тасэдитор запущен, вызов функции </span><span class="rvts21">movie.mode()</span><span class="rvts22"> возвращает строку "taseditor".</span></p>
<p class="rvps10"><a name="markedframe"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">bool taseditor.markedframe(int frame)</span></p>
<p class="rvps9"><span class="rvts73">bool taseditor.markedframe(int frame)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает </span><span class="rvts74">true</span><span class="rvts22">, если в текущем мувике на указанном кадре установлен Маркер, иначе возвращает </span><span class="rvts74">false</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts74">false</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Возвращает </span><span class="rvts75">true</span><span class="rvts22">, если в текущем мувике на указанном кадре установлен Маркер, иначе возвращает </span><span class="rvts75">false</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts75">false</span><span class="rvts22">.</span></p>
<p class="rvps10"><a name="getmarker"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.getmarker(int frame)</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.getmarker(int frame)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает порядковый номер Маркера, под которым находится указанный кадр.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает -1.</span></p>
<p class="rvps10"><a name="setmarker"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.setmarker(int frame)</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.setmarker(int frame)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Устанавливает Маркер на указанный кадр. Возвращает порядковый номер установленного Маркера.</span></p>
<p class="rvps10"><span class="rvts22">Если на этом кадре уже есть Маркер, никаких изменений не производится, будет возвращён номер существующего Маркера на указанном кадре.</span></p>
@ -148,34 +148,34 @@
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает -1.</span></p>
<p class="rvps10"><a name="removemarker"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.removemarker(int frame)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.removemarker(int frame)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Удаляет Маркер с указанного кадра. Если на этом кадре не было Маркера, никаких изменений не производится.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, никаких изменений не производится.</span></p>
<p class="rvps10"><a name="getnote"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">string taseditor.getnote(int index)</span></p>
<p class="rvps9"><span class="rvts73">string taseditor.getnote(int index)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает строку с текстом Заметки указанного Маркера.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts74">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts75">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если указанный Маркер не существует, возвращает текст Заметки нулевого Маркера.</span></p>
<p class="rvps10"><a name="setnote"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.setnote(int index, string newtext)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.setnote(int index, string newtext)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Изменяет текст Заметки указанного Маркера.</span></p>
<p class="rvps10"><span class="rvts22">Если указанный Маркер не существует, никаких изменений не производится.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, никаких изменений не производится.</span></p>
<p class="rvps10"><a name="getcurrentbranch"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.getcurrentbranch()</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.getcurrentbranch()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает число от 0 до 9, представляющее собой номер текущего ответвления.</span></p>
<p class="rvps10"><span class="rvts22">Если в проекте отсутствуют ответвления, возвращает -1.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает -1.</span></p>
<p class="rvps10"><a name="getrecordermode"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">string taseditor.getrecordermode()</span></p>
<p class="rvps9"><span class="rvts73">string taseditor.getrecordermode()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает строку, соответствующую текущему режиму Рекордера:</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
@ -185,11 +185,11 @@
<li class="rvps10"><span class="rvts22">"3P"</span></li>
<li class="rvps10"><span class="rvts22">"4P"</span></li>
</ul>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts74">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts75">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Когда вам требуется узнать состояние Записи (Read-only или Read+Write), воспользуйтесь функцией </span><span class="rvts21">emu.readonly()</span><span class="rvts22">.</span></p>
<p class="rvps10"><a name="getsuperimpose"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.getsuperimpose()</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.getsuperimpose()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает текущее состояние галочки "Superimpose" в интерфейсе Тасэдитора.</span></p>
<p class="rvps10"><span class="rvts22">0 галочка не установлена (пустой чекбокс)</span></p>
@ -198,49 +198,49 @@
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает -1.</span></p>
<p class="rvps10"><a name="getlostplayback"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.getlostplayback()</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.getlostplayback()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает номер кадра, на котором находился Курсор Проигрывателя до изменения Ввода.</span></p>
<p class="rvps10"><span class="rvts22">Если Курсор Проигрывателя не терял позицию при усечении Гринзоны, возвращает -1.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает -1.</span></p>
<p class="rvps10"><a name="getplaybacktarget"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.getplaybacktarget()</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.getplaybacktarget()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Если Проигрыватель Тасэдитора в данный момент добегает (seek) к целевому кадру, эта функция возвращает номер целевого кадра.</span></p>
<p class="rvps10"><span class="rvts22">Если же Проигрыватель не занят добеганием, возвращает -1.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает -1.</span></p>
<p class="rvps10"><a name="setplayback"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.setplayback(int frame)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.setplayback(int frame)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Посылает Курсор Проигрывателя на указанный кадр.</span></p>
<p class="rvps10"><span class="rvts22">Если указанный кадр не находится в Гринзоне, Проигрыватель Тасэдитора начинает добегание к этому кадру.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, ничего не производится.</span></p>
<p class="rvps10"><a name="stopseeking"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.stopseeking()</span></p>
<p class="rvps9"><span class="rvts73">taseditor.stopseeking()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Прекращает добегание и ставит эмулятор на паузу.</span></p>
<p class="rvps10"><span class="rvts22">Если Проигрыватель не занят добеганием, просто ставит эмулятор на паузу.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, ничего не производится.</span></p>
<p class="rvps10"><a name="getselection"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">table taseditor.getselection()</span></p>
<p class="rvps9"><span class="rvts73">table taseditor.getselection()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает таблицу (массив), содержащую номера выделенных в данынй момент кадров. Эти номера отсортированы по возрастанию.</span></p>
<p class="rvps10"><span class="rvts22">Если выделенных кадров в данный момент нет, возвращает </span><span class="rvts74">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts74">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если выделенных кадров в данный момент нет, возвращает </span><span class="rvts75">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает </span><span class="rvts75">nil</span><span class="rvts22">.</span></p>
<p class="rvps10"><a name="setselection"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.setselection(table new_set)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.setselection(table new_set)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Изменяет текущее Выделение на указанный набор кадров. Номера кадров в вашей таблице не обязательно отсортировывать.</span></p>
<p class="rvps10"><span class="rvts22">Если нужно очистить Выделение, используйте </span><span class="rvts21">taseditor.setselection(</span><span class="rvts74">nil</span><span class="rvts21">)</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если нужно очистить Выделение, используйте </span><span class="rvts21">taseditor.setselection(</span><span class="rvts75">nil</span><span class="rvts21">)</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, ничего не производится.</span></p>
<p class="rvps10"><a name="getinput"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.getinput(int frame, int joypad)</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.getinput(int frame, int joypad)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Возвращает число, представляющее собой Ввод указанного джойстика на указанном кадре.</span></p>
<p class="rvps10"><span class="rvts22">Если указан отрицательный номер кадра, возвращает -1.</span></p>
@ -256,7 +256,7 @@
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, возвращает -1.</span></p>
<p class="rvps10"><a name="submitinputchange"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.submitinputchange(int frame, int joypad, int input)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.submitinputchange(int frame, int joypad, int input)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Отправляет запрос Тасэдитору, требуя изменить Ввод указанного джойстика на указанном кадре.</span></p>
<p class="rvps10"><span class="rvts22">Сам Ввод мувика будет изменён только после вызова </span><span class="rvts21">taseditor.applyinputchanges()</span><span class="rvts22">.</span></p>
@ -269,7 +269,7 @@
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, ничего не производится.</span></p>
<p class="rvps10"><a name="submitinsertframes"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.submitinsertframes(int frame, int number)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.submitinsertframes(int frame, int number)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Отправляет запрос Тасэдитору, требуя вставить указанное количество пустых кадров перед указанным номером кадра мувика.</span></p>
<p class="rvps10"><span class="rvts22">Сам Ввод мувика будет изменён только после вызова </span><span class="rvts21">taseditor.applyinputchanges()</span><span class="rvts22">.</span></p>
@ -280,7 +280,7 @@
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, ничего не производится.</span></p>
<p class="rvps10"><a name="submitdeleteframes"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.submitdeleteframes(int frame, int number)</span></p>
<p class="rvps9"><span class="rvts73">taseditor.submitdeleteframes(int frame, int number)</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Отправляет запрос Тасэдитору, требуя удалить из мувика указанное количество кадров, начиная с указанного кадра.</span></p>
<p class="rvps10"><span class="rvts22">Сам Ввод мувика будет изменён только после вызова </span><span class="rvts21">taseditor.applyinputchanges()</span><span class="rvts22">.</span></p>
@ -291,7 +291,7 @@
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, ничего не производится.</span></p>
<p class="rvps10"><a name="applyinputchanges"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">int taseditor.applyinputchanges([string name])</span></p>
<p class="rvps9"><span class="rvts73">int taseditor.applyinputchanges([string name])</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Моментально применяет список накопившихся запросов к текущему мувику. Если эти запросы действительно внесли какие-то изменения во Ввод мувика, в Журнале Истории появится новый пункт (чтобы пользователь мог откатить эти изменения), как следствие, Гринзона может быть усечена, Курсор Проигрывателя может отступить назад и запустить автоматическое добегание.</span></p>
<p class="rvps10"><span class="rvts22">Возвращает номер кадра, на котором были обнаружен первый факт изменения Ввода.</span></p>
@ -302,7 +302,7 @@
<p class="rvps10"><span class="rvts22">Если Тасэдитор не запущен, ничего не производится.</span></p>
<p class="rvps10"><a name="clearinputchanges"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps9"><span class="rvts72">taseditor.clearinputchanges()</span></p>
<p class="rvps9"><span class="rvts73">taseditor.clearinputchanges()</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Очищает список накопившихся запросов, позволяя отменить их до вызова </span><span class="rvts21">applyinputchanges()</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Рекомендуется вызывать эту функцию перед формированием нового списка запросов, чтобы быть уверенным, что в список не попадут какие-нибудь старые запросы.</span></p>

View File

@ -62,46 +62,46 @@
<p class="rvps10"><span class="rvts51">Все способы навигации по мувику:</span></p>
<p class="rvps10"><span class="rvts57"><br/></span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><a class="rvts60" href="Navigation.html#scrolling-piano-roll">Скроллинг Piano Roll</a></li>
<li class="rvps15"><a class="rvts61" href="Navigation.html#scrolling-piano-roll">Скроллинг Piano Roll</a></li>
</ul>
<ol style="text-indent: 32px; margin-left: 20px; list-style-position: inside;">
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#scrollbar-drag">Перетаскивание скроллбара</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#wheel">Скроллинг колесом</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#jumping-by-pages">Листание страниц</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#jump-home-end">Прыжок в начало/конец мувика</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#scroll-to-playback">Прыжок к Курсору Проигрывателя</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#scroll-to-selection">Прыжок к Курсору Выделения</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#scroll-to-playback-marker">Прыжок к Маркеру над Курсором Проигрывателя</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#scroll-to-selection-marker">Прыжок к Маркеру над Курсором Выделения</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#scrollbar-drag">Перетаскивание скроллбара</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#wheel">Скроллинг колесом</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#jumping-by-pages">Листание страниц</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#jump-home-end">Прыжок в начало/конец мувика</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#scroll-to-playback">Прыжок к Курсору Проигрывателя</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#scroll-to-selection">Прыжок к Курсору Выделения</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#scroll-to-playback-marker">Прыжок к Маркеру над Курсором Проигрывателя</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#scroll-to-selection-marker">Прыжок к Маркеру над Курсором Выделения</a></li>
</ol>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><a class="rvts61" href="Navigation.html#playback-cursor">Навигация Курсором Проигрывателя</a></li>
<li class="rvps15"><a class="rvts62" href="Navigation.html#playback-cursor">Навигация Курсором Проигрывателя</a></li>
</ul>
<ol style="text-indent: 32px; margin-left: 20px; list-style-position: inside;">
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#frame-advance-rewind">Покадровое перемещение</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#rewinding-by-wheel">Перемотка колесом мыши</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts64" href="Navigation.html#drag-playback">Перетаскивание Курсора Проигрывателя</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#playback-jumping-markers">Прыжки по Маркерам</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#jump-bookmark">Прыжки по Закладкам</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#playback-home-end">Прыжок в начало/конец мувика</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#frame-advance-rewind">Покадровое перемещение</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#rewinding-by-wheel">Перемотка колесом мыши</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts65" href="Navigation.html#drag-playback">Перетаскивание Курсора Проигрывателя</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#playback-jumping-markers">Прыжки по Маркерам</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#jump-bookmark">Прыжки по Закладкам</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#playback-home-end">Прыжок в начало/конец мувика</a></li>
</ol>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><a class="rvts63" href="Navigation.html#selection-cursor">Навигация Курсором Выделения</a></li>
<li class="rvps15"><a class="rvts64" href="Navigation.html#selection-cursor">Навигация Курсором Выделения</a></li>
</ul>
<ol style="text-indent: 32px; margin-left: 20px; list-style-position: inside;">
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#selection-up-down">Смещение Выделения стрелками</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#selection-home-end">Смещение Выделения в начало/конец мувика</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#selection-jumping-markers">Прыжки по Маркерам</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#selection-history">Откаты истории Выделения</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#reselect-clipboard">Прыжок на место последнего копирования в Буфер Обмена</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#selection-up-down">Смещение Выделения стрелками</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#selection-home-end">Смещение Выделения в начало/конец мувика</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#selection-jumping-markers">Прыжки по Маркерам</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#selection-history">Откаты истории Выделения</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#reselect-clipboard">Прыжок на место последнего копирования в Буфер Обмена</a></li>
</ol>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><a class="rvts62" href="Navigation.html#special">Особые способы навигации</a></li>
<li class="rvps15"><a class="rvts63" href="Navigation.html#special">Особые способы навигации</a></li>
</ul>
<ol style="text-indent: 32px; margin-left: 20px; list-style-position: inside;">
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#crossing-gaps">Пересечение промежутков во Вводе и Маркерах</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#find-note">Прыжок на Маркер с искомой Заметкой</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts60" href="Navigation.html#similar-note">Прыжок на Маркер с похожей Заметкой</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#crossing-gaps">Пересечение промежутков во Вводе и Маркерах</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#find-note">Прыжок на Маркер с искомой Заметкой</a></li>
<li class="rvps15" style="text-indent: 32px"><a class="rvts61" href="Navigation.html#similar-note">Прыжок на Маркер с похожей Заметкой</a></li>
</ol>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
@ -314,7 +314,7 @@
<span class="rvts22"><br/></span></p>
<p><span class="rvts58">Особые способы навигации</span></p>
<p><a name="crossing-gaps"></a>
<span class="rvts65"><br/></span></p>
<span class="rvts66"><br/></span></p>
<p class="rvps10"><span class="rvts23">1. Пересечение промежутков во Вводе и Маркерах</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Если навести курсор мыши на любую клетку </span><span class="rvts22">Ввод</span><span class="rvts22">а, зажать </span><span class="rvts34">Alt</span><span class="rvts22"> и прокрутить колесо мыши вверх, Piano Roll проскроллируется вверх таким образом, чтобы курсор мыши указывал на вышестоящее нажатие указанной кнопки либо на первое встреченное "отсутствие нажатия" указанной кнопки. Если прокрутить колесо вниз, Piano Roll проскроллируется вниз таким образом, чтобы курсор мыши указывал на нижестоящее нажатие указанной кнопки либо на первое встреченное "отсутствие нажатия" указанной кнопки.</span></p>

View File

@ -60,133 +60,133 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<div class="rvps21"><table width="420" border="1" cellpadding="0" cellspacing="0" style="border-color: #000000 #ffffff #ffffff #000000; border-style: solid;">
<tr valign="middle">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #0000ff; width: 132px; height: 10px;"><p class="rvps5"><span class="rvts70">Изменение Ввода</span></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #0000ff; width: 132px; height: 10px;"><p class="rvps5"><span class="rvts71">Изменение Ввода</span></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #0000ff; width: 150px; height: 10px;"><p class="rvps5"><span class="rvts70">Изменение Маркеров</span></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #0000ff; width: 150px; height: 10px;"><p class="rvps5"><span class="rvts71">Изменение Маркеров</span></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #0000ff; width: 124px; height: 10px;"><p class="rvps5"><span class="rvts70">Прочее</span></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #0000ff; width: 124px; height: 10px;"><p class="rvps5"><span class="rvts71">Прочее</span></p>
</td>
</tr>
<tr valign="middle">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Set">Set</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Set">Set</a></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#MarkerSet">Marker Set</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#MarkerSet">Marker Set</a></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ede4e4; width: 124px; height: 10px;"><p class="rvps5"><span class="rvts69">Initialization</span></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ede4e4; width: 124px; height: 10px;"><p class="rvps5"><span class="rvts70">Initialization</span></p>
</td>
</tr>
<tr valign="middle">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Unset">Unset</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Unset">Unset</a></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#MarkerRemove">Marker Remove</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#MarkerRemove">Marker Remove</a></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ede4e4; width: 124px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Undefined">Undefined</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ede4e4; width: 124px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Undefined">Undefined</a></p>
</td>
</tr>
<tr valign="middle">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Pattern">Pattern</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Pattern">Pattern</a></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#MarkerPattern">Marker Pattern</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#MarkerPattern">Marker Pattern</a></p>
</td>
<td rowspan="13" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 124px;"><p class="rvps5"><span class="rvts68"><br/></span></p>
<td rowspan="13" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 124px;"><p class="rvps5"><span class="rvts69"><br/></span></p>
</td>
</tr>
<tr valign="middle">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Insert">Insert</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Insert">Insert</a></p>
</td>
</tr>
<tr valign="middle">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#InsertNum">Insert#</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#InsertNum">Insert#</a></p>
</td>
</tr>
<tr valign="middle">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Delete">Delete</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Delete">Delete</a></p>
</td>
</tr>
<tr valign="middle">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Truncate">Truncate</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Truncate">Truncate</a></p>
</td>
</tr>
<tr valign="top">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#AdjustLag">AdjustLag</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#AdjustLag">AdjustLag</a></p>
</td>
</tr>
<tr valign="middle">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Clear">Clear</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Clear">Clear</a></p>
</td>
<td rowspan="3" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 150px; height: 10px;"><p class="rvps5"><span class="rvts68"><br/></span></p>
<td rowspan="3" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 150px; height: 10px;"><p class="rvps5"><span class="rvts69"><br/></span></p>
</td>
</tr>
<tr valign="middle">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Cut">Cut</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Cut">Cut</a></p>
</td>
</tr>
<tr valign="middle">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Paste">Paste</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Paste">Paste</a></p>
</td>
</tr>
<tr valign="top">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#PasteInsert">PasteInsert</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#PasteInsert">PasteInsert</a></p>
</td>
</tr>
<tr valign="top">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Clone">Clone</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Clone">Clone</a></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Record">Record</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Record">Record</a></p>
</td>
<td rowspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 150px; height: 10px;"><p class="rvps5"><span class="rvts68"><br/></span></p>
<td rowspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 150px; height: 10px;"><p class="rvps5"><span class="rvts69"><br/></span></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Import">Import</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ccf8f8; width: 132px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Import">Import</a></p>
</td>
</tr>
<tr valign="top">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Branch">Branch</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Branch">Branch</a></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ede4e4; width: 124px;"><p class="rvps5"><a class="rvts69" href="Operations.html#Bookmark">Bookmark</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #ede4e4; width: 124px;"><p class="rvps5"><a class="rvts70" href="Operations.html#Bookmark">Bookmark</a></p>
</td>
</tr>
<tr valign="top">
<td rowspan="8" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 132px; height: 10px;"><p class="rvps5"><span class="rvts68"><br/></span></p>
<td rowspan="8" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 132px; height: 10px;"><p class="rvps5"><span class="rvts69"><br/></span></p>
</td>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#MarkerBranch">Marker Branch</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#MarkerBranch">Marker Branch</a></p>
</td>
<td rowspan="9" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; width: 124px;"><p class="rvps5"><span class="rvts6"><br/></span></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#MarkerRename">Marker Rename</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#MarkerRename">Marker Rename</a></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts71" href="Operations.html#MarkerDrag">Marker Drag</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts72" href="Operations.html#MarkerDrag">Marker Drag</a></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts71" href="Operations.html#MarkerSwap">Marker Swap</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts72" href="Operations.html#MarkerSwap">Marker Swap</a></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#MarkerShift">Marker Shift</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#MarkerShift">Marker Shift</a></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#LUAMarkerSet">LUA Marker Set</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#LUAMarkerSet">LUA Marker Set</a></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#LUAMarkerRemove">LUA Marker Remove</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#LUAMarkerRemove">LUA Marker Remove</a></p>
</td>
</tr>
<tr valign="top">
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#LUAMarkerRename">LUA Marker Rename</a></p>
<td valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #f2f2c8; width: 150px; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#LUAMarkerRename">LUA Marker Rename</a></p>
</td>
</tr>
<tr valign="top">
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts69" href="Operations.html#LUAChange">LUA Change</a></p>
<td colspan="2" valign="middle" style="border-color : #ffffff #000000 #000000 #ffffff; border-style: solid; background-color: #d3f8d6; height: 10px;"><p class="rvps5"><a class="rvts70" href="Operations.html#LUAChange">LUA Change</a></p>
</td>
</tr>
</table>
@ -267,7 +267,7 @@
<p class="rvps10"><span class="rvts43">Гринзона усекается: после первого же кадра, где изменился </span><span class="rvts22">Ввод</span><span class="rvts43">.</span></p>
<p class="rvps10"><span class="rvts43"><br/></span></p>
<p class="rvps10"><a name="Insert"></a>
<span class="rvts67"><br/></span></p>
<span class="rvts68"><br/></span></p>
<p class="rvps11"><span class="rvts23">Insert</span></p>
<p class="rvps10"><span class="rvts47">Категории: изменение Ввода, изменение Маркеров</span></p>
<p class="rvps10"><span class="rvts22">Запись создаётся при вставке одного или нескольких пустых кадров посреди мувика, что приводит к сдвиганию </span><span class="rvts22">Ввод</span><span class="rvts22">а (и Маркеров, если они привязаны к </span><span class="rvts22">Ввод</span><span class="rvts22">у) вниз.</span></p>
@ -334,7 +334,7 @@
<span class="rvts43"><br/></span></p>
<p class="rvps11"><span class="rvts23">AdjustLag</span></p>
<p class="rvps10"><span class="rvts47">Категории: изменение Ввода, изменение Маркеров</span></p>
<p class="rvps10"><span class="rvts22">Запись создаётся при автоматическом сдвигании </span><span class="rvts22">Ввод</span><span class="rvts22">а (и Маркеров, если они привязаны к </span><span class="rvts22">Ввод</span><span class="rvts22">у)</span><span class="rvts22"> во время проигрывания мувика с включенной галочкой "Auto-adjust Input due to lag".</span></p>
<p class="rvps10"><span class="rvts22">Запись создаётся при автоматическом сдвигании </span><span class="rvts22">Ввод</span><span class="rvts22">а (и Маркеров, если они привязаны к </span><span class="rvts22">Ввод</span><span class="rvts22">у)</span><span class="rvts22"> во время проигрывания мувика с включенной настройкой "Auto-adjust Input according to lag".</span></p>
<p class="rvps10"><span class="rvts22">В текст записи добавляется число, обозначающее количество вставленных или удалённых кадров.</span></p>
<p class="rvps10"><span class="rvts22">Варианты:</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">

View File

@ -61,7 +61,7 @@
<p class="rvps10"><span class="rvts22">Во время эмуляции содержимое Piano Roll заполняется информацией о пройденных кадрах. Каждая строка Списка Piano Roll отвечает за один кадр. Порядковый номер этого кадра указан в начале каждой строки, нумерация идёт сверху вниз. Когда экранных размеров не хватает для отображения всех кадров мувика, у Списка появляется вертикальный скроллбар.</span></p>
<p class="rvps10"><span class="rvts22">По цвету каждой строки можно узнать информацию о соответствующем кадре игрового процесса:</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps10"><span class="rvts22">Бледные (почти белые) строки означают, что эти кадры мувика не содержатся в Гринзоне. Обычно это значит, что эмулятор ещё не доходил в игре до данных кадров мувика и ничего не знает о происходящем в игре на этих кадрах. Например, если бы вы загрузите в Тасэдитор готовый мувик, в Piano Roll будут сразу отображаться все кадры этого мувика, но до запуска проигрывания они будут белёсыми. На верхней картинке эти строки начинаются с кадра 24, потому что Гринзона заканчивается на кадре 23.</span></li>
<li class="rvps10"><span class="rvts22">Бледные (почти белые) строки означают, что эти кадры мувика не содержатся в Гринзоне. Обычно это значит, что эмулятор ещё не доходил в игре до данных кадров мувика и ничего не знает о происходящем в игре на этих кадрах. Например, если бы вы загрузите в Тасэдитор готовый мувик, в Piano Roll будут сразу отображаться все кадры этого мувика, но до запуска проигрывания они будут белёсыми. На верхней картинке эти строки начинаются с кадра 21, потому что Гринзона заканчивается на кадре 20.</span></li>
<li class="rvps10"><span class="rvts22">Зелёные и красные строки означают, что эти кадры содержатся в Гринзоне, эмулятор уже проиграл эту часть мувика, и вы уже видели на экране FCEUX, что именно происходит в игре в этих кадрах. Красным цветом отмечены кадры с лагом, в остальном же разницы между красными и зелёными строками нет.</span></li>
<li class="rvps10"><span class="rvts22">Голубая строка (на картинке это 18-й кадр) показывает текущий кадр эмуляции. События этого кадра отображаются на экране FCEUX в данный момент времени. Эта строка всегда в единственном экземпляре. В дальнейшем эту строчку мы будем называть </span><span class="rvts26">Курсор Проигрывателя</span><span class="rvts22"> (Playback cursor). Во время паузы этот курсор стоит на одном кадре, а когда игра эмулируется, курсор бежит вниз, оставляя за собой след из зелёных и красных кадров Гринзоны. Вы можете ставить Курсор Проигрывателя на любой кадр мувика, чтобы узнать события игры в этом кадре. Для этого щёлкните левой кнопкой мыши по желаемой строчке в самом левом столбце Piano Roll (по которому перемещается голубая треугольная стрелка) голубая стрелка перепрыгнет на эту строку вместе с Курсором Проигрывателя, а содержимое экрана FCEUX обновится, отобразив состояние игры на этом кадре. Если теперь не отпускать левую кнопку мыши, можно свободно перетаскивать голубой курсор вверх и вниз.</span></li>
<li class="rvps10"><span class="rvts22">Синяя строка выделенный участок мувика. Цвет выделения может быть и другим, это зависит от ваших настроек Windows (от выбранной Визуальной темы). Строки Piano Roll выделяются при щелчках по ним левой кнопкой мыши. На картинке показано выделение 28-го кадра, но при необходимости можно выделить любой другой, и даже несколько строк одновременно. Для выделения региона нужно щёлкнуть по номеру кадра и, не отпуская кнопку, переместить мышь вверх или вниз, растягивая Выделение как угодно. </span><span class="rvts37">Замечание:</span><span class="rvts22"> строки Piano Roll выделяются не только при щелчках по номерам кадров, но также при щелчках по </span><span class="rvts22">Ввод</span><span class="rvts22">у (то есть по любому столбцу справа от колонки с номерами кадров). В дальнейшем мы будем называть все синие строки </span><span class="rvts26">Выделением</span><span class="rvts22"> (Selection), а в случае, когда выделена только одна строчка, будем называть её </span><span class="rvts26">Курсором Выделения</span><span class="rvts22"> (Selection cursor). В отличие от Курсора Проигрывателя, Курсор Выделения не привязан к состоянию эмулируемой игры. Чтобы полностью убрать Выделение, можно щёлкнуть правой кнопкой мыши по номеру выделенного кадра и в появившемся контекстном меню выбрать пункт "Deselect". Впрочем, обычно нет нужды убирать оставшееся от прошлой операции Выделение, так как при следующей операции над мувиком оно всё равно появится в новом месте.</span></li>
@ -107,7 +107,7 @@
<p class="rvps10"><span class="rvts22">Узкая колонка перед колонкой с номерами кадров служит не только для перетаскивания Курсора Проигрывателя. В ней ещё отображаются информационные иконки. Г</span><span class="rvts22">олубая стрелка в этом столбце всегда указывает на кадр, где находится Курсор Проигрывателя. Зелёная стрелка показывает место, где находился Курсор Проигрывателя до того, как над ним изменился </span><span class="rvts22">Ввод.</span><span class="rvts22"> А ц</span><span class="rvts22">ифровыми карточками в этой колонке обозначаются Закладки, о них будет рассказано чуть позже.</span></p>
<p class="rvps10"><a name="markers"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Жёлтые прямоугольники под номером некоторых кадров (на картинке это номера 12 и 23) это </span><span class="rvts26">Маркеры</span><span class="rvts22">. Помимо жёлтого цвета о наличии Маркера на этих кадрах говорит и широкий шрифт, которым напечатан номер кадра.</span></p>
<p class="rvps10"><span class="rvts22">Жёлтые прямоугольники под номером некоторых кадров (на картинке это номера 12 и 22) это </span><span class="rvts26">Маркеры</span><span class="rvts22">. Помимо жёлтого цвета о наличии Маркера на этих кадрах говорит и широкий шрифт, которым напечатан номер кадра.</span></p>
<p class="rvps10"><span class="rvts22">Маркеры предназначены для упрощения навигации по мувику, а также для самоорганизации ТАСера. Вы сами выбираете принцип их использования: можете ставить их на начало каждого уровня игры, а можете ставить и на каждый прыжок, выстрел или другое игровое событие, которое имеет свой кадр начала и кадр окончания. С помощью установки Маркеров вы логически разбиваете мувик на блоки, и потом вы сможете мгновенно перемещаться по мувику не только от кадра к кадру, но и от блока к блоку.</span></p>
<p class="rvps10"><span class="rvts22">Структуризация помогает держать в голове более чёткий образ всего мувика. Такой мысленный образ формируется в голове у каждого ТАСера, но обычно он весьма расплывчатый то есть ТАСер помнит примерную последовательность действий, но не помнит детали (зачастую это и не требуется). Когда ТАСер выключает эмулятор, образ начинает постепенно забываться, становится всё более расплывчатым. Поэтому при следующем включении обычно требуется просмотреть текущий мувик с начала, чтобы освежить воспоминания. Иногда это требуется делать даже чаще в зависимости от степени расплывчатости образа. Поэтому рекомендуется закреплять этот образ расстановкой реальных Маркеров.</span></p>
<p class="rvps10"><span class="rvts22">Маркер может быть установлен на любом кадре мувика. В отличие от </span><span class="rvts22">Ввод</span><span class="rvts22">а, Маркеры не влияют на события игры. </span><span class="rvts22">Есть 3 способа для установки Маркеров:</span></p>

View File

@ -160,10 +160,16 @@
<p class="rvps10"><span class="rvts22">Учитывает лаг при использовании шаблонов (</span><span class="rvts34">Alt</span><span class="rvts22"> + щелчки по </span><span class="rvts22">Ввод</span><span class="rvts22">у или по Заголовку Piano Roll).</span></p>
<p class="rvps10"><span class="rvts22">Если галочка снята, при использовании шаблона появится последовательность нажатий и отпусканий, в точности соответствующая выбранному шаблону (например, для шаблона "Alternating (1010...)" нажатия будут строго чередоваться с отпусканиями).</span></p>
<p class="rvps10"><span class="rvts22">Если галочка установлена, при использовании шаблона будет учитываться информация о лаге из Гринзоны, и последовательность нажатий/отпусканий в Списке Piano Roll может визуально отличаться от шаблона (на лаговых кадрах будут дополнительные пропуски, которых не было в шаблоне).</span></p>
<p class="rvps10"><span class="rvts22">Красные строки Гринзоны обозначают, что игра не опрашивает </span><span class="rvts22">Ввод</span><span class="rvts22"> в этих кадрах, поэтому нет смысла устанавливать в них нажатия. Более того, так как эти кадры считаются "потерянными", нужно пропускать их для правильного подсчёта пустых расстояний между нажатиями. Например, если между двумя нажатиями должно пройти ровно три пустых кадра (шаблон вида "10001"), но посреди участка оказался один кадр лага, то требуется добавить ещё один пустой кадр (100</span><span class="rvts26">0</span><span class="rvts22">01, т.е. четыре пустых кадра посередине).</span></p>
<p class="rvps10"><span class="rvts22">Для этого нужно выделить участок внутри Гринзоны и сделать </span><span class="rvts34">Alt</span><span class="rvts22"> + щелчок по нужной кнопке в Заголовке Piano Roll. В выделенной области появится последовательность нажатий и отпусканий, которая визуально может отличаться от выбранного шаблона, но при проигрывании мувика она будет воспринята игрой именно как последовательность по этому шаблону.</span></p>
<p class="rvps10"><span class="rvts22">Если после изменения </span><span class="rvts22">Ввод</span><span class="rvts22">а лаговые кадры появились на других местах посреди шаблона, нужно восстановить выделение на тех же кадрах (</span><span class="rvts34">Ctrl + Q</span><span class="rvts22">) и сделать ещё один </span><span class="rvts34">Alt</span><span class="rvts22"> + щелчок по этой же кнопке в Заголовке Piano Roll.</span></p>
<p class="rvps10"><span class="rvts22">Так как лаговые кадры считаются потерянными для игры, нужно пропускать их для правильного подсчёта пустых расстояний между нажатиями. Например, если между двумя нажатиями должно пройти ровно три пустых кадра (шаблон вида "10001"), но посреди участка оказался один кадр лага, то требуется добавить ещё один пустой кадр (100</span><span class="rvts26">0</span><span class="rvts22">01, т.е. четыре пустых кадра посередине).</span></p>
<p class="rvps10"><span class="rvts22">По умолчанию эта галочка установлена. Рекомендуется оставить её включенной, так как в большинстве случаев ТАСеру нужно ориентироваться не на визуальное отображение последовательности нажатий в Piano Roll, а на то, как воспринимает </span><span class="rvts22">Ввод сама</span><span class="rvts22"> игра.</span></p>
<p class="rvps10"><a name="AutoAdjustInputAccordingtoLag"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Config -&gt; Auto-adjust Input according to Lag</span></p>
<p class="rvps10"><span class="rvts22">Включает автоматическую подгонку Ввода в соответствии с изменениями лага на просматриваемом участке.</span></p>
<p class="rvps10"><span class="rvts22">Для игры имеет значение только Ввод на зелёных строках Piano Roll. На красных строках нет смысла ставить какие-либо нажатия, так как в кадрах с лагом игра не опрашивает Ввод, для игрового движка эти кадры просто не существуют. Когда вы редактируете Ввод, вы изменяете ход игровых событий, и лаг тоже может проявляться уже в других кадрах, где его раньше не было. Если в этих кадрах ранее был нарисован Ввод, необходимо передвинуть этот Ввод на кадры без лага, чтобы он по-прежнему поступал в игру. Чтобы не передвигать Ввод каждый раз вручную, достаточно установить эту галочку, тогда Тасэдитор будет вставлять на место образующихся лаговых кадров пустые строки, тем самым передвигая Ввод вниз. А когда в результате изменений игровых событий лаговые кадры перестают появляться, Тасэдитор будет удалять эти кадры из мувика, тем самым передвигая Ввод вверх.</span></p>
<p class="rvps10"><span class="rvts22">Операции по автоподгонке производятся Тасэдитором только во время проигрывания участка, когда Курсор Проигрывателя бежит по бледным строкам Piano Roll, поочерёдно занося эти новые кадры в Гринзону. Эти операции попадают в Журнал Истории, и их можно откатывать, если возникнет такая необходимость.</span></p>
<p class="rvps10"><span class="rvts22">По умолчанию эта галочка установлена. </span><span class="rvts22">Рекомендуется не выключать эту функцию, чтобы повысить удобство работы в Тасэдиторе, особенно при ТАСинге игр </span><span class="rvts22">с часто проявляющимся лагом.</span></p>
<p class="rvps10"><span class="rvts22">Эта функция успешно работает при любом методе ТАСинга.</span></p>
<p class="rvps10"><a name="DrawInputbydragging"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts23">Config -&gt; Draw Input by dragging</span></p>

View File

@ -71,23 +71,23 @@
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Критерием оптимальности может быть:</span></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">наличие/отсутствие требуемого события в новом и старом варианте </span><span class="rvts74">(bool)</span></li>
<li class="rvps15"><span class="rvts22">время наступления целевого события в новом и старом варианте </span><span class="rvts74">(int)</span></li>
<li class="rvps15"><span class="rvts22">состояние игры на одном и том же кадре нового и старого мувика </span><span class="rvts74">(string)</span></li>
<li class="rvps15"><span class="rvts22">наличие/отсутствие требуемого события в новом и старом варианте </span><span class="rvts75">(bool)</span></li>
<li class="rvps15"><span class="rvts22">время наступления целевого события в новом и старом варианте </span><span class="rvts75">(int)</span></li>
<li class="rvps15"><span class="rvts22">состояние игры на одном и том же кадре нового и старого мувика </span><span class="rvts75">(string)</span></li>
</ul>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Соответственно, при сравнении двух вариантов требуется делать одно из трёх:</span></p>
<p class="rvps15"><a class="rvts28" href="SpeedrunnersSynopsis.html#CompareEvent">1. Сравнивать наличие/отсутствие требуемого события.</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareEvent-A">А. По памяти</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareEvent-B">B. С помощью Закладок</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareEvent-A">А. По памяти</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareEvent-B">B. С помощью Закладок</a></p>
<p class="rvps15"><a class="rvts28" href="SpeedrunnersSynopsis.html#CompareTime">2. Сравнивать время наступления целевого события.</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareTime-A">A. По памяти</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareTime-B">B. С помощью зелёной стрелки</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareTime-C">C. С помощью Маркера</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareTime-D">D. С помощью Закладок</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareTime-A">A. По памяти</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareTime-B">B. С помощью зелёной стрелки</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareTime-C">C. С помощью Маркера</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareTime-D">D. С помощью Закладок</a></p>
<p class="rvps15"><a class="rvts28" href="SpeedrunnersSynopsis.html#CompareState">3. Сравнивать состояние игры на одном и том же кадре</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareState-A">А. По памяти</a></p>
<p class="rvps27"><a class="rvts60" href="SpeedrunnersSynopsis.html#CompareState-B">B. С помощью Закладок</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareState-A">А. По памяти</a></p>
<p class="rvps27"><a class="rvts61" href="SpeedrunnersSynopsis.html#CompareState-B">B. С помощью Закладок</a></p>
<p class="rvps10"><a name="CompareEvent"></a>
<span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">1. Сравнивать наличие/отсутствие требуемого события.</span></p>
@ -95,7 +95,7 @@
<p class="rvps10"><span class="rvts22">Перебор вариантов проходит до первого успешного варианта, либо пока не надоест.</span></p>
<p class="rvps10"><span class="rvts22">Аналогия с программированием: сравнение двух Boolean (переменная логического типа), сравнение двух массивов Boolean.</span></p>
<p class="rvps10"><a name="CompareEvent-A"></a>
<span class="rvts22">A. Для большинства участков подходит простое запоминание того факта, что требуемого события пока не удалось добиться. Пример: </span><a class="rvts28" href="SemiautomaticTASing.html#FindStartButtonPress">нажатие кнопки </a><a class="rvts75" href="SemiautomaticTASing.html#FindStartButtonPress">Start</a><span class="rvts22">.</span></p>
<span class="rvts22">A. Для большинства участков подходит простое запоминание того факта, что требуемого события пока не удалось добиться. Пример: </span><a class="rvts28" href="SemiautomaticTASing.html#FindStartButtonPress">нажатие кнопки </a><a class="rvts76" href="SemiautomaticTASing.html#FindStartButtonPress">Start</a><span class="rvts22">.</span></p>
<p class="rvps10"><a name="CompareEvent-B"></a>
<span class="rvts22">B. Если требуемое событие является комплексным (например, требуется одновременно подстрелить нескольких врагов), рекомендуется в процессе перебора вариантов сохранять в Закладки те варианты, где требуемое событие выполнилось хотя бы частично (например, игрок подстрелил одновременно двух врагов из трёх). Если в конце концов требуемого события так и не удастся добиться, может сгодиться и такой частичный успех.</span></p>
<p class="rvps10"><a name="CompareTime"></a>

View File

@ -78,7 +78,7 @@
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&gt;</span><span class="rvts22">" (шаг вперёд, Advance 1 frame) перемещает голубой курсор на один кадр ниже, при необходимости заставляя FCEUX эмулировать 1 кадр игры. По этой кнопке можно не только щёлкать, но и зажимать её на некоторое время, чтобы сделать несколько шагов подряд. </span><span class="rvts22">У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Shift + Вниз</span><span class="rvts22">. Если у вашей мышки есть колесо, проще зажимать правую кнопку и прокручивать колесо на одно деление вниз вместо использования кнопки </span><span class="rvts22">"</span><span class="rvts32">&gt;</span><span class="rvts22">".</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&lt;</span><span class="rvts22">" (шаг назад, Rewind 1 frame) перемещает голубой курсор на один кадр выше, а на экране FCEUX отражаются события предыдущего кадра игры. Эту кнопку тоже можно зажимать, чтобы сделать подряд несколько шагов назад. Для этой кнопки есть свой хоткей </span><span class="rvts27">Frame Rewind</span><span class="rvts22"> (по умолчанию клавиша </span><span class="rvts27">Backspace</span><span class="rvts22">), а также</span><span class="rvts22"> аналог на клавиатуре: </span><span class="rvts34">Shift + Вверх</span><span class="rvts22">. Если у вашей мышки есть колесо, проще зажимать правую кнопку и прокручивать колесо на одно деление вверх вместо использования кнопки </span><span class="rvts22">"</span><span class="rvts32">&lt;</span><span class="rvts22">".</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" (быстрая перемотка назад) тоже перемещает Курсор Проигрывателя (а значит и состояние игры) назад, но не на один кадр, а сразу на множество кадров. Эта кнопка перемещает голубой курсор прямо на кадр, на котором установлен вышестоящий Маркер. В примере с верхней картинкой при нажатии "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" голубой курсор прыгнет на 12-й кадр (где установлен Маркер 1). Благодаря этой кнопке можно очень быстро возвращаться к началу редактируемого участка и вообще к любому ранее пройденному моменту. У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Shift + Page Up</span><span class="rvts22">. Эту кнопку также можно зажимать голубой курсор будет очень быстро прыгать по Маркерам всё выше и выше по Piano Roll, и, глядя на меняющееся изображение на экране FCEUX, вы сможете быстро найти нужный фрагмент.</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" (быстрая перемотка вперёд) прыгает Курсором Проигрывателя по Маркерам вперёд. В примере с верхней картинкой при нажатии "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" голубой курсор прыгнет на 23-й кадр (где установлен Маркер 2). Благодаря этой кнопке можно быстро проматывать события мувика вперёд. Однако в случае, если следующий Маркер находится вне Гринзоны, эмулятору потребуется какое-то время для эмуляции неизведанных кадров, поэтому прыжок голубого курсора может быть не мгновенным, придётся чуть-чуть подождать. У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Shift + Page Down</span><span class="rvts22">. Эту кнопку также можно зажимать.</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" (быстрая перемотка вперёд) прыгает Курсором Проигрывателя по Маркерам вперёд. В примере с верхней картинкой при нажатии "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" голубой курсор прыгнет на 22-й кадр (где установлен Маркер 2). Благодаря этой кнопке можно быстро проматывать события мувика вперёд. Однако в случае, если следующий Маркер находится вне Гринзоны, эмулятору потребуется какое-то время для эмуляции неизведанных кадров, поэтому прыжок голубого курсора может быть не мгновенным, придётся чуть-чуть подождать. У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Shift + Page Down</span><span class="rvts22">. Эту кнопку также можно зажимать.</span></p>
<p class="rvps10"><span class="rvts22">В качестве эксперимента попробуйте сделать мувик из тысячи кадров и поставить пару десятков Маркеров, по одному через каждые 30-50 кадров. Затем зажмите </span><span class="rvts34">Shift</span><span class="rvts22"> и, нажимая клавиши </span><span class="rvts26">Page Up</span><span class="rvts22"> или </span><span class="rvts26">Page Down</span><span class="rvts22">, почувствуйте все удобства быстрой перемотки. </span><span class="rvts22">Помимо клавиш </span><span class="rvts26">Page Up</span><span class="rvts22"> и </span><span class="rvts26">Page Down </span><span class="rvts22">можно также вращать колесо мыши, зажав клавишу </span><span class="rvts34">Shift</span><span class="rvts22">.</span></p>
<p class="rvps10"><a name="progressbar"></a>
<span class="rvts22"><br/></span></p>
@ -98,11 +98,6 @@
<p class="rvps10"><span class="rvts22">Галочка "</span><span class="rvts26">Auto-restore last position"</span><span class="rvts22"> заставляет Проигрыватель автоматически запускать добегание после вынужденного отступления голубого курсора. Каждый раз, когда вы меняете </span><span class="rvts22">Ввод</span><span class="rvts22">, Гринзона усекается после кадра изменения, и Курсор Проигрывателя отступает назад вместе с ней, забывая о событиях, ставших не актуальными после изменения Ввода. С помощью галочки автовосстановления позиции вы сможете сразу увидеть </span><span class="rvts26">новые</span><span class="rvts22"> события на этих кадрах. Когда галочка установлена, после каждого изменения </span><span class="rvts22">Ввод</span><span class="rvts22">а Проигрыватель будет заново эмулировать изменившийся участок, позволяя ТАСеру оперативно сравнивать различные варианты развития игровых событий.</span></p>
<p class="rvps10"><span class="rvts22">Благодаря автоматическому восстановлению позиции ТАСер может сконцентрировать внимание только на редактировании </span><span class="rvts22">Ввод</span><span class="rvts22">а и в кратчайшие сроки перебрать множество вариантов действий на одном участке. Подробнее об этом методе ТАСинга будет рассказано позже.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Галочка "</span><span class="rvts26">Auto-adjust Input due to lag"</span><span class="rvts22"> включает автоматическую подгонку Ввода в соответствии с изменениями лага на просматриваемом участке.</span></p>
<p class="rvps10"><span class="rvts22">Для игры имеет значение только Ввод на зелёных строках Piano Roll. На красных строках нет смысла ставить какие-либо нажатия, так как в кадрах с лагом игра не опрашивает Ввод, для игрового движка эти кадры просто не существуют. Когда вы редактируете Ввод, вы изменяете ход игровых событий, и лаг тоже может проявляться уже в других кадрах, где его раньше не было. Если в этих кадрах ранее был нарисован Ввод, необходимо передвинуть этот Ввод на кадр без лага. Чтобы не делать это каждый раз вручную, достаточно установить эту галочку, тогда Тасэдитор будет вставлять на место образующихся лаговых кадров пустые строки, тем самым передвигая Ввод.</span></p>
<p class="rvps10"><span class="rvts22">Операции по автоподгонке производятся Тасэдитором только во время проигрывания участка, когда Курсор Проигрывателя бежит по бледным строкам Piano Roll, поочерёдно занося эти новые кадры в Гринзону. Эти операции также можно откатить с помощью </span><span class="rvts34">Ctrl + Z</span><span class="rvts22">, однако не рекомендуется это делать при установленной галочке "Auto-restore last position", так как сразу после отката Проигрыватель запустит добегание, и авто-подгонка может произойти вновь.</span></p>
<p class="rvps10"><span class="rvts22">Игры с часто проявляющимся лагом имеет смысл ТАСить с постоянно включенной автоподгонкой Ввода. Эта функция успешно работает при любом методе ТАСинга.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
<p class="rvps2"><a name="recorder"></a>
<span class="rvts22"><br/></span></p>
@ -229,7 +224,9 @@
<p class="rvps10"><img align="right" alt="" style="padding : 6px;" src="lib/toolbox-history.png"/></p>
<p class="rvps10"><span class="rvts22">Под разделом Закладок располагается раздел </span><span class="rvts26">Истории</span><span class="rvts22"> (History).</span></p>
<p class="rvps10"><span class="rvts22">В этом списке Тасэдитор ведёт строгий учёт всех проделанных операций в текущем проекте. Каждое действие по изменению </span><span class="rvts22">Ввод</span><span class="rvts22">а, Маркеров или Закладок заносится в журнал, который сохраняется в файл проекта вместе с остальными данными. </span><span class="rvts22">Полный перечень всех возможных типов записей в Журнал Истории вы можете прочитать в </span><a class="rvts28" href="Operations.html">Справочнике</a><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Благодаря Журналу Истории вы можете использовать Откат (Undo) и Повтор (Redo) клавишами </span><span class="rvts34">Ctrl + Z</span><span class="rvts22"> и </span><span class="rvts34">Ctrl + Y</span><span class="rvts22">. </span><span class="rvts22">Помимо этих клавишных комбинаций вы можете просто щёлкать на любой строке Журнала Истории левой кнопкой мыши, чтобы откатить мувик на время создания соответствующей записи в Журнале. При этом в Piano Roll на долю секунды появляется курсор-указка фиолетового цвета, акцентирующий внимание пользователя на месте произведённых при откате изменений. Как обычно, при изменении </span><span class="rvts22">Ввод</span><span class="rvts22">а возможно автоматическое усечение Гринзоны.</span></p>
<p class="rvps10"><span class="rvts22">Пункт Журнала, соответствующий текущему состоянию мувика, выделяется синим цветом. Другие пункты выделяются белым цветом, если они не имеют никакого отношения к текущему пункту, или фиолетовым цветом, если эти пункты представляют собой изменения мувика, которые происходили на том же месте, где и изменения, относящиеся к текущему пункту. Например, если текущий пункт Журнала Истории был создан в результате изменения Ввода на кадре 27, то фиолетовым цветом будут отмечены все пункты, которые затрагивают этот кадр.</span></p>
<p class="rvps10"><span class="rvts22">Большую часть времени вам не придётся обращать внимание на этот Журнал, однако именно благодаря ему</span><span class="rvts22"> вы можете использовать Откат (Undo) и Повтор (Redo) клавишами </span><span class="rvts34">Ctrl + Z</span><span class="rvts22"> и </span><span class="rvts34">Ctrl + Y</span><span class="rvts22">. </span><span class="rvts22">Помимо этих клавишных комбинаций вы можете также щёлкать на любой строке Журнала Истории левой кнопкой мыши, чтобы откатить мувик на время создания соответствующей записи в Журнале.</span></p>
<p class="rvps10"><span class="rvts22">При этом в Piano Roll на долю секунды появляется курсор-указка фиолетового цвета, акцентирующий внимание пользователя на месте произведённых при откате изменений. Как обычно, при изменении </span><span class="rvts22">Ввод</span><span class="rvts22">а возможно автоматическое усечение Гринзоны.</span></p>
<p class="rvps10"><span class="rvts22">Максимальное количество уровней отката настраивается в меню </span><a class="rvts40" href="ProgramCustomization.html#Setmaxundolevels">Config</a><span class="rvts22">, от этого количества зависит максимальный объём Журнала Истории и, как следствие, объём занимаемой памяти.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/>
@ -238,8 +235,8 @@
<p class="rvps10"><img align="right" alt="" style="padding : 6px;" src="lib/toolbox-selection.png"/></p>
<p class="rvps10"><span class="rvts22">В самом низу Панели инструментов находятся 4 кнопки для управления Курсором Выделения.</span></p>
<p class="rvps10"><span class="rvts22">О назначении кнопок "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" и "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" легко догадаться по аналогии с верхники кнопками "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" и "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" в разделе Playback. Верхняя часть окна Тасэдитора содержит элементы управления для навигации Курсором Проигрывателя, а нижняя часть окна элементы управления для навигации Курсором Выделения.</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" (прыжок назад) перемещает Курсор Выделения на кадр, на котором установлен вышестоящий Маркер. В примере с верхней картинкой при нажатии "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" синий курсор прыгнет с 28-го на 23-й кадр, где установлен Маркер 2. Благодаря этой кнопке можно очень быстро возвращать Выделение к началу редактируемого участка и вообще к началу любого отмеченного участка. У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Ctrl + Page Up</span><span class="rvts22">. Эту кнопку можно зажимать синий курсор будет очень быстро прыгать по Маркерам вверх по Piano Roll.</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" (прыжок вперёд) прыгает Курсором Выделения по Маркерам вперёд. В примере с верхней картинкой при нажатии "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" синий курсор прыгнет с 28-го на кадр за пределами видимости (где установлен следующий Маркер), при этом Piano Roll автоматически проскроллируется вслед за Курсором Выделения. Благодаря этой кнопке можно очень быстро перемещаться по мувику вниз. У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Ctrl + Page Down</span><span class="rvts22">. Эту кнопку также можно зажимать.</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" (прыжок назад) перемещает Курсор Выделения на кадр, на котором установлен вышестоящий Маркер. В примере с верхней картинкой при нажатии "</span><span class="rvts32">&lt;&lt;</span><span class="rvts22">" синий курсор прыгнет с 27-го на 22-й кадр, где установлен Маркер 2. Благодаря этой кнопке можно очень быстро возвращать Выделение к началу редактируемого участка и вообще к началу любого отмеченного участка. У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Ctrl + Page Up</span><span class="rvts22">. Эту кнопку можно зажимать синий курсор будет очень быстро прыгать по Маркерам вверх по Piano Roll.</span></p>
<p class="rvps10"><span class="rvts22">Кнопка "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" (прыжок вперёд) прыгает Курсором Выделения по Маркерам вперёд. В примере с верхней картинкой при нажатии "</span><span class="rvts32">&gt;&gt;</span><span class="rvts22">" синий курсор прыгнет с 27-го на кадр за пределами видимости (где установлен следующий Маркер), при этом Piano Roll автоматически проскроллируется вслед за Курсором Выделения. Благодаря этой кнопке можно очень быстро перемещаться по мувику вниз. У этой кнопки есть аналог на клавиатуре: </span><span class="rvts34">Ctrl + Page Down</span><span class="rvts22">. Эту кнопку также можно зажимать.</span></p>
<p class="rvps10"><span class="rvts22">Важная особенность этой пары кнопок в том, что Курсор Выделения в отличие от Курсора Проигрывателя не привязан к состоянию игры, поэтому его прыжки по Маркерам всегда совершаются мгновенно, не завися от наличия Гринзоны у целевого кадра. Особенно удобно читать таким образом Заметки Маркеров одну за другой в нижнем текстовом поле, нажимая </span><span class="rvts34">Ctrl + Page Down</span><span class="rvts22"> для мгновенного перехода к следующей Заметке.</span></p>
<p class="rvps10"><span class="rvts22">В качестве эксперимента попробуйте поставить десяток Маркеров по одному через каждые 30-50 кадров а затем зажмите </span><span class="rvts34">Ctrl</span><span class="rvts22"> и, нажимая клавиши </span><span class="rvts26">Page Up</span><span class="rvts22"> или </span><span class="rvts26">Page Down</span><span class="rvts22">, почувствуйте все удобства быстрой навигации. Помимо клавиш </span><span class="rvts26">Page Up</span><span class="rvts22"> и </span><span class="rvts26">Page Down </span><span class="rvts22">можно также вращать колесо мыши, зажав клавишу </span><span class="rvts34">Ctrl</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22"><br/></span></p>

View File

@ -338,6 +338,7 @@ span.rvts59
}
a.rvts60, span.rvts60
{
font-size: 11pt;
color: #0000ff;
text-decoration: underline;
}
@ -366,104 +367,110 @@ a.rvts64, span.rvts64
text-decoration: underline;
}
a.rvts64:hover { color: #0000ff; }
span.rvts65
a.rvts65, span.rvts65
{
color: #0000ff;
text-decoration: underline;
}
a.rvts65:hover { color: #0000ff; }
span.rvts66
{
font-size: 11pt;
text-decoration: underline;
}
span.rvts66
span.rvts67
{
}
span.rvts67
span.rvts68
{
font-size: 11pt;
color: #0a8200;
}
span.rvts68
span.rvts69
{
font-size: 9pt;
font-weight: bold;
}
a.rvts69, span.rvts69
a.rvts70, span.rvts70
{
font-size: 9pt;
font-weight: bold;
color: #0000ff;
text-decoration: underline;
}
a.rvts69:hover { color: #0000ff; }
span.rvts70
a.rvts70:hover { color: #0000ff; }
span.rvts71
{
font-weight: bold;
color: #ffffff;
}
a.rvts71, span.rvts71
a.rvts72, span.rvts72
{
font-size: 9pt;
font-weight: bold;
color: #0000ff;
text-decoration: underline;
}
a.rvts71:hover { color: #0000ff; }
span.rvts72
a.rvts72:hover { color: #0000ff; }
span.rvts73
{
font-size: 12pt;
font-family: 'Courier New', 'Courier', monospace;
color: #000080;
}
span.rvts73 /* Font Style */
span.rvts74 /* Font Style */
{
font-size: 11pt;
font-style: italic;
color: #243f60;
}
span.rvts74 /* Font Style */
span.rvts75 /* Font Style */
{
font-size: 11pt;
color: #333399;
}
a.rvts75, span.rvts75
a.rvts76, span.rvts76
{
font-size: 11pt;
font-weight: bold;
color: #0000ff;
text-decoration: underline;
}
a.rvts75:hover { color: #0000ff; }
span.rvts76
a.rvts76:hover { color: #0000ff; }
span.rvts77
{
font-size: 11pt;
font-style: italic;
font-weight: bold;
}
span.rvts77
{
font-size: 24pt;
text-decoration: underline;
}
span.rvts78
{
font-size: 24pt;
text-decoration: underline;
}
a.rvts79, span.rvts79
span.rvts79
{
font-size: 24pt;
text-decoration: underline;
}
a.rvts80, span.rvts80
{
color: #0000ff;
text-decoration: underline;
}
a.rvts79:hover { color: #0000ff; }
a.rvts80, span.rvts80
a.rvts80:hover { color: #0000ff; }
a.rvts81, span.rvts81
{
font-weight: bold;
color: #ffffff;
text-decoration: underline;
}
a.rvts80:hover { color: #0000ff; }
span.rvts81
a.rvts81:hover { color: #0000ff; }
span.rvts82
{
color: #ffffff;
}
span.rvts82
span.rvts83
{
color: #333399;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 26 KiB