# Переходы
# Синтаксис
Переходы прописываются у определённых команд после ключевого параметра `with`.
В качестве значения может быть указано название перехода и его параметры, или сокращенное имя из [заранее определённого списка](https://docs.lmr.su/books/gaid-po-moddingu/page/transitions "transitions") (также существует [встроенный в игру список](https://docs.lmr.su/books/igrovye-resursy/page/perexody-transitions "transitions")).
Параметры перехода указываются после его названия в том порядке, в котором они прописаны в документации. Если у каких-то параметров есть значение по умолчанию, их можно не указывать — но только в том случае, если параметры, стоящие после, тоже не планируется использовать.
В противном же случае можно явно указать название параметров и их значения, при этом порядок неважен, и часть параметров (если у них есть значения по умолчанию) можно пропустить.
Это делается при помощи символа `:` (двоеточие), которое разделяет название параметра и его значение:
```
with [название перехода] параметр:значение параметр2:значение
```
Рассмотрим на примере перехода [`crossfade`](https://docs.lmr.su/books/komandy-scenariia/page/spraity-character#bkmrk-crossfade) спрайтов: у данного перехода есть два параметра — `fadeOut` и `fadeIn`, которые отвечают за продолжительность исчезновения активного спрайта и появление нового соответственно. У обоих параметров есть значения по умолчанию, поэтому указывать их необязательно.
Попробуем указать значение параметра `fadeIn`, не указывая при этом `fadeOut`:
```
# выводим спрайт Химицу
show hi with dissolve
"..."
# применяем переход crossfade, указав нужный параметр
show hi at right with crossfade fadein:3
```
Таким образом активный спрайт Химицу исчезнет через 0.5 секунд — именно такое значение по умолчанию у `fadeOut` — а новый спрайт появится справа через 3 секунды.
При использовании такого синтаксиса должны быть указаны явно названия всех параметров, значения которых планируется изменить.
Если бы мы использовали короткий синтаксис, пришлось бы дополнительно указывать значение для `fadeOut`:
```
# выводим спрайт Химицу
show hi with dissolve
"..."
# применяем переход crossfade; делает то же самое, что и в предыдущем примере
show hi at right with crossfade 0.5 3
```
# Фоны (background)
Список переходов, которые можно использовать с командой `scene`.
### Dissolve
```
dissolve [duration] (useLerp)
```
- `duration` — продолжительность перехода в секундах.
- `useLerp` — булевое значение. Если true, будет использоваться линейная интерполяция. По умолчанию стоит `false`.
##### Демонстрация
1
```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with dissolve 2
pause hard 2
"..."
```
2
```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with dissolve 2 true
pause hard 2
"..."
```
### Fade
```
fade [fadeOut] [hold] [fadeIn] (color)
```
- `fadeOut` — продолжительность затемнения в секундах.
- `hold` — продолжительность паузы после затемнения в секундах.
- `fadeIn` — продолжительность исчезновения затемнения в секундах.
- `color` — цвет затемнения, может быть ID цвета или его значение. По умолчанию чёрный.
##### Демонстрация
1
```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with fade 1 2 1 yellow
pause hard 2
"..."
```
### Pattern
```
pattern [pattern] (duration)
```
- `pattern` — название изображения паттерна.
- `duration` — продолжительность перехода в секундах. По умолчанию 1 секунда.
##### Демонстрация
1
```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with pattern bottomleft 2
pause hard 2
"..."
```
### SlideIn
```
slidein [direction] (duration)
```
- `direction` — направление, в котором фон должен "заезжать" в кадр.
Возможные значения:
`up` — верх
`down` — низ
`left` — лево
`right` — право
- `duration` — продолжительность перехода в секундах. По умолчанию 1 секунда.
##### Демонстрация
1
```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with slidein left 2
pause hard 2
"..."
```
### SlideOut
```
slideout [direction] (duration)
```
- `direction` — направление, в котором активный фон должен "выезжать" из кадра.
Возможные значения:
`up` — верх
`down` — низ
`left` — лево
`right` — право
- `duration` — продолжительность перехода в секундах. По умолчанию 1 секунда.
##### Демонстрация
1
```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with slideout left 2
pause hard 2
"..."
```
# Спрайты (character)
Список переходов, которые можно использовать с командой [`show`](https://docs.lmr.su/books/komandy-scenariia/page/show "show").
### Crossfade
Одновременно меняет прозрачность у активного спрайта и его замены.
```
crossfade (fadeOut) (fadeIn)
```
- `fadeOut` — продолжительность исчезновения активного спрайта.
По умолчанию 0.5 секунд.
- `fadeIn` — продолжительность появления нового спрайта.
По умолчанию 0.5 секунд.
Демонстрация
```
scene bg akihibara_day
"..."
show hi
"..."
window hide
show hi oldforma with crossfade 1 1
pause hard 2
"..."
```
### TrueDissolve
Выводит новый спрайт позади активного, затем уменьшает прозрачность активного.
```
truedissolve [duration]
```
- `duration` — продолжительность перехода.
Демонстрация
```
scene bg akihibara_day
"..."
show hi
"..."
window hide
show hi plate with truedissolve 1
pause hard 2
"..."
```
### Dissolve
Вариативный переход, объединяющий в себе `Crossfade` и `TrueDissolve`.
В случае, если у спрайтов совпадают значения `CharID` и `PoseID`, будет использован переход `TrueDissolve`, в противном случае — `Crossfade`.
```
dissolve [duration]
```
- `duration` — продолжительность перехода
### Fade
Убирает активный спрайт, затем после определённой паузы выводит новый (если используется в команде hide, то просто убирает).
```
fade [fadeIn] [hold] [fadeOut]
```
- `fadeIn` — продолжительность исчезновения активного спрайта в секундах.
- `hold` — продолжительность паузы.
- `fadeOut` — продолжительность появления нового спрайта в секундах.
Демонстрация
```
scene bg akihibara_day
"..."
show hi
"..."
window hide
show hi plate with fade 0.5 1 0.5
pause hard 2
"..."
```
# Экран (screen)
Список переходов экрана, которые можно использовать с командой `with`.
### Fade
Затемняет экран, затем после определённой паузы убирает затемнение.
```
fade (fadeOut) (hold) (fadeIn) (color)
```
- `fadeOut` — продолжительность затемнения в секундах.
По умолчанию 0.5 секунд.
- `hold` — продолжительность паузы после затемнения в секундах.
По умолчанию 1 секунда.
- `fadeIn` — продолжительность исчезновения затемнения в секундах.
По умолчанию 0.5 секунд.
- `color` — цвет затемнения, может быть ID цвета или его значение.
По умолчанию чёрный.
Демонстрация
```
scene bg akihibara_day
"..."
with fade 1 1 1 red
"..."
```
### Hpunch / Vpunch
Горизонтальная / вертикальная встряска экрана.
```
hpunch (duration) (strength) (vibrato) (randomness) (fadeOut)
```
- `duration` — продолжительность тряски в секундах.
По умолчанию 1.
- `strength` — сила тряски.
По умолчанию 3.
- `vibrato` — сила вибрации.
По умолчанию 10.
- `randomness` — значение от 0 до 180, определяет, насколько направление тряски будет случайным.
По умолчанию 0.
- `fadeOut` — булевое значение. Если true, то тряска закончится плавно.
По умолчанию true.
hpunch
```
scene bg akihibara_day
"..."
with hpunch
"..."
```
vpunch
```
scene bg akihibara_day
"..."
with vpunch
"..."
```