I hope the 8.0 version will have the following features

1.Ready to use character controller out of the box, preferably 2D and 3D, that can directly interact with the physics engine

2.Ready to use level scene controller, convenient for quickly creating game levels and switching scenes

3.More grammar sugar, very sweet kind, simplify API

4.Ray tracing

5.GIS extensions, such as 2D maps, 3D terrain, coordinate transformation, (or what methods can automatically calculate viewport data)

I think it is already available: Physics character controller

Do you have examples? The API has already a ton of sugar IMO, I would rather have more control (they are not mutually exclusive though :thinking:)

You will have to wait for WebGPU progress to get actual raytracing, probably not this year I would guess

2 Likes

Still at the moment it is more mesh controller than character controller… :slight_smile:

1 Like

I mean, make the capsule transparent, load an animated character, set its parent to the capsule and you got a character controller ^^
I am not sure we have the same definition of “character controller”. Out of curiosity, what features would be missing from your point of view?

  1. Supporting (and detecting if needed, like while free falling) animations for character (since it is character controller, not just capsule controller), for example:
  • idle
  • idleJump
  • walk
  • walkBack
  • walkBackFast
  • run
  • runJump
  • fall
  • turnRight
  • turnRightFast
  • turnLeft
  • turnLeftFast
  • strafeLeft
  • strafeLeftFast
  • strafeRight
  • strafeRightFast
  • slideDown
  1. Support for Third Person View and First Person View.
  2. Support for camera “elasticity” for the Third Person View. In other words if a mesh comes between the camera and avatar/player, the camera snaps to a position in front of the mesh / or the mesh becomes invisible / or camera switches to the FPV (like in Fallout 4). This way the avatar/player is always in view. Anyway, there should be some function to detect the distance to the walls etc.
2 Likes

Perhaps the scene controller should be a simple example like this

const manage = Babylon.SceneManage(  )

// Default transition animation,    Built in transition animation
manage.setInTransitionAnimation()
manage.setOutTransitionAnimation()

const scene= manage.creareScene('scene1')
scene.setInTransitionAnimation()
scene.setOutTransitionAnimation()


const scene10= manage.creareScene('scene10')

// 
manage.toScene(scene1 or "scene1")    
manage.toScene(scene10 or "scene10")

1 Like

Raytracing:

2 Likes

That would be lovely indeed, especially the camera “elasticity” part :ok_hand:

1 Like

Hello, everyone. Will there be cloth physics in version 8?

Nope. But something @cedric could find interesting to add to his idea list

I can dig up a character controller that has all that for you.

Most of that stuff would be things you need to develop and are not really on the rendering engine to manage.

Still there is a lot of different helpers. Don’t think another one will harm.

There is quite good CC - GitHub - ssatguru/BabylonJS-CharacterController: A CharacterController for BabylonJS but it uses simple collision system. Would be nice to have similar functionality with Havok.

2 Likes

There are multiple different linked features: camera, physics and animation.
Animation can use a tree with blending or motion matching or a mix with procedural,…
Character controller is almost the same. It’s difficult to please everyone: my character can walk, run, fly, swim, jump from branch to branch, climb walls, walk on a moving boat …

The solution I chose is to have a sample state machine layer that controls velocity and a character controller that does the best it can with desired velocity. That state machine can be a graph with transition and might be used in association with interactivity layer, in the future.

Maybe the simplest of the 3 is the camera framing feature. But even just that is difficult to be perfect. I remember some God Of War and Ryse of Rome presentations and the effort was insane.

I don’t really know where to put the threshold between providing bricks and documentation to help user achieve what they have in mind. Or make something generic, more complex and feature complete so user can just set a few flags to get something.

Until then, I’d like to see more usage of this character controller and see how it’s possible to push its limits:

https://doc.babylonjs.com/features/featuresDeepDive/physics/characterController/

Must haves for us if possible…

  • Ability to register custom GLTF extensions on export. (eg: this, but on export… Babylon.js docs)
  • GLTF serializer support for Babylon Native.

Nice to haves

  • implement BVH or port three-mesh-BVH for fast raycasting.
  • PBRMaterial multi-bounce refraction using above.

I would highly recommend to create one feature request per feature.
@Anupam_Das @Slevin @Pryme8 @labris

Else we will not prioritize them :smiley:

@Deltakosh , do you mean voting? if yes, then I will gladly do it. but, as I understand, this function (cloth physics) will not get into version 8, if the voting takes place now, right?

yes but we add features all the time,. Babylon.js 8.0 is closed now as we are about to enter code freeze

but you may want to create a feature request if you want it at some point :wink:

@Deltakosh good point! . Well if I had a feature request for 8.0+ it would be one that has already been logged: Add support for GLTF Serializer · Issue #1448 · BabylonJS/BabylonNative · GitHub

1 Like