Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество

Камера jME3

Опубликованно: 02.06.2017, 12:45
Последняя редакция, Andry: 03.06.2017 11:12
По умолчанию указатель мыши невидим, и мышь настроена для управления вращением камеры.

Камера по умолчанию

Объект com.jme3.renderer.Camera по умолчанию — камера в com.jme3.app.Application.

Объект камеры создается со следующими значениями по умолчанию:

  • Ширина и высота устанавливаются в значения текущего параметра Application.getWidth() и settings.getHeight().
  • Усечение Перспективы:
    • Рамка угла обзора 45 ° вдоль оси Y
    • Соотношение ширины к высоте
    • Ближняя плоскость обзора около 1 wu
    • Дальняя плоскость обзора 1000 wu
  • Начальное местоположение (0f, 0f, 10f).
  • Начальное направление взгляда на начало координат.
Методы  Применение
cam.getLocation(), setLocation()  Положение камеры
cam.getRotation(), setRotation()  Поворот камеры
cam.getLeft(), setLeft()  Левая ось камеры
cam.getUp(), setUp()  Верхняя ось камеры, обычно Vector3f(0,1,0)
cam.getDirection()  Вектор, который направляет камеру
cam.getAxes(), setAxes(left,up,dir)  Один аксессор для трех свойств влево/вверх/направление.
cam.getFrame(), setFrame(loc,left,up,dir)  Один аксессор для четырех свойств положение/влево/вверх/направление.
cam.resize(width, height, fixAspect)  Измените размер существующего объекта камеры, сохраняя все остальные настройки. Установите для параметра fixAspect значение true, чтобы отрегулировать соотношение сторон (?)
cam.setFrustum( near, far, left, right, top, bottom )  Усечение определяется плоскостью ближнего/дальнего, левая/правая плоскость, верхняя/нижняя плоскость (все расстояния float значения)
cam.setFrustumPerspective( fovY, aspect ratio, near, far)  Усечение определяется углом зрения вдоль оси Y (в градусах), соотношением сторон и ближней/дальней плоскостью.
cam.lookAt(target,up)  Поверните камеру, чтобы посмотреть на координаты цели, и тем свмым повернуть ее вокруг вертикальной оси.
cam.setParallelProjection(false)  Нормальная перспектива
cam.setParallelProjection(true)  Параллельная проекция перспективы
cam.getScreenCoordinates()  ?
После того, как вы измените параметры камеры, отсечение или размер окна, вызовите cam.update ();

Летающая Камера

Поле класса flyCam предоставляет вам доступ к AppState, который расширяет камеру по умолчанию в com.jme3.app.SimpleApplication с большим количеством функций. Менеджер ввода com.jme3.input.FlyByCamera AppState предварительно сконфигурирован для реакции на нажатие клавиш WASD для ходьбы вперед и назад и движений в стороны; Переместите мышь, чтобы повернуть камеру («Mouse Look»), прокрутите колесико мыши для увеличения или уменьшения масштаба. Клавиши QZ поднимают или опускают камеру по вертикали.

Q  W            вверх  вперед
A  S  D    -->  влево  назад   вправо
Z               вниз
Методы  Применение
flyCam.setEnabled(true);  Активировать летающую камеру
flyCam.setMoveSpeed(10);  Управление скоростью движения
flyCam.setRotationSpeed(10);  Управление скоростью вращения
flyCam.setDragToRotate(true)  Заставляет игрока удерживать нажатой кнопку мыши для поворота камеры, обычно используемой для апплетов. Если false(по умолчанию), все движения мыши будут захвачены и интерпретированы как вращения.

По умолчанию FlyByCamera активен, но вы можете изменить это значение для своей игры.

Камера от третьего лица или догоняющая(Chase Camera)

JME3 также поддерживает дополнительный Chase Cam, который может следовать за движущейся целью Spatial (com.jme3.input.ChaseCamera). Когда вы используете камеру следующую за игроком нажимайте и удерживайте кнопку мыши, чтобы поворачивать камеру вокруг игрока. Вы можете использовать Chase cam, если вам нужен указатель мыши, видимый в вашей игре.

flyCam.setEnabled(false);
ChaseCamera chaseCam = new ChaseCamera(cam, target, inputManager);
Методы  Применение
chaseCam.setSmoothMotion(true);  Интерполирует более плавное ускорение/замедление при перемещении камеры.
chaseCam.setChasingSensitivity(5f)  Чем ниже чувствительность chasing, тем медленнее камера будет следить за мишенью, когда она движется.
chaseCam.setTrailingSensitivity(0.5f)  Чем ниже чувствительность traling, тем медленнее камера начнет двигаться позади цели при ее движении. Значение по умолчанию — 0,5;
chaseCam.setRotationSensitivity(5f)  Чем ниже чувствительность, тем медленнее камера будет поворачиваться вокруг цели при перемещении мыши. Значение по умолчанию — 5.
chaseCam.setTrailingRotationInertia(0.1f)  Это предотвращает слишком резкую остановку камеры, когда цель перестает поворачиваться, прежде чем камера достигнет конечного положения цели. Значение по умолчанию — 0,1f.
chaseCam.setDefaultDistance(40);  Расстояние по умолчанию до цели после старта приложения.
chaseCam.setMaxDistance(40);  Максимальное расстояние зума. Значение по умолчанию — 40f.
chaseCam.setMinDistance(1);  Минимальное расстояние зума. Значение по умолчанию — 1f.
chaseCam.setMinVerticalRotation(-FastMath.PI/2);  Минимальный вертикальный угол поворота камеры вокруг цели. Значение по умолчанию — 0.
chaseCam.setDefaultVerticalRotation(-FastMath.PI/2);  По умолчанию вертикальный угол поворота камеры вокруг цели после старта приложения.
chaseCam.setDefaultHorizontalRotation(-FastMath.PI/2);  По умолчанию горизонтальный угол поворота камеры вокруг цели после старта приложения.

Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.