Примитив a-camera является основным инструментом для
создания перспективы и управления точкой обзора в виртуальной сцене. Он
определяет позицию, ориентацию и взаимодействие
пользователя с 3D-пространством. В отличие от других
примитивов, камера не отображается в сцене визуально, но формирует то,
что видит пользователь.
<a-scene>
<a-camera position="0 1.6 0"></a-camera>
</a-scene>
position задаёт местоположение камеры в пространстве
сцены. Обычно высота y установлена на 1.6 метра для
имитации роста человека.position Определяет координаты камеры в
формате x y z. Например, position="0 2 5"
поднимает камеру на 2 метра и отодвигает на 5 единиц назад.
rotation Управляет ориентацией камеры в
сцене. Формат x y z задаёт повороты вокруг осей:
x — наклон вверх/внизy — поворот вокруг вертикальной осиz — наклон влево/вправо<a-camera rotation="0 45 0"></a-camera>
look-controls Примитив автоматически
включает компонент look-controls, который обеспечивает
управление обзором с помощью мыши, тачпада или VR-устройств. Его можно
настраивать:
enabled — включает или отключает управление.pointerLockEnabled — активация захвата курсора для
полного управления мышью.<a-camera look-controls="pointerLockEnabled: true"></a-camera>
wasd-controls Обеспечивает передвижение
камеры с помощью клавиш W, A, S,
D. Позволяет реализовать ходьбу и бег в
3D-сцене.
<a-camera wasd-controls="acceleration: 20"></a-camera>
acceleration — скорость разгона при удержании
клавиши.fly: false для имитации ходьбы по поверхности.Камера может содержать <a-cursor> для
взаимодействия с объектами через указатель. Курсор представляет собой
точку или кольцо, указывающее направление
взаимодействия камеры.
<a-camera>
<a-cursor color="red"></a-cursor>
</a-camera>
color, fuse, radiusInner,
radiusOuter.fuse позволяет активировать объекты после
удержания курсора на них в течение заданного времени.Примитив a-camera автоматически адаптируется под
устройства виртуальной и дополненной реальности. Для включения VR
достаточно добавить
<a-scene vr-mode-ui="enabled: true">. Камера будет
управляться контроллерами VR, сохраняя поддержку стандартных
веб-интерфейсов.
<a-camera position="0 1.6 0" rotation="0 90 0" look-controls="enabled: true" wasd-controls="fly: false"></a-camera>
<a-camera>
<a-cursor fuse="true" fuse-timeout="1500" color="green"></a-cursor>
</a-camera>
<a-camera wasd-controls="acceleration: 50; fly: false" look-controls="pointerLockEnabled: true"></a-camera>
a-camera всегда должна быть одной в
сцене, иначе поведение управления и рендеринга будет
непредсказуемым.<a-entity camera> вместо примитива, чтобы вручную
контролировать компоненты.look-controls и wasd-controls
обеспечивает полное погружение и интерактивность без
необходимости сторонних библиотек.Использование position и rotation
напрямую уменьшает нагрузку на движок по сравнению с постоянным
обновлением через скрипты.
В больших сценах рекомендуется ограничивать дальность
обзора с помощью camera="far: 100; near: 0.1",
чтобы уменьшить количество рендеринга объектов вне поля зрения.
Можно использовать parent-entity для группирования камеры с другими объектами (например, светильниками или аудио), что упрощает перемещение и анимацию.
<a-entity position="0 1.6 0">
<a-camera></a-camera>
<a-entity light="type: point; intensity: 0.5"></a-entity>
</a-entity>