Импорт 360°-панорам
Все способы добавить панорамы в проект: одиночная и мультизагрузка, equirectangular и cubemap, ограничения тарифа и обработка ошибок.
Откуда начать загрузку
Импорт панорам всегда начинается со страницы проекта /dashboard/profiles/<id>. В шапке проекта есть три кнопки:
- «Новая панорама» — основной путь для одного файла. Открывает диалог с тремя режимами загрузки: стандартная (2:1), cubemap-крест (4:3) и 6 граней куба.
- «Мультизагрузка» — массовое добавление нескольких equirectangular-панорам за один проход. Открывает отдельную страницу
/panoramas/multi. - «Подключить телефон» — неактивна. Подсказка «В разработке. Скоро можно будет загружать 360°-панорамы напрямую с телефона».
Стандартная панорама (2:1)
Режим по умолчанию в диалоге «Новая панорама». Подходит для большинства камер и рендеров: один equirectangular-файл с соотношением сторон 2:1.
- Форматы: JPG, PNG, WebP.
- Максимальный размер файла: 45 МБ.
- Соотношение сторон проверяется как 2:1 ±0.2.
- Drag-and-drop: перетащите файл в зону «Перетащите файл сюда или выберите».
- Название панорамы можно ввести вручную в поле над dropzone.
Предупреждение о пропорциях
Если соотношение сторон отличается от 2:1, появится диалог:
Изображение имеет размер 4096×2160 px (соотношение 1.90:1). Стандартная 360° панорама — 2:1. Загрузить всё равно?
В диалоге две кнопки: «Отменить» и «Загрузить всё равно».
Обработка на сервере
Файл проходит цепочку: Sharp → EXIF-rotate → ресайз по лимиту тарифа (на Free-тарифе панорама пересчитывается до 4K) → WebP качества 85 → сохранение в uploads/<id>.webp. Исходный загруженный файл удаляется сразу после конвертации.
Cubemap: крест-раскладка (4:3)
Режим для одного файла с шестью гранями куба, разложенными «крестом». Подходит для экспорта из 3D-пакетов и игровых движков, где удобнее получить cross-layout, а не equirectangular.
- Форматы: JPG, PNG, WebP. Один файл.
- Соотношение сторон проверяется как 4:3 ±0.15.
- Конвертация в equirectangular выполняется на сервере автоматически.
- После успешной обработки появляется зелёная плашка «Конвертация выполнена — панорама готова к сохранению» и активируется кнопка «Создать панораму».
- Имя сцены по умолчанию —
pano_N, где N — порядковый номер. Меняется позже в редакторе.
Cubemap: 6 граней куба
Режим для тех, у кого экспорт даёт шесть отдельных квадратных файлов — по одному на каждую грань куба. Диалог показывает шесть слотов: Передняя, Задняя, Левая, Правая, Верхняя, Нижняя.
- Каждая грань — отдельный файл JPG / PNG / WebP, до 45 МБ.
- Проверка квадратности: 1:1 ±0.1. Неквадратные файлы отклоняются с тостом.
- Загружать грани можно в произвольном порядке.
- Как только все шесть слотов заполнены, сервер автоматически собирает их в equirectangular-панораму и показывает плашку готовности.
- Имя по умолчанию —
pano_N(как в crest-режиме).
Доступность режима совпадает с cross-раскладкой: только на платных тарифах.
Мультизагрузка
Отдельный поток для массового импорта — открывается кнопкой «Мультизагрузка» в шапке проекта. URL: /panoramas/multi.
Принципы
- Только equirectangular 2:1. Cubemap в мультизагрузке не поддерживается.
- Перетащите файлы или выберите через системный диалог — приём множественного выбора.
- В шапке отображается баннер «Доступно для загрузки: N панорам(ы)» — остаток лимита тарифа.
- Если файлов больше, чем остаток — приходит тост «Лимит тарифа — Можно загрузить ещё N. M файлов отклонено». Первые N всё равно ставятся в обработку.
- Имя каждой сцены берётся из имени файла без расширения.
- Все файлы с неправильным соотношением сторон собираются в общий диалог-предупреждение со списком, прежде чем начнётся обработка.
Статусы прогресса
Файлы обрабатываются последовательно. Для каждого виден свой статус:
- «В очереди» — ожидает обработки.
- «Загрузка...» — около 20%, файл уходит на сервер.
- «Создание панорамы...» — около 70%, серверная конвертация.
- «Готово» — 100%, сцена создана.
- «Ошибка» — файл не прошёл валидацию или конвертацию.
По окончании появится тост «Загрузка завершена — Готово: X из Y», и страница вернётся к проекту, где новые сцены уже в списке.
Что происходит после загрузки
- Single-импорт сразу переходит в редактор сцены —
/panoramas/<id>/edit. Сцена появляется в левой панели проекта. - Мультизагрузка возвращает на страницу проекта; все новые сцены видны в списке карточек.
- Порядок:
orderIndexприсваивается как количество существующих сцен, новая всегда оказывается в конце списка. Порядок можно менять перетаскиванием. - Slug сцены формируется из заголовка автоматически. Если такой slug уже есть в проекте, к нему добавляется суффикс
-1,-2и т. д. - Тайлы (мультиразрешение) готовятся лениво — при первом открытии сцены в редакторе или плеере. Сам момент загрузки этого не делает, чтобы не задерживать импорт.
Ограничения и тарифы
Файловые лимиты
- Максимальный размер одного файла: 45 МБ (на сервере).
- Поддерживаемые типы:
image/jpeg,image/png,image/webp. - В мультизагрузке нет жёсткого верхнего количества файлов — ограничивает только лимит тарифа.
Разрешение по тарифу
- У тарифа есть параметр
maxPanoramaResolution. Сервер автоматически уменьшает панораму до этого значения после EXIF-вращения. - На Free-тарифе предел — 4K. Более крупные панорамы загружаются, но сохраняются в 4K-версии.
- На платных тарифах предел выше — см. страницу тарифа.
Лимит количества панорам
- Если лимит панорам в проекте исчерпан, диалог загрузки показывает красную плашку «Лимит панорам по тарифу достигнут» и кнопку «Улучшить тариф», которая ведёт в /dashboard/upgrade.
- Если проект полностью заблокирован за превышение тарифа, появляется баннер «Проект заблокирован: превышен лимит тарифа». Загрузка недоступна, пока проект не разблокирован (повышение тарифа или удаление лишних сцен).
Cubemap только на платных тарифах
Оба cubemap-режима (4:3 и 6 граней) на Free-тарифе закрыты. Попытка загрузки возвращает HTTP 403 с сообщением «Загрузка Cubemap недоступна на вашем тарифе».
Возможные ошибки
| Ситуация | Что вы увидите |
|---|---|
| Файл больше 45 МБ | Тост «Не удалось загрузить изображение» |
| Неподдерживаемый формат | Тост «Не удалось загрузить изображение» |
| Сбой обработки на сервере (Sharp) | Тост «Ошибка обработки изображения» |
| Equirect не 2:1 | Диалог с пропорциями и кнопкой «Загрузить всё равно» |
| Cross-cubemap не 4:3 | Тост «Неверные пропорции» |
| Грань cubemap не квадратная | Тост о квадратности, файл не принят |
| Cubemap на Free-тарифе | 403, сообщение «Загрузка Cubemap недоступна на вашем тарифе» |
| Лимит панорам исчерпан | Красная плашка + кнопка «Улучшить тариф» |
| Проект заблокирован | Баннер «Проект заблокирован: превышен лимит тарифа» |
| Мульти: файлов больше остатка тарифа | Тост «Лимит тарифа — Можно загрузить ещё N. M файлов отклонено» |
Альтернативные пути
Авто-анализ тура (ИИ)
Это не «импорт» в строгом смысле, а альтернативный способ ускорить сборку: ИИ анализирует уже загруженные панорамы, предлагает им осмысленные названия комнат и автоматически расставляет навигационные хотспоты между сценами.
- Запускается из кнопки «Авто-анализ тура» на странице проекта (видна при включённом ИИ).
- Открывается диалог «Авто-анализ тура» с чекбоксом согласия на обработку.
- Работает на проектах до 20 панорам.
- Результат можно скорректировать вручную — сгенерированные хотспоты обычные, не «зашитые».
DCC-плагины (Cinema 4D, 3ds Max)
Плагины для 3D-пакетов экспортируют 3D-туры (формат .vpano), а не классические 360°-панорамы. Если у вас рендер из 3D-сцены, см. плагин для Cinema 4D и плагин для 3ds Max.
Мобильный компаньон
m.vpano.ru — приложение для съёмки 360°-панорам прямо с телефона — в разработке. Кнопка «Подключить телефон» на странице проекта пока неактивна и показывает подсказку. Скоро доступно.
ZIP-импорт
Загрузка готового ZIP-архива с панорамами не поддерживается. Используйте мультизагрузку отдельных файлов или DCC-плагин — в зависимости от источника.
Что дальше
- Подробности по форматам и подготовке файлов — Форматы загрузки.
- Что делать со сценой дальше: хотспоты, мини-карта, переходы — Редактор панорам.
- Сценарии автообхода тура — Редактор туров.
- Как опубликовать тур или скачать ZIP — ZIP-экспорт.
- Управление тарифом и лимитами — страница тарифов.