babylon-steering

0.1.4 • Public • Published

BABYLON-STEERING

What is

A steering behaviors library for Babylon.js for moving entities in the x/z plane. The library was born thanks to these tutorials and the library three-steer.

The following behavious are supported:

  • Seek, Seek with Arrive and Attract (Seek with intensity)
  • Flee
  • Arrive
  • Pursue
  • Evade
  • Interpose
  • Wander
  • Collision Avoidance
  • Follow Path
  • Follow Leader
  • Queue
  • Cohesion, separation and alignment (Flocking)
  • Hide
  • Apply general force

Steering Entities can:

  • look at a specific target with the .lookAt() method
  • look where they are going with the .lookWhereGoing() method

How to setup

Include babylon-steering library:

import babylon-steering from 'babylon-steering';

Create a basic Babylon.js 3D scene with a mesh and simply instantiate a Steering Entity:

const redSphere = new SteeringVehicle(my_mesh, engine, option);

Add the behavior/s to the steering entity and the update method inside main render/animation loop:

scene.executeWhenReady(function () {
        engine.runRenderLoop(function () {

            my_mesh
                .seekWithArrive(greenTarget, 50)
                .hasInConeOfView(arrayOfEnemies)
                .avoid(obstacleIstances)
                .applyForce(new BABYLON.Vector3(1, 0, 0.75))    // For istance can be WIND...
                .lookWhereGoing(true);

            my_mesh.animate();  // Update the Steering Vehicle

            scene.render();
        });
});

Combine behaviours

It is possible to combine many simultaneous steering forces by passing the following parameters to the .animate() function according to the four methods described in this bog post:

  • priority for Priority Arbitration
  • weighted for Weighted Blending,
  • probability for 'Prioritised Dithering'
  • truncated for 'Weighted Prioritised Truncated Sum'
blueSphere.animate('blend');  // 'blend' 'priority' 'probability'  'truncated' 

Examples

To test some examples just:

# 1)istall dependencies
npm install
# 2)run development server serving static demo pages at localhost:4000
npm start

Bugs

  • Uhm...let me know!

Built With

ES6 Javascript, microbundle,

License

This project is licensed under the ISC License.

Package Sidebar

Install

npm i babylon-steering

Weekly Downloads

0

Version

0.1.4

License

ISC

Unpacked Size

268 kB

Total Files

17

Last publish

Collaborators

  • lorenzocorbella74