Справочник по API
Справочник по API командам сценария. Используйте боковую панель для быстрой навигации между доступными командами.
Зачеркивание обозначает безымянный параметр, а жирный – обязательный параметр; остальные параметры следует считать необязательными. Обратитесь к руководству по скриптам Naninovel если вы не знаете, что это такое.
Следующие параметры поддерживаются всеми командами сценария:
ID | Тип | Описание |
---|---|---|
if | Строка | Логическое выражение сценария, контролирующее, должна ли команда выполняться. |
wait | Boolean | Должен ли проигрыватель сценариев дождаться завершения асинхронной команды перед выполнением следующей. Не действует, когда команда выполняется мгновенно. |
NOTE
Эта ссылка API действительна для Naninovel v1.10.
animate
Краткое описание
Команда анимации акторов с указанными ID с помощью ключевых кадров. Ключевые кадры для параметры анимации отделяются литералами |
.
Примечание
Помните, что эта команда ищет акторов с предоставленными ID по всем менеджерам акторов, и в случае, если существует несколько акторов с одинаковым ID (например, персонаж и текстовый принтер), это повлияет только на первый найденный.
При параллельном запуске команд animate (значение «wait» установлено в false) состояние затронутых акторов может изменяться непредсказуемо. Это может привести к неожиданным результатам при откате или выполнении других команд, которые влияют на состояние актора. Обязательно сбрасывайте затронутые свойства анимированных акторов (положение, оттенок, внешний вид и т.д.) после завершения команды или используйте @animate CharacterId
(без каких-либо аргументов), чтобы преждевременно остановить анимацию.
Параметры
ID | Тип | Описание |
---|---|---|
ActorIds | List<String> | ID акторов для анимации. |
loop | Boolean | Следует ли зацикливать анимацию; убедитесь, что для wait установлено значение false, когда включен цикл, в противном случае воспроизведение сценария будет повторяться бесконечно. |
appearance | Строка | Установка внешности для анимированных акторов. |
transition | Строка | Тип эффекта перехода который будет использоваться при изменении внешнего вида (по умолчанию используется кроссфейд). |
visibility | Строка | Статус видимости для анимированных акторов. |
posX | Строка | Значения позиции анимированного актора, по оси Х (в диапазоне от 0 до 100, в процентах от левой границы экрана). |
posY | Строка | Значения позиции анимированного актора, по оси Y (в диапазоне от 0 до 100, в процентах от нижней границы экрана). |
posZ | Строка | Значения позиции анимированного актора, по оси Z (в мировом пространстве); В орто-режиме, ожно использовать только для сортировки. |
rotation | Строка | Значения поворота (по оси Z) для анимированных акторов. |
scale | Строка | Значения шкалы (единообразные) для анимированных акторов. |
tint | Строка | Оттенок цвета для анимированных акторов. Строки, начинающиеся с # будет проанализирован как шестнадцатеричный следующим образом: #RGB (становится RRGGBB), #RRGGBB , #RGBA (становится RRGGBBAA), #RRGGBBAA ; Если альфа не указана, по значение по умолчанию будет FF. Строки, которые не начинаются с # , будут анализироваться как цвета, поддерживаются: red, cyan, blue, darkblue, lightblue, purple, yellow, lime, fuchsia, white, silver, grey, black, orange, brown, maroon, green, olive, navy, teal, aqua, magenta. |
easing | Строка | Названия функций замедления, используемых для анимации. Доступные варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic. Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации менеджера актора. |
time | Строка | Продолжительность ключа анимации в секундах. Если значение ключа отсутствует, будет использоваться значение из предыдущего ключа. Если значение не установлено, будет использовать задержка 0.35 секунд для всех ключей. |
Примеры
; Анимировать актора "Kohaku" за три шага анимации (ключевые кадры),
; смена позиций: первый шаг займет 1, второй - 0.5 и третий - 3 секунды.
@animate Kohaku posX:50|0|85 time:1|0.5|3
; Запустить цикл анимации акторов "Yuko" и "Kohaku"; обратите внимание, что вы можете пропустить
; ключевые значения, указывающие, что параметр не должен изменяться на этапе анимации.
@animate Kohaku,Yuko loop:true appearance:Surprise|Sad|Default|Angry transition:DropFade|Ripple|Pixelate posX:15|85|50 posY:0|-25|-85 scale:1|1.25|1.85 tint:#25f1f8|lightblue|#ffffff|olive easing:EaseInBounce|EaseInQuad time:3|2|1|0.5 wait:false
...
; Остановить анимации.
@animate Yuko,Kohaku loop:false
; Запустить длинную фоновую анимацию для `Kohaku`.
@animate Kohaku posX:90|0|90 scale:1|2|1 time:10 wait:false
; Вы можете сделать что-нибудь еще, пока анимация запущена.
...
; Здесь мы собираемся установить конкретную позицию для персонажа,
; но анимация все еще может работать в фоновом режиме, поэтому сначала сбросьте ее.
@animate Kohaku
; Теперь можно безопасно менять свойства, которые ранее были анимированны
@char Kohaku pos:50 scale:1
append
Краткое описание
Добавляет предоставленный текст к текстовому принтеру.
Примечание
Весь текст будет добавлен немедленно, без эффекта постепенного проявления и прочих эффектов.
Параметры
ID | Тип | Описание |
---|---|---|
Text | Строка | Текст для добавления. |
printer | Строка | ID актора принтера, который будет использован. Если параметр не указан, будет использован принтер по умолчанию. |
author | Строка | ID актора, который должен быть связан с добавленым текстом. |
Примеры
; Напечатать первую часть предложения как обычно (постепенно проявляя сообщение)
; затем сразу добавить конец предложения.
Lorem ipsum
@append " dolor sit amet."
arrange
Краткое описание
Упорядочивает указанных персонажей по оси X. Если параметры не указаны, будет выполнено автоматическое выравнивание, равномерно распределяющее видимых персонажей по оси X.
Параметры
ID | Тип | Описание |
---|---|---|
CharacterPositions | List<Named<Decimal>> | Коллекция ID персонажей по оси Х на сцене (относительно левой границы экрана, в процентах) с именованными значениями. Позиция 0 относится к левой границе, а 100 к правой границе экрана; 50 это центр. |
look | Boolean | При выполнении автоматической аранжировки определяет, следует ли также заставлять персонажей смотреть в начало сцены (по умолчанию включено). |
time | Decimal | Продолжительность (в секундах) анимации аранжировки. Значение по умолчанию: 0.35 секунды. |
Примеры
; Равномерно распределить всех видимых персонажей
@arrange
; Переместить персонажей с идентификаторами `Jenna` в 15%,` Felix` в 50% и `Mia` в 85%
; от левой границы экрана.
@arrange Jenna.15,Felix.50,Mia.85
back
Краткое описание
Изменяет актор фона.
Примечание
Фоны обрабатываются немного иначе, нежели персонажи, чтобы лучше приспособиться к традиционному течению визуальных новелл. Большую часть времени вы, вероятно, будете иметь одного фонового актора в сцене, который будет постоянно менять внешности. Чтобы избавиться от лишнего повторения одного и того же ID актора в сценариях, можно предоставить только внешность фона и тип перехода (необязательно) в качестве безымянного параметра, что автоматически преобразует актора "MainBackground". Если это не так, ID фонового актора может быть конкретно указан с помощью параметра id
:
Параметры
ID | Тип | Описание |
---|---|---|
AppearanceAndTransition | Named<String> | Внешний вид (или поза) для фона и типа использованного эффекта перехода. Если переход не предусмотрен, по умолчанию будет использоваться эффект перекрестного затухания. |
pos | List<Decimal> | Положение (относительно границ экрана, в процентах) актора. Позиция описывается следующим образом: «0.0» - левый нижний угол, «50.50» - центр, а «100.100» - верхний правый угол экрана. Используйте Z-компонент (третий параметр, например, ,,10 ) для перемещения (сортировки) по глубине в режиме орто. |
id | Строка | Идентификатор актора для изменения; укажите * , чтобы повлиять на всех видимых акторов. |
appearance | Строка | Устанавливает внешний вид или позу изменяемого актора. |
transition | Строка | Тип используемого эффекта перехода (по умолчанию используется кроссфейд). |
params | List<Decimal> | Параметры эффекта перехода. |
dissolve | String | Путь к текстуре нестандартное растворение (путь должен указываться относительно папки Resources ). Действует только когда переход установлен в режим «Пользовательский». |
visible | Boolean | Статус видимости для изменяемого актора. |
position | List<Decimal> | Положение (в мировом пространстве) для изменяемого актора. Используйте Z-компонент (третий параметр) для перемещения (сортировки) по глубине в режиме орто. |
rotation | List<Decimal> | Вращение для изменяемого актора. |
scale | List<Decimal> | Масштаб для изменяемого актора. |
tint | String | Цвет оттенка для изменяемого актора. Строки, начинающиеся с # , будут анализироваться как шестнадцатеричные следующим образом: #RGB (становится RRGGBB), #RRGGBB , #RGBA (становится RRGGBBAA), #RRGGBBAA ; если альфа не указана, по умолчанию будет FF. Строки, которые не начинаются с # , будут анализироваться как буквенные цвета, поддерживаются следующие параметры: красный, голубой, синий, темно-синий, светло-синий, фиолетовый, желтый, салатовый, фуксия, белый, серебристый, серый, черный, оранжевый, коричневый, темно-бордовый, зеленый, оливковый, темно-синий, бирюзовый, аква, пурпурный. |
easing | String | Имя функции замедления, используемой для модификации. Доступные Варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic. Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации менеджера актора. |
time | Decimal | Продолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды. |
Примеры
; Установить `River` в качестве внешности основного фона
@back River
; То же, что и выше, но также используется эффект перехода `RadialBlur`
@back River.RadialBlur
; Подкрасить все видимые фоны на сцене.
@back id:* tint:#ffdc22
; С учетом SFX `ExplosionSound` и фона` ExplosionSprite` следующая последовательность команд будет имитировать два взрыва, появляющихся далеко и близко к камере.
@sfx ExplosionSound volume:0.1
@back id:ExplosionSprite scale:0.3 pos:55,60 time:0 isVisible:false
@back id:ExplosionSprite
@fx ShakeBackground params:,1
@hide ExplosionSprite
@sfx ExplosionSound volume:1.5
@back id:ExplosionSprite pos:65 scale:1
@fx ShakeBackground params:,3
@hide ExplosionSprite
bgm
Краткое описание
Воспроизведение или изменение текущей воспроизводимой дорожки BGM (фоновой музыки) с указанным именем.
Примечание
Музыкальные треки зациклены по умолчанию. Если название музыкальной дорожки (BgmPath) не указано, будут затронуты все воспроизводимые в данный момент дорожки. При вызове для дорожки, которая уже воспроизводится, воспроизведение не будет затронуто (дорожка не начнет воспроизводиться с самого начала), но будут применены указанные параметры (громкость и зацикленность дорожки).
Параметры
ID | Тип | Описание |
---|---|---|
BgmPath | String | Путь к музыкальной дорожке для воспроизведения. |
intro | String | Путь к вступительной музыкальной дорожке, которую нужно воспроизвести один раз перед основной дорожкой (не зависит от параметра цикла). |
volume | Decimal | Громкость музыкальной дорожки. |
loop | Boolean | Играть ли дорожку с начала, когда она заканчивается. |
fade | Decimal | Длительность постепенного увеличения громкости при запуске воспроизведения и затухания при остановке, в секундах (по умолчанию 0.0); не действует при изменении воспроизводимой дорожки. |
group | String | Группа в аудиомикшере, используемая при воспроизведении аудио. |
time | Decimal | Продолжительность (в секундах) модификации. Значение по умолчанию 0.35 секунды. |
Примеры
; Начать воспроизведение музыкальной дорожки с названием `Sanctuary` в цикле
@bgm Sanctuary
; То же, что и выше, но затухание громкости более 10 секунд и еденичным воспроизведеним
@bgm Sanctuary fade:10 loop:false
; Изменить громкость всех воспроизводимых музыкальных треков до 50% в течение 2,5 секунд и заставить их воспроизводиться в цикле
@bgm volume:0.5 loop:true time:2.5
; Разово сыграть BattleThemeIntro, а затем сразу BattleThemeMain.
@bgm BattleThemeMain intro:BattleThemeIntro
br
Краткое описание
Добавляет разрыв строки в текстовый принтер.
Параметры
ID | Тип | Описание |
---|---|---|
Count | Integer | Число добавляемых разрывов. |
printer | String | ID актора принтера. Если параметр не задан, будет использовать значение по умолчанию. |
author | String | ID актора, который должен быть связан с добавленным разрывом строки. |
Примеры
; Второе предложение будет напечатано с новой строки
Lorem ipsum dolor sit amet.[br]Consectetur adipiscing elit.
; Второе предложение будет печататься через две строчки после первого
Lorem ipsum dolor sit amet.[br 2]Consectetur adipiscing elit.
camera
Краткое описание
Модифицирует основную камеру, изменяя смещение, уровень масштабирования и вращение во времени. См. это видео для быстрой демонстрации результата команды.
Параметры
ID | Тип | Описание |
---|---|---|
offset | List<Decimal> | Локальное смещение положения камеры в единицах по осям X, Y, Z. |
roll | Decimal | Локальное вращение камеры по оси Z в градусах (от 0.0 до 360.0 или от -180.0 до 180.0). То же, что и третий компонент параметра вращение; игнорируется, когда указано rotation . |
rotation | List<Decimal> | Локальное вращение камеры по осям X, Y, Z в градусах (от 0.0 до 360.0 или от -180.0 до 180.0). |
zoom | Decimal | Установите масштаб камеры (ортогональный размер или поле зрения, в зависимости от режима рендеринга) в диапазоне от 0.0 (без увеличения) до 1.0 (при полном увеличении). |
ortho | Boolean | Должна ли камера отображаться в орфографическом (истинном) или перспективном (ложном) режиме. |
toggle | List<String> | Имена компонентов для переключения (включить, если отключено, и наоборот). Компоненты должны быть прикреплены к тому же игровому объекту, что и камера. Это можно использовать для переключения пользовательские эффекты пост-обработки. |
set | List<Named<Boolean>> | Имена включаемых/выключаемых компонентов. Компоненты должны быть прикреплены к тому же игровому объекту, что и камера. Это можно использовать для явного включения или отключения пользовательских эффектов пост-обработки. Указанное состояние компонентов перекроет эффект от параметра toggle . |
easing | String | Имя функции замедления, используемой для модификации. Доступные Варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic. Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации камеры. |
time | Decimal | Продолжительность модификации (в секундах). Значение по умолчанию: 0.35 секунды. |
Примеры
; Сместить камеру на -3 единицы по оси X (панорамирование) и на 1.5 единицы по оси Y
@camera offset:-3,1.5
; Установить камеру в режим перспективы, увеличив на 50% и сдвинув на 5 единиц по оси Z.
@camera ortho:false offset:,,-5 zoom:0.5
; Установить камеру в орфографический режим и повернуть на 10 градусов по часовой стрелке.
@camera ortho:true roll:10
; Сместить, смасштабировать и одновременно анимировать угол в течение 5 секунд
@camera offset:-3,1.5 zoom:0.5 roll:10 time:5
; Мгновенно сбросить камеру в состояние по умолчанию
@camera offset:0,0 zoom:0 rotation:0,0,0 time:0
; Переключить компоненты `FancyCameraFilter` и `Bloom`, прикрепленные к камере
@camera toggle:FancyCameraFilter,Bloom
; Включить компонент `FancyCameraFilter` и отключить `Bloom`
@camera set:FancyCameraFilter.true,Bloom.false
char
Краткое описание
Модифицирует актор персонажа.
Параметры
ID | Тип | Описание |
---|---|---|
IdAndAppearance | Named<String> | ID, который нужно изменить (укажите * , чтобы затронуть все видимые символы), и внешний вид (или поза), который нужно установить. Если внешний вид не указан, будет использоваться либо вариант «по умолчанию» (Если он сущетвует), либо случайный. |
look | String | Направоление, куда смотрит актор; поддерживаемые значения: слева, справа, по центру. |
avatar | String | Имя (путь) текстуры аватара для назначения персонажу. Используйте none , чтобы удалить (сбросить) текстуру аватара у персонажа. |
pos | List<Decimal> | Установка положения (относительно границ экрана, в процентах), для измененного актора. Положение описывается следующим образом: «0.0» - левый нижний угол, «50.50» - центр, а «100.100» - верхний правый угол экрана. Используйте Z-компонент (третий параметр, например, ,, 10 ) для перемещения (сортировки) по глубине в режиме орто. |
id | String | ID актора для изменения; укажите * , чтобы повлиять на всех видимых акторов. |
appearance | String | Внешний вид (или поза), изменяемого актора. |
transition | String | Тип используемого эффекта перехода (по умолчанию используется перекрестное затухание). |
params | List<Decimal> | Параметры эффекта перехода. |
dissolve | String | Путь к текстуре custom disolve путь должен указываться относительно папки Resources ). Действует только когда переход установлен в режим «Пользовательский». |
visible | Boolean | Статус видимости, изменяемого актора. |
position | List<Decimal> | Положение (в мировом пространстве) изменяемого актора. Используйте Z-компонент (третий параметр) для перемещения (сортировки) по глубине в режиме орто. |
rotation | List<Decimal> | Вращение для изменяемого актора. |
scale | List<Decimal> | Масштаб, для изменяемого актора |
tint | String | Цвет оттенка изменяемого актора. Строки, начинающиеся с # , будут анализироваться как шестнадцатеричные следующим образом: #RGB (becomes RRGGBB), #RRGGBB , #RGBA (becomes RRGGBBAA), #RRGGBBAA ; если альфа не указана, по умолчанию будет FF. Строки, которые не начинаются с # , будут анализироваться как буквенные цвета, поддерживаются следующие значения: красный, голубой, синий, темно-синий, светло-синий, фиолетовый, желтый, салатовый, фуксия, белый, серебристый, серый, черный, оранжевый, коричневый , бордовый, зеленый, оливковый, темно-синий, чирок, аква, пурпурный. |
easing | String | Имя функции замедления, используемой для модификации. Доступные Варианты: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic. Если не указан, будет использоваться функция замедления по умолчанию, установленная в настройках конфигурации менеджера актора. |
time | Decimal | Продолжительность модификации (в секундах). Значение по умолчанию: 0.35 секунды. |
Примеры
; Показать персонажа с идентификатором `Sora` с эффектом появления по умолчанию.
@char Sora
; То же, что и выше, но устанавить внешний вид «Happy».
@char Sora.Happy
; То же, что и выше, но также располажить персонажа на 45% от левой границы экрана и на 10% от нижней границы; также указывает ему установить направления взгляда налево.
@char Sora.Happy look:left pos:45,10
; Заставить Sora показаться по центру снизу, перед Феликсом
@char Sora pos:50,0,-1
@char Felix pos:,,0
; Тонировать всех видимых персонажей на сцене.
@char * tint:#ffdc22
choice
Краткое описание
Добавляет параметр choice в обработчик выбора с указанным идентификатором (или идентификатором по умолчанию).
Примечание
Если параметры goto
, gosub
и do
не указаны, выполнение сценария будет продолжено со следующей строки сценария.
Параметры
ID | Тип | Описание |
---|---|---|
ChoiceSummary | String | Текст для отображения на кнопке выбора. Если текст содержит пробелы, заключите его в двойные кавычки (" ). Если вы хотите включить двойные кавычки в сам текст, экранируйте их. |
button | String | Путь (относительно папки Resources ) к кнопке prefab, представляющей выбор. Префаб должен иметь компонент ChoiceHandlerButton , присоединенный к корневому объекту. Если параметр не указан, будет использоваться кнопка по умолчанию. |
pos | List<Decimal> | Локальное положение кнопки выбора внутри обработчика выбора (если поддерживается реализацией обработчика). |
handler | String | ID обработчика выбора, для которого нужно добавить выбор. Если параметр не укзаан, будет использовать обработчик по умолчанию. |
goto | Named<String> | Путь, по которому нужно идти, когда пользователь сделал выбор; см. команду @goto для справки по синтаксису. |
gosub | Named<String> | Путь к подпрограмме, которую нужно выбрать пользователем; см. команду @gosub для справки по синтаксису. Когда назначено goto , этот параметр будет игнорироваться. |
set | String | Выражение для выполнения, которые выполняться, когда вариант ответа выбран пользователем; см. команду @set для справки по синтаксису. |
do | List<String> | Команды скрипта для выполнения, когда вариант ответа выбран пользователем; не забывайте экранировать запятые внутри значений списка, чтобы они не рассматривались как разделители. Команды будут вызываться по порядку после обработки set , goto и gosub (если назначены). |
show | Boolean | Показывать ли также обработчик выбора, для которого добавлен выбор; включен по умолчанию. |
time | Decimal | Продолжительность (в секундах) анимации постепенного появления (раскрытия). Значение по умолчанию: 0.35 секунды. |
Примеры
; Напечатать текст, затем немедленно показать варианты ответа и остановить выполнение скрипта.
Continue executing this script or ...?[skipInput]
@choice "Continue"
@choice "Load another script from start" goto:AnotherScript
@choice "Load another script from \"MyLabel\" label" goto:AnotherScript.MyLabel
@choice "Goto to \"MySub\" subroutine in another script" gosub:AnotherScript.MySub
@stop
; Вы также можете установить пользовательские переменные в зависимости от выбора варианта ответа.
@choice "I'm humble, one is enough..." set:score++
@choice "Two, please." set:score=score+2
@choice "I'll take the entire stock!" set:karma--;score=999
; Воспроизвести звуковой эффект и расставить персонажей, когда будет выбран вариант ответа
@choice "Arrange" goto:.Continue do:"@sfx Click, @arrange k.10\,y.55"
; В следующем примере показано, как создать интерактивную карту с помощью команд `@choice`.
; В этом примере мы предполагаем, что внутри папки `Resources / MapButtons` вы сохранили префабы с компонентом` ChoiceHandlerButton`, прикрепленным к их корневым объектам.
# Map
@back Map
@hidePrinter
@choice handler:ButtonArea button:MapButtons/Home pos:-300,-300 goto:.HomeScene
@choice handler:ButtonArea button:MapButtons/Shop pos:300,200 goto:.ShopScene
@stop
# HomeScene
@back Home
Home, sweet home!
@goto .Map
# ShopScene
@back Shop
Don't forget about cucumbers!
@goto .Map
clearBacklog
Краткое описание
Удаляет все сообщения из принтера бэклога.
Примеры
@clearBacklog
clearChoice
Краткое описание
Удаляет все варианты ответа в обработчике выбора с предоставленным идентификатором (или по умолчанию, если идентификатор не указан; или во всех существующих обработчиках, если в качестве идентификатора указан *
) и (необязательно) скрывает его (их).
Параметры
ID | Тип | Описание |
---|---|---|
HandlerId | String | ID обработчика выбора очистить. Если он не указан, будет использоваться обработчик по умолчанию. Укажите * , чтобы очистить все существующие обработчики. |
hide | Boolean | Следует ли также скрывать затронутые принтеры. |
Example
; Добавить варианты ответа и удалить их через установленное время (если игрок не выбрал один).
# Start
You have 2 seconds to respond![skipInput]
@choice "Cats" goto:.PickedChoice
@choice "Dogs" goto:.PickedChoice
@wait 2
@clearChoice
Too late!
@goto .Start
# PickedChoice
Good!
despawn
Краткое описание
Уничтожает объект, созданный командой @spawn
.
Примечание
Если в префабе есть компонент UnityEngine.MonoBehaviour
, прикрепленный к корневому объекту, и компонент реализует интерфейс Naninovel.Commands.DestroySpawned.IParameterized
, перед уничтожением объекта будут переданы указанные значения params
; если компонент реализует интерфейс Naninovel.Commands.DestroySpawned.IAwaitable
, выполнение команды будет ждать выполнения задачи асинхронного завершения, возвращаемой реализацией, прежде чем уничтожить объект.
Параметры
ID | Тип | Описание |
---|---|---|
Path | String | Имя (путь) префаба, который нужно уничтожить. Ожидается, что команда @spawn с тем же параметром будет выполнена раньше. |
params | List<String> | Параметры, которые нужно установить перед уничтожением префаба. Требуется, чтобы к префабу был прикреплен компонент Naninovel.Commands.DestroySpawned.IParameterized , связанный с корневым объектом. |
Примеры
; Учитывая, что команда "@spawn Rainbow" была выполнена раньше
@despawn Rainbow
else
Краткое описание
Отмечает ветвь блока условного выполнения, который всегда выполняется в случае, если не выполняются условия открывающей @if
и всех предшествующих @elseif
(если есть) команд. Примеры использования см. в руководстве условния выполнения.
elseIf
Краткое описание
Отмечает ветвь блока условного выполнения, которая выполняется в случае выполнения собственного условия (выражение оценивается как истинное), в то время как условия открытия @if
и всех предшествующих команд @elseif
(если есть) не выполняются. Примеры использования см. в руководстве условния исполнения.
Параметры
ID | Тип | Описание |
---|---|---|
Expression | String | Выражение сценария, которое должно возвращать логическое значение. |
endIf
Краткое описание
Закрывает блок условного выполнения @if
. Примеры использования см. в руководстве условния выполнения.
finishTrans
Краткое описание
Завершает переход между сценами, начатый командой @startTrans
; см. справку по команде запуска для получения дополнительной информации и примеров использования.
Параметры
ID | Тип | Описание |
---|---|---|
Transition | String | Тип используемого эффекта перехода (по умолчанию используется кроссфейд). |
params | List<Decimal> | Параметры эффекта перехода. |
dissolve | String | Путь к кастомномной текстуре растворения (путь должен быть относительно папки Resources ). Действует, только если для перехода установлен Customрежим. |
easing | String | Имя функции замедления, используемой для модификации. Доступные опции: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic. Если не указано, будет использоваться функция ослабления по умолчанию, установленная в настройках конфигурации менеджера актора. |
time | Decimal | Продолжительность перехода (в секундах). Значение по умолчанию: 0.35 секунды. |
gosub
Краткое описание
Переходит при воспроизведении скрипта наниновелл по указанному пути и сохраняет этот путь в ?глобальном состоянии ? ; @return
команды используют эту информацию для перенаправления на команду после последней запущенной команды gosub. Предназначен для использования в качестве функции (подпрограммы) в языке программирования, позволяющей повторно использовать фрагмент сценария наниновелл. Полезно для многократного вызова повторяющегося набора команд.
Примечание
Можно объявить gosub вне текущего воспроизводимого скрипта и использовать его из любых других скриптов; по умолчанию сброс состояния не происходит, когда вы загружаете другой скрипт для воспроизведения gosub или возвращаетесь назад, чтобы предотвратить задержки и загрузочные экраны. Однако имейте в виду, что все ресурсы, указанные в сценарии gosub, будут храниться до следующего сброса состояния.
Параметры
ID | Тип | Описание |
---|---|---|
Path | Named<String> | Путь для перехода в следующем формате: ScriptName.LabelName . Если имя метки опущено, скрипт будет воспроизводиться с самого начала. Если имя сценария опущено, попытается найти метку в текущем воспроизводимом сценарии. |
reset | List<String> | Если указано, сбрасывает состояние служб ядра перед загрузкой сценария (если путь ведет к другому сценарию). Укажите * , чтобы сбросить все службы (кроме диспетчера переменных), или укажите имена служб, которые нужно исключить из сброса. По умолчанию состояние не сбрасывается. |
Примеры
; При воспроизведении, переходит к метке `VictoryScene`, в воспроизводимом в данный момент скрипте, выполняет команды и переходит обратно к команде после `gosub`.
@gosub .VictoryScene
...
@stop
# VictoryScene
@back Victory
@sfx Fireworks
@bgm Fanfares
You are victorious!
@return
; Другой пример с некоторым ветвлением внутри подпрограммы.
@set time=10
; Здесь мы получаем один результат
@gosub .Room
...
@set time=3
; И вот мы получаем еще один
@gosub .Room
...
# Room
@print "It's too early, I should visit this place when it's dark." if:time<21&&time>6
@print "I can sense an ominous presence here!" if:time>21&&time<6
@return
goto
Краткое описание
Перемещает воспроизведение сценария наниновеллы по указанному пути. Когда путь ведет к другому (не воспроизводимому в данный момент) скрипту новеллы, он также сбросит состояние перед загрузкой целевого скрипта, если ResetStateOnLoad не отключен в комплектации.
Параметры
ID | Тип | Описание |
---|---|---|
Path | Named<String> | Путь для перехода в следующем формате: ScriptName.LabelName . Если имя метки опущено, скрипт будет воспроизводиться с самого начала. Если имя сценария опущено, попытается найти метку в текущем воспроизводимом сценарии. |
reset | List<String> | Если указано, сбрасывает состояние служб ядра перед загрузкой сценария (если путь ведет к другому сценарию). Укажите * , чтобы сбросить все службы (кроме диспетчера переменных), или укажите имена служб, которые нужно исключить из сброса. Укажите - , чтобы не выполнять сброса (даже если он включен по умолчанию в конфигурации). Значение по умолчанию контролируется опцией Reset State On Load в меню конфигурации двигателя. |
Примеры
; Загружает и запускает воспроизведение сценария новеллы с именем `Script001` с самого начала.
@goto Script001
; Тоже, что и выше, но начинает играть с метки `AfterStorm`.
@goto Script001.AfterStorm
; Перемещает воспроизведение к метке `Epilogue` в воспроизводимом в данный момент скрипте.
@goto .Epilogue
; Загрузите Script001, но не сбрасывайте аудио-менеджер (воспроизведение звука не прерывается). Имейте в виду, что исключение сброса состояния формы службы оставит связанные ресурсы в памяти.
@goto Script001 reset:IAudioManager
hide
Краткое описание
Скрывает (делает невидимыми) акторов (персонаж, фон, текстовый принтер, обработчик выбора и т. д.) С указанными идентификаторами. В случае, если найдены несколько акторов с одним и тем же идентификатором (например, персонаж и принтер), это повлияет только на первый найденый актор.
Параметры
ID | Тип | Описание |
---|---|---|
ActorIds | List<String> | ID акторов, которых нужно скрыть. |
time | Decimal | Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды. |
Примеры
; Если актор с ID `SomeActor` виден, то скрыть его в течение 3 секунд.
@hide SomeActor time:3
; Спрятать акторов `Kohaku` и `Yuko`.
@hide Kohaku,Yuko
hideAll
Краткое описание
Скрывает (удаляет) всех действующих лиц (например, персонажей, фоны, текстовые принтеры, обработчики выбора и т. Д.) на сцене.
Параметры
ID | Тип | Описание |
---|---|---|
time | Decimal | Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды. |
Примеры
@hideAll
hideChars
Краткое описание
Скрывает (удаляет) всех видимых персонажей на сцене.
Параметры
ID | Тип | Описание |
---|---|---|
time | Decimal | Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды. |
Примеры
@hideChars
hidePrinter
Краткое описание
Скрывает текстовый принтер.
Параметры
ID | Тип | Описание |
---|---|---|
PrinterId | String | ID используемого принтера. Если не указано иное, будет использоваться значение по умолчанию. |
time | Decimal | Продолжительность (в секундах) анимации скрытия. Значение по умолчанию для каждого принтера устанавливается в конфигурации актора. |
Примеры
; Скрыть принтер по умолчанию.
@hidePrinter
; Скрыть принтер с ID `Wide`.
@hidePrinter Wide
hideUI
Краткое описание
Делает элементы пользовательского интерфейса с указанными именами невидимыми. Если имена не указаны, прекратит рендеринг (скроет) весь UI (включая все встроенные пользовательские интерфейсы).
Примечание
Если скрыть весь UI с помощью этой команды и параметра allowToggle
, который имеет значение false (по умолчанию), пользователь не сможет повторно отобразить UI с помощью горячих клавиш или щелкнув в любом месте экрана; используйте команду @showUI
, чтобы снова сделать UI великим видимым.
Параметры
ID | Тип | Описание |
---|---|---|
UINames | List<String> | Имя скрытых элементов пользовательского интерфейса. |
allowToggle | Boolean | При скрытии всего UI, определяет, разрешить ли пользователю повторно отображать UI с помощью горячих клавиш или щелчком в любом месте экрана (по умолчанию false). Не влияет на скрытие определенного UI. |
time | Decimal | Продолжительность (в секундах) анимации скрытия. Если не указано, будет использоваться продолжительность, зависящая от UI. |
Примеры
; При наличии пользовательского UI `Calendar` следующая команда скроет его.
@hideUI Calendar
; Скрыть весь UI, и не позволит пользователю повторно показать его
@hideUI
...
; Сделать UI снова видимым
@showUI
; Скрыть весь UI, но разрешить пользователю переключать его обратно
@hideUI allowToggle:true
; Одновременно скрыть встроенный интерфейс `TipsUI` и интерфейс ` Calendar`.
@hideUI TipsUI,Calendar
i
Краткое описание
Удерживает выполнение скрипта до тех пор, пока пользователь не активирует вход continue
. Ярлык для @wait i
.
Примеры
; Пользователь должен будет активировать ввод `continue` после первого предложения, чтобы принтер продолжил печать следующий текст.
Lorem ipsum dolor sit amet.[i] Consectetur adipiscing elit.
if
Краткое описание
Обозначает начало блока условного выполнения. Всегда должен закрываться командой @endif
. Примеры использования см. в руководстве условия выполнения.
Параметры
ID | Тип | Описание |
---|---|---|
Expression | String | Выражение сценария, которое должно возвращать логическое значение. |
input
Краткое описание
Показывает интерфейс (UI) поля ввода, где пользователь может ввести произвольный текст. После отправки введенный текст будет присвоен указанной пользовательской переменной.
Примечание
Посмотрите этот видеогид на примере использования.
Чтобы назначить отображаемое имя для символа с помощью этой команды, рассмотрите возможность привязки имени к пользовательской переменной.
Параметры
ID | Тип | Описание |
---|---|---|
VariableName | String | Имя пользовательской переменной, которой будет назначен введенный текст. |
summary | String | Необязательный текст сводки для отображения вместе с полем ввода. Если текст содержит пробелы, заключите его в двойные кавычки (" ). Если вы хотите включить двойные кавычки в сам текст, не используйте их. |
value | String | Предопределенное значение для поля ввода. |
play | Boolean | Следует ли автоматически возобновлять воспроизведение скрипта, когда пользователь отправит форму ввода. |
Примеры
; Разрешить пользователю ввести произвольный текст и назначить его пользовательской переменной `name`
@input name summary:"Choose your name."
; Команда Stop требуется для остановки выполнения скрипта до тех пор, пока пользователь не отправит ввод
@stop
; Затем вы можете ввести присвоенную переменную `name` в скрипте новеллы.
Archibald: Greetings, {name}!
{name}: Yo!
; ...или используйте его внутри множественных и условных выражений
@set score=score+1 if:name=="Felix"
lipSync
Краткое описание
Позволяет принудительно остановить анимацию рта с синхронизацией губ для персонажа с предоставленным идентификатором; при остановке анимация не запустится снова, пока эта команда не будет разрешена снова. Персонаж должен иметь возможность получать события синхронизации губ (в настоящее время только общие реализации и реализации Live2D). См. Руководство персонажей для получения дополнительной информации о функции синхронизации губ.
Параметры
ID | Тип | Описание |
---|---|---|
CharIdAndAllow | Named<Boolean> | ID символа, за которым следует логическое значение (true или false), указывающее, следует ли остановить или разрешить анимацию синхронизации губ. |
Примеры
; Поскольку автоматическое озвучивание отключено, а синхронизация губ управляется текстовыми сообщениями, исключите знаки препинания из анимации рта.
Kohaku: Lorem ipsum dolor sit amet[lipSync Kohaku.false]... [lipSync Kohaku.true]Consectetur adipiscing elit.
loadScene
Краткое описание
Загружает сцену Unity с указанным именем. Не забудьте добавить необходимые сцены в настройки сборки, чтобы сделать их доступными для загрузки.
Параметры
ID | Тип | Описание |
---|---|---|
SceneName | String | Имя загружаемой сцены. |
additive | Boolean | Следует ли загружать сцену аддитивно или выгружать текущие загруженные сцены перед загрузкой новой (по умолчанию). См. Документацию по загрузке сцены для получения дополнительной информации. |
Примеры
; Загрузить сцену "MyTestScene" в одиночном режиме
@loadScene MyTestScene
; Загрузить сцену "MyTestScene" в аддитивном режиме
@loadScene MyTestScene additive:true
lock
Краткое описание
Устанавливает разблокируемый элемент с предоставленным идентификатором в состояние locked
.
Примечание
Разблокированное состояние элементов сохраняется в global scope.
Если элемент с предоставленным идентификатором не зарегистрирован в карте глобального состояния, соответствующая запись будет добавлена автоматически.
Параметры
ID | Тип | Описание |
---|---|---|
Id | String | ID разблокируемого предмета. Используйте * , чтобы заблокировать все зарегистрированные разблокируемые элементы. |
Примеры
@lock CG/FightScene1
look
Краткое описание
Включает / выключает режим обзора камеры, когда игрок может смещать основную камеру с помощью устройств ввода (например, перемещая мышь или используя аналоговый джойстик геймпада). Посмотрите это видео для быстрой демонстрации команды.
Параметры
ID | Тип | Описание |
---|---|---|
enable | Boolean | Включить или отключить режим просмотра камерой. По умолчанию: true. |
zone | List<Decimal> | Связанный прямоугольник с размерами X, Y в единицах от исходного положения камеры, описывающий, как далеко камера может быть перемещена. По умолчанию: 5,3. |
speed | List<Decimal> | Скорость движения (чувствительность) камеры по осям X, Y. По умолчанию: 1.5,1. |
gravity | Boolean | Следует ли автоматически перемещать камеру в исходное положение, когда вход просмотра не активен (например, мышь не двигается или аналоговый джойстик находится в положении по умолчанию). По умолчанию: false. |
Примеры
; Активировать режим просмотра камеры с параметрами по умолчанию
@look
; Активировать режим просмотра камеры с пользовательскими параметрами
@look zone:6.5,4 speed:3,2.5 gravity:true
; Отключить режим обзора камеры и сбросить смещение камеры
@look enabled:false
@camera offset:0,0
movie
Краткое описание
Воспроизводит фильм с указанным именем (путем).
Примечание
Изображение на экране исчезнет перед воспроизведением фильма и снова исчезнет после воспроизведения. Воспроизведение можно отменить, активировав вход cancel
(по умолчанию клавиша Esc
).
Параметры
ID | Тип | Описание |
---|---|---|
MovieName | String | Имя ресурса фильма для воспроизведения. |
Примеры
; Если видеоклип "Opening" добавлен в ресурсы, воспроизвести его.
@movie Opening
print
Краткое описание
Печатает (показывает с течением времени) указанное текстовое сообщение с помощью актора текстового принтера.
Примечание
Эта команда используется при обработке общих текстовых строк, например, общая строка Kohaku: Hello World!
будет автоматически преобразована в @print "Hello World!" author:Kohaku
при разборе скриптов новеллы.
По умолчанию сбросит (очистит) принтер перед печатью нового сообщения; установите для параметра reset
значение false или отключите Auto Reset
в конфигурации актора принтера, чтобы предотвратить это, и вместо этого добавьте текст.
?Сделает принтер по умолчанию и скроет другие принтеры по умолчанию; установите для параметра default
значение false или отключите Auto Default
в конфигурации актора принтера, чтобы предотвратить это.
Будет ждать ввода данных пользователем перед завершением задачи по умолчанию; установите для параметра waitInput
значение false или отключите Auto Wait
в конфигурации актора принтера, чтобы он возвращался, как только текст полностью раскрывается.
Параметры
ID | Тип | Описание |
---|---|---|
Text | String | Текст сообщения для печати. Если текст содержит пробелы, заключите его в двойные кавычки (" ). Если вы хотите включить двойные кавычки в сам текст, экранируйте их. |
printer | String | ID используемого принтера. Если не указано иное, будет использоваться значение по умолчанию. |
author | String | ID актора, который должен быть связан с напечатанным сообщением. |
speed | Decimal | Множитель скорости отображения текста; должно быть положительным или нулевым. Установка на единицу даст скорость по умолчанию. |
reset | Boolean | Следует ли сбрасывать текст принтера перед выполнением задания печати. Значение по умолчанию контролируется с помощью свойства Auto Reset в меню конфигурации актора принтера. |
default | Boolean | Использовать ли принтер по умолчанию и скрывать другие принтеры перед выполнением задания печати. Значение по умолчанию контролируется с помощью свойства Auto Default в меню конфигурации актора принтера. |
waitInput | Boolean | Следует ли ждать ввода данных пользователем после завершения задания печати. Значение по умолчанию контролируется с помощью свойства Auto Wait в меню конфигурации актора принтера. |
br | Integer | Количество разрывов строки, добавляемых перед печатным текстом. Значение по умолчанию контролируется с помощью свойства Auto Line Break в меню конфигурации актора принтера. |
fadeTime | Decimal | Управляет продолжительностью (в секундах) отображения и скрытия принтеров анимации, связанной с этой командой. Значение по умолчанию для каждого принтера устанавливается в конфигурации актора. |
Примеры
; Распечатать фразу на принтере по умолчанию.
@print "Lorem ipsum dolor sit amet."
; Чтобы включить кавычки в сам текст, экранируйте их.
@print "Saying \"Stop the car\" was a mistake."
; Показывать сообщение с скоростью 0.5 и не ждать продолжения ввода пользователя.
@print "Lorem ipsum dolor sit amet." speed:0.5 waitInput:false
printer
Краткое описание
Изменяет актора текстового принтера.
Параметры
ID | Тип | Описание |
---|---|---|
IdAndAppearance | Named<String> | ID принтера, который нужно изменить, и внешний вид, который нужно установить. Если идентификатор или внешний вид не указаны, будут использоваться значения по умолчанию. |
default | Boolean | Использовать ли этот принтер по умолчанию. Принтер по умолчанию будет подчиняться всем командам, связанным с принтером, если параметр printer не указан. |
hideOther | Boolean | Скрывать ли все остальные принтеры. |
pos | List<Decimal> | Положение (относительно границ экрана, в процентах), устанавливаемое для измененного принтера. Положение описывается следующим образом: «0,0» - это нижний левый угол, «50,50» - центр и «100,100» - это верхний правый угол экрана. |
visible | Boolean | Показывать или скрывать принтер. |
time | Decimal | Продолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды. |
Примеры
; Сделать принтер `Wide` по умолчанию и скрыть все остальные видимые принтеры.
@printer Wide
; Назначить внешний вид `Right` принтеру `Bubble`, по умолчанию он будет располагаться в центре экрана и не будет скрывать другие принтеры.
@printer Bubble.Right pos:50,50 hideOther:false
processInput
Краткое описание
Позволяет останавливать и возобновлять обработку пользовательского ввода (например, реагировать на нажатие клавиш клавиатуры). Эффект от действия постоянный и сохраняется вместе с игрой.
Параметры
ID | Тип | Описание |
---|---|---|
InputEnabled | Boolean | Включить ли обработку ввода. |
Примеры
; Остановить обработку ввода
@processInput false
; Возобновить обработку ввода
@processInput true
purgeRollback
Краткое описание
Предотвращает откат игрока к предыдущим снимкам состояния.
Примеры
; Запретить игроку откат назад, чтобы бы он не мог выбрать другой вариант ответа.
@choice "One" goto:.One
@choice "Two" goto:.Two
@stop
# One
@purgeRollback
You've picked one.
# Two
@purgeRollback
You've picked two.
resetState
Краткое описание
Сбрасывает состояние сервисов движка и выгружает (удаляет) все ресурсы, загруженные Naninovel (текстуры, аудио, видео и т.д.); в основном вернется к пустому начальному состоянию двигателя.
Примечание
Процесс является асинхронным и маскируется экраном загрузки (ILoadingUI).
Когда ResetStateOnLoad отключен в конфигурации, вы можете использовать эту команду, чтобы вручную удалить неиспользуемые ресурсы, чтобы предотвратить проблемы с утечкой памяти.
Имейте в виду, что эту команду нельзя отменить (перемотать назад).
Параметры
ID | Тип | Описание |
---|---|---|
Exclude | List<String> | Название сервисов движка (интерфейсов), которые нужно исключить из сброса. При указании параметра всегда учитывайте добавление ICustomVariableManager для сохранения локальных переменных. |
Примеры
; Сбросить все службы.
@resetState
; Сбросьте все службы, кроме менеджеров переменных и аудио (текущий звук продолжит воспроизведение).
@resetState ICustomVariableManager,IAudioManager
resetText
Краткое описание
Сбрасывает (очищает) содержимое текстового принтера.
Параметры
ID | Тип | Описание |
---|---|---|
PrinterId | String | ID используемого принтера. Если не указано, будет использоваться значение по умолчанию. |
Примеры
; Очистить содержимое принтера по умолчанию.
@resetText
; Очистить содержимое принтера с ID `Fullscreen`.
@resetText Fullscreen
return
Краткое описание
Пытается перейти при воспроизведении сценария naninovel к команде после последней использованной @gosub
. См. Описание команды @gosub
для получения дополнительной информации и примеров использования.
Параметры
ID | Тип | Описание |
---|---|---|
reset | List<String> | Если указано, сбросит состояние сервисов движка перед возвратом к исходному сценарию, из которого был введен gosub (в случае, если это не текущий сценарий). Укажите * , чтобы сбросить все службы (кроме диспетчера переменных), или укажите имена служб, которые нужно исключить из сброса. По умолчанию состояние не сбрасывается. |
save
Краткое описание
Автоматически сохраняет игру в слот для быстрого сохранения.
Примеры
@save
set
Краткое описание
Присваивает результат выражения сценария пользовательской переменной.
Примечание
Имя переменной должно быть буквенно-цифровым (только латинские символы) и может содержать символы подчеркивания, например: name
, Char1Score
, my_score
; имена регистронезависимы, например: myscore
равно MyScore
. Если переменной с указанным именем не существует, она будет создана автоматически.
Можно определить несколько выражений набора в одной строке, разделив их символом ;
. Выражения будут выполняться последовательно в порядке объявления.
Пользовательские переменные по умолчанию хранятся в local scope. Это означает, что если вы назначите какую-то переменную в процессе игры, и игрок начнет новую игру или загрузит другой сохраненный игровой слот, где эта переменная не была назначена, значение будет потеряно. Если вместо этого вы хотите сохранить переменную в global scope, добавьте к ее имени G_
или g_
, например: G_FinishedMainRoute
или g_total_score
.
Если имя переменной начинается с T_
или t_
, это считается ссылкой на значение, хранящееся в документе 'Script' управляемый текст. Такие переменные не могут быть назначены и в основном используются для ссылки на локализуемые текстовые значения.
Вы можете получить и установить пользовательские переменные в сценариях C # с помощью CustomVariableManager
служба движка.
Параметры
ID | Тип | Описание |
---|---|---|
Expression | String | Установить выражение. Выражение должно быть в следующем формате: VariableName=ExpressionBody , где VariableName - это имя настраиваемой переменной, которую нужно назначить, а ExpressionBody - это выражение сценария, результат которого следует присвоить переменной. Также можно использовать унарные операторы увеличения и уменьшения, например: @set foo++ , @set foo-- . |
Примеры
; Присвоить переменной `foo` строковое значение` bar`
@set foo="bar"
; Присвоить переменной `foo` одно числовое значение
@set foo=1
; Присвоить переменной `foo` логическое значение` true`
@set foo=true
; Если `foo` - это число, добавить к его значению 0.5
@set foo=foo+0.5
; Если `angle` - это число, присвоить его косинус переменной `result`.
@set result=Cos(angle)
; Получить случайное целое число от -100 до 100, затем возвести в степень 4 и присвоить переменной `result`
@set "result = Pow(Random(-100, 100), 4)"
; Если `foo` - это число, добавить к его значению 1
@set foo++
; Если `foo` - число, вычесть 1 из его значения
@set foo--
; Присвоить переменной `foo` значение переменной` bar`, то есть `Hello World!`. Обратите внимание, что переменная `bar` действительно должна существовать, в противном случае вместо этого будет присвоено значение обычного текста `bar`.
@set bar="Hello World!"
@set foo=bar
; Определение нескольких выражений множества в одной строке (результат будет таким же, как указано выше)
@set bar="Hello World!";foo=bar
; Можно вводить переменные в параметры команды скрипта naninovel
@set scale=0
# EnlargeLoop
@char Misaki.Default scale:{scale}
@set scale=scale+0.1
@goto .EnlargeLoop if:scale<1
; ..и общие текстовые строки
@set name="Dr. Stein";drink="Dr. Pepper"
{name}: My favourite drink is {drink}!
; При использовании двойных кавычек внутри самого выражения не забывайте экранировать их дважды.
@set remark="Saying \\"Stop the car\\" was a mistake."
sfx
Краткое описание
Воспроизводит или изменяет воспроизводимую в данный момент SFX (звуковой эффект) дорожку с указанным именем.
Примечание
По умолчанию звуковые эффекты не зацикливаются. Если имя дорожки sfx (SfxPath) не указано, это повлияет на все воспроизводимые в данный момент дорожки. При вызове для дорожки, которая уже воспроизводится, воспроизведение не будет затронуто (дорожка не начнется с начала), но будут применены указанные параметры (громкость и зацикленность дорожки).
Параметры
ID | Тип | Описание |
---|---|---|
SfxPath | String | Путь к объекту звукового эффекта для воспроизведения. |
volume | Decimal | Громкость SFX. |
loop | Boolean | Следует ли воспроизводить SFX в цикле. |
fade | Decimal | Длительность нарастания громкости при запуске воспроизведения в секундах (по умолчанию 0.0); не действует при изменении воспроизводимой дорожки. |
group | String | Аудиомикшер путь к группе, который следует использовать при воспроизведении звука. |
time | Decimal | Продолжительность (в секундах) модификации. Значение по умолчанию: 0.35 секунды. |
Примеры
; Один раз воспроизвести SFX с названием `Explosion`
@sfx Explosion
; Воспроизвести SFX с названием `Rain` в цикле с плавным переходом в течение 30 секунд
@sfx Rain loop:true fade:30
; Изменить громкость всех воспроизводимых SFX на 75% за 2.5 секунды и отключить зацикливание для всех из них
@sfx volume:0.75 loop:false time:2.5
show
Краткое описание
Показывает (делает видимыми) акторов (персонаж, фон, текстовый принтер, обработчик выбора и т.д.) с указанными идентификаторами. В случае, если найдены несколько акторов с одним и тем же идентификатором (например, персонаж и принтер), это повлияет только на первого найденного.
Параметры
ID | Тип | Описание |
---|---|---|
ActorIds | List<String> | ID акторов, которых нужно показать. |
time | Decimal | Продолжительность (в секундах) анимации затухания. Значение по умолчанию: 0.35 секунды. |
Примеры
; Если актор с ID `SomeActor` скрыт, проявить его (постепенно) в течение 3 секунд.
@show SomeActor time:3
; Показать акторов `Kohaku` и `Yuko`.
@show Kohaku,Yuko
showPrinter
Краткое описание
Показывает текстовый принтер.
Параметры
ID | Тип | Описание |
---|---|---|
PrinterId | String | ID спользуемого принтера. Если параметр не указан, будет использоваться значение по умолчанию. |
time | Decimal | Продолжительность (в секундах) анимации появления. Значение по умолчанию для каждого принтера устанавливается в конфигурации актора. |
Примеры
; Показать принтер по умолчанию.
@showPrinter
; Показать принтер с ID `Wide`.
@showPrinter Wide
showUI
Краткое описание
Делает видимыми элементы UI с указанными префабами. Если имена не указаны, откроется весь пользовательский интерфейс (в случае, если он был скрыт с помощью @hideUI
).
Параметры
ID | Тип | Описание |
---|---|---|
UINames | List<String> | Имя префаба UI, который нужно сделать видимым. |
time | Decimal | Продолжительность (в секундах) анимации шоу. Если не указано, будет использоваться продолжительность, зависящая от UI. |
Примеры
; Если вы добавили настраиваемый UI с именем префаба `Calendar`, то показать его на сцене.
@showUI Calendar
; Если вы скрыли весь UI с помощью @hideUI, то показать его
@showUI
; Одновременно открыть встроенный UI `TipsUI` и UI `Calendar`.
@showUI TipsUI,Calendar
skip
Краткое описание
Позволяет включить или отключить режим «пропуска» скрипт-плеера.
Параметры
ID | Тип | Описание |
---|---|---|
Enable | Boolean | Следует ли включить (по умолчанию) или отключить режим пропуска. |
Примеры
; Включить режим пропуска
@skip
; ВЫключить режим пропуска
@skip false
skipInput
Краткое описание
Может использоваться в общих текстовых строках для предотвращения активации режима wait for input
при печати текста.
Примеры
; Проигрыватель скриптов не будет ждать ввода `continue` перед выполнением команды `@sfx`.
And the rain starts.[skipInput]
@sfx Rain
slide
Краткое описание
Сдвигает (перемещается по оси X) актора (персонаж, фон, текстовый принтер или обработчик выбора) с предоставленным идентификатором и, при необходимости, изменяет внешний вид актора.
Примечание
Имейте в виду, что эта команда ищет актора с предоставленным идентификатором среди всех менеджеров акторов, и в случае, если существует несколько акторов с одним и тем же ID (например, персонаж и текстовый принтер), это повлияет только на первого найденного.
Parameters
ID | Тип | Описание |
---|---|---|
IdAndAppearance | Named<String> | ID актора для слайда и (необязательно) внешний вид, который нужно установить. |
from | Decimal | Позиционируйте по оси X (в диапазоне от 0 до 100, в процентах от левой границы экрана), от которой следует перемещать актора. Если не указан, будет использоваться текущая позиция актора, если она видна, и случайная позиция за кадром в противном случае. |
to | Decimal | Позиционируйте по оси X (в диапазоне от 0 до 100 в процентах от левого края экрана), куда нужно переместить актора. |
visible | Boolean | Изменить статус видимости актора (показать или скрыть). Если не установлен и целевой актор скрыт, он все равно будет автоматически отображаться. |
easing | String | Имя функции замедления, используемой для изменений. Available options: Linear, SmoothStep, Spring, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInQuint, EaseOutQuint, EaseInOutQuint, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInBounce, EaseOutBounce, EaseInOutBounce, EaseInBack, EaseOutBack, EaseInOutBack, EaseInElastic, EaseOutElastic, EaseInOutElastic. Если не указано, будет использоваться функция ослабления по умолчанию, установленная в настройках конфигурации менеджера актора. |
time | Decimal | Продолжительность (в секундах) слайд-анимации. Значение по умолчанию: 0.35 секунды. |
Примеры
; Учитывая, что актор `Jenna` в настоящее время не виден, показать его с внешностью `Angry` и переместить в центр экрана.
@slide Jenna.Angry to:50
; Если актор `Sheba` в настоящее время виден, скрыть его и сдвинуть за левую границу экрана.
@slide Sheba to:-10 visible:false
; Переместить актор `Mia` из левой части экрана вправо в течение 5 секунд, используя замедление анимации `EaseOutBounce`.
@slide Sheba from:15 to:85 time:5 easing:EaseOutBounce
spawn
Краткое описание
Создает префаб или специальный эффект; когда выполняется над уже созданным объектом, вместо этого обновляет параметры порождения.
Примечание
Если в префабе есть компонент UnityEngine.MonoBehaviour
, прикрепленный к корневому объекту, и компонент реализует интерфейс Naninovel.Commands.Spawn.IParameterized
, то после порождения передаст указанные значения params
; если компонент реализует интерфейс Naninovel.Commands.Spawn.IAwaitable
, выполнение команды будет ожидать выполнения задачи асинхронного завершения, возвращаемой реализацией.
Параметры
ID | Тип | Описание |
---|---|---|
Path | String | Имя (путь) префаба для создания ресурса. |
params | List<String> | Параметры, устанавливаемые при порождении префаба. Требуется, чтобы в префабе к корневому объекту был прикреплен компонент Naninovel.Commands.Spawn.IParameterized . |
Примеры
; Если префаб `Rainbow` назначен в ресурсах спауна, создать его экземпляр.
@spawn Rainbow
startTrans
Краткое описание
Начинает переход сцены, маскируя реальное содержимое сцены всем, что видно в данный момент (кроме пользовательского интерфейса). Когда новая сцена будет готова, закончите командой @finishTrans
.
Примечание
Во время перехода UI будет скрыт, а ввод данных пользователем заблокирован. Вы можете изменить это, переопределив ISceneTransitionUI
, который обрабатывает процесс перехода.
Список доступных опций эффектов перехода см. в руководстве transition effects.
Примеры
; Переход Felix в SunnyDay с Jenna в RainyDay
@char Felix
@back SunnyDay
@fx SunShafts
@startTrans
; Следующие изменения не будут видны, пока мы не завершится переход
@hideChars time:0
@char Jenna time:0
@back RainyDay time:0
@stopFx SunShafts params:0
@fx Rain params:,0
; Переход от первоначально захваченной сцены к новой с эффектом `DropFade` в течение 3 секунд.
@finishTrans DropFade time:3
stop
Краткое описание
Останавливает выполнение скрипта naninovel.
Примеры
Show the choices and halt script execution until the player picks one.
@choice "Choice 1"
@choice "Choice 2"
@stop
We'll get here after player will make a choice.
stopBgm
Кратое описание
Останавливает воспроизведение трека BGM (фоновой музыки) с указанным именем.
Примечание
Если имя музыкальной дорожки (BgmPath) не указано, остановит все текущие воспроизводимые дорожки.
Параметры
ID | Тип | Описание |
---|---|---|
BgmPath | String | Путь к музыкальной дорожке, котрую нужно остановить |
fade | Decimal | Продолжительность затухания громкости перед остановкой воспроизведения в секундах (по умолчанию 0.35). |
Примеры
; Заглушить музыкальный трек `Promenade` на 10 секунд и остановить воспроизведение
@stopBgm Promenade fade:10
; Оставнавить все проигрываемые в данный момент музыкальные треки
@stopBgm
stopSfx
Краткое описание
Останавливает воспроизведение дорожки SFX (звукового эффекта) с указанным именем.
Примечание
Если имя дорожки звукового эффекта (SfxPath) не указано, все текущие воспроизводимые дорожки будут остановлены.
Параметры
ID | Тип | Описание |
---|---|---|
SfxPath | String | Путь к звуковому эффекту, который нужно остановить. |
fade | Decimal | Продолжительность затухания громкости перед остановкой воспроизведения в секундах (по умолчанию 0.35). |
Примеры
; Прекратить проигрывать звуковой эффект с названием `Rain`, с эффектом затухания в течении 15 секунд
@stopSfx Rain fade:15
; Остановить все воспроизводимые в данный момент дорожки звуковых эффектов
@stopSfx
stopVoice
Краткое описание
Останавливает воспроизведение проигрываемого в данный момент голосового клипа.
style
Краткое описание
Постоянно применяемые стили текста к содержимому текстового принтера.
Примечание
Вы также можете использовать теги форматированного текста внутри текстовых сообщений для выборочного применения стилей.
Параметры
ID | Тип | Описание |
---|---|---|
TextStyles | List<String> | Применяемые теги форматирования текста. Угловые скобки следует опустить, например, используйте b для <b> и size=100 для <size=100>. Используйте ключевое слово default |
printer | String | ID используемого принтера. Если не указано иное, будет использоваться значение по умолчанию. |
Примеры
; Напечатать первые два предложения жирным красным шрифтом размером 45 пикселей, затем сбросьте стиль и напечатайте последнее предложение, используя стиль по умолчанию.
@style color=#ff0000,b,size=45
Lorem ipsum dolor sit amet.
Cras ut nisi eget ex viverra egestas in nec magna.
@style default
Consectetur adipiscing elit.
; Начальную часть предложения вывести как обычно, а последнюю - жирным шрифтом.
Lorem ipsum sit amet. <b>Consectetur adipiscing elit.</b>
title
Краткое описание
Сбросить движок и отобразить UIITitleUI
(главное меню).
Примеры
@title
unlock
Краткое описание
Устанавливает разблокируемый элемент с предоставленным идентификатором в состояние unlocked
.
Примечание
Разблокированное состояние элементов сохраняется в global scope.
Если элемент с предоставленным идентификатором не зарегистрирован в карте глобального состояния, соответствующий запись будет добавлена автоматически.
Параметры
ID | Тип | Описание |
---|---|---|
Id | String | ID разблокируемого предмета. Используйте * , чтобы разблокировать все зарегистрированные разблокируемые предметы. |
Примеры
@unlock CG/FightScene1
voice
Краткое описание
Воспроизводит голосовой клип по указанному пути.
Параметры
ID | Тип | Описание |
---|---|---|
VoicePath | String | Путь к голосовой записи для воспроизведения. |
volume | Decimal | Громкость воспроизведения. |
group | String | Аудиомикшер путь к группе, который следует использовать при воспроизведении звука. |
wait
Краткое описание
Удерживает выполнение скрипта до указанного условия ожидания.
Параметры
ID | Тип | Описание |
---|---|---|
WaitMode | String | Условия ожидания: - i пользователь нажимает кнопку продолжения или пропуска ввода;- 0.0 таймер (секунды);- i0.0 таймер, который можно пропустить клавишами продолжения или пропуска ввода. |
Примеры
; Звуковой эффект "ThunderSound" будет воспроизводиться через 0.5 секунд после завершения фонового эффекта дрожания.
@fx ShakeBackground
@wait 0.5
@sfx ThunderSound
; Напечатать первые два слова, затем дождитесь ввода пользователя, прежде чем печатать оставшуюся фразу.
Lorem ipsum[wait i] dolor sit amet.
; Вы также можете использовать следующий ярлык (@i command) для этого режима ожидания.
; Запустить SFX, распечатать сообщение и подождите 5 секунд с возможностью пропуска, затем остановить SFX.
@sfx Noise loop:true
Jeez, what a disgusting noise. Shut it down![wait i5][skipInput]
@stopSfx Noise