Simple, boring, first person controls for three.js.
Controls for three.js similar to PointerLockControls or FirstPersonControls, but just implements AWSD movement and shift+mouse for looking, for simple strafing without pointer lock.
- WASD and shift+mouse for FPS-style movement
- IJKL for keyboard based look-controls, E and Q for moving up and down
Download the script here and include in a script tag which will use global THREE
and attach the controls via THREE.SimpleFPControls
See the demo for usage example.
Install the controls via npm install --save three-simple-fp-controls
. Be sure to also have three
installed as it is a peer dependency.
import { Scene, PerspectiveCamera } from 'three';
import SimpleFPControls from 'three-simple-fp-controls';
const camera = new PerspectiveCamera();
const controls = new SimpleFPControls(camera);
controls.movementSpeed = 30;
scene.add(controls.getObject());
The constructor takes a single object, probably a Camera object to be controlled via new SimpleFPControls(camera)
.
movementSpeed
how quickly controls move while using AWSD (default: 50)lookSpeedX
how quickly controls move while moving the mouse left and right (default: 3)lookSpeedY
how quickly controls move while moving the mouse up and down (default: 2)enabled
whether or not the controls should be enabled (default: true)
getObject()
returns the Object3D to add to scenedispose()
unbinds events and cleans up the component for collectionupdate(delta)
to be called on every frame to update the position and rotation of the controller. Receives a time delta in milliseconds
$ npm run build
MIT License, Copyright (c) 2017 Jordan Santell