• Stars
    star
    175
  • Rank 218,059 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A-Frame teleport controls component

aframe-teleport-controls

Teleport component

Screenshot

Properties

Property Description Default Value
cameraRig Selector of the camera Rig to teleport
teleportOrigin Selector of the child of cameraRig to use as the center point for teleporting, typically the camera. If set teleporting will position the cameraRig such that this element ends up above the teleport location (rather than the center of the camreaRig)
type Type of teleport: line or parabolic parabolic
button Button used to launch the teleport: trackpad, trigger, grip, menu trackpad
collisionEntities Selector of the meshes used to check the collisions. If no value provided a plane Y=0 is used
endEvents Paired with startEvents, list of events to listen for to finish teleporting. []
hitEntity Entity used to show at the hitting position. If no value provided a cylinder will be used as default.
hitCylinderColor Color used for the default hitEntity primitives #99ff99
hitCylinderRadius Radius used for the default hitEntity primitives 0.25
hitCylinderHeight Height used for the default hitEntity primitives 0.3
interval Number of milliseconds to wait in between each intersection test. Lower number is better for faster updates. Higher number is better for performance. 0
curveHitColor Color used for the curve when hit the mesh #99ff99
curveMissColor Color used for the curve when it doesn't hit anything #ff0000
curveNumberPoints Number of points used in the curve 30
curveLineWidth Line width of the curve 0.025
curveShootingSpeed Curve shooting speed, as bigger value, farther distance. 5
defaultPlaneSize Default plane size 100
maxLength Max length of the ray when using type=line teleport 10
landingNormal Normal vector to detect collisions with the collisionEntity (0, 1, 0)
landingMaxAngle Angle threshold (in degrees) used together with landingNormal to detect if the mesh is so steep to jump to it. 45
startEvents Alternative to button, list of events to listen to start teleporting. []

Usage

Browser Installation

Install and use by directly including the browser files:

There are two ways to use it: using a camera rig or not. I strongly recommend using a camera rig as the following example:

<head>
  <title>My A-Frame Scene</title>
  <script src="https://aframe.io/releases/0.7.1/aframe.min.js"></script>
  <script src="https://rawgit.com/fernandojsg/aframe-teleport-controls/master/dist/aframe-teleport-controls.min.js"></script>
</head>

<body>
  <a-scene>
    <a-entity id="cameraRig">
      <!-- camera -->
      <a-entity id="head" camera wasd-controls look-controls></a-entity>
      <!-- hand controls -->
      <a-entity id="left-hand" teleport-controls="cameraRig: #cameraRig; teleportOrigin: #head;"></a-entity>
      <a-entity id="right-hand" teleport-controls="cameraRig: #cameraRig; teleportOrigin: #head;"></a-entity>
    </a-entity>
  </a-scene>
</body>

To use this component with Gear VR, you need to add gearvr-controls:

  <a-scene>
    <a-entity id="cameraRig">
      <a-camera />
      <a-entity
        teleport-controls="cameraRig: #cameraRig"
        gearvr-controls
       />
    </a-entity>
  </a-scene>

You can also use the trigger button instead of trackpad button by adding button: trigger.

For Daydream, replace gearvr-controls by daydream-controls.

If you use aframe-environment-component > 1.0.0 and want to teleport on the generated ground, on the hills, you can specify collisionEntities: .environmentGround. You can also add .environmentDressing if you want to teleport on the dressing like the mushrooms. On Gear VR, it can be very slow with the curved line. Use maxLength: 200; type: line; in this case.

NPM Installation

Install via NPM:

npm install aframe-teleport-controls

Then register and use.

require('aframe-teleport-controls');

Events

Event Properties of event.detail Description
teleported oldPosition, newPosition, hitPoint Fires when teleportation begins.

More Repositories

1

thisway.js

"this way" webgl/javascript demo
JavaScript
93
star
2

hl7-dictionary

HL7 Dictionary in javascript
JavaScript
55
star
3

aframe-camera-transform-controls-component

Camera transform controls component for A-Frame
JavaScript
51
star
4

three.js-demos

three.js demos
JavaScript
44
star
5

guitareditor.js

Guitar Tablature Editor in Javascript
JavaScript
35
star
6

aframe-slice9-component

A-Frame slice9 component
JavaScript
27
star
7

webgl-stats

WebGL stats
JavaScript
27
star
8

aframe-input-mapping-component

JavaScript
24
star
9

aframe-tooltip-component

A-Frame tooltip component
JavaScript
16
star
10

aframe-gltf-exporter-component

A-Frame GLTF Exporter component
JavaScript
13
star
11

webxr-pico8

WebXR Pico8 Player
HTML
11
star
12

aframe-4dof-controls-component

A-Frame 4DOF Component
JavaScript
11
star
13

keystroke-visualizer

Keystroke visualizer
JavaScript
11
star
14

webgl-info

WebGL features info
JavaScript
5
star
15

aframe-shaders

Curated collection of shaders
5
star
16

canvas-hook

HTML Canvas hook
JavaScript
4
star
17

texgen.js-editor

Proof of concept editor for mrdoob's texgen.js library
JavaScript
4
star
18

input-events-recorder

Input recorder and replayer
JavaScript
4
star
19

aframe-uploadcare-component

Uploadcare component
JavaScript
4
star
20

vagrant-orthanc

Vagrant box for Orthanc DICOM Server
Puppet
4
star
21

beatpads

Beat pads
JavaScript
3
star
22

webg-stats-ui

WebGL Stats UI
3
star
23

oculus-stats-cli

OculusVR Stats client helper
JavaScript
2
star
24

vsync-estimate

Estimate browser vsync using rAF
JavaScript
2
star
25

performance-stats

Performance stats (ms, fps, cpu)
JavaScript
1
star
26

browser-features

Browser features
JavaScript
1
star
27

audiometry

Kind-of audimetry test using WebAudio
JavaScript
1
star
28

input.js

WIP
JavaScript
1
star
29

tankball

Javascript Tank Ball (3210 Game clone)
JavaScript
1
star
30

vrgamepad-test

JavaScript
1
star
31

webaudio-hook

WebAudio Hook
1
star
32

webvr-demos

HTML
1
star