Продолжение перевода технической документации по Juggling Lab
Предыдущая часть касалась особенностей ввода паттернов в нотации сайтсвопа. Но сайтcвоп не единственный параметр, определяющий трюк. Рассмотрим же ещё несколько ключевых особенностей, доступных в Juggling Lab.
Оригинал документации расположен по адресу https://jugglinglab.org/html/sspanel.html.
Использование панели ввода паттерна
Панель ввода паттернов — место для ввода паттерна жонглирования, а также, по желанию, для регулировки движений рук по времени. Внешний вид показан ниже.
Состоит из:
- Pattern. Поле для ввода паттерна жонглирования с использованием нотации сайтсвопа.
- Beats per second (число тактов в секунду). Положительное число (т. е. больше 0.0), соответствующее количеству тактов, приходящихся на каждую секунду. Как правило, в среднем получается один бросок на такт. Если оставить это поле пустым, Juggling Lab вычислит значение самостоятельно, исходя из введённого паттерна. Как правило, значение лежит между 3.0 и 5.5 тактов в секунду.
- Dwell beats (такты удерживания). Число между 0.0 и 2.0, равное числу тактов, которое пройдет от кетча до последующего броска. Значение по умолчанию равно 1.3.
- Hand movement (движение рук). Движение рук задаётся текстовой строкой в формате, описанном ниже. Выпадающий список позволяет выбрать из нескольких встроенных шаблонов движений рук. По умолчанию, Juggling Lab определяет движение рук основываясь на введённом паттерне.
- Body movement (перемещение тела). Перемещение тел жонглёров задается текстовой строкой в формате, описанном ниже. Выпадающий список позволяет выбрать из нескольких встроенных шаблонов движений тела. По умолчанию, Juggling Lab определяет положение тела исходя из количества жонглёров.
- Prop type (Вид реквизита). В выпадающем списке можно выбрать используемый реквизит.
- Manual settings (ручные настройки). Ручные настройки для конфигурации паттерна; смотреть описание ниже.
- Defaults button (кнопка По умолчанию). Нажмите, чтобы восстановить исходные настройки.
- Juggle button (кнопка Жонглировать). Нажмите, чтобы увидеть анимацию паттерна.
Формат движений рук
Текстовая строка, описывающая движение рук, позволяет определить пространственное расположение рук как для времени каждого броска и кетча, так и для временных точек между ними. Juggling Lab использует сплайновый интерполяционный алгоритм, вычисляющий расположение руки в любой момент времени на основании координат, определённых для дискретных временных точек. Формат довольно гибкий и позволяет определить движения рук произвольной сложности.
Представьте себя на месте жонглёра, и определите систему координат с осью x, идущей перед вами слева направо (положительное направление справа), осью y, проходящей сзади наперед (положительное направление спереди), и осью z, идущей снизу вверх (положительное направление сверху). Точка (x, y, z) = (0,0,0)
лежит посередине вашего тела, в "обычной" плоскости жонглирования перед вами, и на высоте, соответствующей положению предплечий над землей. В дальнейшем, движение руки будет определяться в координатах этой системы.
В простейшем случае имеем дело с одним жонглёром, у которого определены только позиции броска и кетча. В этом случае текстовая строка состоит из ряда пар координат в формате "(throwx,throwz,throwy)(catchx,catchz,catchy)."
(здесь и далее: throw — бросок, catch — ловля). Пары записаны в порядке привязки к броскам паттерна сайтсвопа. Все размеры указываются в сантиметрах. Обратите внимание, что координаты y и z поменялись местами; это сделано из соображений удобства, так как компоненты, не указанные в конце, будут по умолчанию принимать значение 0. Например, (30,10)
сокращенная форма записи (x=30,z=10,y=0)
. Другие факты:
- Если пара координат привязывается к броскам или кетчам с левой руки, то значения
throwx
иcatchx
автоматически меняются на противоположные по знаку - Указанное число пар не обязательно должно быть равно количеству бросков в сайтсвопе — когда броски доходят до конца, просто делается петля обратно к началу. Подобным образом, движение руки может иметь больше тактов, чем паттерн.
- При применении к синхронному сайтсвопу, координаты связываются с бросками в порядке, в котором они были записаны. Например, для паттерна
(4x,6x)
первая координата руки будет привязана к леворучной'4x'
, следующая пара к праворучной'6x'
, и т. д.
В качестве примера, стандартный стиль внутренних бросков "(10)(32.5)."
соответсвует броскам, совершаемым на расстоянии в 10 см от центральной линии (без перепада высот) с последующим кетчем на расстоянии в 32.5 см от центральной линии (также без перепада высот). Стандартный стиль для миллс месса "(-30)(2.5).(30)(-2.5).(-30)(0)."
, если вдруг захочется разобраться в этой головоломке.
Разделители '.'
, в приведенных выше примерах, соответствуют тактам в паттерне сайтсвопа. Например, при 5 бросках в секунду в асинхронном паттерне, броски будут выполняться в 0.0 секунды, 0.2 секунды, 0.4 секунды, и т. д. Время кетчей определяется исходя из настроек времени удерживания. (Единственные броски, которые не соответствуют тактам в точности, это '1'
, которые бросаются чуть раньше и ловятся чуть позже.)
Положение руки в остальное время (кроме точек броска и кетча) также может быть определено путем введения дополнительных координат в каждый такт. Например, движение руки "t(10)c(32.5)(0,45,-25)."
соответствует "поеданию яблока на каждом такте". В этом случае рука по-прежнему бросает и ловит внутренними бросками, но также определено положение руки (0,45,-25)
во время, в точности соответствующем половине пути между каждым кетчем и последующим броском. Отметьте использование 't'
и 'c'
для индикации того, какие именно координаты относятся к позициям броска и кетча. Несколько правил:
- Спецификаторы
't'
и'c'
не являются обязательными; если они не определены, первая координата считается броском, а последняя координата — кетчем. - Спецификатор
't'
всегда должен присоединяться к первой координате. - Если указано несколько дополнительных позиций (т. е., кроме позиций броска/кетча), то они привязываются к равномерно распределенным временным интервалам между бросками и кетчами. Представьте себе линию времени нарисованную на резиновом листе, и представьте как этот лист растягивается по времени, чтобы соответствовать известным временам бросков и кетчей; другие координаты после этого будут располагаться равномерно между этим определёнными временами.
- Вы можете располжить
'-'
вместо координат, если хотите занять временную точку, но не хотите определять координаты руки. В качестве примера рассмотрим стиль"t(10)(0)-(50)c(32.5)."
. В этом случае паттерн таков, что первый бросок и кетч делаются во времена t=0.00 и t=0.20 секунды соответственно. Затем, в представленом примере, заданное положение руки(0)
соответствует t=0.05,(50)
привязывается к t=0.15, а положение руки для t=0.10 остаётся неопределённым. - Позиции бросков и кетчей не могут быть привязаны к значению
'-'
, т. е., эти положения всегда должны быть определены.
Наконец, если имеем дело с несколькими жонглёрами, по умолчанию считается, что к ним применяется один стиль движений рук. Чтобы определить различные движения рук для каждого жонглёра используется формат "<(движения для жонглёра 1)|(движения для жонглёра 2)| ... >"
. Например, использование "<t(10)c(32.5)(0,45,-25).|(-30)(2.5).(30)(-2.5).(-30)(0).>"
для паттерна <3|5>
даст двух жонглёров, один из которых "поедает яблоко", а другой делает миллс месс 5-ю мячами.
Формат перемещения тела
Текстовая строка, определяющая перемещение тела, позволяет определить угол поворота и положение тела каждого жонглёра, как функцию от времени. Формат похож на формат движений рук, но с некоторыми отличиями:
- Отличается формат координат:
(angle, bodyx, body, bodyz)
, где"angle"
угол поворота относительно оси z. Другие координаты"bodyx"
,"bodyy"
, и"bodyz"
записываются в глобальной системе координат, в отличие от координат руки, которые определяются в локальной системе координат центрированной относительно каждого жонглёра. Для одного жонглёра координаты по умолчанию(angle,bodyx,bodyy,bodyz)=(0,0,0,100)
.bodyz=0
соответствует высоте пола. - Координаты не привязаны к броскам и кетчам, но расположены равномерно по времени внутри каждого такта паттерна. Спецификаторы
't'
и'c'
не используются. - Нет необходимости определять кооординаты на каждом такте. Например, строка
"(0)....(90)....(180)....(270)...."
определяет жонглёра, медленно вращающегося в фиксированной позиции, с общим периодом в 16 тактов. - Одно и то же перемещение тела не может быть применено к более чем одному жонглёру. При перекидках, положение тела должно быть указано отдельно для каждого жонглёра, с использованием формата разделителей
'<|>'
аналогично движению рук. (Если количество жонглёров в перемещении тела больше их количества в паттерне, то данные по перемещениям лишних жонглёров игнорируются)
Примеры перемещений тела:
"<(90).|(270,-125).|(90,125).|(270,-250).|(90,250).|(270,-375).>"
= 6 жонглёров, стоящих в одну линию."(0,75,0)...(90,0,75)...(180,-75,0)...(270,0,-75)..."
= один жонглёр медленно прогуливается по кругу с общим периодом в 12 тактов."(0)(90)(180)(270)."
= несколько дурацкий пример, определяющий одного жонглёра, делающего пируэт против часовой стрелки на каждом такте. (Заметьте, что как и с настройками движений рук, на одном такте могут быть определены несколько координат. Заполнители'-'
также могут быть использованы.)"(0).(0).(0).(0).(0).(0,0,0,150)."
= один жонглёр прыгает вверх и вниз.
Ручные настройки для конфигурации паттерна
Данный метод ввода обеспечивает ручной контроль паттерна сайтсвопа. Всё, что может быть определено в других частях панели ввода также может быть введено вручную в этом поле. Ручные настройки переопределяют настройки, сделанные в других частях панели ввода.
Формат записи представляет из себя текстовую строку, состоящую из настроечных параметров, разделенных точкой с запятой. Например "pattern=(4x,4x);bps=6.0;hands=(32.5)(10)."
. Перечень доступных параметров:
pattern
– анимируемый паттерн, записанный в нотации сайствопа. По умолчанию не определён.bps
– число тактов в секунду (beats per second) в формате числа с плавающей точкой. По умолчанию автоматически вычисляется исходя из паттерна.dwell
– количество тактов, проходящее от кетча до следующего броска. Значение — число с плавающей запятой между 0.0 и 2.0; по умолчанию 1.3.hands
– последовательность пространственных координат движений руки в формате, описанном выше.body
– последовательность углов поворота и пространственных координат в формате, описанном выше.colors
– определяет окраску реквизита. Каждый цвет может быть определён по названию или по его красным/зеленым/синим (red/green/blue) составляющим по шкале от 0 до 255. Таким образом, если настройки будут{red}
или{255,0,0}
, на анимации будет использован красный реквизит. Если определено несколько цветов, то они будут привязаны к мячам в циклической манере. Например,{255,0,0}{0,255,0}
будет означать, что мяч 1 красный, мяч 2 зеленый, мяч 3 красный, мяч 4 зелёный, и т. д. Распознаются следующие имена цветов:black, blue, cyan, gray, green, magenta, orange, pink, red, yellow
. Использование значенияmixed
(без скобок) будет соответвовать предопределённому смешению цветов. По умолчанию цвет красный.propdiam
– диаметр реквизита в сантиметрах. Число с плавающей точкой больше чем 0.0; по умолчанию равно 10.0.prop
– вид используемого реквизита. Распознаются следующие виды реквизита:ball
,image
, иring
; по умолчаниюball
.gravity
– ускорение свободного падения, в см/с2. Число с плавающей точкой; по умолчанию равно 980.0 (стандартная земная гравитация).bouncefrac
– часть энергии мяча, сохраняющейся после отскока от пола (на какую долю от высоты сброса он вернется?). Значение является положительным числом с плавающей точкой; по умолчанию 0.9.
В дополнение к этим настройкам, в поле ввода ручных настроек также можно ввести любой из следующих параметров настройки анимации .
Повторение записи
Juggling Lab позволяет сократить ввод текста, который имеет повторяющиеся разделы. Для этого надо выделить повторяющуюся часть в скобки, а затем приписать к ней '^'
и количество повторений. Например, следущие две записи эквивалентны:
<3|3|3|3|3>
<3(|3)^4>
Подобная форма записи повторений может быть использована для задания значений pattern
, hands
, body
, и colors
.
прим. переводчика — отмечу, что подобное сокращение повторяющихся разделов доступно только для версий Juggling Lab'a начиная с 1.2. В более ранних версиях данный формат недоступен.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Последние комментарии