# Справочник по API

Справочник по API командам сценария. Используйте боковую панель для быстрой навигации между доступными командами.

Зачеркивание обозначает безымянный параметр, а жирный – обязательный параметр; остальные параметры следует считать необязательными. Обратитесь к руководству по скриптам Naninovel если вы не знаете, что это такое.

Следующие параметры поддерживаются всеми командами сценария:

ID Тип Описание
if Строка Логическое выражение сценария, контролирующее, должна ли команда выполняться.
wait Boolean Должен ли проигрыватель сценариев дождаться завершения асинхронной команды перед выполнением следующей. Не действует, когда команда выполняется мгновенно.

ПРИМЕЧАНИЕ

Эта ссылка API действительна для Naninovel v1.10.

# animate

# Краткое описание

Команда анимации акторов с указанными ID с помощью ключевых кадров. Ключевые кадры для параметры анимации отделяются литералами |.

# Примечание

Помните, что эта команда ищет акторов с предоставленными ID по всем менеджерам акторов, и в случае, если существует несколько акторов с одинаковым ID (например, персонаж и текстовый принтер), это повлияет только на первый найденный.

При параллельном запуске команд animate (значение «wait» установлено в false) состояние затронутых акторов может изменяться непредсказуемо. Это может привести к неожиданным результатам при откате или выполнении других команд, которые влияют на состояние актора. Обязательно сбрасывайте затронутые свойства анимированных акторов (положение, оттенок, внешний вид и т.д.) после завершения команды или используйте @animate CharacterId (без каких-либо аргументов), чтобы преждевременно остановить анимацию.

# Параметры

ID Тип Описание
ActorIds List<String> ID акторов для анимации.
loop Boolean Следует ли зацикливать анимацию; убедитесь, что для wait установлено значение false, когда включен цикл, в противном случае воспроизведение сценария будет повторяться бесконечно.
appearance Строка Установка внешности для анимированных акторов.
transition Строка Тип эффекта перехода который будет использоваться при изменении внешнего вида (по умолчанию используется кроссфейд).
visibility Строка Статус видимости для анимированных акторов.
posX Строка Значения позиции анимированного актора, по оси Х (в диапазоне от 0 до 100, в процентах от левой границы экрана).
posY Строка Значения позиции анимированного актора, по оси Y (в диапазоне от 0 до 100, в процентах от нижней границы экрана).
posZ Строка Значения позиции анимированного актора, по оси Z (в мировом пространстве); В орто-режиме, ожно использовать только для сортировки.
rotation Строка Значения поворота (по оси Z) для анимированных акторов.
scale Строка Значения шкалы (единообразные) для анимированных акторов.
tint Строка Оттенок цвета для анимированных акторов.

Строки, начинающиеся с # будет проанализирован как шестнадцатеричный следующим образом: #RGB (становится RRGGBB), #RRGGBB, #RGBA (становится RRGGBBAA), #RRGGBBAA; Если альфа не указана, по значение по умолчанию будет FF.

Строки, которые не начинаются с #, будут анализироваться как цвета, поддерживаются: red, cyan, blue, darkblue, lightblue, purple, yellow, lime, fuchsia, white, silver, grey, black, orange, brown, maroon, green, olive, navy, teal, aqua, magenta.
easing Строка Названия функций замедления, используемых для анимации.

Доступные варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic.

Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации менеджера актора.
time Строка Продолжительность ключа анимации в секундах. Если значение ключа отсутствует, будет использоваться значение из предыдущего ключа. Если значение не установлено, будет использовать задержка 0.35 секунд для всех ключей.

# Примеры

; Анимировать актора "Kohaku" за три шага анимации (ключевые кадры),
; смена позиций: первый шаг займет 1, второй - 0.5 и третий - 3 секунды.
@animate Kohaku posX:50|0|85 time:1|0.5|3

; Запустить цикл анимации акторов "Yuko" и "Kohaku"; обратите внимание, что вы можете пропустить
; ключевые значения, указывающие, что параметр не должен изменяться на этапе анимации.
@animate Kohaku,Yuko loop:true appearance:Surprise|Sad|Default|Angry transition:DropFade|Ripple|Pixelate posX:15|85|50 posY:0|-25|-85 scale:1|1.25|1.85 tint:#25f1f8|lightblue|#ffffff|olive easing:EaseInBounce|EaseInQuad time:3|2|1|0.5 wait:false
...
; Остановить анимации.
@animate Yuko,Kohaku loop:false

; Запустить длинную фоновую анимацию для `Kohaku`.
@animate Kohaku posX:90|0|90 scale:1|2|1 time:10 wait:false
; Вы можете сделать что-нибудь еще, пока анимация запущена.
...
; Здесь мы собираемся установить конкретную позицию для персонажа,
; но анимация все еще может работать в фоновом режиме, поэтому сначала сбросьте ее.
@animate Kohaku
; Теперь можно безопасно менять свойства, которые ранее были анимированны
@char Kohaku pos:50 scale:1

# append

# Краткое описание

Добавляет предоставленный текст к текстовому принтеру.

# Примечание

Весь текст будет добавлен немедленно, без эффекта постепенного проявления и прочих эффектов.

# Параметры

ID Тип Описание
Text Строка Текст для добавления.
printer Строка ID актора принтера, который будет использован. Если параметр не указан, будет использован принтер по умолчанию.
author Строка ID актора, который должен быть связан с добавленым текстом.

# Примеры

; Напечатать первую часть предложения как обычно (постепенно проявляя сообщение)
; затем сразу добавить конец предложения.
Lorem ipsum
@append " dolor sit amet."

# arrange

# Краткое описание

Упорядочивает указанных персонажей по оси X. Если параметры не указаны, будет выполнено автоматическое выравнивание, равномерно распределяющее видимых персонажей по оси X.

# Параметры

ID Тип Описание
CharacterPositions List<Named<Decimal>> Коллекция ID персонажей по оси Х на сцене (относительно левой границы экрана, в процентах) с именованными значениями. Позиция 0 относится к левой границе, а 100 к правой границе экрана; 50 это центр.
look Boolean При выполнении автоматической аранжировки определяет, следует ли также заставлять персонажей смотреть в начало сцены (по умолчанию включено).
time Decimal Продолжительность (в секундах) анимации аранжировки. Значение по умолчанию: 0.35 секунды.

# Примеры

; Равномерно распределить всех видимых персонажей 
@arrange

; Переместить персонажей с идентификаторами `Jenna` в 15%,` Felix` в 50% и `Mia` в 85%
; от левой границы экрана.
@arrange Jenna.15,Felix.50,Mia.85

# back

# Краткое описание

Изменяет актор фона.

# Примечание

Фоны обрабатываются немного иначе, нежели персонажи, чтобы лучше приспособиться к традиционному течению визуальных новелл. Большую часть времени вы, вероятно, будете иметь одного фонового актора в сцене, который будет постоянно менять внешности. Чтобы избавиться от лишнего повторения одного и того же ID актора в сценариях, можно предоставить только внешность фона и тип перехода (необязательно) в качестве безымянного параметра, что автоматически преобразует актора "MainBackground". Если это не так, ID фонового актора может быть конкретно указан с помощью параметра id:

# Параметры

ID Тип Описание
AppearanceAndTransition Named<String> Внешний вид (или поза) для фона и типа использованного эффекта перехода. Если переход не предусмотрен, по умолчанию будет использоваться эффект перекрестного затухания.
pos List<Decimal> Положение (относительно границ экрана, в процентах) актора. Позиция описывается следующим образом: «0.0» - левый нижний угол, «50.50» - центр, а «100.100» - верхний правый угол экрана. Используйте Z-компонент (третий параметр, например, ,,10) для перемещения (сортировки) по глубине в режиме орто.
id Строка Идентификатор актора для изменения; укажите *, чтобы повлиять на всех видимых акторов.
appearance Строка Устанавливает внешний вид или позу изменяемого актора.
transition Строка Тип используемого эффекта перехода (по умолчанию используется кроссфейд).
params List<Decimal> Параметры эффекта перехода.
dissolve String Путь к текстуре нестандартное растворение (путь должен указываться относительно папки Resources). Действует только когда переход установлен в режим «Пользовательский».
visible Boolean Статус видимости для изменяемого актора.
position List<Decimal> Положение (в мировом пространстве) для изменяемого актора. Используйте Z-компонент (третий параметр) для перемещения (сортировки) по глубине в режиме орто.
rotation List<Decimal> Вращение для изменяемого актора.
scale List<Decimal> Масштаб для изменяемого актора.
tint String Цвет оттенка для изменяемого актора.

Строки, начинающиеся с #, будут анализироваться как шестнадцатеричные следующим образом: #RGB (становится RRGGBB), #RRGGBB, #RGBA (становится RRGGBBAA), #RRGGBBAA; если альфа не указана, по умолчанию будет FF.

Строки, которые не начинаются с #, будут анализироваться как буквенные цвета, поддерживаются следующие параметры: красный, голубой, синий, темно-синий, светло-синий, фиолетовый, желтый, салатовый, фуксия, белый, серебристый, серый, черный, оранжевый, коричневый, темно-бордовый, зеленый, оливковый, темно-синий, бирюзовый, аква, пурпурный.
easing String Имя функции замедления, используемой для модификации.

Доступные Варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic.

Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации менеджера актора.
time Decimal Продолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды.

# Примеры

; Установить `River` в качестве внешности основного фона
@back River

; То же, что и выше, но также используется эффект перехода `RadialBlur`
@back River.RadialBlur

; Подкрасить все видимые фоны на сцене.
@back id:* tint:#ffdc22

; С учетом SFX `ExplosionSound` и фона` ExplosionSprite` следующая последовательность команд будет имитировать два взрыва, появляющихся далеко и близко к камере.
@sfx ExplosionSound volume:0.1
@back id:ExplosionSprite scale:0.3 pos:55,60 time:0 isVisible:false
@back id:ExplosionSprite
@fx ShakeBackground params:,1
@hide ExplosionSprite
@sfx ExplosionSound volume:1.5
@back id:ExplosionSprite pos:65 scale:1
@fx ShakeBackground params:,3
@hide ExplosionSprite

# bgm

# Краткое описание

Воспроизведение или изменение текущей воспроизводимой дорожки BGM (фоновой музыки) с указанным именем.

# Примечание

Музыкальные треки зациклены по умолчанию. Если название музыкальной дорожки (BgmPath) не указано, будут затронуты все воспроизводимые в данный момент дорожки. При вызове для дорожки, которая уже воспроизводится, воспроизведение не будет затронуто (дорожка не начнет воспроизводиться с самого начала), но будут применены указанные параметры (громкость и зацикленность дорожки).

# Параметры

ID Тип Описание
BgmPath String Путь к музыкальной дорожке для воспроизведения.
intro String Путь к вступительной музыкальной дорожке, которую нужно воспроизвести один раз перед основной дорожкой (не зависит от параметра цикла).
volume Decimal Громкость музыкальной дорожки.
loop Boolean Играть ли дорожку с начала, когда она заканчивается.
fade Decimal Длительность постепенного увеличения громкости при запуске воспроизведения и затухания при остановке, в секундах (по умолчанию 0.0); не действует при изменении воспроизводимой дорожки.
group String Группа в аудиомикшере, используемая при воспроизведении аудио.
time Decimal Продолжительность (в секундах) модификации. Значение по умолчанию 0.35 секунды.

# Примеры

; Начать воспроизведение музыкальной дорожки с названием `Sanctuary` в цикле
@bgm Sanctuary

; То же, что и выше, но затухание громкости более 10 секунд и еденичным воспроизведеним
@bgm Sanctuary fade:10 loop:false

; Изменить громкость всех воспроизводимых музыкальных треков до 50% в течение 2,5 секунд и заставить их воспроизводиться в цикле
@bgm volume:0.5 loop:true time:2.5

; Разово сыграть BattleThemeIntro, а затем сразу BattleThemeMain.
@bgm BattleThemeMain intro:BattleThemeIntro

# br

# Краткое описание

Добавляет разрыв строки в текстовый принтер.

# Параметры

ID Тип Описание
Count Integer Число добавляемых разрывов.
printer String ID актора принтера. Если параметр не задан, будет использовать значение по умолчанию.
author String ID актора, который должен быть связан с добавленным разрывом строки.

# Примеры

; Второе предложение будет напечатано с новой строки
Lorem ipsum dolor sit amet.[br]Consectetur adipiscing elit.

; Второе предложение будет печататься через две строчки после первого
Lorem ipsum dolor sit amet.[br 2]Consectetur adipiscing elit.

# camera

# Краткое описание

Модифицирует основную камеру, изменяя смещение, уровень масштабирования и вращение во времени. См. это видео для быстрой демонстрации результата команды.

# Параметры

ID Тип Описание
offset List<Decimal> Локальное смещение положения камеры в единицах по осям X, Y, Z.
roll Decimal Локальное вращение камеры по оси Z в градусах (от 0.0 до 360.0 или от -180.0 до 180.0). То же, что и третий компонент параметра вращение; игнорируется, когда указано rotation.
rotation List<Decimal> Локальное вращение камеры по осям X, Y, Z в градусах (от 0.0 до 360.0 или от -180.0 до 180.0).
zoom Decimal Установите масштаб камеры (ортогональный размер или поле зрения, в зависимости от режима рендеринга) в диапазоне от 0.0 (без увеличения) до 1.0 (при полном увеличении).
ortho Boolean Должна ли камера отображаться в орфографическом (истинном) или перспективном (ложном) режиме.
toggle List<String> Имена компонентов для переключения (включить, если отключено, и наоборот). Компоненты должны быть прикреплены к тому же игровому объекту, что и камера. Это можно использовать для переключения пользовательские эффекты пост-обработки.
set List<Named<Boolean>> Имена включаемых/выключаемых компонентов. Компоненты должны быть прикреплены к тому же игровому объекту, что и камера. Это можно использовать для явного включения или отключения пользовательских эффектов пост-обработки. Указанное состояние компонентов перекроет эффект от параметра toggle.
easing String Имя функции замедления, используемой для модификации.

Доступные Варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic.

Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации камеры.
time Decimal Продолжительность модификации (в секундах). Значение по умолчанию: 0.35 секунды.

# Примеры

; Сместить камеру на -3 единицы по оси X (панорамирование) и на 1.5 единицы по оси Y 
@camera offset:-3,1.5

; Установить камеру в режим перспективы, увеличив на 50% и сдвинув на 5 единиц по оси Z.
@camera ortho:false offset:,,-5 zoom:0.5

; Установить камеру в орфографический режим и повернуть на 10 градусов по часовой стрелке.
@camera ortho:true roll:10

; Сместить, смасштабировать и одновременно анимировать угол в течение 5 секунд
@camera offset:-3,1.5 zoom:0.5 roll:10 time:5

; Мгновенно сбросить камеру в состояние по умолчанию
@camera offset:0,0 zoom:0 rotation:0,0,0 time:0

; Переключить компоненты `FancyCameraFilter` и `Bloom`, прикрепленные к камере
@camera toggle:FancyCameraFilter,Bloom

; Включить компонент `FancyCameraFilter` и отключить `Bloom`
@camera set:FancyCameraFilter.true,Bloom.false

# char

# Краткое описание

Модифицирует актор персонажа.

# Параметры

ID Тип Описание
IdAndAppearance Named<String> ID, который нужно изменить (укажите *, чтобы затронуть все видимые символы), и внешний вид (или поза), который нужно установить. Если внешний вид не указан, будет использоваться либо вариант «по умолчанию» (Если он сущетвует), либо случайный.
look String Направоление, куда смотрит актор; поддерживаемые значения: слева, справа, по центру.
avatar String Имя (путь) текстуры аватара для назначения персонажу. Используйте none, чтобы удалить (сбросить) текстуру аватара у персонажа.
pos List<Decimal> Установка положения (относительно границ экрана, в процентах), для измененного актора. Положение описывается следующим образом: «0.0» - левый нижний угол, «50.50» - центр, а «100.100» - верхний правый угол экрана. Используйте Z-компонент (третий параметр, например, ,, 10) для перемещения (сортировки) по глубине в режиме орто.
id String ID актора для изменения; укажите *, чтобы повлиять на всех видимых акторов.
appearance String Внешний вид (или поза), изменяемого актора.
transition String Тип используемого эффекта перехода (по умолчанию используется перекрестное затухание).
params List<Decimal> Параметры эффекта перехода.
dissolve String Путь к текстуре custom disolve путь должен указываться относительно папки Resources). Действует только когда переход установлен в режим «Пользовательский».
visible Boolean Статус видимости, изменяемого актора.
position List<Decimal> Положение (в мировом пространстве) изменяемого актора. Используйте Z-компонент (третий параметр) для перемещения (сортировки) по глубине в режиме орто.
rotation List<Decimal> Вращение для изменяемого актора.
scale List<Decimal> Масштаб, для изменяемого актора
tint String Цвет оттенка изменяемого актора.

Строки, начинающиеся с #, будут анализироваться как шестнадцатеричные следующим образом: #RGB (becomes RRGGBB), #RRGGBB, #RGBA (becomes RRGGBBAA), #RRGGBBAA; если альфа не указана, по умолчанию будет FF.

Строки, которые не начинаются с #, будут анализироваться как буквенные цвета, поддерживаются следующие значения: красный, голубой, синий, темно-синий, светло-синий, фиолетовый, желтый, салатовый, фуксия, белый, серебристый, серый, черный, оранжевый, коричневый , бордовый, зеленый, оливковый, темно-синий, чирок, аква, пурпурный.
easing String Имя функции замедления, используемой для модификации.

Доступные Варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic.

Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации менеджера актора.
time Decimal Продолжительность модификации (в секундах). Значение по умолчанию: 0.35 секунды.

# Примеры

; Показать персонажа с идентификатором `Sora` с эффектом появления по умолчанию.
@char Sora

; То же, что и выше, но устанавить внешний вид «Happy».
@char Sora.Happy

; То же, что и выше, но также располажить персонажа на 45% от левой границы экрана и на 10% от нижней границы; также указывает ему установить направления взгляда налево.
@char Sora.Happy look:left pos:45,10

; Заставить Sora показаться по центру снизу, перед Феликсом
@char Sora pos:50,0,-1
@char Felix pos:,,0

; Тонировать всех видимых персонажей на сцене.
@char * tint:#ffdc22

# choice

# Краткое описание

Добавляет параметр choice в обработчик выбора с указанным идентификатором (или идентификатором по умолчанию).

# Примечание

Если параметры goto,gosub и do не указаны, выполнение сценария будет продолжено со следующей строки сценария.

# Параметры

ID Тип Описание
ChoiceSummary String Текст для отображения на кнопке выбора. Если текст содержит пробелы, заключите его в двойные кавычки ("). Если вы хотите включить двойные кавычки в сам текст, экранируйте их.
button String Путь (относительно папки Resources) к кнопке prefab, представляющей выбор. Префаб должен иметь компонент ChoiceHandlerButton, присоединенный к корневому объекту. Если параметр не указан, будет использоваться кнопка по умолчанию.
pos List<Decimal> Локальное положение кнопки выбора внутри обработчика выбора (если поддерживается реализацией обработчика).
handler String ID обработчика выбора, для которого нужно добавить выбор. Если параметр не укзаан, будет использовать обработчик по умолчанию.
goto Named<String> Путь, по которому нужно идти, когда пользователь сделал выбор; см. команду @goto для справки по синтаксису.
gosub Named<String> Путь к подпрограмме, которую нужно выбрать пользователем; см. команду @gosub для справки по синтаксису. Когда назначено goto, этот параметр будет игнорироваться.
set String Выражение для выполнения, которые выполняться, когда вариант ответа выбран пользователем; см. команду @set для справки по синтаксису.
do List<String> Команды скрипта для выполнения, когда вариант ответа выбран пользователем; не забывайте экранировать запятые внутри значений списка, чтобы они не рассматривались как разделители. Команды будут вызываться по порядку после обработки set,goto и gosub (если назначены).
show Boolean Показывать ли также обработчик выбора, для которого добавлен выбор; включен по умолчанию.
time Decimal Продолжительность (в секундах) анимации постепенного появления (раскрытия). Значение по умолчанию: 0.35 секунды.

# Примеры

; Напечатать текст, затем немедленно показать варианты ответа и остановить выполнение скрипта.
Continue executing this script or ...?[skipInput]
@choice "Continue"
@choice "Load another script from start" goto:AnotherScript
@choice "Load another script from \"MyLabel\" label" goto:AnotherScript.MyLabel
@choice "Goto to \"MySub\" subroutine in another script" gosub:AnotherScript.MySub
@stop

; Вы также можете установить пользовательские переменные в зависимости от выбора варианта ответа.
@choice "I'm humble, one is enough..." set:score++
@choice "Two, please." set:score=score+2
@choice "I'll take the entire stock!" set:karma--;score=999

; Воспроизвести звуковой эффект и расставить персонажей, когда будет выбран вариант ответа
@choice "Arrange" goto:.Continue do:"@sfx Click, @arrange k.10\,y.55"

; В следующем примере показано, как создать интерактивную карту с помощью команд `@choice`.
; В этом примере мы предполагаем, что внутри папки `Resources / MapButtons` вы сохранили префабы с компонентом` ChoiceHandlerButton`, прикрепленным к их корневым объектам.
# Map
@back Map
@hidePrinter
@choice handler:ButtonArea button:MapButtons/Home pos:-300,-300 goto:.HomeScene
@choice handler:ButtonArea button:MapButtons/Shop pos:300,200 goto:.ShopScene
@stop

# HomeScene
@back Home
Home, sweet home!
@goto .Map

# ShopScene
@back Shop
Don't forget about cucumbers!
@goto .Map

# clearBacklog

# Краткое описание

Удаляет все сообщения из принтера бэклога.

# Примеры

@clearBacklog

# clearChoice

# Краткое описание

Удаляет все варианты ответа в обработчике выбора с предоставленным идентификатором (или по умолчанию, если идентификатор не указан; или во всех существующих обработчиках, если в качестве идентификатора указан *) и (необязательно) скрывает его (их).

# Параметры

ID Тип Описание
HandlerId String ID обработчика выбора очистить. Если он не указан, будет использоваться обработчик по умолчанию. Укажите *, чтобы очистить все существующие обработчики.
hide Boolean Следует ли также скрывать затронутые принтеры.

# Example

; Добавить варианты ответа и удалить их через установленное время (если игрок не выбрал один).
# Start
You have 2 seconds to respond![skipInput]
@choice "Cats" goto:.PickedChoice
@choice "Dogs" goto:.PickedChoice
@wait 2
@clearChoice
Too late!
@goto .Start
# PickedChoice
Good!

# despawn

# Краткое описание

Уничтожает объект, созданный командой @spawn.

# Примечание

Если в префабе есть компонент UnityEngine.MonoBehaviour, прикрепленный к корневому объекту, и компонент реализует интерфейсNaninovel.Commands.DestroySpawned.IParameterized, перед уничтожением объекта будут переданы указанные значения params; если компонент реализует интерфейс Naninovel.Commands.DestroySpawned.IAwaitable, выполнение команды будет ждать выполнения задачи асинхронного завершения, возвращаемой реализацией, прежде чем уничтожить объект.

# Параметры

ID Тип Описание
Path String Имя (путь) префаба, который нужно уничтожить. Ожидается, что команда @spawn с тем же параметром будет выполнена раньше.
params List<String> Параметры, которые нужно установить перед уничтожением префаба. Требуется, чтобы к префабу был прикреплен компонент Naninovel.Commands.DestroySpawned.IParameterized , связанный с корневым объектом.

# Примеры

; Учитывая, что команда "@spawn Rainbow" была выполнена раньше
@despawn Rainbow

# else

# Краткое описание

Отмечает ветвь блока условного выполнения, который всегда выполняется в случае, если не выполняются условия открывающей @if и всех предшествующих @elseif (если есть) команд. Примеры использования см. в руководстве условния выполнения.

# elseIf

# Краткое описание

Отмечает ветвь блока условного выполнения, которая выполняется в случае выполнения собственного условия (выражение оценивается как истинное), в то время как условия открытия @if и всех предшествующих команд @elseif (если есть) не выполняются. Примеры использования см. в руководстве условния исполнения.

# Параметры

ID Тип Описание
Expression String Выражение сценария, которое должно возвращать логическое значение.

# endIf

# Краткое описание

Закрывает блок условного выполнения @if. Примеры использования см. в руководстве условния выполнения.

# finishTrans

# Краткое описание

Завершает переход между сценами, начатый командой @startTrans; см. справку по команде запуска для получения дополнительной информации и примеров использования.

# Параметры

ID Тип Описание
Transition String Тип используемого эффекта перехода (по умолчанию используется кроссфейд).
params List<Decimal> Параметры эффекта перехода.
dissolve String Путь к кастомномной текстуре растворения (путь должен быть относительно папки Resources). Действует, только если для перехода установлен Customрежим.
easing String Имя функции замедления, используемой для модификации.

Доступные опции: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic.

Если не указано, будет использоваться функция ослабления по умолчанию, установленная в настройках конфигурации менеджера актора.
time Decimal Продолжительность перехода (в секундах). Значение по умолчанию: 0.35 секунды.

# gosub

# Краткое описание

Переходит при воспроизведении скрипта наниновелл по указанному пути и сохраняет этот путь в ?глобальном состоянии ? ; @return команды используют эту информацию для перенаправления на команду после последней запущенной команды gosub. Предназначен для использования в качестве функции (подпрограммы) в языке программирования, позволяющей повторно использовать фрагмент сценария наниновелл. Полезно для многократного вызова повторяющегося набора команд.

# Примечание

Можно объявить gosub вне текущего воспроизводимого скрипта и использовать его из любых других скриптов; по умолчанию сброс состояния не происходит, когда вы загружаете другой скрипт для воспроизведения gosub или возвращаетесь назад, чтобы предотвратить задержки и загрузочные экраны. Однако имейте в виду, что все ресурсы, указанные в сценарии gosub, будут храниться до следующего сброса состояния.

# Параметры

ID Тип Описание
Path Named<String> Путь для перехода в следующем формате: ScriptName.LabelName. Если имя метки опущено, скрипт будет воспроизводиться с самого начала. Если имя сценария опущено, попытается найти метку в текущем воспроизводимом сценарии.
reset List<String> Если указано, сбрасывает состояние служб ядра перед загрузкой сценария (если путь ведет к другому сценарию). Укажите *, чтобы сбросить все службы (кроме диспетчера переменных), или укажите имена служб, которые нужно исключить из сброса. По умолчанию состояние не сбрасывается.

# Примеры

; При воспроизведении, переходит к метке `VictoryScene`, в воспроизводимом в данный момент скрипте, выполняет команды и переходит обратно к команде после `gosub`.
@gosub .VictoryScene
...
@stop

# VictoryScene
@back Victory
@sfx Fireworks
@bgm Fanfares
You are victorious!
@return

; Другой пример с некоторым ветвлением внутри подпрограммы.
@set time=10
; Здесь мы получаем один результат
@gosub .Room
...
@set time=3
; И вот мы получаем еще один
@gosub .Room
...

# Room
@print "It's too early, I should visit this place when it's dark." if:time<21&&time>6
@print "I can sense an ominous presence here!" if:time>21&&time<6
@return

# goto

# Краткое описание

Перемещает воспроизведение сценария наниновеллы по указанному пути. Когда путь ведет к другому (не воспроизводимому в данный момент) скрипту новеллы, он также сбросит состояние перед загрузкой целевого скрипта, если ResetStateOnLoad не отключен в комплектации.

# Параметры

ID Тип Описание
Path Named<String> Путь для перехода в следующем формате: ScriptName.LabelName. Если имя метки опущено, скрипт будет воспроизводиться с самого начала. Если имя сценария опущено, попытается найти метку в текущем воспроизводимом сценарии.
reset List<String> Если указано, сбрасывает состояние служб ядра перед загрузкой сценария (если путь ведет к другому сценарию). Укажите *, чтобы сбросить все службы (кроме диспетчера переменных), или укажите имена служб, которые нужно исключить из сброса. Укажите -, чтобы не выполнять сброса (даже если он включен по умолчанию в конфигурации). Значение по умолчанию контролируется опцией Reset State On Load в меню конфигурации двигателя.

# Примеры

; Загружает и запускает воспроизведение сценария новеллы с именем `Script001` с самого начала.
@goto Script001

; Тоже, что и выше, но начинает играть с метки `AfterStorm`.
@goto Script001.AfterStorm

; Перемещает воспроизведение к метке `Epilogue` в воспроизводимом в данный момент скрипте.
@goto .Epilogue

; Загрузите Script001, но не сбрасывайте аудио-менеджер (воспроизведение звука не прерывается). Имейте в виду, что исключение сброса состояния формы службы оставит связанные ресурсы в памяти.
@goto Script001 reset:IAudioManager

# hide

# Краткое описание

Скрывает (делает невидимыми) акторов (персонаж, фон, текстовый принтер, обработчик выбора и т. д.) С указанными идентификаторами. В случае, если найдены несколько акторов с одним и тем же идентификатором (например, персонаж и принтер), это повлияет только на первый найденый актор.

# Параметры

ID Тип Описание
ActorIds List<String> ID акторов, которых нужно скрыть.
time Decimal Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды.

# Примеры

; Если актор с ID `SomeActor` виден, то скрыть его в течение 3 секунд.
@hide SomeActor time:3

; Спрятать акторов `Kohaku` и `Yuko`.
@hide Kohaku,Yuko

# hideAll

# Краткое описание

Скрывает (удаляет) всех действующих лиц (например, персонажей, фоны, текстовые принтеры, обработчики выбора и т. Д.) на сцене.

# Параметры

ID Тип Описание
time Decimal Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды.

# Примеры

@hideAll

# hideChars

# Краткое описание

Скрывает (удаляет) всех видимых персонажей на сцене.

# Параметры

ID Тип Описание
time Decimal Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды.

# Примеры

@hideChars

# hidePrinter

# Краткое описание

Скрывает текстовый принтер.

# Параметры

ID Тип Описание
PrinterId String ID используемого принтера. Если не указано иное, будет использоваться значение по умолчанию.
time Decimal Продолжительность (в секундах) анимации скрытия. Значение по умолчанию для каждого принтера устанавливается в конфигурации актора.

# Примеры

; Скрыть принтер по умолчанию.
@hidePrinter
; Скрыть принтер с ID `Wide`.
@hidePrinter Wide

# hideUI

# Краткое описание

Делает элементы пользовательского интерфейса с указанными именами невидимыми. Если имена не указаны, прекратит рендеринг (скроет) весь UI (включая все встроенные пользовательские интерфейсы).

# Примечание

Если скрыть весь UI с помощью этой команды и параметра allowToggle, который имеет значение false (по умолчанию), пользователь не сможет повторно отобразить UI с помощью горячих клавиш или щелкнув в любом месте экрана; используйте команду @showUI, чтобы снова сделать UI великим видимым.

# Параметры

ID Тип Описание
UINames List<String> Имя скрытых элементов пользовательского интерфейса.
allowToggle Boolean При скрытии всего UI, определяет, разрешить ли пользователю повторно отображать UI с помощью горячих клавиш или щелчком в любом месте экрана (по умолчанию false). Не влияет на скрытие определенного UI.
time Decimal Продолжительность (в секундах) анимации скрытия. Если не указано, будет использоваться продолжительность, зависящая от UI.

# Примеры

; При наличии пользовательского UI `Calendar` следующая команда скроет его.
@hideUI Calendar

; Скрыть весь UI, и не позволит пользователю повторно показать его
@hideUI
...
; Сделать UI снова видимым
@showUI

; Скрыть весь UI, но разрешить пользователю переключать его обратно
@hideUI allowToggle:true

; Одновременно скрыть встроенный интерфейс `TipsUI` и интерфейс ` Calendar`.
@hideUI TipsUI,Calendar

# i

# Краткое описание

Удерживает выполнение скрипта до тех пор, пока пользователь не активирует вход continue. Ярлык для @wait i.

# Примеры

; Пользователь должен будет активировать ввод `continue` после первого предложения, чтобы принтер продолжил печать следующий текст.
Lorem ipsum dolor sit amet.[i] Consectetur adipiscing elit.

# if

# Краткое описание

Обозначает начало блока условного выполнения. Всегда должен закрываться командой @endif. Примеры использования см. в руководстве условия выполнения.

# Параметры

ID Тип Описание
Expression String Выражение сценария, которое должно возвращать логическое значение.

# input

# Краткое описание

Показывает интерфейс (UI) поля ввода, где пользователь может ввести произвольный текст. После отправки введенный текст будет присвоен указанной пользовательской переменной.

# Примечание

Посмотрите этот видеогид на примере использования.

Чтобы назначить отображаемое имя для символа с помощью этой команды, рассмотрите возможность привязки имени к пользовательской переменной.

# Параметры

ID Тип Описание
VariableName String Имя пользовательской переменной, которой будет назначен введенный текст.
summary String Необязательный текст сводки для отображения вместе с полем ввода. Если текст содержит пробелы, заключите его в двойные кавычки ("). Если вы хотите включить двойные кавычки в сам текст, не используйте их.
value String Предопределенное значение для поля ввода.
play Boolean Следует ли автоматически возобновлять воспроизведение скрипта, когда пользователь отправит форму ввода.

# Примеры

; Разрешить пользователю ввести произвольный текст и назначить его пользовательской переменной `name`
@input name summary:"Choose your name."
; Команда Stop требуется для остановки выполнения скрипта до тех пор, пока пользователь не отправит ввод
@stop

; Затем вы можете ввести присвоенную переменную `name` в скрипте новеллы.
Archibald: Greetings, {name}!
{name}: Yo!

; ...или используйте его внутри множественных и условных выражений
@set score=score+1 if:name=="Felix"

# lipSync

# Краткое описание

Позволяет принудительно остановить анимацию рта с синхронизацией губ для персонажа с предоставленным идентификатором; при остановке анимация не запустится снова, пока эта команда не будет разрешена снова. Персонаж должен иметь возможность получать события синхронизации губ (в настоящее время только общие реализации и реализации Live2D). См. Руководство персонажей для получения дополнительной информации о функции синхронизации губ.

# Параметры

ID Тип Описание
CharIdAndAllow Named<Boolean> ID символа, за которым следует логическое значение (true или false), указывающее, следует ли остановить или разрешить анимацию синхронизации губ.

# Примеры

; Поскольку автоматическое озвучивание отключено, а синхронизация губ управляется текстовыми сообщениями, исключите знаки препинания из анимации рта.
Kohaku: Lorem ipsum dolor sit amet[lipSync Kohaku.false]... [lipSync Kohaku.true]Consectetur adipiscing elit.

# loadScene

# Краткое описание

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

# Параметры

ID Тип Описание
SceneName String Имя загружаемой сцены.
additive Boolean Следует ли загружать сцену аддитивно или выгружать текущие загруженные сцены перед загрузкой новой (по умолчанию). См. Документацию по загрузке сцены для получения дополнительной информации.

# Примеры

; Загрузить сцену "MyTestScene" в одиночном режиме
@loadScene MyTestScene
; Загрузить сцену "MyTestScene" в аддитивном режиме
@loadScene MyTestScene additive:true

# lock

# Краткое описание

Устанавливает разблокируемый элемент с предоставленным идентификатором в состояние locked .

# Примечание

Разблокированное состояние элементов сохраняется в global scope.
Если элемент с предоставленным идентификатором не зарегистрирован в карте глобального состояния, соответствующая запись будет добавлена автоматически.

# Параметры

ID Тип Описание
Id String ID разблокируемого предмета. Используйте *, чтобы заблокировать все зарегистрированные разблокируемые элементы.

# Примеры

@lock CG/FightScene1

# look

# Краткое описание

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

# Параметры

ID Тип Описание
enable Boolean Включить или отключить режим просмотра камерой. По умолчанию: true.
zone List<Decimal> Связанный прямоугольник с размерами X, Y в единицах от исходного положения камеры, описывающий, как далеко камера может быть перемещена. По умолчанию: 5,3.
speed List<Decimal> Скорость движения (чувствительность) камеры по осям X, Y. По умолчанию: 1.5,1.
gravity Boolean Следует ли автоматически перемещать камеру в исходное положение, когда вход просмотра не активен (например, мышь не двигается или аналоговый джойстик находится в положении по умолчанию). По умолчанию: false.

# Примеры

; Активировать режим просмотра камеры с параметрами по умолчанию
@look

; Активировать режим просмотра камеры с пользовательскими параметрами
@look zone:6.5,4 speed:3,2.5 gravity:true

; Отключить режим обзора камеры и сбросить смещение камеры
@look enabled:false
@camera offset:0,0

# movie

# Краткое описание

Воспроизводит фильм с указанным именем (путем).

# Примечание

Изображение на экране исчезнет перед воспроизведением фильма и снова исчезнет после воспроизведения. Воспроизведение можно отменить, активировав вход cancel (по умолчанию клавиша Esc).

# Параметры

ID Тип Описание
MovieName String Имя ресурса фильма для воспроизведения.

# Примеры

; Если видеоклип "Opening" добавлен в ресурсы, воспроизвести его.
@movie Opening

# print

# Краткое описание

Печатает (показывает с течением времени) указанное текстовое сообщение с помощью актора текстового принтера.

# Примечание

Эта команда используется при обработке общих текстовых строк, например, общая строка Kohaku: Hello World! будет автоматически преобразована в @print "Hello World!" author:Kohaku при разборе скриптов новеллы.
По умолчанию сбросит (очистит) принтер перед печатью нового сообщения; установите для параметра reset значение false или отключите Auto Reset в конфигурации актора принтера, чтобы предотвратить это, и вместо этого добавьте текст.
?Сделает принтер по умолчанию и скроет другие принтеры по умолчанию; установите для параметра default значение false или отключите Auto Default в конфигурации актора принтера, чтобы предотвратить это.
Будет ждать ввода данных пользователем перед завершением задачи по умолчанию; установите для параметра waitInput значение false или отключите Auto Wait в конфигурации актора принтера, чтобы он возвращался, как только текст полностью раскрывается.

# Параметры

ID Тип Описание
Text String Текст сообщения для печати. Если текст содержит пробелы, заключите его в двойные кавычки ("). Если вы хотите включить двойные кавычки в сам текст, экранируйте их.
printer String ID используемого принтера. Если не указано иное, будет использоваться значение по умолчанию.
author String ID актора, который должен быть связан с напечатанным сообщением.
speed Decimal Множитель скорости отображения текста; должно быть положительным или нулевым. Установка на единицу даст скорость по умолчанию.
reset Boolean Следует ли сбрасывать текст принтера перед выполнением задания печати. Значение по умолчанию контролируется с помощью свойства Auto Reset в меню конфигурации актора принтера.
default Boolean Использовать ли принтер по умолчанию и скрывать другие принтеры перед выполнением задания печати. Значение по умолчанию контролируется с помощью свойства Auto Default в меню конфигурации актора принтера.
waitInput Boolean Следует ли ждать ввода данных пользователем после завершения задания печати. Значение по умолчанию контролируется с помощью свойства Auto Wait в меню конфигурации актора принтера.
br Integer Количество разрывов строки, добавляемых перед печатным текстом. Значение по умолчанию контролируется с помощью свойства Auto Line Break в меню конфигурации актора принтера.
fadeTime Decimal Управляет продолжительностью (в секундах) отображения и скрытия принтеров анимации, связанной с этой командой. Значение по умолчанию для каждого принтера устанавливается в конфигурации актора.

# Примеры

; Распечатать фразу на принтере по умолчанию.
@print "Lorem ipsum dolor sit amet."

; Чтобы включить кавычки в сам текст, экранируйте их.
@print "Saying \"Stop the car\" was a mistake."

; Показывать сообщение с скоростью 0.5 и не ждать продолжения ввода пользователя.
@print "Lorem ipsum dolor sit amet." speed:0.5 waitInput:false

# printer

# Краткое описание

Изменяет актора текстового принтера.

# Параметры

ID Тип Описание
IdAndAppearance Named<String> ID принтера, который нужно изменить, и внешний вид, который нужно установить. Если идентификатор или внешний вид не указаны, будут использоваться значения по умолчанию.
default Boolean Использовать ли этот принтер по умолчанию. Принтер по умолчанию будет подчиняться всем командам, связанным с принтером, если параметр printer не указан.
hideOther Boolean Скрывать ли все остальные принтеры.
pos List<Decimal> Положение (относительно границ экрана, в процентах), устанавливаемое для измененного принтера. Положение описывается следующим образом: «0,0» - это нижний левый угол, «50,50» - центр и «100,100» - это верхний правый угол экрана.
visible Boolean Показывать или скрывать принтер.
time Decimal Продолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды.

# Примеры

; Сделать принтер `Wide` по умолчанию и скрыть все остальные видимые принтеры.
@printer Wide

; Назначить внешний вид `Right` принтеру `Bubble`, по умолчанию он будет располагаться в центре экрана и не будет скрывать другие принтеры.
@printer Bubble.Right pos:50,50 hideOther:false

# processInput

# Краткое описание

Позволяет останавливать и возобновлять обработку пользовательского ввода (например, реагировать на нажатие клавиш клавиатуры). Эффект от действия постоянный и сохраняется вместе с игрой.

# Параметры

ID Тип Описание
InputEnabled Boolean Включить ли обработку ввода.

# Примеры

; Остановить обработку ввода
@processInput false
; Возобновить обработку ввода
@processInput true

# purgeRollback

# Краткое описание

Предотвращает откат игрока к предыдущим снимкам состояния.

# Примеры

; Запретить игроку откат назад, чтобы бы он не мог выбрать другой вариант ответа.

@choice "One" goto:.One
@choice "Two" goto:.Two
@stop

# One
@purgeRollback
You've picked one.

# Two
@purgeRollback
You've picked two.

# resetState

# Краткое описание

Сбрасывает состояние сервисов движка и выгружает (удаляет) все ресурсы, загруженные Naninovel (текстуры, аудио, видео и т.д.); в основном вернется к пустому начальному состоянию двигателя.

# Примечание

Процесс является асинхронным и маскируется экраном загрузки (ILoadingUI).

Когда ResetStateOnLoad отключен в конфигурации, вы можете использовать эту команду, чтобы вручную удалить неиспользуемые ресурсы, чтобы предотвратить проблемы с утечкой памяти.

Имейте в виду, что эту команду нельзя отменить (перемотать назад).

# Параметры

ID Тип Описание
Exclude List<String> Название сервисов движка (интерфейсов), которые нужно исключить из сброса. При указании параметра всегда учитывайте добавление ICustomVariableManager для сохранения локальных переменных.

# Примеры

; Сбросить все службы.
@resetState

; Сбросьте все службы, кроме менеджеров переменных и аудио (текущий звук продолжит воспроизведение).
@resetState ICustomVariableManager,IAudioManager

# resetText

# Краткое описание

Сбрасывает (очищает) содержимое текстового принтера.

# Параметры

ID Тип Описание
PrinterId String ID используемого принтера. Если не указано, будет использоваться значение по умолчанию.

# Примеры

; Очистить содержимое принтера по умолчанию.
@resetText
; Очистить содержимое принтера с ID `Fullscreen`.
@resetText Fullscreen

# return

# Краткое описание

Пытается перейти при воспроизведении сценария naninovel к команде после последней использованной @gosub. См. Описание команды @gosub для получения дополнительной информации и примеров использования.

# Параметры

ID Тип Описание
reset List<String> Если указано, сбросит состояние сервисов движка перед возвратом к исходному сценарию, из которого был введен gosub (в случае, если это не текущий сценарий). Укажите *, чтобы сбросить все службы (кроме диспетчера переменных), или укажите имена служб, которые нужно исключить из сброса. По умолчанию состояние не сбрасывается.

# save

# Краткое описание

Автоматически сохраняет игру в слот для быстрого сохранения.

# Примеры

@save

# set

# Краткое описание

Присваивает результат выражения сценария пользовательской переменной.

# Примечание

Имя переменной должно быть буквенно-цифровым (только латинские символы) и может содержать символы подчеркивания, например: name,Char1Score, my_score; имена регистронезависимы, например: myscore равно MyScore. Если переменной с указанным именем не существует, она будет создана автоматически.

Можно определить несколько выражений набора в одной строке, разделив их символом ;. Выражения будут выполняться последовательно в порядке объявления.

Пользовательские переменные по умолчанию хранятся в local scope. Это означает, что если вы назначите какую-то переменную в процессе игры, и игрок начнет новую игру или загрузит другой сохраненный игровой слот, где эта переменная не была назначена, значение будет потеряно. Если вместо этого вы хотите сохранить переменную в global scope, добавьте к ее имени G_ илиg_, например: G_FinishedMainRoute илиg_total_score.

Если имя переменной начинается с T_ илиt_, это считается ссылкой на значение, хранящееся в документе 'Script' управляемый текст. Такие переменные не могут быть назначены и в основном используются для ссылки на локализуемые текстовые значения.

Вы можете получить и установить пользовательские переменные в сценариях C # с помощью CustomVariableManager служба движка.

# Параметры

ID Тип Описание
Expression String Установить выражение.

Выражение должно быть в следующем формате: VariableName=ExpressionBody, где VariableName - это имя настраиваемой переменной, которую нужно назначить, а ExpressionBody - это выражение сценария, результат которого следует присвоить переменной.

Также можно использовать унарные операторы увеличения и уменьшения, например: @set foo++, @set foo--.

# Примеры

; Присвоить переменной `foo` строковое значение` bar`
@set foo="bar"

; Присвоить переменной `foo` одно числовое значение
@set foo=1

; Присвоить переменной `foo` логическое значение` true`
@set foo=true

; Если `foo` - это число, добавить к его значению 0.5
@set foo=foo+0.5

; Если `angle` - это число, присвоить его косинус переменной `result`.
@set result=Cos(angle)

; Получить случайное целое число от -100 до 100, затем возвести в степень 4 и присвоить переменной `result`
@set "result = Pow(Random(-100, 100), 4)"

; Если `foo` - это число, добавить к его значению 1
@set foo++

; Если `foo` - число, вычесть 1 из его значения
@set foo--

; Присвоить переменной `foo` значение переменной` bar`, то есть `Hello World!`. Обратите внимание, что переменная `bar` действительно должна существовать, в противном случае вместо этого будет присвоено значение обычного текста `bar`.
@set bar="Hello World!"
@set foo=bar

; Определение нескольких выражений множества в одной строке (результат будет таким же, как указано выше)
@set bar="Hello World!";foo=bar

; Можно вводить переменные в параметры команды скрипта naninovel
@set scale=0
# EnlargeLoop
@char Misaki.Default scale:{scale}
@set scale=scale+0.1
@goto .EnlargeLoop if:scale<1

; ..и общие текстовые строки
@set name="Dr. Stein";drink="Dr. Pepper"
{name}: My favourite drink is {drink}!

; При использовании двойных кавычек внутри самого выражения не забывайте экранировать их дважды.
@set remark="Saying \\"Stop the car\\" was a mistake."

# sfx

# Краткое описание

Воспроизводит или изменяет воспроизводимую в данный момент SFX (звуковой эффект) дорожку с указанным именем.

# Примечание

По умолчанию звуковые эффекты не зацикливаются. Если имя дорожки sfx (SfxPath) не указано, это повлияет на все воспроизводимые в данный момент дорожки. При вызове для дорожки, которая уже воспроизводится, воспроизведение не будет затронуто (дорожка не начнется с начала), но будут применены указанные параметры (громкость и зацикленность дорожки).

# Параметры

ID Тип Описание
SfxPath String Путь к объекту звукового эффекта для воспроизведения.
volume Decimal Громкость SFX.
loop Boolean Следует ли воспроизводить SFX в цикле.
fade Decimal Длительность нарастания громкости при запуске воспроизведения в секундах (по умолчанию 0.0); не действует при изменении воспроизводимой дорожки.
group String Аудиомикшер путь к группе, который следует использовать при воспроизведении звука.
time Decimal Продолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды.

# Примеры

; Один раз воспроизвести SFX с названием `Explosion`
@sfx Explosion

; Воспроизвести SFX с названием `Rain` в цикле с плавным переходом в течение 30 секунд
@sfx Rain loop:true fade:30

; Изменить громкость всех воспроизводимых SFX на 75% за 2.5 секунды и отключить зацикливание для всех из них
@sfx volume:0.75 loop:false time:2.5

# show

# Краткое описание

Показывает (делает видимыми) акторов (персонаж, фон, текстовый принтер, обработчик выбора и т.д.) с указанными идентификаторами. В случае, если найдены несколько акторов с одним и тем же идентификатором (например, персонаж и принтер), это повлияет только на первого найденного.

# Параметры

ID Тип Описание
ActorIds List<String> ID акторов, которых нужно показать.
time Decimal Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды.

# Примеры

; Если актор с ID `SomeActor` скрыт, проявить его (постепенно) в течение 3 секунд.
@show SomeActor time:3

; Показать акторов `Kohaku` и `Yuko`.
@show Kohaku,Yuko

# showPrinter

# Краткое описание

Показывает текстовый принтер.

# Параметры

ID Тип Описание
PrinterId String ID спользуемого принтера. Если параметр не указан, будет использоваться значение по умолчанию.
time Decimal Продолжительность (в секундах) анимации появления. Значение по умолчанию для каждого принтера устанавливается в конфигурации актора.

# Примеры

; Показать принтер по умолчанию.
@showPrinter
; Показать принтер с ID `Wide`.
@showPrinter Wide

# showUI

# Краткое описание

Делает видимыми элементы UI с указанными префабами. Если имена не указаны, откроется весь пользовательский интерфейс (в случае, если он был скрыт с помощью @hideUI).

# Параметры

ID Тип Описание
UINames List<String> Имя префаба UI, который нужно сделать видимым.
time Decimal Продолжительность (в секундах) анимации шоу. Если не указано, будет использоваться продолжительность, зависящая от UI.

# Примеры

; Если вы добавили настраиваемый UI с именем префаба `Calendar`, то показать его на сцене.
@showUI Calendar

; Если вы скрыли весь UI с помощью @hideUI, то показать его
@showUI

; Одновременно открыть встроенный UI `TipsUI` и UI `Calendar`.
@showUI TipsUI,Calendar

# skip

# Краткое описание

Позволяет включить или отключить режим «пропуска» скрипт-плеера.

# Параметры

ID Тип Описание
Enable Boolean Следует ли включить (по умолчанию) или отключить режим пропуска.

# Примеры

; Включить режим пропуска
@skip
; ВЫключить режим пропуска
@skip false

# skipInput

# Краткое описание

Может использоваться в общих текстовых строках для предотвращения активации режима wait for input при печати текста.

# Примеры

; Проигрыватель скриптов не будет ждать ввода `continue` перед выполнением команды `@sfx`.
And the rain starts.[skipInput]
@sfx Rain

# slide

# Краткое описание

Сдвигает (перемещается по оси X) актора (персонаж, фон, текстовый принтер или обработчик выбора) с предоставленным идентификатором и, при необходимости, изменяет внешний вид актора.

# Примечание

Имейте в виду, что эта команда ищет актора с предоставленным идентификатором среди всех менеджеров акторов, и в случае, если существует несколько акторов с одним и тем же ID (например, персонаж и текстовый принтер), это повлияет только на первого найденного.

# Parameters

ID Тип Описание
IdAndAppearance Named<String> ID актора для слайда и (необязательно) внешний вид, который нужно установить.
from Decimal Позиционируйте по оси X (в диапазоне от 0 до 100, в процентах от левой границы экрана), от которой следует перемещать актора. Если не указан, будет использоваться текущая позиция актора, если она видна, и случайная позиция за кадром в противном случае.
to Decimal Позиционируйте по оси X (в диапазоне от 0 до 100 в процентах от левого края экрана), куда нужно переместить актора.
visible Boolean Изменить статус видимости актора (показать или скрыть). Если не установлен и целевой актор скрыт, он все равно будет автоматически отображаться.
easing String Имя функции замедления, используемой для изменений.

Available options: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic.

Если не указано, будет использоваться функция ослабления по умолчанию, установленная в настройках конфигурации менеджера актора.
time Decimal Продолжительность (в секундах) слайд-анимации. Значение по умолчанию: 0.35 секунды.

# Примеры

; Учитывая, что актор `Jenna` в настоящее время не виден, показать его с внешностью `Angry` и переместить в центр экрана.
@slide Jenna.Angry to:50

; Если актор `Sheba` в настоящее время виден, скрыть его и сдвинуть за левую границу экрана.
@slide Sheba to:-10 visible:false

; Переместить актор `Mia` из левой части экрана вправо в течение 5 секунд, используя замедление анимации `EaseOutBounce`.
@slide Sheba from:15 to:85 time:5 easing:EaseOutBounce

# spawn

# Краткое описание

Создает префаб или специальный эффект; когда выполняется над уже созданным объектом, вместо этого обновляет параметры порождения.

# Примечание

Если в префабе есть компонент UnityEngine.MonoBehaviour, прикрепленный к корневому объекту, и компонент реализует интерфейс Naninovel.Commands.Spawn.IParameterized, то после порождения передаст указанные значения params; если компонент реализует интерфейс Naninovel.Commands.Spawn.IAwaitable, выполнение команды будет ожидать выполнения задачи асинхронного завершения, возвращаемой реализацией.

# Параметры

ID Тип Описание
Path String Имя (путь) префаба для создания ресурса.
params List<String> Параметры, устанавливаемые при порождении префаба. Требуется, чтобы в префабе к корневому объекту был прикреплен компонент Naninovel.Commands.Spawn.IParameterized.

# Примеры

; Если префаб `Rainbow` назначен в ресурсах спауна, создать его экземпляр.
@spawn Rainbow

# startTrans

# Краткое описание

Начинает переход сцены, маскируя реальное содержимое сцены всем, что видно в данный момент (кроме пользовательского интерфейса). Когда новая сцена будет готова, закончите командой @finishTrans.

# Примечание

Во время перехода UI будет скрыт, а ввод данных пользователем заблокирован. Вы можете изменить это, переопределив ISceneTransitionUI, который обрабатывает процесс перехода.

Список доступных опций эффектов перехода см. в руководстве transition effects.

# Примеры

; Переход Felix в SunnyDay с Jenna в RainyDay
@char Felix
@back SunnyDay
@fx SunShafts
@startTrans
; Следующие изменения не будут видны, пока мы не завершится переход
@hideChars time:0
@char Jenna time:0
@back RainyDay time:0
@stopFx SunShafts params:0
@fx Rain params:,0
; Переход от первоначально захваченной сцены к новой с эффектом `DropFade` в течение 3 секунд.
@finishTrans DropFade time:3

# stop

# Краткое описание

Останавливает выполнение скрипта naninovel.

# Примеры

Show the choices and halt script execution until the player picks one.
@choice "Choice 1"
@choice "Choice 2"
@stop
We'll get here after player will make a choice.

# stopBgm

# Кратое описание

Останавливает воспроизведение трека BGM (фоновой музыки) с указанным именем.

# Примечание

Если имя музыкальной дорожки (BgmPath) не указано, остановит все текущие воспроизводимые дорожки.

# Параметры

ID Тип Описание
BgmPath String Путь к музыкальной дорожке, котрую нужно остановить
fade Decimal Продолжительность затухания громкости перед остановкой воспроизведения в секундах (по умолчанию 0.35).

# Примеры

; Заглушить музыкальный трек `Promenade` на 10 секунд и остановить воспроизведение
@stopBgm Promenade fade:10

; Оставнавить все проигрываемые в данный момент музыкальные треки
@stopBgm

# stopSfx

# Краткое описание

Останавливает воспроизведение дорожки SFX (звукового эффекта) с указанным именем.

# Примечание

Если имя дорожки звукового эффекта (SfxPath) не указано, все текущие воспроизводимые дорожки будут остановлены.

# Параметры

ID Тип Описание
SfxPath String Путь к звуковому эффекту, который нужно остановить.
fade Decimal Продолжительность затухания громкости перед остановкой воспроизведения в секундах (по умолчанию 0.35).

# Примеры

; Прекратить проигрывать звуковой эффект с названием `Rain`, с эффектом затухания в течении 15 секунд
@stopSfx Rain fade:15

; Остановить все воспроизводимые в данный момент дорожки звуковых эффектов
@stopSfx

# stopVoice

# Краткое описание

Останавливает воспроизведение проигрываемого в данный момент голосового клипа.

# style

# Краткое описание

Постоянно применяемые стили текста к содержимому текстового принтера.

# Примечание

Вы также можете использовать теги форматированного текста внутри текстовых сообщений для выборочного применения стилей.

# Параметры

ID Тип Описание
TextStyles List<String> Применяемые теги форматирования текста. Угловые скобки следует опустить, например, используйте b для <b> и size=100 для <size=100>. Используйте ключевое слово default
printer String ID используемого принтера. Если не указано иное, будет использоваться значение по умолчанию.

# Примеры

; Напечатать первые два предложения жирным красным шрифтом размером 45 пикселей, затем сбросьте стиль и напечатайте последнее предложение, используя стиль по умолчанию.
@style color=#ff0000,b,size=45
Lorem ipsum dolor sit amet.
Cras ut nisi eget ex viverra egestas in nec magna.
@style default
Consectetur adipiscing elit.

; Начальную часть предложения вывести как обычно, а последнюю - жирным шрифтом.
Lorem ipsum sit amet. <b>Consectetur adipiscing elit.</b>

# title

# Краткое описание

Сбросить движок и отобразить UIITitleUI (главное меню).

# Примеры

@title

# unlock

# Краткое описание

Устанавливает разблокируемый элемент с предоставленным идентификатором в состояние unlocked.

# Примечание

Разблокированное состояние элементов сохраняется в global scope.
Если элемент с предоставленным идентификатором не зарегистрирован в карте глобального состояния, соответствующий запись будет добавлена автоматически.

# Параметры

ID Тип Описание
Id String ID разблокируемого предмета. Используйте *, чтобы разблокировать все зарегистрированные разблокируемые предметы.

# Примеры

@unlock CG/FightScene1

# voice

# Краткое описание

Воспроизводит голосовой клип по указанному пути.

# Параметры

ID Тип Описание
VoicePath String Путь к голосовой записи для воспроизведения.
volume Decimal Громкость воспроизведения.
group String Аудиомикшер путь к группе, который следует использовать при воспроизведении звука.

# wait

# Краткое описание

Удерживает выполнение скрипта до указанного условия ожидания.

# Параметры

ID Тип Описание
WaitMode String Условия ожидания:
- i пользователь нажимает кнопку продолжения или пропуска ввода;
- 0.0 таймер (секунды);
- i0.0 таймер, который можно пропустить клавишами продолжения или пропуска ввода.

# Примеры

; Звуковой эффект "ThunderSound" будет воспроизводиться через 0.5 секунд после завершения фонового эффекта дрожания.
@fx ShakeBackground
@wait 0.5
@sfx ThunderSound

; Напечатать первые два слова, затем дождитесь ввода пользователя, прежде чем печатать оставшуюся фразу.
Lorem ipsum[wait i] dolor sit amet.
; Вы также можете использовать следующий ярлык (@i command) для этого режима ожидания.

; Запустить SFX, распечатать сообщение и подождите 5 секунд с возможностью пропуска, затем остановить SFX.
@sfx Noise loop:true
Jeez, what a disgusting noise. Shut it down![wait i5][skipInput]
@stopSfx Noise
Обновлено: October 28, 2020