Jump to Navigation

Нотация сайтсвопа, используемая в Juggling Lab

Аватар пользователя РЫndex

Небольшое вступление от переводчика

Статья представляет собой перевод части технической документации по Juggling Lab — мощному и популярному инструменту по части анимации и генерации паттернов. В частности, все анимированные гифки на сайте сделаны посредством Juggling Lab.

Хотя само приложение довольно известно, многие его возможности часто упускаются из виду, и мне хотелось бы обратить внимание на не столь явные возможности приложения.

Оригинал документации расположен по адресу jugglinglab.org/html/ssnotation.html. Отмечу, что скачивать приложение необязательно — существует онлайн-версия приложения. Все ссылки с паттернами в статье ведут на неё (там и будет отображаться анимация.)

Нотация сайтсвопа

На сегодняшний день нотация сайтсвопа является наиболее популярным способом описания паттернов жонглирования. Она используется жонглёрами по всему миру, для объединения паттернов жонглирования друг с другом, а также для выучивания и изобретения новых.

В этом документе представлена используемая в Juggling Lab запись паттернов, основанная на нотации сайтcвопа. Содержит два основных раздела:

Описываемая здесь нотация несколько сложна, чтобы представить её полное описание, но пусть это вас не смущает. Понимание одного только базового сайтсвопа позволит вам вволю повеселится, экспериментирую с Juggling Lab, а со временем вы разберетесь и с остальными нюансами.

Основная идея

Сайтсвоп это очень простая нотация. Когда объект бросается в паттерне жонглирования, сайтсвоп даёт только два факта об этом объекте:

  • Какой рукой он будет брошен, и
  • Сколько тактов времени пройдет прежде чем объект будет брошен снова.

И на этом всё. Таким образом сайтсвоп игнорирует довольно много вещей. Какого рода объект был брошен? Будет ли он подброшен в воздух, на отскок от пола, или же брошен из под ноги? Как при этом двигаются руки? И т. д. Поскольку эти стили и украшательства игнорируются нотацией, можно часто обнаружить, что два паттерна, которые выглядят весьма отлично друг от друга, как, например, каскад тремя мячами и миллс месс, описываются одним и тем же сайтсвопом!

Прежде чем вы подумаете об этом как о критическом недостатке, лучше подумайте об этом в другом ключе: нотация сайствопа описывает только наиболее важные составляющие паттерна, а именно какие объекты в какую руку будут, и когда. Каждый реально существующий паттерн жонглирования имеет описание в сайтсвопе, и каждый сайтсвоп может быть креативно приукрашен бесчисленным количеством способов.

Сольное жонглирование с асинхронным ритмом бросков (базовый сайтсвоп)

В простейшем случае жонглёр в одиночку совершает броски попеременно с обеих рук в порядке R-L-R-L (так называемое асинхронное жонглирование). То есть так, как делается стандартный паттерн каскада. Каждый бросок в нотации может быть описан одним числом, обозначающим количество бросков, которое пройдет прежде чем объект будет брошен снова. Например, в каскаде тремя мячами каждый бросок будет '3'

В подобном случае оказывается, что нет необходимости описывать руку в которую бросается мяч, поскольку нечётные числа всегда будут прилетать в противоположную руку, а чётные числа в ту же руку (что является результатом ограничения по четкому R-L-R-L ритму бросков). Можно думать об этом следующим образом: когда вы делаете бросок 'n' (n это число броска), бросок будет таким, как если бы вы делали каскад или фонтан n объектами, с одинаковой скоростью рук. Таким образом 3 это низкий бросок накрест, а 4 более высокий бросок в ту же руку, и т. д.

Асинхронный сайтсвоп представляет собой всего лишь последовательность этих чисел: первое число описывает первый совершаемый бросок, второе число — второй бросок ( делается рукой противоположной той, которая сделала первый бросок), и т. д.

Далее приведены примеры трюков с тремя мячами (нажмите на паттерны, чтобы посмотреть на анимацию):

3
Стандартный каскад
51
Круг (5 и 1, а не пятьдесят один!)
42
Два в одной рукой, и удерживание мяча в другой (подробнее про удерживание читать далее)
441
Интересный паттерн, напоминающий коробочку
531
55500
Выброс трех мячей вверх

Броски '0', '1', и '2' требуют некоторого дополнительного пояснения. Бросок '2' означает, что объект будет брошен вновь через два броска, или, другими словами, следующим броском с той же руки. Поскольку до следующего броска рука больше ничего не делает, можно интерпретировать '2' просто как удерживание объекта в руке на протяжении одного такта. '1' — быстрый переброс из руки в руку, как в круге. И наконец, '0' — отсутствие броска вовсе; рука пуста (паттерн 60 — три в одной руке, другая рука пустует).

Броски со значениями, превышающими '9', по соглашению обозначаются буквами латинского алфавита 'a' (10), 'b' (11), 'c' (12), и т. д. В Juggling Lab их следует записывать в нижнем регистре, чтобы избежать конфликтов с модификаторами бросков.

Любая ли строка чисел будет возможным для жонглирования паттерном? Нет. Обратите внимание, что если вычислить среднее арифметическое бросков в каждом из приведенных выше паттернов, то всегда получается 3, что соответствует числу жонглируемых объектов. Это один из способов проверить является ли строка чисел корректным паттерном. '76' не будет работать, но '75' будет корректным паттерном с шестью мячами (широко известен как полукаскад шестью мячами). Впрочем, даже обозначенный средний критерий не является достаточным условием, чтобы строка чисел оказалась корректным паттерном жонглирования. Более подробное объяснение можно найти на JIS siteswap help pages.

Прим. переводчика — перевод нескольких из статей, представленных по приведенному адресу, есть на сайте. В частности 1 и 2.

Мультиплексы

В продолжение темы о сайтсвопе можно отметить несколько ограничений накладываемых на паттерн: существует только один жонглёр (сольное жонглирование), руки бросают в переменном ритме 'право-лево' (асинхронное жонглирование), и за раз каждая рука может сделать только один бросок. Эта простейшая форма нотации сайтсвопа, иногда называемая базовым сайтсвопом (vanilla siteswap), была впервые обнаружена независимо друг от друга в 1985 тремя людьми: Bruce Tiemann (Caltech), Paul Klimek (Santa Cruz), и Mike Day (Cambridge, England).

Далее, желая расширить набор доступных для описания паттернов, мы собираемся убирать данные ограничения один за другим. Начнём с того, что жонглёр может бросить или держать в руке более одного предмета одновременно. Этот довольно популярный приём в жонглировании известен как мультиплекс.

Простейший способ записать мультиплекс — сгруппировать соответствующие броски внутри квадратных скобок. Например, мультиплексный паттерн с пятью мячами 24[54]. Начиная с каскада, сперва придерживается мяч правой рукой, потом следует небольшой бросок с левой на саму себя, и затем одновременно бросаются 5 и 4 с правой (в руке находятся два мяча, поскольку на первом шаге придержали мяч). Далее мы можем вернуться обратно в каскад, или повторить трюк, начиная с удерживания левой рукой. Напоминаем, что поскольку у паттерна нечётная длина, то руки будут меняться на каждом новом цикле. [Между прочим, этот трюк выполняет Anthony Gatto в своем выступлении, с тем отличием, что он делает его над головой. Также он может сделать 26[76] с семью мячами.]

Сольное синхронное жонглирование

Теперь мы собираемся убрать то ограничение, что жонглёр делает броски в попеременном право-лево ритме. Простейший случай, когда обе руки делают броски одновременно, называется синхронным жонглированием.

Нотация синхронного сайтсвопа очень похожа на описанную выше нотацию базового сайтсвопа, но с двумя отличиями: (1) броски, совершаемые одновременно, группируются внутри круглых скобок, и (2) теперь нужно указывать направление каждого броска, для чего приписываем 'x' после любого броска, который перелетает накрест в другую руку (бросок без 'x' считается брошенным в ту же руку, что совершила бросок). '2' по-прежнему является удерживанием, но '2x' будет похож на '1' из описанной выше нотации сайтсвопа: быстрый переброс из руки в руку. '0' всё также отсутствие броска, а '0x' считается недопустимым. Все числа, обозначающие броски, теперь должны быть чётными.

Примеры синхронных паттернов:

(4,4)
синхронный фонтан 4-мя мячами
(4x,4x)
распространённая перекрёстная версия фонтана 4-мя мячами
(4x,2x)
Круг 3-мя мячами с одновременными бросками
(4,2x)(2x,4)
'коробочка' или 'тик-так' с 3-мя мячами
(6,6)(6x,2x)
Трюк с 5-ю мячами
(6x,6x)(2x,2x)
Трюк с 4-мя мячами
(4,4)(4,0)
3 мяча как в синхронном фонтане 4-мя мячами (с удалением одного мяча)

По соглашению, левый слот в скобках отводится под левую руку. Мультиплексы также могут быть записаны, в точности как и ранее. Например паттерн с 4-мя мячами (4,2)(2x,[44x]) включает в себя мультиплекс с '4' и '4x' бросаемых из правой руки.

Больше одного жонглёра (перекидки)

Представьте несколько жонглирующих людей, каждый из которых жонглирует асинхронно, но синхронизировано по отношению к другим (другими словами, все жонглёры делают броски с правых рук одновременно). Это вполне соответствует ситуации для перекидки 6-ю булавами на два счета. Теперь нотация может сказать всем людям что требуется делать. Подобное может звучать довольно сложно, но на самом деле это не так уж плохо, особенно если добавить несколько дополнительных указаний, которые будут определены ниже.

Разделим 'броски' на несколько частей — бросковых инструкций для каждого жонглёра. Далее запишем броски самим себе одиночными числами, в точности как и в нотации сайтсвопа (2 — удерживание, 3 — низкий бросок в другую руку и т. д.). Например, <3|3|3|3> будет паттерном, описывающим 4-х жонглёров, каждый из которых делает каскад 3-мя мячами.

Что насчет пассов? Припишите 'p' к числу для обозначения броска партнеру. Чтобы бы определить в какую именно руку партнера отправить пасс, используется следующее правило: если без 'p' бросок должен был перелететь в левую руку, бросайте в левую руку партнера и т. д. Если же имеем дело с более чем двумя жонглёрами, припишете номер после 'p' для обозначения какому именно жонглёру будет отдаваться пасс. По соглашению, жонглёр в левой части <|> будет жонглёром #1, следующий — жонглёром #2, и т. д. Например, <3p|3p> и <3p2|3p1> описывают один и тот же паттерн перекидки с названием ультимейт 6-ю.

Несколько примеров паттернов перекидок (отметьте, что среднее правило всё ещё применимо):

<3p|3p><3|3>
Стандартная перекидка 6-ю предметами на 2 счета. Отметьте, как разделены инструкции для каждого человека. Каждый участник перекидки начинает бросать с правой руки.
<3p|3p>
перекидка-ультимейт, в которой все броски являются пассами.
<3|3>
Два человека делают каскады тремя мячами.
<4p|3><2|3p>
Бросок с левой руки на два оборота, если делать один раз из середины 'каскада' (в этом случае базовым паттерном считается<3p|3p><3|3>).
<2|3p><2p|3><[3p/2]|3p><3|3>
мультиплексный паттерн, левая рука кидает на один оборот. Сперва придерживается мяч правой рукой, в то время как партнер делает '3p'. Далее, '2p' будет передачей с левой руки в левую руку партнера, после чего паттерн восстанавливается. Отметьте использование '/' в мультиплексном броске, для разделения двух бросков'3p' и '2' (в противном случае Juggling Lab может подумать, что 2 это номер жонглёра которому отдаётся 3p пасс). Также может записать как [3p22].
<(4x,4xp)|(4x,4xp)>
Синхронный паттерн с 2-мя жонглёрами и 8-ю объектами. Отметьте, что 'p' пишется после 'x'. 4xp будет броском другому жонглёру в левую руку, поскольку гипотетический бросок 4x самому себе был бы сделан из правой руки в левую. Мультиплексы также могут быть включены в синхронные паттерны с несколькими жонглёрами.
<(2p3,4x)|(2xp3,4p1)|(2xp2,4xp2)>
Синхронный паттерн с 3-мя жонглёрами и 9-ю объектами.

Дополнительные обозначения, поддерживаемые в Juggling Lab

В предыдущем разделе была описана основная нотация сайтсвопа, которая также поддерживается встроенным в Juggling Lab генератором сайтcвопов. Помимо этого, часть Juggling Lab, отвечающая за анимацию, также поддерживает несколько расширений этой нотации, для обеспечения удобства и большей гибкости.

Удобства: повторение субпаттернов, упрощение записи перекидок, суффикс *

Когда паттерн содержит в себе субпаттерн, который повторяется несколько раз, Juggling Lab обеспечивает простой способ обозначения данного момента без ручного повторения субпаттерна. Например, допустим вы хотите записать 10 бросков каскадом 3-мя мячами, с последующим выполнением двух итераций 531. Один способ записи будет таков: 3333333333531531.

Используя формат записи для повторения субпаттернов, данную последовательность можно также записать как (3^10)(531^2). В обоих случаях результат будет одинаков, как если бы субпаттерны были записаны вручную соответствующее число раз.

Следующим удобством будет упрощение нотации перекидок, которое позволяет комбинировать вместе несколько тактов без разделения на единичные <|>. Например, перекидка 6-ю на 2 счета может быть записана как <3p 3|3p 3> вместо <3p|3p><3|3> представленного ранее. Единственное ограничение — общее число тактов внутри <|> должно быть одинаковым для всех жонглёров.

Заключительное удобство записи было предложено Ben'ом Beever'ом, который отметил тот факт, что многие популярные синхронные паттерны симметричны в том смысле, что паттерн состоит из последовательности бросков которые впоследствии повторяются, но со сменой рук. В качестве примера можно привести тик-так или коробочку (4,2x)(2x,4). По соглашению, можно записать только первую половину паттерна, и приписать '*' для обозначения смены рук при повторении. Таким образом коробочка может быть записана как (4,2x)*.

Добавление модификаторов бросков

Juggling Lab поддерживает добавление инструкции к каждому броску сайтcвопа, что позволяет изменить внешний вид паттерна жонглирования. Каждый модификатор представляет из себя строку символов в верхнем регистре приписываемой после модифицируемого броска, в которой основное действие определяется первым символом строки:

  • B — бросок на отскок от пола. Формат записи следующий: B записывается в количестве, соответствующем числу отскоков от пола, с последующим стилем броска:
    • L для пассива (lift bouncing)
    • F для актива (force bouncing)
    • HL для гиперпассива (hyperlift bouncing) (описание hyperforce/hyperlift bouncing, можно посмотреть в этой дискуссии на rec.juggling)
    • HF для гиперактива (hyperforce bouncing)
    Например:
    • BL обозначает стандартный пассивный бросок на отскок с одиночным отскоком
    • BBF обозначает активный бросок с двойным отскоком
    • BBHL обозначает гиперпассивный бросок с двойным отскоком
    Отметьте, что заданный стиль отскока не всегда будет возможен, если мяч тратит слишком много или слишком мало времени в воздухе. (Например, невозможно сделать гиперактивный бросок с одним отскоком при слишком большом времени проводимом в воздухе. В ситуациях, когда определяемый бросок невозможен, Juggling Lab может отрегулировать стиль броска/кетча (пассив vs. актив) для нахождения какого-нибудь физически возможного. Последний способ — это увеличение числа отскоков.
  • F — бросок в актив с одним отскоком. (Отметьте: данный модификатор был добавлен из соображений совместимости; но в общем случае предпочтительнее использование модификатора B)
  • H — Удерживание предмета, который обычно был бы брошен (например, '4'). Действует только для бросков остающихся в бросающей руке, т. е. на стандартные нечётные броски модификатор влияния не окажет
  • T — Бросок объекта, который в обычном случае был бы удержан (например, '2').

Например, 42T3 это сайтсвоп 423, в котором '2' бросается, а не удерживается. <(2p3,4xBL)|(2xp3,4p1BL)|(2xp2,4xp2BL)> — перекидка на трёх жонглёров похожая на описанную выше, только теперь все броски с правых рук передаются через отскок от пола.

Смешивание асинхронной/синхронной нотации

Juggling Lab также понимает паттерны с комбинированием асинхронной и синхронной нотации. Несколько примеров:

41x(4x,3)
Паттерн с 3-мя мячами довольно близкий к (2,4)(4x,2x) по внешнему виду.
55556x56x1x(6x,4)(4,6x)(6x,4)(5x,7)(6x,4)
Паттерн в котором осуществляется переход между каскадом 5-ю мячами и синхронным паттерном (6x,4)*(паттерн также может быть записан как (5^4)6x56x1x((6x,4)*^1)(6x,4)(5x,7)(6x,4) для лучшего отображения включаемых субпаттернов).

Тут можно заметить несколько новых моментов, например нечётные значения бросков (7 и 5) выполняемых синхронно, и броски наподобие '1x' и '5x'. Данные значения требуются для осуществления смены ритма между синхронными и асинхронными бросками.

Несколько уточняющих моментов:

  • Суффикс 'x' для общности означает 'бросок в руку противоположную той, в которую он бы был кинут в асинхронном паттерне'. Таким образом '4x' будет броском 4 накрест, как и в стандартной синхронной нотации, а '1x' броском 1 не-накрест (т. е. короткое удерживание).
  • При переходе между синхронным и асинхронным ритмами, Juggling Lab предполагает, что бросок делает рука противоположная последнему сделанному асинхронному броску (приоритет за синхронной частью).
  • Juggling Lab всегда предполагает наличие одного такта без броска после каждой (,) пары синхронных бросков. Таким образом асинхронный бросок после синхронных бросок происходит спустя два такта после сделанного синхронного броска.
  • В случае, если после пары синхронных бросков следующий бросок (или синхронные броски) должны произойти через один такт, после скобок следует поставить знак '!'. Например, (3,4x)!(1x,0)!*
  • Среднее правило сайтсвопа по прежнему сохраняется для паттернов в смешанной нотации.

К сожалению, нахождение приемлемых переходов между асинхронными и синхронными паттернами не так то просто представить (надежный метод заключается в том, чтобы нарисовать на бумаге лестничную диаграмму (ladder diagram)). Возможно, в будущих версиях Juggling Lab будут добавлены возможности по нахождению таких переходов.

Переопределение рук в асинхронных паттернах

Базовая нотация перекидок предполагает, что при использовании асинхронного ритма бросков, все жонглёры делают броски с одинаковых рук в одно время (как при перекидке 6-ю булавами на 2 счета). Однако много интересных паттернов жонглирования не соответствуют этому правилу. Например, перекидка 7-ю булавами на 2 счета: в этом случае правая рука жонглёра #1 делает бросок одновременно с левой рукой жонглёра #2. Мы бы хотели записать перекидку 7-ю булавами на два счета как <4xp|3><3|4xp>, дополнительно обозначив тот момент, что первый жонглёр начинает кидать с правой (пасс), а второй — с левой (себе).

Juggling Lab позволяет сделать это за счет использования определителей рук: запишите L или R перед любым асинхронным броском, что будет означать, что этот бросок будет сделан с правой или левой руки соответственно. Впоследствии асинхронные броски будут чередоваться стандартным образом, начиная от заданной стартовой точки. Например:

<R|L><4xp|3><3|4xp>
Решение проблемы с перекидкой 7-ю булавами на 2 счета. Жонглёр #1 начинает с правой руки, жонглёр #2 начинает с левой.
L75
Полукаскад 6-ю мячами, в котором высокий бросок делается левой рукой.

Определение рук может находиться в нескольких точках паттерна. Для специфических случаев можно задать несколько определителей рук, например паттерн R3R3xL3L3x в котором используется необычный RRLL ритм бросков. При отсутствии предварительного определения руки перед первым асинхронным броском, Juggling Lab предполагает, что первый асинхронный бросок делается правой рукой.



by www.jugglers.ru