Что такое режим прогулки

Режим прогулки — это стандартная навигация 3D‑тура. Его не нужно включать или активировать: он работает с первой секунды просмотра. Посетитель видит панораму, наложенную на 3D‑модель помещения, кликает по полу, дверному проёму или навигационному диску — и камера плавно переходит к ближайшей точке съёмки в выбранном направлении.

В отличие от классических 360°‑туров, где переходы между сценами размечаются вручную как хотспоты, режим прогулки VPano строит переходы автоматически — на основе 3D‑модели и положения точек съёмки. Автору не нужно расставлять стрелки между панорамами: система сама определяет соседей и плавно ведёт камеру.

  • Навигационные диски на полу показывают, куда можно перейти. Стиль дисков настраивается во вкладке «Дизайн» → Навигация.
  • Прицельный круг (reticle) следует за курсором по полу — сигнал «здесь можно стоять».
  • Курсор‑рука появляется над кликабельной поверхностью.
  • Красная вспышка прицела — клик распознан, но подходящей точки в этом направлении нет.

Как кликать

Есть три равнозначных способа перейти к следующей точке съёмки:

  • Клик по навигационному диску. Самый прямой способ: на диске — переход к точке, которой он принадлежит. Подходит, когда видно, куда хочется попасть.
  • Клик по полу. Не обязательно попадать точно в диск — достаточно кликнуть в нужном направлении на полу. Система найдёт ближайшую точку съёмки рядом с местом клика.
  • Клик по дверному проёму. Можно кликнуть прямо в проход в соседнюю комнату — VPano поймёт направление и перейдёт к точке за дверью.
Если клик не сработал
Если после клика прицельный круг коротко вспыхнул красным — значит, клик распознан, но в этом направлении нет подходящей точки. Попробуйте кликнуть чуть ближе к диску, напрямую по проёму или сдвинуть камеру.

Каскад выбора цели

Чтобы клики работали интуитивно, VPano проверяет цель в четыре шага. Шаги выполняются в строгом порядке — побеждает первый сработавший:

  1. Прямое попадание в диск. Если курсор оказался на навигационном диске — выбирается соответствующая точка съёмки. Этот случай покрывает большинство кликов.
  2. Клик по полу — поиск ближайшей точки. Если курсор не на диске, но попал на пол, система ищет ближайшую точку съёмки в радиусе примерно 2,9 м по горизонтали и 2,3 м по высоте от точки клика. Это позволяет попадать «приблизительно» — без необходимости точно целиться в диск.
  3. Конус направления клика. Если ни диск, ни пол не дали результата (например, клик в дверной проём в воздух), VPano пускает конус ≈40° длиной около 4,6 м от текущей точки в направлении клика (вертикальный наклон игнорируется). Берётся ближайшая точка съёмки внутри конуса.
  4. Близость в пикселях. Финальный «спасательный круг»: на экран проецируются все диски, выбирается ближайший в пикселях. Допуск — около 70 px на десктопе и 100–130 px на тач‑устройствах.

Если все четыре шага не нашли подходящую цель — прицельный круг кратко вспыхивает красным. Это намеренный сигнал: «клик принят, но в эту сторону идти некуда».

Проверка видимости двумя лучами

Прежде чем принять точку как цель перехода, VPano проверяет, что путь к ней не упирается в стену. Для этого пускается не один, а два луча от текущей позиции к кандидату — на разной высоте:

  • Первый луч — примерно на уровне пояса.
  • Второй луч — примерно на уровне головы.
  • Высоты масштабируются с расстоянием между точками: чем дальше цель — тем шире разнос лучей по вертикали.

Если хотя бы один из двух лучей доходит до цели без столкновения с геометрией модели — точка считается видимой. Это даёт важный практический эффект:

  • Дверные рамы и низкие притолоки не блокируют переход — они часто перекрывают только верхний луч.
  • Мебель на уровне стола или подоконника не мешает увидеть точку за ней — нижний луч проходит ниже, верхний выше.
  • Перила и парапеты на лестницах и террасах не «обрезают» соседние точки.
Почему именно два луча
Один луч «по центру» часто упирается в случайные детали и отбрасывает соседние точки как «невидимые». Два луча с разнесением по высоте делают переход устойчивым в реалистично загромождённых сценах.

Переходы между точками

Когда цель выбрана и видна, начинается переход. Он состоит из двух одновременных анимаций — движения камеры и плавной смены панорамы:

  • Движение камеры — примерно 850–900 мс, по кривой easeInOutQuad с финальным «доводом» (tail‑snap), чтобы камера не «доползала» в конце.
  • Crossfade панорамы — около 1100 мс параллельно движению.
  • Двойная проекция: во время перехода обе панорамы (исходная и целевая) одновременно проецируются на 3D‑модель. Это создаёт эффект непрерывной прогулки — без скачка кадров и без видимой смены текстуры.

Last‑click‑wins

Если посетитель кликает по новой точке во время идущего перехода, текущий переход не прерывается. Вместо этого новый клик запоминается как следующая цель — и переход к ней стартует сразу после прибытия в текущую точку. Так посетитель может «строить очередь» переходов, не дожидаясь окончания каждого.

Защита от двойных кликов

Между двумя последовательными кликами включён дебаунс ≈60 мс — случайный двойной клик мышью или повторный тап не запустит два перехода.

Десктоп и мобильные устройства

Режим прогулки работает одинаково на всех устройствах, но управление и допуски различаются:

Десктоп
  • Выбор цели — клик мышью.
  • Вращение камеры — перетаскивание.
  • Поле зрения — колесо мыши.
  • Точность клика — около 70 px.
  • Skybox — сразу в 2K.
Мобильные
  • Выбор цели — тап.
  • Вращение камеры — свайп.
  • Поле зрения — щипок (pinch).
  • Точность клика — расширена до 100–130 px.
  • 1K‑first: на слабых устройствах сначала показывается панорама 1K, затем подгружается 2K. DPR масштабируется адаптивно.

Советы посетителю

  • Кликайте прямо по полу. Это самый надёжный способ — не нужно целиться точно в диск, достаточно показать направление.
  • Не бойтесь дверных рам и мебели. Двойная проверка лучами пропускает переход, даже если на пути есть притолоки, подоконники или перила.
  • Можно кликать во время движения. Если уже понятно, куда хочется дальше — кликайте, не дожидаясь конца перехода. Цель встанет в очередь.
  • Красная вспышка — это нормально. Она просто говорит «в эту сторону точки нет». Поверните камеру или кликните ближе к диску.

Советы автору тура

Качество прогулки зависит прежде всего от того, как расставлены и названы точки съёмки в исходной 3D‑сцене:

  • Расстояние между точками — 1,5–2,5 м. При большем шаге переходы выглядят прыжками, при меньшем — съёмка избыточна.
  • Дверные проёмы — пара точек. Поставьте по одной точке съёмки с каждой стороны проёма. Это даёт естественный проход через двери.
  • Коридоры — каждые ~2 м. В длинных коридорах не пропускайте точки, иначе появятся «прыжки» вдоль стен.
  • Высота камеры — постоянная. Снимайте на уровне глаз — обычно 1,5–1,7 м над полом. Скачки по высоте между точками ухудшают восприятие прогулки.
  • Имена маркеров — строго pano_1..N. Иначе при импорте 3D‑сцены VPano не создаст слоты под панорамы. Подробнее — в Экспорте 3D‑сцены.
  • Стиль навигационных дисков подгоняйте под объект: для светлых интерьеров — прозрачнее, для тёмных полов — ярче. Настройки — «Дизайн» → Навигация.