Skip to content

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

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

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

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

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

NOTE

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

animate

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

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

Примечание

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

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

Параметры

IDТипОписание
ActorIdsList<String>ID акторов для анимации.
loopBooleanСледует ли зацикливать анимацию; убедитесь, что для 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 секунд для всех ключей.

Примеры

nani
; Анимировать актора "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 актора, который должен быть связан с добавленым текстом.

Примеры

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

arrange

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

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

Параметры

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

Примеры

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

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

back

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

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

Примечание

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

Параметры

IDТипОписание
AppearanceAndTransitionNamed<String>Внешний вид (или поза) для фона и типа использованного эффекта перехода. Если переход не предусмотрен, по умолчанию будет использоваться эффект перекрестного затухания.
posList<Decimal>Положение (относительно границ экрана, в процентах) актора. Позиция описывается следующим образом: «0.0» - левый нижний угол, «50.50» - центр, а «100.100» - верхний правый угол экрана. Используйте Z-компонент (третий параметр, например, ,,10) для перемещения (сортировки) по глубине в режиме орто.
idСтрокаИдентификатор актора для изменения; укажите *, чтобы повлиять на всех видимых акторов.
appearanceСтрокаУстанавливает внешний вид или позу изменяемого актора.
transitionСтрокаТип используемого эффекта перехода (по умолчанию используется кроссфейд).
paramsList<Decimal>Параметры эффекта перехода.
dissolveStringПуть к текстуре нестандартное растворение (путь должен указываться относительно папки Resources). Действует только когда переход установлен в режим «Пользовательский».
visibleBooleanСтатус видимости для изменяемого актора.
positionList<Decimal>Положение (в мировом пространстве) для изменяемого актора. Используйте Z-компонент (третий параметр) для перемещения (сортировки) по глубине в режиме орто.
rotationList<Decimal>Вращение для изменяемого актора.
scaleList<Decimal>Масштаб для изменяемого актора.
tintStringЦвет оттенка для изменяемого актора.

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

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

Доступные Варианты: 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.

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

Примеры

nani
; Установить `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ТипОписание
BgmPathStringПуть к музыкальной дорожке для воспроизведения.
introStringПуть к вступительной музыкальной дорожке, которую нужно воспроизвести один раз перед основной дорожкой (не зависит от параметра цикла).
volumeDecimalГромкость музыкальной дорожки.
loopBooleanИграть ли дорожку с начала, когда она заканчивается.
fadeDecimalДлительность постепенного увеличения громкости при запуске воспроизведения и затухания при остановке, в секундах (по умолчанию 0.0); не действует при изменении воспроизводимой дорожки.
groupStringГруппа ↗ в аудиомикшере, используемая при воспроизведении аудио.
timeDecimalПродолжительность (в секундах) модификации. Значение по умолчанию 0.35 секунды.

Примеры

nani
; Начать воспроизведение музыкальной дорожки с названием `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ТипОписание
CountIntegerЧисло добавляемых разрывов.
printerStringID актора принтера. Если параметр не задан, будет использовать значение по умолчанию.
authorStringID актора, который должен быть связан с добавленным разрывом строки.

Примеры

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

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

camera

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

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

Параметры

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

Доступные Варианты: 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.

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

Примеры

nani
; Сместить камеру на -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ТипОписание
IdAndAppearanceNamed<String>ID, который нужно изменить (укажите *, чтобы затронуть все видимые символы), и внешний вид (или поза), который нужно установить. Если внешний вид не указан, будет использоваться либо вариант «по умолчанию» (Если он сущетвует), либо случайный.
lookStringНаправоление, куда смотрит актор; поддерживаемые значения: слева, справа, по центру.
avatarStringИмя (путь) текстуры аватара для назначения персонажу. Используйте none, чтобы удалить (сбросить) текстуру аватара у персонажа.
posList<Decimal>Установка положения (относительно границ экрана, в процентах), для измененного актора. Положение описывается следующим образом: «0.0» - левый нижний угол, «50.50» - центр, а «100.100» - верхний правый угол экрана. Используйте Z-компонент (третий параметр, например, ,, 10) для перемещения (сортировки) по глубине в режиме орто.
idStringID актора для изменения; укажите *, чтобы повлиять на всех видимых акторов.
appearanceStringВнешний вид (или поза), изменяемого актора.
transitionStringТип используемого эффекта перехода (по умолчанию используется перекрестное затухание).
paramsList<Decimal>Параметры эффекта перехода.
dissolveStringПуть к текстуре custom disolve путь должен указываться относительно папки Resources). Действует только когда переход установлен в режим «Пользовательский».
visibleBooleanСтатус видимости, изменяемого актора.
positionList<Decimal>Положение (в мировом пространстве) изменяемого актора. Используйте Z-компонент (третий параметр) для перемещения (сортировки) по глубине в режиме орто.
rotationList<Decimal>Вращение для изменяемого актора.
scaleList<Decimal>Масштаб, для изменяемого актора
tintStringЦвет оттенка изменяемого актора.

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

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

Доступные Варианты: 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.

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

Примеры

nani
; Показать персонажа с идентификатором `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ТипОписание
ChoiceSummaryStringТекст для отображения на кнопке выбора. Если текст содержит пробелы, заключите его в двойные кавычки (" ). Если вы хотите включить двойные кавычки в сам текст, экранируйте их.
buttonStringПуть (относительно папки Resources) к кнопке prefab, представляющей выбор. Префаб должен иметь компонент ChoiceHandlerButton, присоединенный к корневому объекту. Если параметр не указан, будет использоваться кнопка по умолчанию.
posList<Decimal>Локальное положение кнопки выбора внутри обработчика выбора (если поддерживается реализацией обработчика).
handlerStringID обработчика выбора, для которого нужно добавить выбор. Если параметр не укзаан, будет использовать обработчик по умолчанию.
gotoNamed<String>Путь, по которому нужно идти, когда пользователь сделал выбор; см. команду @goto для справки по синтаксису.
gosubNamed<String>Путь к подпрограмме, которую нужно выбрать пользователем; см. команду @gosub для справки по синтаксису. Когда назначено goto, этот параметр будет игнорироваться.
setStringВыражение для выполнения, которые выполняться, когда вариант ответа выбран пользователем; см. команду @set для справки по синтаксису.
doList<String>Команды скрипта для выполнения, когда вариант ответа выбран пользователем; не забывайте экранировать запятые внутри значений списка, чтобы они не рассматривались как разделители. Команды будут вызываться по порядку после обработки set, goto и gosub (если назначены).
showBooleanПоказывать ли также обработчик выбора, для которого добавлен выбор; включен по умолчанию.
timeDecimalПродолжительность (в секундах) анимации постепенного появления (раскрытия). Значение по умолчанию: 0.35 секунды.

Примеры

nani
; Напечатать текст, затем немедленно показать варианты ответа и остановить выполнение скрипта.
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

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

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

Примеры

nani
@clearBacklog

clearChoice

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

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

Параметры

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

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ТипОписание
PathStringИмя (путь) префаба, который нужно уничтожить. Ожидается, что команда @spawn с тем же параметром будет выполнена раньше.
paramsList<String>Параметры, которые нужно установить перед уничтожением префаба. Требуется, чтобы к префабу был прикреплен компонент Naninovel.Commands.DestroySpawned.IParameterized , связанный с корневым объектом.

Примеры

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

else

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

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

elseIf

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

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

Параметры

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

endIf

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

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

finishTrans

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

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

Параметры

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

Доступные опции: 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.

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

gosub

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

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

Примечание

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

Параметры

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

Примеры

nani
; При воспроизведении, переходит к метке `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ТипОписание
PathNamed<String>Путь для перехода в следующем формате: ScriptName.LabelName. Если имя метки опущено, скрипт будет воспроизводиться с самого начала. Если имя сценария опущено, попытается найти метку в текущем воспроизводимом сценарии.
resetList<String>Если указано, сбрасывает состояние служб ядра перед загрузкой сценария (если путь ведет к другому сценарию). Укажите *, чтобы сбросить все службы (кроме диспетчера переменных), или укажите имена служб, которые нужно исключить из сброса. Укажите -, чтобы не выполнять сброса (даже если он включен по умолчанию в конфигурации). Значение по умолчанию контролируется опцией Reset State On Load в меню конфигурации двигателя.

Примеры

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

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

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

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

hide

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

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

Параметры

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

Примеры

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

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

hideAll

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

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

Параметры

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

Примеры

nani
@hideAll

hideChars

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

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

Параметры

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

Примеры

nani
@hideChars

hidePrinter

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

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

Параметры

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

Примеры

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

hideUI

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

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

Примечание

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

Параметры

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

Примеры

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

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

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

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

i

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

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

Примеры

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

if

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

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

Параметры

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

input

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

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

Примечание

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

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

Параметры

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

Примеры

nani
; Разрешить пользователю ввести произвольный текст и назначить его пользовательской переменной `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ТипОписание
CharIdAndAllowNamed<Boolean>ID символа, за которым следует логическое значение (true или false), указывающее, следует ли остановить или разрешить анимацию синхронизации губ.

Примеры

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

loadScene

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

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

Параметры

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

Примеры

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

lock

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

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

Примечание

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

Параметры

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

Примеры

nani
@lock CG/FightScene1

look

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

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

Параметры

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

Примеры

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

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

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

movie

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

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

Примечание

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

Параметры

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

Примеры

nani
; Если видеоклип "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ТипОписание
TextStringТекст сообщения для печати. Если текст содержит пробелы, заключите его в двойные кавычки ("). Если вы хотите включить двойные кавычки в сам текст, экранируйте их.
printerStringID используемого принтера. Если не указано иное, будет использоваться значение по умолчанию.
authorStringID актора, который должен быть связан с напечатанным сообщением.
speedDecimalМножитель скорости отображения текста; должно быть положительным или нулевым. Установка на единицу даст скорость по умолчанию.
resetBooleanСледует ли сбрасывать текст принтера перед выполнением задания печати. Значение по умолчанию контролируется с помощью свойства Auto Reset в меню конфигурации актора принтера.
defaultBooleanИспользовать ли принтер по умолчанию и скрывать другие принтеры перед выполнением задания печати. Значение по умолчанию контролируется с помощью свойства Auto Default в меню конфигурации актора принтера.
waitInputBooleanСледует ли ждать ввода данных пользователем после завершения задания печати. Значение по умолчанию контролируется с помощью свойства Auto Wait в меню конфигурации актора принтера.
brIntegerКоличество разрывов строки, добавляемых перед печатным текстом. Значение по умолчанию контролируется с помощью свойства Auto Line Break в меню конфигурации актора принтера.
fadeTimeDecimalУправляет продолжительностью (в секундах) отображения и скрытия принтеров анимации, связанной с этой командой. Значение по умолчанию для каждого принтера устанавливается в конфигурации актора.

Примеры

nani
; Распечатать фразу на принтере по умолчанию.
@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ТипОписание
IdAndAppearanceNamed<String>ID принтера, который нужно изменить, и внешний вид, который нужно установить. Если идентификатор или внешний вид не указаны, будут использоваться значения по умолчанию.
defaultBooleanИспользовать ли этот принтер по умолчанию. Принтер по умолчанию будет подчиняться всем командам, связанным с принтером, если параметр printer не указан.
hideOtherBooleanСкрывать ли все остальные принтеры.
posList<Decimal>Положение (относительно границ экрана, в процентах), устанавливаемое для измененного принтера. Положение описывается следующим образом: «0,0» - это нижний левый угол, «50,50» - центр и «100,100» - это верхний правый угол экрана.
visibleBooleanПоказывать или скрывать принтер.
timeDecimalПродолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды.

Примеры

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

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

processInput

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

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

Параметры

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

Примеры

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

purgeRollback

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

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

Примеры

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

@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ТипОписание
ExcludeList<String>Название сервисов движка ↗ (интерфейсов), которые нужно исключить из сброса. При указании параметра всегда учитывайте добавление ICustomVariableManager для сохранения локальных переменных.

Примеры

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

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

resetText

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

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

Параметры

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

Примеры

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

return

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

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

Параметры

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

save

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

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

Примеры

nani
@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ТипОписание
ExpressionStringУстановить выражение.

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

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

Примеры

nani
; Присвоить переменной `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ТипОписание
SfxPathStringПуть к объекту звукового эффекта для воспроизведения.
volumeDecimalГромкость SFX.
loopBooleanСледует ли воспроизводить SFX в цикле.
fadeDecimalДлительность нарастания громкости при запуске воспроизведения в секундах (по умолчанию 0.0); не действует при изменении воспроизводимой дорожки.
groupStringАудиомикшер путь к группе ↗, который следует использовать при воспроизведении звука.
timeDecimalПродолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды.

Примеры

nani
; Один раз воспроизвести 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ТипОписание
ActorIdsList<String>ID акторов, которых нужно показать.
timeDecimalПродолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды.

Примеры

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

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

showPrinter

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

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

Параметры

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

Примеры

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

showUI

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

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

Параметры

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

Примеры

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

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

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

skip

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

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

Параметры

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

Примеры

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

skipInput

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

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

Примеры

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

slide

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

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

Примечание

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

Parameters

IDТипОписание
IdAndAppearanceNamed<String>ID актора для слайда и (необязательно) внешний вид, который нужно установить.
fromDecimalПозиционируйте по оси X (в диапазоне от 0 до 100, в процентах от левой границы экрана), от которой следует перемещать актора. Если не указан, будет использоваться текущая позиция актора, если она видна, и случайная позиция за кадром в противном случае.
toDecimalПозиционируйте по оси X (в диапазоне от 0 до 100 в процентах от левого края экрана), куда нужно переместить актора.
visibleBooleanИзменить статус видимости актора (показать или скрыть). Если не установлен и целевой актор скрыт, он все равно будет автоматически отображаться.
easingStringИмя функции замедления, используемой для изменений.

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.

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

Примеры

nani
; Учитывая, что актор `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ТипОписание
PathStringИмя (путь) префаба для создания ресурса.
paramsList<String>Параметры, устанавливаемые при порождении префаба. Требуется, чтобы в префабе к корневому объекту был прикреплен компонент Naninovel.Commands.Spawn.IParameterized.

Примеры

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

startTrans

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

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

Примечание

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

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

Примеры

nani
; Переход 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.

Примеры

nani
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ТипОписание
BgmPathStringПуть к музыкальной дорожке, котрую нужно остановить
fadeDecimalПродолжительность затухания громкости перед остановкой воспроизведения в секундах (по умолчанию 0.35).

Примеры

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

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

stopSfx

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

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

Примечание

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

Параметры

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

Примеры

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

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

stopVoice

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

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

style

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

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

Примечание

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

Параметры

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

Примеры

nani
; Напечатать первые два предложения жирным красным шрифтом размером 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 (главное меню).

Примеры

nani
@title

unlock

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

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

Примечание

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

Параметры

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

Примеры

nani
@unlock CG/FightScene1

voice

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

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

Параметры

IDТипОписание
VoicePathStringПуть к голосовой записи для воспроизведения.
volumeDecimalГромкость воспроизведения.
groupStringАудиомикшер путь к группе ↗, который следует использовать при воспроизведении звука.

wait

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

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

Параметры

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

Примеры

nani
; Звуковой эффект "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