# Справочник по 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
# Краткое описание
Печатает (показывает с течением времени) указанное текстовое сообщение с помощью актора текстового принтера.
# Примечание
Эта команда используется при обработке общих текстовых строк, например, общая строка 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