# Переходы



# Синтаксис

Переходы прописываются у определённых команд после ключевого параметра `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 секунды.

<p class="callout warning">При использовании такого синтаксиса должны быть указаны явно названия всех параметров, значения которых планируется изменить.</p>

Если бы мы использовали короткий синтаксис, пришлось бы дополнительно указывать значение для `fadeOut`:

```
# выводим спрайт Химицу
show hi with dissolve
"..."
# применяем переход crossfade; делает то же самое, что и в предыдущем примере
show hi at right with crossfade 0.5 3
```

# Фоны (background)

Список переходов, которые можно использовать с командой `<a href="https://docs.lmr.su/books/komandy-scenariia/page/scene" rel="noopener" target="_blank" title="scene">scene</a>`.

### Dissolve

```
dissolve [duration] (useLerp)
```

- `duration` — продолжительность перехода в секундах.
- `useLerp` — булевое значение. Если true, будет использоваться линейная интерполяция. По умолчанию стоит `false`.

##### Демонстрация

<details id="bkmrk-1-scene-bg-akihibara"><summary>1</summary>

```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with dissolve 2
pause hard 2
"..."
```

</details><details id="bkmrk-2-scene-bg-akihibara"><summary>2</summary>

```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with dissolve 2 true
pause hard 2
"..."
```

</details>### Fade

```
fade [fadeOut] [hold] [fadeIn] (color)
```

- `fadeOut` — продолжительность затемнения в секундах.
- `hold` — продолжительность паузы после затемнения в секундах.
- `fadeIn` — продолжительность исчезновения затемнения в секундах.
- `color` — цвет затемнения, может быть ID цвета или его значение. По умолчанию чёрный.

##### Демонстрация

<details id="bkmrk-1-scene-bg-akihibara-1"><summary>1</summary>

```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with fade 1 2 1 yellow
pause hard 2
"..."
```

</details>### Pattern

```
pattern [pattern] (duration)
```

- `pattern` — название изображения паттерна.
- `duration` — продолжительность перехода в секундах. По умолчанию 1 секунда.

##### Демонстрация  


<details id="bkmrk-1-scene-bg-akihibara-2"><summary>1</summary>

```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with pattern bottomleft 2
pause hard 2
"..."
```

</details>### SlideIn

```
slidein [direction] (duration)
```

- `direction` — направление, в котором фон должен "заезжать" в кадр.  
    Возможные значения:  
     `up` — верх  
     `down` — низ  
     `left` — лево  
     `right` — право
- `duration` — продолжительность перехода в секундах. По умолчанию 1 секунда.

##### Демонстрация

<details id="bkmrk-1-scene-bg-akihibara-3"><summary>1</summary>

```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with slidein left 2
pause hard 2
"..."
```

</details>### SlideOut


```
slideout [direction] (duration)
```

- `direction` — направление, в котором активный фон должен "выезжать" из кадра.  
    Возможные значения:  
     `up` — верх  
     `down` — низ  
     `left` — лево  
     `right` — право
- `duration` — продолжительность перехода в секундах. По умолчанию 1 секунда.

##### Демонстрация

<details id="bkmrk-1-scene-bg-akihibara-4"><summary>1</summary>

```
scene bg akihibara_day
"..."
window hide
scene bg akihibara_night with slideout left 2
pause hard 2
"..."
```

</details>

# Спрайты (character)

Список переходов, которые можно использовать с командой [`show`](https://docs.lmr.su/books/komandy-scenariia/page/show "show").

### Crossfade

Одновременно меняет прозрачность у активного спрайта и его замены.

```
crossfade (fadeOut) (fadeIn)
```

- `fadeOut` — продолжительность исчезновения активного спрайта.   
    По умолчанию 0.5 секунд.
- `fadeIn` — продолжительность появления нового спрайта.  
    По умолчанию 0.5 секунд.

<details id="bkmrk-%D0%94%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-scene-b"><summary>Демонстрация</summary>

```
scene bg akihibara_day
"..."
show hi
"..."
window hide
show hi oldforma with crossfade 1 1
pause hard 2
"..."
```

</details>### TrueDissolve

Выводит новый спрайт позади активного, затем уменьшает прозрачность активного.

```
truedissolve [duration]
```

- `duration` — продолжительность перехода.

<details id="bkmrk-%D0%94%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-scene-b-1"><summary>Демонстрация</summary>

```
scene bg akihibara_day
"..."
show hi
"..."
window hide
show hi plate with truedissolve 1
pause hard 2
"..."
```

</details>### Dissolve

Вариативный переход, объединяющий в себе `Crossfade` и `TrueDissolve`.

В случае, если у спрайтов совпадают значения `CharID` и `PoseID`, будет использован переход `TrueDissolve`, в противном случае — `Crossfade`.

```
dissolve [duration]
```

- `duration` — продолжительность перехода

### Fade

Убирает активный спрайт, затем после определённой паузы выводит новый (если используется в команде hide, то просто убирает).

```
fade [fadeIn] [hold] [fadeOut]
```

- `fadeIn` — продолжительность исчезновения активного спрайта в секундах.
- `hold` — продолжительность паузы.
- `fadeOut` — продолжительность появления нового спрайта в секундах.

<details id="bkmrk-%D0%94%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-scene-b-2"><summary>Демонстрация</summary>

```
scene bg akihibara_day
"..."
show hi
"..."
window hide
show hi plate with fade 0.5 1 0.5
pause hard 2
"..."
```

</details>

# Экран (screen)

Список переходов экрана, которые можно использовать с командой `with`.

### Fade

Затемняет экран, затем после определённой паузы убирает затемнение.

```
fade (fadeOut) (hold) (fadeIn) (color)
```

- `fadeOut` — продолжительность затемнения в секундах.   
    По умолчанию 0.5 секунд.
- `hold` — продолжительность паузы после затемнения в секундах.  
    По умолчанию 1 секунда.
- `fadeIn` — продолжительность исчезновения затемнения в секундах.  
    По умолчанию 0.5 секунд.
- `color` — цвет затемнения, может быть ID цвета или его значение.  
    По умолчанию чёрный.

<details id="bkmrk-%D0%94%D0%B5%D0%BC%D0%BE%D0%BD%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-scene-b"><summary>Демонстрация</summary>

```
scene bg akihibara_day
"..."
with fade 1 1 1 red
"..."
```

</details>### Hpunch / Vpunch

Горизонтальная / вертикальная встряска экрана.

```
hpunch (duration) (strength) (vibrato) (randomness) (fadeOut)
```

- `duration` — продолжительность тряски в секундах.  
    По умолчанию 1.
- `strength` — сила тряски.  
    По умолчанию 3.
- `vibrato` — сила вибрации.  
    По умолчанию 10.
- `randomness` — значение от 0 до 180, определяет, насколько направление тряски будет случайным.  
    По умолчанию 0.
- `fadeOut` — булевое значение. Если true, то тряска закончится плавно.  
    По умолчанию true.

<details id="bkmrk-hpunch-scene-bg-akih"><summary>hpunch</summary>

```
scene bg akihibara_day
"..."
with hpunch
"..."
```

</details><details id="bkmrk-vpunch-scene-bg-akih"><summary>vpunch</summary>

```
scene bg akihibara_day
"..."
with vpunch
"..."
```

</details>