taseditor-ru: glossary update and various fixes

This commit is contained in:
ansstuff 2012-08-18 20:49:51 +00:00
parent 1ef200ff52
commit c8465b09b6
10 changed files with 127 additions and 107 deletions

View File

@ -194,7 +194,7 @@
</table> </table>
</div> </div>
<p class="rvps10"><span class="rvts22"><br/></span></p> <p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">При запуске этого скрипта FCEUX зарегистрирует функцию doCopy() на событие нажатия кнопки </span><span class="rvts32">Run function</span><span class="rvts22">(registermanual). Теперь при каждом нажатии этой кнопки будет запускаться код этой функции, который состоит из девяти строк. Сначала функция получает от тасэдитора информацию о Выделении, и если оно не пустое (то есть выделен хотя бы один кадр в Piano Roll), то запускается цикл "for", перебирающий все выделенные кадры по порядку, начиная с первого и заканчивая последним. Для каждого выделенного кадра функция запрашивает у Тасэдитора Ввод первого игрока (и сохраняет в переменную </span><span class="rvts55">joypad1data</span><span class="rvts22">), затем делает заявку на изменение Ввода второго игрока в этом же кадре. Все заявки накапливаются в памяти Тасэдитора до завершения цикла for, после чего они все разом исполняются с помощью вызова applyinputchanges(). В итоге Ввод второго джойстика в выделенных кадрах будет совпадать с Вводом первого джойстика.</span></p> <p class="rvps10"><span class="rvts22">При запуске этого скрипта FCEUX зарегистрирует функцию doCopy() на событие нажатия кнопки </span><span class="rvts32">Run function</span><span class="rvts22">(registermanual). Теперь при каждом нажатии этой кнопки будет запускаться код этой функции, который состоит из девяти строк. Сначала функция получает от Тасэдитора информацию о Выделении, и если оно не пустое (то есть выделен хотя бы один кадр в Piano Roll), то запускается цикл "for", перебирающий все выделенные кадры по порядку, начиная с первого и заканчивая последним. Для каждого выделенного кадра функция запрашивает у Тасэдитора Ввод первого игрока (и сохраняет в переменную </span><span class="rvts55">joypad1data</span><span class="rvts22">), затем делает заявку на изменение Ввода второго игрока в этом же кадре. Все заявки накапливаются в памяти Тасэдитора до завершения цикла for, после чего они все разом исполняются с помощью вызова applyinputchanges(). В итоге Ввод второго джойстика в выделенных кадрах будет совпадать с Вводом первого джойстика.</span></p>
<p class="rvps10"><img align="right" alt="" style="padding : 6px;" src="lib/lua-run-manual.png"/></p> <p class="rvps10"><img align="right" alt="" style="padding : 6px;" src="lib/lua-run-manual.png"/></p>
<p class="rvps10"><span class="rvts22">Этот весьма простой скрипт уже представляет из себя полезный инструмент, который может пригодиться вам при создании ТАСов &nbsp;с управлением двумя игроками одновременно. После запуска этого скрипта вы во время ТАСинга сможете выделять в Piano Roll ряд кадров и нажимать кнопку </span><span class="rvts32">Run function</span><span class="rvts22"> (или хоткей "</span><span class="rvts26">Run Manual Lua function</span><span class="rvts22">") для синхронизации обоих игроков. Когда в результате действий этого скрипта изменится Ввод, произойдёт естественное усечение Гринзоны и добавление записи в Журнал Истории, чтобы при необходимости вы могли откатить произведённые скриптом изменения. Таким образом вы получаете полностью интегрированную в Тасэдитор фичу, логику которой запрограммировали сами.</span></p> <p class="rvps10"><span class="rvts22">Этот весьма простой скрипт уже представляет из себя полезный инструмент, который может пригодиться вам при создании ТАСов &nbsp;с управлением двумя игроками одновременно. После запуска этого скрипта вы во время ТАСинга сможете выделять в Piano Roll ряд кадров и нажимать кнопку </span><span class="rvts32">Run function</span><span class="rvts22"> (или хоткей "</span><span class="rvts26">Run Manual Lua function</span><span class="rvts22">") для синхронизации обоих игроков. Когда в результате действий этого скрипта изменится Ввод, произойдёт естественное усечение Гринзоны и добавление записи в Журнал Истории, чтобы при необходимости вы могли откатить произведённые скриптом изменения. Таким образом вы получаете полностью интегрированную в Тасэдитор фичу, логику которой запрограммировали сами.</span></p>
<p class="rvps10"><span class="rvts22">Хотя вы можете успешно ТАСить и без знания языка Lua, его использование может значительно сэкономить вам время и даже натолкнуть на неочевидные решения при оптимизации Ввода и анализе игрового Вывода.</span></p> <p class="rvps10"><span class="rvts22">Хотя вы можете успешно ТАСить и без знания языка Lua, его использование может значительно сэкономить вам время и даже натолкнуть на неочевидные решения при оптимизации Ввода и анализе игрового Вывода.</span></p>

View File

@ -189,7 +189,7 @@
<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> <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">Когда эмулятор стоит на паузе, нажатие средней кнопки снимет паузу (аналогично нажатию хоткея </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="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">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"><br/></span></p>

View File

@ -209,7 +209,7 @@
<tr valign="middle"> <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 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>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 146px;"><p class="rvps5"><span class="rvts6">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="rvts82">unsigned int32</span></p>
</td> </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 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> </td>
@ -217,7 +217,7 @@
<tr valign="middle"> <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 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>
<td style="border-color: #000000; border-style: solid; border-right: none; border-bottom: none; width: 146px;"><p class="rvps5"><span class="rvts6">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="rvts82">unsigned int32</span></p>
</td> </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 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> </td>
@ -288,8 +288,8 @@
<li class="rvps10"><span class="rvts22">бит 5 в файле сохранена История Выделений</span></li> <li class="rvps10"><span class="rvts22">бит 5 в файле сохранена История Выделений</span></li>
</ul> </ul>
<p class="rvps10"><span class="rvts22"><br/></span></p> <p class="rvps10"><span class="rvts22"><br/></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></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>
<div class="rvps21"><table width="450" border="1" cellpadding="0" cellspacing="0" style="border-color: #ffffff #000000 #000000 #ffffff; border-style: solid;"> <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"> <tr valign="middle">

View File

@ -64,146 +64,159 @@
<p class="rvps10"><a name="Input"></a> <p class="rvps10"><a name="Input"></a>
<span class="rvts22"><br/></span></p> <span class="rvts22"><br/></span></p>
<p class="rvps10"><img align="right" alt="" style="padding : 6px;" src="lib/game-player-taser.png"/></p> <p class="rvps10"><img align="right" alt="" style="padding : 6px;" src="lib/game-player-taser.png"/></p>
<p class="rvps10"><span class="rvts22">Input Ввод</span></p> <p class="rvps10"><span class="rvts26">Input Ввод</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"><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></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"><span class="rvts22">Замечание: когда игрок не нажимает ни одной кнопки, этот факт так же является Вводом.</span></p>
<p class="rvps10"><a name="Output"></a> <p class="rvps10"><a name="Output"></a>
<span class="rvts22"><br/></span></p> <span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Output Вывод</span></p> <p class="rvps10"><span class="rvts26">Output Вывод</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"><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></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">Walkthrough Прохождение (прохождение видеоигры)</span></p> <p class="rvps10"><span class="rvts26">Walkthrough Прохождение</span><span class="rvts22"> (прохождение видеоигры)</span></p>
<p class="rvps10"><span class="rvts22">Последовательность действий для успешного завершения игры. Эту последовательность игрок вводит в игру для достижения желаемой цели. Последовательность может быть записана вживую (real-time в реальном времени) либо приготовлена в виде воспроизводимых данных (например, журнал нажатых кнопок). Во втором случае эту последовательность можно неоднократно редактировать.</span></p> <p class="rvps10"><span class="rvts22">Последовательность действий для успешного завершения игры.</span></p>
<p class="rvps10"><span class="rvts22">Эта последовательность вводится в игру с помощью устройства ввода (например, джойстика). Последовательность может быть либо исполнена вживую (real-time в реальном времени), либо приготовлена в виде воспроизводимых данных (например, журнал нажатых кнопок). Во втором случае эту последовательность можно редактировать.</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">Speedrun Пробег</span></p> <p class="rvps10"><span class="rvts26">Speedrun Пробег</span></p>
<p class="rvps10"><span class="rvts22">Соревновательное прохождение на скорость. Часто используется англицизм "cпидран".</span></p> <p class="rvps10"><span class="rvts22">Прохождение с целью самого быстрого завершения игры.</span></p>
<p class="rvps10"><span class="rvts22">Часто используется англицизм "cпидран".</span></p>
<p class="rvps10"><span class="rvts22">В некоторых играх присутствует встроенный режим под названием "Speedrun" или "Time Attack", при котором игра ведёт учёт затраченного времени на прохождение. Для других игр можно использовать внешний таймер, измеряя время в секундах или TV-кадрах (обычно подразумевается 60 кадров в секунду).</span></p> <p class="rvps10"><span class="rvts22">В некоторых играх присутствует встроенный режим под названием "Speedrun" или "Time Attack", при котором игра ведёт учёт затраченного времени на прохождение. Для других игр можно использовать внешний таймер, измеряя время в секундах или TV-кадрах (обычно подразумевается 60 кадров в секунду).</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">TAS (Tool-Assisted Superplay / Tool-Assisted Speedrun) ТАС</span></p> <p class="rvps10"><span class="rvts26">TAS </span><span class="rvts22">(Tool-Assisted Superplay / Tool-Assisted Speedrun)</span><span class="rvts26"> ТАС</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"><span class="rvts22">Процесс создания ТАСа называется ТАСингом, а авторы зовутся ТАСерами.</span></p>
<p class="rvps10"><span class="rvts22">Целью ТАСа может быть не только спидран, но и развлекательный видеоролик (playaround).</span></p> <p class="rvps10"><span class="rvts22">Благодаря редактированию Ввода ТАСер освобождается от некоторых человеческих ограничений (например, слабой реакции) и может направить все усилия на создание крайне неординарных прохождений видеоигр. Это может быть не только спидран, но и развлекательный видеоролик (playaround).</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;"> <ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">в виде готовых видеороликов с Выводом (youtube, AVI-файлы &nbsp;и т.д.)</span></li> <li class="rvps15"><span class="rvts22">в виде готовых видеороликов с Выводом (youtube, AVI-файлы &nbsp;и т.д.) удобно смотреть</span></li>
<li class="rvps15"><span class="rvts22">в виде исходных мувиков с Вводом (fm2 и т.д.)</span></li> <li class="rvps15"><span class="rvts22">в виде исходных мувиков с Вводом (fm2 и т.д.) удобно редактировать</span></li>
</ul> </ul>
<p class="rvps10"><span class="rvts22"><br/></span></p> <p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Movie Мувик (фильм)</span></p> <p class="rvps10"><span class="rvts26">Movie Мувик</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></p> <p class="rvps10"><span class="rvts22">В отличие от видеороликов, игровой Вывод (изображение и звук) в мувике не хранится, он появляется на экране только в результате применения Ввода мувика к соответствующей игре.</span></p>
<p class="rvps10"><span class="rvts22">Также мувиком называется файл (movie file), в котором хранится Ввод и сопутствующие данные.</span></p> <p class="rvps10"><span class="rvts22">Также мувиком называется файл (movie file), в котором хранится Ввод и сопутствующие данные.</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">Lag Лаг (задержка)</span></p> <p class="rvps10"><span class="rvts26">Lag Лаг</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">Процессор может производить строго фиксированное количество операций в единицу времени (например, за 1 кадр). Но игра пытается имитировать безграничность реальной жизни, поэтому количество взаимодействующих объектов в ней может сильно варьироваться. Как следствие, возможны ситуации, когда обработка объектов занимает больше времени, чем предусмотрено. В таких ситуациях задерживается обработка Ввода и Вывода, что невыгодно при создании спидрана. Поэтому лаг зачастую выступает в качестве одного из факторов оптимальности, который нужно учитывать во время тестирования вариантов Ввода. Обычно требуется минимизировать количество кадров с лагом.</span></p> <p class="rvps10"><span class="rvts22">При зацикленном взаимодействии между игроком и игрой обычно устанавливается режим Ввода и Вывода через равные промежутки времени, например, ровно 60 раз в секунду.</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"><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">Desync Рассинхронизация (расхождение)</span></p> <p class="rvps10"><span class="rvts26">Desync Рассинхронизация</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></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">Segment Участок</span></p> <p class="rvps10"><span class="rvts26">Segment Участок</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"><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><a class="rvts28" href="TASingProcess.html">Процесс ТАСинга</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="TASingProcess.html">Процесс ТАСинга</a></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">Optimization Оптимизация</span></p> <p class="rvps10"><span class="rvts26">Optimization Оптимизация</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"><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><a class="rvts28" href="TASingMethodology.html">Методология ТАСинга</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="TASingMethodology.html">Методология ТАСинга</a></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">Improvement Улучшение</span></p> <p class="rvps10"><span class="rvts26">Improvement Улучшение</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"><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">Timesaver Таймсэйвер (экономия времени)</span></p> <p class="rvps10"><span class="rvts26">Timesaver Таймсэйвер</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"><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">Иногда ТАСер сознательно отказывается от использования некоторых таймсэйверов, в этом случае для его ТАСа отводится отдельная категория на сайте. Например: спидран SMB без использования кнопки </span><span class="rvts32">B</span><span class="rvts22"> (отказ от фичи), спидран Sonic the Hedgehog без прохождения сквозь стены (отказ от бага).</span></p> <p class="rvps10"><span class="rvts22">Замечание: иногда ТАСер сознательно отказывается от использования некоторых таймсэйверов, в этом случае для его ТАСа отводится отдельная категория на сайте. Например: спидран Super Mario Bros без использования кнопки </span><span class="rvts32">B</span><span class="rvts22"> (отказ от фичи), спидран Sonic the Hedgehog без прохождения сквозь стены (отказ от бага).</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">Feature Фича (особенность)</span></p> <p class="rvps10"><span class="rvts26">Feature Фича</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></p> <p class="rvps10"><span class="rvts22">Некоторые фичи не существенны (а иногда и незаметны) для простого игрока, но существенны для ТАСера. Поэтому перед оптимизацией Ввода рекомендуется провести исследования игрового движка.</span></p>
<p class="rvps10"><span class="rvts22">Примеры существеных для ТАСера фич: ускорение при ранении (damage boost), вынужденное ожидание при подсчёте очков, наличие субпикселей у координат персонажа, особенности искусственного интеллекта врагов и т.д.</span></p> <p class="rvps10"><span class="rvts22">Примеры существеных для ТАСера фич: ускорение при ранении (damage boost), вынужденное ожидание при подсчёте очков, наличие субпикселей у координат персонажа, особенности искусственного интеллекта врагов и т.д.</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">Bug Баг (ошибка)</span></p> <p class="rvps10"><span class="rvts26">Bug / Glitch Баг / Глюк</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></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"><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">Luck Manipulation Манипуляция удачей</span></p> <p class="rvps10"><span class="rvts26">Luck Manipulation Манипуляция удачей</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"><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></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="NonlinearTASing.html#turbo-seeking">Нелинейный ТАСинг</a><span class="rvts22"> (пример манипуляции)</span></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="NonlinearTASing.html#turbo-seeking">Нелинейный ТАСинг</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="rvts22">Subpixels Субпиксели (дробная часть пикселя)</span></p> <p class="rvps10"><span class="rvts26">Subpixels Субпиксели</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">В общем случае ТАСеру следует понимать отличие между экранными координатами спрайта и реальными координатами физического объекта в игре. Только в простейших играх эти координаты совпадают, обычно же на экран выводится приблизительное положение вещей, где проекции всех объектов выравнены по сетке пикселей. Чтобы узнать реальные координаты (и другие скрытые от глаз игрока данные), нужно просматривать ячейки оперативной памяти эмулируемой платформы. Это делается с помощью просмотрщика памяти (Memory Watch) или Lua.</span></p> <p class="rvps10"><span class="rvts22">В общем случае ТАСеру следует понимать отличие между экранными координатами спрайта и реальными координатами физического объекта в игре. Только в простейших играх эти координаты совпадают, обычно же на экран выводится приблизительное положение вещей, где проекции всех объектов выравнены по сетке пикселей. Чтобы узнать реальные координаты (и другие скрытые от глаз игрока данные), нужно просматривать ячейки оперативной памяти эмулируемой платформы. Это делается с помощью просмотрщика памяти (Memory Watch) или Lua.</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">Recording Запись</span></p> <p class="rvps10"><span class="rvts26">Recording Запись</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"><span class="rvts22">Заключается в последовательном добавлении Ввода в конец мувика, одновременно с просмотром промежуточных результатов.</span></p>
<p class="rvps10"><span class="rvts22">Другим способом является рисование Ввода непосредственно в мувике.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#recorder">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="TASingMethodology.html#linear-tasing">Методология ТАСинга</a><span class="rvts22">, </span><a class="rvts28" href="TraditionalTASing.html">Традиционный метод ТАСинга</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#recorder">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="TASingMethodology.html#linear-tasing">Методология ТАСинга</a><span class="rvts22">, </span><a class="rvts28" href="TraditionalTASing.html">Традиционный метод ТАСинга</a></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">Rerecording Перезапись (повторная запись)</span></p> <p class="rvps10"><span class="rvts26">Rerecording Перезапись</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></p> <p class="rvps10"><span class="rvts22">Заключается в последовательном изменении Ввода, начиная с определённого кадра, одновременно с просмотром промежуточных результатов.</span></p>
<p class="rvps10"><span class="rvts22">Другим способом является непосредственная модификация Ввода в мувике.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="TASingMethodology.html#linear-tasing">Методология ТАСинга</a><span class="rvts22">, </span><a class="rvts28" href="TraditionalTASing.html">Традиционный метод ТАСинга</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#RerecordsCounter">Счётчик перезаписей</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="TASingMethodology.html#linear-tasing">Методология ТАСинга</a><span class="rvts22">, </span><a class="rvts28" href="TraditionalTASing.html">Традиционный метод ТАСинга</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#RerecordsCounter">Счётчик перезаписей</a></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">Multitracking Мультитрекинг (многодорожечная запись)</span></p> <p class="rvps10"><span class="rvts26">Multitracking Мультитрекинг</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></p> <p class="rvps10"><span class="rvts22">Заключается в поочерёдной записи Ввода на одном участке для каждого игрока отдельно.</span></p>
<p class="rvps10"><span class="rvts22">Другим способом является запись Ввода для всех игроков сразу.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#multitracking">Панель инструментов</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#multitracking">Панель инструментов</a></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">Turbo Турбо (повышенная скорость)</span></p> <p class="rvps10"><span class="rvts26">Frame Advance Frame Advance </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"><br/></span></p>
<p class="rvps10"><span class="rvts26">Turbo Турбо</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></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"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#turbo-seek">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="NonlinearTASing.html#turbo-seeking">Нелинейный ТАСинг</a><span class="rvts22">, </span><a class="rvts28" href="SemiautomaticTASing.html#turbo-seeking">Полуавтоматический ТАСинг</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#turbo-seek">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="NonlinearTASing.html#turbo-seeking">Нелинейный ТАСинг</a><span class="rvts22">, </span><a class="rvts28" href="SemiautomaticTASing.html#turbo-seeking">Полуавтоматический ТАСинг</a></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">Savestate Сэйв (сохранение)</span></p> <p class="rvps10"><span class="rvts26">Savestate Сэйв</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></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">Piano Roll Piano Roll (перфолента)</span></p> <p class="rvps10"><span class="rvts26">Piano Roll Piano Roll</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">Подобный интерфейс используется в редакторах музыки (MIDI-секвенсорах и MOD-трекерах). Его имя и принцип действия унаследован из физического аналога (давно существовавшие свёртки перфорированной бумаги для механических клавесинов).</span></p> <p class="rvps10"><span class="rvts22">Этот интерфейс используется в редакторах музыки (MIDI-секвенсорах и MOD-трекерах). Его имя и принцип действия унаследован из физического аналога (давно существовавшие свёртки перфорированной бумаги для механических клавесинов).</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">Каждая строка Piano Roll соотносится с одним кадром мувика.</span></p> <p class="rvps10"><span class="rvts22">Каждая строка Piano Roll соотносится с одним кадром мувика.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#PianoRoll">Piano Roll</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#PianoRoll">Спецификации Piano Roll</a></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">Playback cursor Курсор Проигрывателя</span></p> <p class="rvps10"><span class="rvts26">Playback cursor Курсор Проигрывателя</span></p>
<p class="rvps10"><span class="rvts22">Текущий проигрываемый кадр мувика. События этого кадра отображаются в окне эмулятора в виде скриншота, а в Piano Roll соответствующая строка обозначается голубым цветом и значком "Play" (голубая стрелка).</span></p> <p class="rvps10"><span class="rvts22">Указатель на текущий проигрываемый кадр мувика.</span></p>
<p class="rvps10"><span class="rvts22">События этого кадра отображаются в окне эмулятора в виде скриншота, а в Piano Roll соответствующая строка обозначается голубым цветом и значком "Play" (голубая стрелка).</span></p>
<p class="rvps10"><span class="rvts22">Одновременно можно видеть только события одного кадра мувика. Чтобы увидеть скриншот последующих событий мувика, нужно переместить голубой Курсор Проигрывателя вперёд (вниз по Piano Roll), чтобы увидеть скриншот предыдущих событий, нужно переместить курсор назад (вверх по Piano Roll).</span></p> <p class="rvps10"><span class="rvts22">Одновременно можно видеть только события одного кадра мувика. Чтобы увидеть скриншот последующих событий мувика, нужно переместить голубой Курсор Проигрывателя вперёд (вниз по Piano Roll), чтобы увидеть скриншот предыдущих событий, нужно переместить курсор назад (вверх по Piano Roll).</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Navigation.html#playback-cursor">Навигация Курсором Проигрывателя</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Navigation.html#playback-cursor">Навигация Курсором Проигрывателя</a></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">Greenzone Гринзона (зона мгновенного доступа)</span></p> <p class="rvps10"><span class="rvts26">Greenzone Гринзона</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></p> <p class="rvps10"><span class="rvts22">Это хранилище автоматически собирает сэйвы для каждого кадра мувика во время эмуляции, а при необходимости использует эти сэйвы для мгновенного прыжка Курсором Проигрывателя на любой кадр.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#progressbar">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="ProgramCustomization.html#SetGreenzonecapacity">Настройка программы</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Greenzone">Гринзона</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#progressbar">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="ProgramCustomization.html#SetGreenzonecapacity">Настройка программы</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Greenzone">Спецификации Гринзоны</a></p>
<p class="rvps10"><span class="rvts22">Selection Выделение</span></p> <p class="rvps10"><span class="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts26">Selection Выделение</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></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"><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></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Navigation.html#selection-cursor">Навигация Курсором Выделения</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Navigation.html#selection-cursor">Навигация Курсором Выделения</a></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">Marker Маркер</span></p> <p class="rvps10"><span class="rvts26">Marker Маркер</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">Маркером можно отметить любой кадр в 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>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;"> <ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
@ -212,20 +225,21 @@
<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="rvts34">Ctrl + A</span><span class="rvts22">)</span></li> <li class="rvps15"><span class="rvts22">быстрое выделение участков (</span><span class="rvts34">Ctrl + A</span><span class="rvts22">)</span></li>
</ul> </ul>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html#markers">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Markers">Маркеры</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html#markers">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Markers">Спецификации Маркеров</a></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">Note Заметка</span></p> <p class="rvps10"><span class="rvts26">Note Заметка</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><a class="rvts28" href="PianoRoll.html#markers">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Controls.html#notes">Управление</a><span class="rvts22">, </span><a class="rvts28" href="AdvancedFeatures.html#UsingMarkers">Продвинутые возможности</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="PianoRoll.html#markers">Интерфейс Piano Roll</a><span class="rvts22">, </span><a class="rvts28" href="Controls.html#notes">Управление</a><span class="rvts22">, </span><a class="rvts28" href="AdvancedFeatures.html#UsingMarkers">Продвинутые возможности</a></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">Bookmark Закладка</span></p> <p class="rvps10"><span class="rvts26">Bookmark Закладка</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="rvts22">Закладка сохраняет всю необходимую информацию о кадре, на который она установлена. В том числе то ответвление мувика, которое однозначно приводит игру к событиям данного кадра.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#bookmarks">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#BookmarksBranches">Закладки и ответвления</a></p> <p class="rvps10"><span class="rvts22">Закладки могут использоваться для навигации Курсором Проигрывателя, но в основном они используются для хранения ответвлений.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#bookmarks">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#BookmarksBranches">Спецификации Закладок</a></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">Branch Ответвление</span></p> <p class="rvps10"><span class="rvts26">Branch Ответвление</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"><span class="rvts22">При желании текущий мувик может быть заменён на это ответвление, тем самым восстанавливается состояние мувика из копии.</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;"> <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>
@ -233,26 +247,27 @@
<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> </ul>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#bookmarks">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="ProgramCustomization.html#BranchesworkonlywhenRecording">Настройка программы</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#BookmarksBranches">Закладки и ответвления</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="Toolbox.html#bookmarks">Панель инструментов</a><span class="rvts22">, </span><a class="rvts28" href="ProgramCustomization.html#BranchesrestoreentireMovie">Настройка программы</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#BookmarksBranches">Спецификации ответвлений</a></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">Project Проект</span></p> <p class="rvps10"><span class="rvts26">Project Проект</span></p>
<p class="rvps10"><span class="rvts22">Контейнер для хранения рабочих данных при использовании в Тасэдиторе.</span></p> <p class="rvps10"><span class="rvts22">Контейнер для хранения рабочих данных при использовании в Тасэдиторе.</span></p>
<p class="rvps10"><span class="rvts22">Также проектом называется файл (project file), в котором хранятся рабочие данные пользователя.</span></p> <p class="rvps10"><span class="rvts22">Также проектом называется файл (project file), в котором хранятся рабочие данные пользователя.</span></p>
<p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="AdvancedFeatures.html#ProjectsSharing">Продвинутые возможности</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="AdvancedFeatures.html#ProjectsSharing">Продвинутые возможности</a></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">Lua Lua</span></p> <p class="rvps10"><span class="rvts26">Lua Lua</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"><span class="rvts22">Подробнее: </span><a class="rvts28" href="AdvancedFeatures.html#UsingLua">Продвинутые возможности</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Lua">Луа-автоматизация</a><span class="rvts22">, </span><a class="rvts28" href="LuaAPI.html">Lua-функции</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="AdvancedFeatures.html#UsingLua">Продвинутые возможности</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Lua">Луа-автоматизация</a><span class="rvts22">, </span><a class="rvts28" href="LuaAPI.html">Lua-функции</a></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">Bot Бот (робот)</span></p> <p class="rvps10"><span class="rvts26">Bot Бот</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></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"><span class="rvts22">Для создания ботов требуется умение программировать. Обычно боты либо пишутся на Lua, либо встраиваются в эмуляторы с помощью модификации исходного кода.</span></p> <p class="rvps10"><span class="rvts22">Для создания ботов требуется умение программировать. Обычно боты либо пишутся на Lua, либо встраиваются в эмуляторы с помощью модификации исходного кода.</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">Pattern Шаблон</span></p> <p class="rvps10"><span class="rvts26">Pattern Шаблон</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><a class="rvts28" href="AdvancedFeatures.html#UsingPatterns">Продвинутые возможности</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Patterns">Шаблоны</a></p> <p class="rvps10"><span class="rvts22">Подробнее: </span><a class="rvts28" href="AdvancedFeatures.html#UsingPatterns">Продвинутые возможности</a><span class="rvts22">, </span><a class="rvts28" href="Ideas.html#Patterns">Спецификации шаблонов</a></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> <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

@ -189,7 +189,7 @@
<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="rvts22">Подробнее см. </span><a class="rvts28" href="ProgramCustomization.html#SetGreenzonecapacity">Настройка программы</a><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">Вся Гринзона сохраняется и загружается из файла проекта. После загрузки проекта Тасэдитор восстанавливает состояние Курсора Проигрывателя с помощью Гринзоны.</span></li>
<li class="rvps15"><span class="rvts22">При любом изменении Ввода текущего мувика из Гринзоны удаляется информация о кадрах, идущих после первого изменённого кадра. Это реализуется с помощью уменьшения позиции головы Гринзоны, но сама устаревшая информация из массива не удаляется. Обычно одновременно с этим перемещается Курсор Проигрывателя, чтобы он всегда находился внутри Гринзоны (чтобы на экране FCEUX никогда не отображалось неактуальное состояние игры).</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">При создании Закладки в неё копируется информация из соответствующего кадра Гринзоны. При загрузке ответвления этой Закладки из неё копируется информация в соответствующую ячейку Гринзоны, и при необходимости передвигается позиция головы.</span></li>
<li class="rvps15"><span class="rvts22">Информация из Гринзоны используется при раскрашивании строк Piano Roll. Информация о лаге (Журнал лага) отображается не только для кадров, содержащихся в Гринзоне, но и для отсутствующих в ней кадров. Если в Гринзоне нет информации о лаге на определённом кадре, то предполагается, что этот кадр без лага.</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">Информация о лаге собирается в Гринзону одновременно со сбором текущего состояния игры, то есть перед началом эмуляции текущего кадра. В этот момент эмулятор обладает информацией о лаге предыдущего кадра, поэтому на кадре с номером 000020 данные о лаге сохраняются в ячейку 19. Также именно в этот момент может сработать операция </span><a class="rvts28" href="Operations.html#AdjustLag">AdjustLag</a><span class="rvts22">, которая сдвигает весь Ввод в последующих кадрах мувика на 1 кадр вверх или вниз. Ввод сдвигается вверх, если в Журнале лага на прошлом кадре был лаг, а теперь его не стало. Ввод сдвигается вниз, если в Журнале лага на прошлом кадре не было лага, а теперь он есть. Вместе с Вводом аналогично сдвигается и все последующие ячейки Журнала лага, чтобы красные строки Piano Roll по-прежнему соответствовали сдвинувшимся пропускам во Вводе. Кроме того, после операции AdjustLag Курсор Проигрывателя насильно возвращается на предыдущий кадр (в котором изменилась информация о лаге), чтобы проэмулировать его заново. Это реализуется не простой перемоткой назад, а усечением Гринзоны после предыдущего кадра.</span></li>
@ -233,6 +233,7 @@
<li class="rvps15"><span class="rvts22">Таким образом, зелёная стрелка не меняет своё положение, когда ещё до запуска эмуляции Гринзона усекается повторно (например, ТАСер изменил Ввод на кадре 90, а затем на кадре 80, но зелёная стрелка так и осталась на кадре 100).</span></li> <li class="rvps15"><span class="rvts22">Таким образом, зелёная стрелка не меняет своё положение, когда ещё до запуска эмуляции Гринзона усекается повторно (например, ТАСер изменил Ввод на кадре 90, а затем на кадре 80, но зелёная стрелка так и осталась на кадре 100).</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><a class="rvts28" href="Operations.html#AdjustLag">AdjustLag</a><span class="rvts22">, </span><a class="rvts28" href="Operations.html#Branch">Branch</a><span class="rvts22">, </span><a class="rvts28" href="Operations.html#Record">Record</a><span class="rvts22">.</span></li> <li class="rvps15"><span class="rvts22">Зелёная стрелка не меняет своё положение при операциях </span><a class="rvts28" href="Operations.html#AdjustLag">AdjustLag</a><span class="rvts22">, </span><a class="rvts28" href="Operations.html#Branch">Branch</a><span class="rvts22">, </span><a class="rvts28" href="Operations.html#Record">Record</a><span class="rvts22">.</span></li>
<li class="rvps15"><span class="rvts22">При нажатии средней кнопки мыши запускается добегание к зелёной стрелке, если она находится за пределами Гринзоны.</span></li>
</ul> </ul>
<p class="rvps15"><a name="AutoRestoring"></a> <p class="rvps15"><a name="AutoRestoring"></a>
<span class="rvts22"><br/></span></p> <span class="rvts22"><br/></span></p>

View File

@ -77,7 +77,7 @@
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;"/> <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="rvts22"><br/></span></p>
<p class="rvps10"><span class="rvts22">Так как все создаваемые варианты прохождения участка автоматически сохраняются в Журнале Истории, у ТАСера-новичка может возникнуть соблазн не сохранять варианты в Закладки, а просто один раз дойти до конечного события, а затем экспериментировать с этим Вводом, постепенно улучшая его (а если вместо улучшения получилось ухудшение сразу же откатывать изменения с помощью </span><span class="rvts34">Ctrl + Z</span><span class="rvts22">). Такой способ ТАСинга крайне не рекомендуется, так как он не позволяет вам мыслить далеко за рамками первоначального варианта (из-за подсознательного страха потерять имеющийся лучший вариант, если уйти от него слишком далеко). Даже если в результате последнего изменения Ввода у вас получилось ухудшение прохождения участка, нужно не откатываться к старому варианту, а пытаться разобраться в причинах ухудшения и продолжать осмысленную модификацию, чтобы получить улучшение.</span></p> <p class="rvps10"><span class="rvts22">Так как все создаваемые варианты прохождения участка автоматически сохраняются в Журнале Истории, у ТАСера-новичка может возникнуть соблазн не сохранять варианты в Закладки, а просто один раз дойти до конечного события, а затем экспериментировать с этим Вводом, постепенно улучшая его (а если вместо улучшения получилось ухудшение сразу же откатывать изменения с помощью </span><span class="rvts34">Ctrl + Z</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></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">В этом методе ТАСинга, в отличие от традиционного, можно не заметить разделение мувика на логические участки, так как не требуется постоянно обозначать начало и конец текущего участка Закладками. Однако рекомендуется всё-таки соблюдать порядок и отмечать хотя бы начало участка Маркером (чтобы ограничить количество факторов оптимальности и не править </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>
@ -91,16 +91,16 @@
<p class="rvps10"><span class="rvts22">Пункты 3 и 4. Одним махом вы рисуете зажатие кнопки </span><span class="rvts32">R</span><span class="rvts22"> на протяжении пары десятков кадров.</span></p> <p class="rvps10"><span class="rvts22">Пункты 3 и 4. Одним махом вы рисуете зажатие кнопки </span><span class="rvts32">R</span><span class="rvts22"> на протяжении пары десятков кадров.</span></p>
<p class="rvps10"><span class="rvts22">Пункт 5: Отпустили паузу эмуляции (средняя кнопка) и заметили, что Марио пробежал только до X=30, а потом остановился и стоит бесконечно долго. Ставим эмулятор на паузу и возвращаемся к пункту 2.</span></p> <p class="rvps10"><span class="rvts22">Пункт 5: Отпустили паузу эмуляции (средняя кнопка) и заметили, что Марио пробежал только до X=30, а потом остановился и стоит бесконечно долго. Ставим эмулятор на паузу и возвращаемся к пункту 2.</span></p>
<p class="rvps10"><span class="rvts22">Пункт 2. Очевидно, ошибка в том, что надо дольше жать </span><span class="rvts32">R</span><span class="rvts22">.</span></p> <p class="rvps10"><span class="rvts22">Пункт 2. Очевидно, ошибка в том, что надо дольше жать </span><span class="rvts32">R</span><span class="rvts22">.</span></p>
<p class="rvps10"><span class="rvts22">Пункты 3 и 4. Дорисовали зажатие кнопки </span><span class="rvts32">R</span><span class="rvts22"> ещё на сотню кадров, чтобы уж точно хватило.</span></p> <p class="rvps10"><span class="rvts22">Пункты 3 и 4. Дорисовали зажатие кнопки </span><span class="rvts32">R</span><span class="rvts22"> ещё на сотню кадров, чтобы уж наверняка хватило.</span></p>
<p class="rvps10"><span class="rvts22">Пункт 5: Отпустили паузу эмуляции и увидели, как Марио пробежал до X=100 и даже дальше.</span></p> <p class="rvps10"><span class="rvts22">Пункт 5: Отпустили паузу эмуляции и увидели, как Марио пробежал до X=100 и даже дальше.</span></p>
<p class="rvps10"><span class="rvts22">Пункты 6, 7 и 8: Поставили эмулятор на паузу и отвели Курсор Проигрывателя немного назад, на кадр с X=100. Это будет конец участка, допустим, это оказался кадр с номером 200.</span></p> <p class="rvps10"><span class="rvts22">Пункты 6, 7 и 8: Поставили эмулятор на паузу и отвели Курсор Проигрывателя немного назад, на кадр с X=100. Это будет конец участка, допустим, это оказался кадр с номером 200.</span></p>
<p class="rvps10"><span class="rvts22">Пункт 2. Очевидно, надо ещё держать </span><span class="rvts32">B</span><span class="rvts22">.</span></p> <p class="rvps10"><span class="rvts22">Пункт 2. Очевидно, надо бы ещё держать </span><span class="rvts32">B </span><span class="rvts22">во время бега.</span></p>
<p class="rvps10"><span class="rvts22">Пункты 3 и 4. Дорисовали зажатие кнопки </span><span class="rvts32">B</span><span class="rvts22"> параллельно столбику из нажатий </span><span class="rvts32">R</span><span class="rvts22"> на участке от начального Маркера до конечного. Курсор Проигрывателя во время рисования отпрыгнул в начало участка, а на его месте в конце участка осталась зелёная стрелка.</span></p> <p class="rvps10"><span class="rvts22">Пункты 3 и 4. Дорисовали зажатие кнопки </span><span class="rvts32">B</span><span class="rvts22"> параллельно столбику из нажатий </span><span class="rvts32">R</span><span class="rvts22"> на участке от начального Маркера до конца участка или даже дальше. Курсор Проигрывателя во время рисования отпрыгнул в начало участка, а на его месте в конце участка осталась зелёная стрелка.</span></p>
<p class="rvps10"><span class="rvts22">Пункт 5: Отпустили паузу эмуляции (средняя кнопка) и увидели, как Марио пробежал быстрее, достиг X=100 и бежит дальше. Если вы не нажали на паузу самостоятельно, эмулятор остановится на кадре с зелёной стрелкой.</span></p> <p class="rvps10"><span class="rvts22">Пункт 5: Отпустили паузу эмуляции (средняя кнопка) и увидели, как Марио пробежал быстрее, достиг X=100 и бежит дальше. Если вы не нажали на паузу самостоятельно, эмулятор автоматически остановится на кадре с зелёной стрелкой.</span></p>
<p class="rvps10"><span class="rvts22">Пункты 6, 7 и 8: Отвели Курсор Проигрывателя на кадр с X=100, допустим, это кадр с номером 150. Зелёная стрелка напоминает, что в прошлый раз концом участка был кадр 200, значит новый вариант прохождения лучше старого. Можно даже не считать, на сколько кадров было улучшено прохождение, а просто выделить регион кадров от Курсора Проигрывателя до зелёной стрелки и увидеть размер Выделения в панели Splicer.</span></p> <p class="rvps10"><span class="rvts22">Пункты 6, 7 и 8: После остановки эмулятора отводим Курсор Проигрывателя на кадр с X=100. Допустим, это кадр с номером 150. Зелёная стрелка напоминает, что в прошлый раз концом участка был кадр 200, значит новый вариант прохождения лучше старого. Можно даже не считать, на сколько кадров было улучшено прохождение, а просто выделить регион кадров от Курсора Проигрывателя до зелёной стрелки и увидеть размер Выделения в панели Splicer.</span></p>
<p class="rvps10"><span class="rvts22">Пункт 2. Надо бы поэкспериментировать с прыжками и т.д...</span></p> <p class="rvps10"><span class="rvts22">Пункт 2. Надо бы поэкспериментировать с прыжками и т.д...</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></p> <p class="rvps10"><span class="rvts22">Кроме того, вы можете сосредоточиться на первой части участка, мысленно определив подучасток, задачей которого будет, например, наибыстрейшее получение максимума горизонтальной скорости. Для создания такого подучастка нужно перемотать Курсор Проигрывателя на кадр, в котором скорость (согласно окну Memory Watch) достигает максимума в текущей стратегии прохождения участка, а затем просто начать редактирование </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"><br/></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></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></p>
@ -109,7 +109,7 @@
<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></p>
<ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;"> <ul style="text-indent: 30px; margin-left: 0px; list-style-position: inside;">
<li class="rvps15"><span class="rvts22">отпускание паузы хоткеем </span><span class="rvts27">Pause</span><span class="rvts22"> или нажатием средней кнопки мыши. После окончания участка требуется вручную поставить эмулятор на паузу (обычно не страшно, если вышло чуть позже, в крайнем случае можно потом отмотать наверх)</span></li> <li class="rvps15"><span class="rvts22">отпускание паузы хоткеем </span><span class="rvts27">Pause</span><span class="rvts22"> или нажатием средней кнопки мыши. После окончания участка требуется вручную поставить эмулятор на паузу (обычно не страшно, если вышло чуть позже, в крайнем случае можно потом отмотать наверх)</span></li>
<li class="rvps15"><span class="rvts22">запуск добегания к зелёной стрелке хоткеем </span><span class="rvts27">Restore Playback </span><span class="rvts22">или нажатием средней кнопки, когда есть зелёная стрелка</span></li> <li class="rvps15"><span class="rvts22">запуск добегания к зелёной стрелке хоткеем </span><span class="rvts27">Restore Playback </span><span class="rvts22">или нажатием средней кнопки мыши, когда зелёная стрелка находится за пределами Гринзоны</span></li>
<li class="rvps15"><span class="rvts22">запуск добегания к ближайшему Маркеру нажатием средней кнопки при зажатой клавише </span><span class="rvts34">Shift</span><span class="rvts22">, если в конце участка поставлен Маркер</span></li> <li class="rvps15"><span class="rvts22">запуск добегания к ближайшему Маркеру нажатием средней кнопки при зажатой клавише </span><span class="rvts34">Shift</span><span class="rvts22">, если в конце участка поставлен Маркер</span></li>
<li class="rvps15"><span class="rvts22">запуск добегания к Курсору Выделения нажатием средней кнопки при зажатой клавише </span><span class="rvts34">Ctrl</span><span class="rvts22">, если Курсор Выделения стоит ниже Курсора Проигрывателя</span></li> <li class="rvps15"><span class="rvts22">запуск добегания к Курсору Выделения нажатием средней кнопки при зажатой клавише </span><span class="rvts34">Ctrl</span><span class="rvts22">, если Курсор Выделения стоит ниже Курсора Проигрывателя</span></li>
<li class="rvps15"><span class="rvts22">повторный просмотр участка от Курсора Выделения до Курсора Проигрывателя нажатием средней кнопки при зажатой клавише </span><span class="rvts34">Ctrl</span><span class="rvts22">, если Курсор Выделения стоит выше Курсора Проигрывателя</span></li> <li class="rvps15"><span class="rvts22">повторный просмотр участка от Курсора Выделения до Курсора Проигрывателя нажатием средней кнопки при зажатой клавише </span><span class="rvts34">Ctrl</span><span class="rvts22">, если Курсор Выделения стоит выше Курсора Проигрывателя</span></li>

View File

@ -52,7 +52,7 @@
</div> </div>
<div id="topic_content"> <div id="topic_content">
<p><span class="rvts20">Операции над мувиком</span></p> <p><span class="rvts20">Операции</span></p>
<p class="rvps2"><span class="rvts6"><br/></span></p> <p class="rvps2"><span class="rvts6"><br/></span></p>
<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></p> <p class="rvps10"><span class="rvts22">При внесении любых изменений в мувик Тасэдитор регистрирует эти изменения в Журнале Истории. В текст каждой записи Журнала добавляется время внесения изменений, а также номер ключевого кадра (или начало и конец региона кадров), где произошли изменения.</span></p>

View File

@ -99,12 +99,12 @@
<p class="rvps10"><a name="EndOfSegment"></a> <p class="rvps10"><a name="EndOfSegment"></a>
<span class="rvts22">С концом участка дело обстоит немного иначе. Определившись с целью (например, довести координату X до значения 50) можно зафиксировать конец участка, установив второй Маркер/Закладку на кадре, где текущее неидеальное прохождение достигает этой цели. При шлифовке </span><span class="rvts22">Ввод</span><span class="rvts22">а мы постараемся достичь той же цели (</span><span class="rvts37">X = 50</span><span class="rvts22">) на более ранний кадр, или хотя бы на тот же. И если в ходе редактирования и тестов </span><span class="rvts22">Ввод</span><span class="rvts22">а обнаружится, что цель действительно можно достигнуть раньше, необходимо будет передвинуть замыкающий Маркер/Закладку выше (отметив улучшенный конец участка), а затем продолжить тестирование других вариантов в поисках ещё лучшего. В традиционном методе ТАСинга именно так постепенно передвигается вверх главная Закладка, хранящая лучшее на данный момент прохождение участка.</span></p> <span class="rvts22">С концом участка дело обстоит немного иначе. Определившись с целью (например, довести координату X до значения 50) можно зафиксировать конец участка, установив второй Маркер/Закладку на кадре, где текущее неидеальное прохождение достигает этой цели. При шлифовке </span><span class="rvts22">Ввод</span><span class="rvts22">а мы постараемся достичь той же цели (</span><span class="rvts37">X = 50</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">В принципе, в Тасэдиторе вы можете дать волю своей лени и не отмечать конец участка ни Закладкой, ни Маркером, а просто держать цель в уме и примерно помнить, на каком кадре проявляется конечное событие в лучшем варианте. Эта мелочная экономия времени имеет смысл, когда участок очень прост, и его не потребуется многократно переделывать. Также, вместо замыкающего Маркера во многих случаях можно ориентироваться по зелёной стрелке, автоматически остающейся на кадре прошлого конца участка.</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"><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"><br/></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"><span class="rvts22">Если же вы, наоборот, любите порядок, рекомендуется после завершения шлифовки участка (а можно и до или во время шлифовки) добавлять к Маркерам текстовые Заметки! Желательно оставлять комментарий хотя бы к Маркеру в начале участка, например, название участка или тег. Таким образом вы одновременно с ТАСингом документируете его разработку, оформляете появляющийся Ввод и придаёте ему объективный смысл. Это особенно полезно при работе в соавторстве, но и при ТАСинге в одиночку вы можете заметить, что "документация" из прошлых уровней мотивирует продолжать ТАСинг следующих. Отнимая секунды на печать текста, Маркеры дают силы не забросить проект на годы.</span></p>
<p class="rvps10"><span class="rvts22">Также Заметки помогают полнее раскрыть потенциал хитроумных трюков и багов игры. Дело в том, что во время написания текста Заметки, вы формализуете собственные знания об описываемом явлении. Когда суть трюка хранится в голове, вам будет казаться, что вы знаете о нём всё, и что в текущем ТАСе он уже и так используется максимально эффективно. Но когда появляется объективная модель в виде словесного описания трюка, нередко раскрываются новые грани вещей, казавшихся очевидными. На сайте TASVideos.org часто были случаи, когда один ТАСер прочитал описание какого-то трюка в сабмишене другого ТАСера и обнаружил способ использовать этот трюк лучше автора. Также были случаи, когда сам автор, перечитав свой свежий сабмишен, хлопал себя по лбу и срочно записывал улучшение.</span></p> <p class="rvps10"><span class="rvts22">Также Заметки помогают полнее раскрыть потенциал хитроумных трюков и багов игры. Дело в том, что во время написания текста Заметки, вы формализуете собственные знания об описываемом явлении. Когда суть трюка хранится в голове, вам будет казаться, что вы знаете о нём всё, и что в текущем ТАСе он уже и так используется максимально эффективно. Но когда появляется объективная модель в виде словесного описания трюка, нередко раскрываются новые грани вещей, казавшихся очевидными. На сайте TASVideos.org часто были случаи, когда один ТАСер прочитал описание какого-то трюка в сабмишене другого ТАСера и обнаружил способ использовать этот трюк лучше автора. Также были случаи, когда сам автор, перечитав свой свежий сабмишен, хлопал себя по лбу и срочно записывал улучшение.</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> <p class="rvps10"><span class="rvts22">Несмотря на всю полезность Маркеров и организации рабочего процесса, основной целью ТАСинга является создание Ввода. На поиск идеальной последовательности нажатий на каждом участке уходит намного больше времени, чем на всё остальное.</span></p>

View File

@ -463,6 +463,10 @@ span.rvts81
{ {
color: #ffffff; color: #ffffff;
} }
span.rvts82
{
color: #333399;
}
/* ========== Para Styles ========== */ /* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */ p,ul,ol /* Paragraph Style */
{ {

File diff suppressed because one or more lines are too long