2.0.3 • Published 1 year ago

aframe-thumb-controls-component v2.0.3

Weekly downloads
31
License
MIT
Repository
github
Last release
1 year ago

aframe-thumb-controls-component

Version License

An A-Frame component that provides and normalizes directional events for thumbpads and thumbsticks.

At the moment, A-Frame out of the box does not provide thumb-related directional events, merely axismove/trackpaddown/trackpadup. We would like events such as thumbleftstart and thumbleftend.

But also to solve the issue that the interaction between thumbpads (e.g., Vive) and thumbsticks (Oculus) are different. Thumbpads operate on clicks. Thumbsticks operate via pulls. This component normalizes the two to start and end events:

  • A start event for thumbpads is to press down.
  • An end event for thumbpads is to release after a press down.
  • A start event for thumbsticks is to pull the stick far enough in a direction.
  • An end event for thumbsticks is to release the stick such that it snaps back to center.

The component provides start and end events in each direction (as well as plain thumbstart and thumbend event indicating any direction).

thumb-controls API

PropertyDescriptionDefault Value
thresholdAngleDegrees indicating size of target for up, left, right, down directions. Like a pie.70
thresholdPadMinimum distance (from 0 to 1) that thumb needs to be from center to trigger event for thumbpads (e.g., Vive).0.05
thresholdStickMinimum distance (from 0 to 1) that thumb needs to be from center to trigger event for thumbsticks (e.g., Oculus).0.75

Events

Event Name
thumbstart
thumbend
thumbleftstart
thumbleftend
thumbrightstart
thumbrightend
thumbupstart
thumbupend
thumbdownstart
thumbdownend

thumb-controls-debug

There is a helper component that provides a thumb emulator that can be used on a 2D computer:

<a-entity oculus-touch-controls="hand: left" thumb-controls="hand: left" thumb-controls-debug="enabled: true; controllerType: oculus">

npm.io

Installation

Browser

Install and use by directly including the browser files:

<head>
  <title>My A-Frame Scene</title>
  <script src="https://aframe.io/releases/0.9.0/aframe.min.js"></script>
  <script src="https://unpkg.com/aframe-thumb-controls-component@1.1.0/dist/aframe-thumb-controls-component.min.js"></script>
</head>

<body>
  <a-scene>
    <a-entity oculus-touch-controls="hand: left" vive-controls="hand: left" thumb-controls="hand: left"></a-entity>
    <a-entity oculus-touch-controls="hand: right" vive-controls="hand: right" thumb-controls="hand: right"></a-entity>
  </a-scene>
</body>

npm

Install via npm:

npm install aframe-thumb-controls-component

Then require and use.

require('aframe');
require('aframe-thumb-controls-component');
2.0.3

1 year ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

4 years ago

1.1.0

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago