Controls

FirstPersonControls

FPS-контролы позволяют камере двигаться по сцене подобно персонажу в режиме от первого лица.

Конструктор

FirstPersonControls(object, domElement)

object
Камера, которой необходимо управлять (обязательный).
domElement
Элемент HTML, используемый для прослушивания событий (необ.). По умолчанию это весь документ, однако если вы хотите, чтобы элементы управления работали только над определенным элементом (например, холстом), вы можете указать его здесь.

Свойства

.collisionMeshes : Array

Массив объектов для ограничения движения камеры.

.domElement : HTMLElement

HTML-элемент, используемый для прослушивания событий мыши/тачскрина. Он должен быть передан в конструкторе; изменение его здесь не приведет к установке новых обработчиков событий. По умолчанию используется весь документ.

.enabled : Boolean

Включены ли элементы управления или нет.

.enableCollisions : Boolean

Нужно или нет ограничивать движение камеры. По умолчанию true.

.enableCtrlZoom : Boolean

Установите в true, чтобы осуществлять зум только при нажатой клавише ctrl (подобно тому как это сделано в Google Maps). По умолчанию false.

.enableDamping : Boolean

Установите значение true, чтобы включить демпфирование (инерцию), которое можно использовать для придания чувства веса элементам управления. По умолчанию установлено значение true.

Обратите внимание, что если эта функция включена, необходимо вызвать .update() в цикле анимации.

.enableKeys : Boolean

Включает или отключает управление с клавиатуры. По умолчанию true.

.enablePan : Boolean

Включает или отключает панорамирование камеры. По умолчанию true.

.enablePointerLock : Boolean

Включить функцию pointer lock для захвата курсора мыши при старте приложения. Пользователь должен нажать на любом месте экрана, чтобы захватить курсор и перемещаться в 3Д-пространстве без необходимости зажимать кнопки мыши. По умолчанию false.

.enableRotate : Boolean

Включает или отключает поворот камеры по горизонтали и вертикали. По умолчанию true.

Обратите внимание, что можно отключить одну ось, установив минимальное и максимальное значение полярного или азимутального углов в одно и то же значение, что приведет к фиксации вертикального или горизонтального вращения.

.enableZoom : Boolean

Включает или отключает зум (dollying) камеры. По умолчанию true.

.gazeLevel : Float

Устанавливает высоту уровня глаз ("уровень обзора"). По умолчанию 1.8.

.inTween : Boolean

Флаг, указывающий, находится ли камера в режиме автоматического наведения (tweening).

.object : Camera

Управляемая камера.

.panInertia : Float

Инерция панорамирования, используемая если .enableDamping установлен в true. Обратите внимание, что для работы данной функции необходимо вызвать .update() в цикле анимации. По умолчанию 0.05.

.panSpeedKey : Float

Скорость панорамирования (количество пикселей) при использовании курсорных клавиш клавиатуры. По умолчанию 0.15.

.rotateInertia : Float

Инерция вращения, используемая если .enableDamping установлен в true. Обратите внимание, что для работы данной функции необходимо вызвать .update() в цикле анимации. По умолчанию 0.05.

.rotateInertiaTouch : Float

Аналогично .rotateInertia, но используется на устройствах с тачскрином. По умолчанию 0.05.

.rotateSpeed : Float

Скорость вращения. По умолчанию 0.9.

.rotateSpeedTouch : Float

Скорость вращения при использовании такскринов. По умолчанию 0.75.

.screen : Object

Смещение и размер экрана.

.storyHeight : Float

Максимальный размер этажа. Укажите, если вам требуется иметь несколько этажей на сцене, например если предполагается перемещение по двухъярусному коттеджу или торговому центру. По умолчанию 3.0.

.zoomSpeed : Float

Скорость зума/приближения. По умолчанию 30.0.

.zoomSpeedKey : Float

Скорость зума/приближения при использовании курсорных клавиш клавиатуры. По умолчанию 0.2.

.zoomInertia : Float

Инерция зума, используемая если .enableDamping установлен в true. Обратите внимание, что для работы данной функции необходимо вызвать .update() в цикле анимации. По умолчанию 0.05.

Методы

.dispose()

Удаляет все обработчики событий.

.handleResize()

Обновляет объект .screen на основе позиции и размеров элемента .domElement.

.tween(toPosition : Vector3, toTarget : Vector3, time : Float, finishCb : Function, movementType : Constant)

toPosition
Новое положение камеры.
toTarget
Новая целевая точка.
time
Длина анимации перемещения.
finishCb
Функция обратного вызова, которая будет вызвана после завершения анимации перемещения.
movementType
Интерполяция движения. Может быть v3d.TweenLinear (по умолчанию) или v3d.TweenSpherical.

Запускает автоматическое изменение текущего положения камеры и целевой точки на указанное новое положение и цель в течение указанного времени.

.tweenZoomTo(toTarget : Vector3, toZoom : Float, time : Float, finishCb : Function)

toTarget
Новое положение камеры.
toZoom
Новое значение зума.
time
Длина анимации перемещения.
finishCb
Функция обратного вызова, которая будет вызвана после завершения анимации перемещения.

Плавно изменяет целевую точку и зум ортографической камеры в течение указанного времени.

.update() → Boolean

Обновить элементы управления. Должно вызываться после любого ручного изменения трансформации камеры, или в цикле обновления, если установлены .autoRotate или .enableDamping.

Исходный файл

О том как получить исходный код этого модуля читайте тут.