React-рендерер для Three.js, позволяющий декларативно собирать 3D-сцены с помощью JSX-компонентов.
yomotsu/camera-controls
Библиотека управления камерой для three.js с плавными переходами и расширенными возможностями орбитального управления в стиле OrbitControls.
- Звёзды
- 2,446
- Форки
- 300
- Открытые issues
- 104
- Последний коммит
- 17 дней назад
Что это?
camera-controls — библиотека на TypeScript для управления камерой three.js с помощью орбитального вращения, приближения и отдаления (dolly), а также перемещения (truck, или pan), по духу похожая на THREE.OrbitControls. Главное дополнение — анимированные переходы: вызовы setLookAt, fitToBox и rotateTo плавно перемещают камеру за заданное время, а сами методы возвращают Promise, поэтому переходы можно объединять с помощью await.
Библиотека предлагает больше, чем базовое орбитальное управление мышью и касаниями. В ней есть обнаружение столкновений с мешами, ограничения границ, смещение фокуса, управление от первого лица и в стиле pointer lock, автоматическое вращение, поддержка ортографических камер и настройка сопоставления кнопок мыши и касаний. Также библиотека генерирует события, например rest и sleep, чтобы приложение могло реагировать на остановку движения камеры.
Перед созданием экземпляра объекты three.js необходимо передать через CameraControls.install, а метод update нужно вызывать в цикле рендеринга. На сайте документации проекта доступны интерактивные примеры многих возможностей.
Ключевые возможности
- 01Плавные анимированные переходы для setLookAt, fitToBox, rotateTo и подобных методов с поддержкой Promise.
- 02Орбитальное управление, приближение и отдаление, а также перемещение с настройкой сопоставления кнопок мыши и касаний.
- 03Обнаружение столкновений с мешами и ограничения границ для цели камеры.
- 04Поддержка перспективных и ортографических камер.
- 05События, например rest и sleep, для реакции на остановку движения.
Сценарии использования
- Создание интерактивных 3D-витрин товаров с переходом к заданным ракурсам или подгонкой объекта под размер экрана.
- Добавление туров по сцене или постановочных кинематографичных последовательностей с объединением переходов через await.
- Создание навигации от первого или третьего лица в сцене three.js с проверкой столкновений.
Быстрый старт
- 1
Установите three.js, необходимый для camera-controls; в README нет команды установки ни для одного из пакетов
- 2
Импортируйте библиотеку и зарегистрируйте THREE с помощью CameraControls.install до создания экземпляра
- 3
Создайте экземпляр CameraControls, передав ему камеру и DOM-элемент, а затем вызывайте update(delta) в цикле анимации
Что важно знать
- Необходимо отдельно установить three.js и зарегистрировать его с помощью CameraControls.install, иначе возникнут ошибки во время выполнения.
- Использование colliderMeshes может снизить производительность, поскольку при проверке столкновений raycaster используется каждый кадр.
Темы
Частые вопросы
- Что такое camera-controls?
- Библиотека управления камерой для three.js с плавными переходами и расширенными возможностями орбитального управления в стиле OrbitControls. camera-controls — библиотека на TypeScript для управления камерой three.js с помощью орбитального вращения, приближения и отдаления (dolly), а также перемещения (truck, или pan), по духу похожая на THREE.OrbitControls. Главное дополнение — анимированные переходы: вызовы setLookAt, fitToBox и rotateTo плавно перемещают камеру за заданное время, а сами методы возвращают Promise, поэтому переходы можно объединять с помощью await.
- camera-controls можно использовать бесплатно? Какая у него лицензия?
- camera-controls распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- camera-controls всё ещё поддерживается?
- Активно поддерживается. Последний коммит в camera-controls — 21 окт. 2026 г..
- Для чего можно использовать camera-controls?
- Создание интерактивных 3D-витрин товаров с переходом к заданным ракурсам или подгонкой объекта под размер экрана. Добавление туров по сцене или постановочных кинематографичных последовательностей с объединением переходов через await. Создание навигации от первого или третьего лица в сцене three.js с проверкой столкновений.
- Как установить camera-controls?
- Установите three.js, необходимый для camera-controls; в README нет команды установки ни для одного из пакетов Импортируйте библиотеку и зарегистрируйте THREE с помощью CameraControls.install до создания экземпляра Создайте экземпляр CameraControls, передав ему камеру и DOM-элемент, а затем вызывайте update(delta) в цикле анимации
- Где скачать camera-controls?
- Исходный код и инструкции по установке — на GitHub: https://github.com/yomotsu/camera-controls
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Интерактивный 3D-справочник по 63 видам насекомых: модели создаются процедурно в браузере с помощью TypeScript и Three.js, без файлов моделей.
Браузерная студия превизуализации для расстановки объектов в сцене, позирования персонажей и монтажа движений камеры с последующей передачей кадров AI-моделям для генерации видео.
Восемь навыков для агентов, которые помогают создавать, анимировать и проверять сайты с 3D-графикой и прокруткой на three.js.
3D-игра в тетрис на Three.js и React, в которую можно играть в браузере.
Коллекция готовых React-компонентов и хуков для создания 3D-сцен с react-three-fiber.