# FAQ

# Могу ли я использовать Naninovel в качестве диалоговой системы для существующей игры?

В то время как Naninovel ориентирован на традиционные визуальные новеллы, движок разработан для интеграции с существующими проектами. Если вы создаете 3D-приключенческую игру, ролевую игру или проект любого другого жанра, вы все равно можете использовать Naninovel в качестве диалоговой системы.

Имейте в виду, что в большинстве случаев такая интеграция потребует скриптинга C# (или визуального скриптинга) в той или иной степени. Смотрите обзор архитектуры движка, чтобы получить представление о том, как Naninovel работает, и руководство по интеграции для получения дополнительной информации о вариантах интеграции.

# Можно ли встроить мини-игру в Naninovel?

Конечно, вы можете свободно "внедрить" любую пользовательскую логику в поток Naninovel по умолчанию. Однако в большинстве случаев для этого потребуется использовать C# API движка (либо с помощью написания пользовательских скриптов C#, либо с помощью решения визуального скриптинга). См. руководство по сервисам движка для получения списка доступных открытых API, которые позволяют взаимодействовать с движком; вы также можете использовать аутсорсинг состояния, пользовательские реализации акторов и пользовательские команды в процессе.

# Поддерживаются ли определенные языки?

Naninovel может работать с любым языком, но для отображения текста на некоторых языках вам понадобится совместимый шрифт. По умолчанию используется Roboto от Google, который поддерживает все латинские, кириллические и греческие символы в Unicode 7.0. Вы можете изменить шрифт, используемый в любой из встроенных интерфейсов с помощью функции настройки UI; для выводимых сообщений, создайте пользовательский принтер и установите нужный шрифт.

Если вы хотите поддерживать как можно больше языков, ознакомьтесь с Noto Fonts.

# Получу ли я доступ к исходному коду, когда куплю Naninovel?

Весь исходный код движка доступен в предоставляемом пакете. Несколько сторонних библиотек (а именно NCalc и NLayer) предварительно скомпилированы, но они имеют открытый исходный код (лицензия MIT) с исходными кодами, размещенными на GitHub.

# Почему пакет не содержит никаких демо-сцен?

Naninovel разработан как независимый от сцен и никак не использует сцены Unity, следовательно, невозможно сделать какие-либо демо-сцены. Движок автоматически инициализируется при запуске игры (можно переключиться на ручную инициализацию в окне конфигурации движка), а сценарии пишутся с помощью текстовых документов под названием сценарии naninovel.

Пожалуйста, прочтите руководство по началу работы, чтобы получить представление о том, как использовать движок. Дополнительные примеры использования различных функций движка и команд сценариев вы можете найти в остальных разделах гайда и перечне команд API. Если вам нужен полный рабочий проект, который можно использовать в качестве справочного, см. демо-проект.

# Как настроить главное меню: добавить фон, музыку, эффекты, изменить кнопки и т.д.?

По части UI (изменение/добавление кнопок, панели макета или стиля) используйте функцию настройки UI; для всего остального установите Title Script в меню конфигурации скриптов (Naninovel -> Configuration -> Scripts) и используйте команды скрипта для настройки сцены, как и при написании сценария. Сценарий главного меню будет автоматически воспроизводиться при входе в главное меню.

# Как удалить фон неба, появляющийся по умолчанию во всех сценах Unity?

Удалите Skybox Material в меню редактора Window -> Rendering -> Lighting Settings.

Когда вы удаляете скайбокс, будет использоваться цвет фона камеры, чтобы заполнить экран, когда никакие объекты не видны. Вы можете изменить этот цвет (а также другие связанные с ним настройки), создав префаб камеры и назначив его свойству Custom Camera Prefab, находящемуся в меню Naninovel -> Configuration -> Camera.

# Как добавить разрыв строки в текстовое сообщение?

Используйте команду [br].

# Как внедрить команду посреди выводимого текстового сообщения?

Используйте внедрение команд в сообщения.

# Как заставить акторов появляться поверх друг друга (распределение по оси Z)?

Используйте позиции по оси Z, напр.:

; Вывести персонажа "Sora" по центру и поверх персонажа "Felix"
@char Sora pos:50,0,-1
@char Felix pos:,,0

# Можно ли показать только аватар персонажа внутри текстового принтера, но скрыть самого персонажа?

Установите visible:false для персонажа, которого вы хотите скрыть; аватар останется видимым, например:

@char CharId visible:false

Если вы постоянно меняете аватары, в то время как сам персонаж должен оставаться скрытым, вы можете отключить Auto Show On Modify в меню конфигурации персонажей; когда он отключен, вам не нужно будет указывать visible:false, чтобы изменить какие-либо параметры персонажа, пока он скрыт.

# Я хотел бы использовать фоны с нестандартным разрешением (например, 2048x1024), но они выглядят обрезанными.

Установите Reference Resolution в меню конфигурации камеры (Naninovel -> Configuration -> Camera) равным разрешению фона. Кроме того, убедитесь, что фоновые текстуры импортированы с правильными настройками (например, Max Size достаточно высок).

# Как обрабатывать различные соотношения сторон для целевых платформ?

Для автономных сборок (ПК, Mac, Linux) вы можете выбрать доступные соотношения сторон в разделе настройки проигрывателя; для веб-версий, консолей и мобильных телефонов вы не можете принудительно установить определенное соотношение сторон и вместо этого должны адаптироваться к целевым устройствам.

Учитывая исходные текстуры (фоновые спрайты) определенного разрешения, единственными вариантами "адаптации" их к другому соотношению сторон являются: изменение размера (искажение изображения), добавление черных полос или обрезка. Наименее заметный вариант – это, очевидно, обрезка. Naninovel автоматически выполнит обрезку, если в меню конфигурации камеры включен параметр Auto Correct Ortho Size и соотношение сторон дисплея отличается от параметра Reference Resolution, установленного в том же меню. Автокоррекция гарантирует, что пользователь не увидит никаких черных полос или искажений, независимо от того, какой дисплей или устройство используется для запуска игры.

Чтобы вручную обрабатывать различия в соотношении сторон (например, если вы предпочитаете добавлять черные полосы или изменять размер изображений вместо обрезки), отключите опцию Auto Correct Ortho Size в меню конфигурации камеры. Затем вы можете управлять орфографическим размером камеры, используемой Naninovel, с помощью сервиса движка CameraManager.

# Как задействовать пользовательский код C# в сценариях naninovel?

Используйте пользовательские команды.

Обновлено: October 5, 2020