Search the Community
Showing results for tags 'oimo.js'.
-
Hi, I'm making the game using the Babylon.js and Oimo.js. I want to put cubes one to the other and create bigger buildings - just like wooden domino or jenga cubes in real world. But if I put a lot of cubes one to the other, they will start to shake and the whole building will collapse. https://www.babylonjs-playground.com/#DCR6ZG#1 I can not figure out why this is happening? Can I somehow get rid of this vibration? Thanks a lot for your advice.
-
This game is now open source: https://github.com/BeFiveINFO/befive-smartball Title: BeFive Smart Ball Platforms: Browser with WebGL enabled. Game Link: http://play.befive.info/smartball/ Instruction Card: http://play.befive.info/smartball/#modal Description: This is a 3D video game version of an old game machines based on pinball. Press start button to dispense balls. Click on the white button and hold until the button turns to green. If you release the button when the green light is on, a ball is launched. Please try using SPACE BAR to shoot balls which is easier than using mouse button. When your balls fall in any of those holes, you are rewarded with a certain number of balls. Game tips: Exchange a number of balls at a time, then keep on shooting as fast as possible to increase your chance of winning balls. Keyboard shortcuts. SPACE BAR: shoot a ball. P: Payout. S: Start. F: Full screen. C: Reset camera position. T: toggle control panel. Additional notes: This game uses Oimo.js (for physics engine) and Three.js (3D rendering). This is my 4th html5 game to publish and is the first I made in 3d. Please feel free to leave feedbacks. Thank you in advance for checking the game out.
-
i'm using babylon.js and oimo.js to build a simple scene which has boxes on top of another, there's 7 boxes, and after the scene was build the boxes starts moving and fall, i didn't apply any force and the gravity i'm sure is ok, anyone know what's the reason causing this? and how to stop the moving thanks very very much!
- 7 replies
-
- babylon.js
- oimo.js
-
(and 1 more)
Tagged with:
-
Hi guys I've tried a lot but can't find any solution. Also I try to find in documentation which is not very detailled for the moment about physics behavior but doesn't find an answer... I use oimo.js and when I try to enable physics on a child element it bring me the error : "TypeError: e.physicsBody is undefined"... I may use onCollide but I can't find any ressource on it's behaviour and intersectMesh....but as I have to do it with hundred of object I wonder if there is a different approch than a "brute force" testing of all intersect mesh with all others ( approx. 10 000 test each frame ) Thanks a lot
-
Hello, How might I add ocillation to a physics object with an impulse vector already applied? I thought it would be simple, but cannot get the function correct. The following playground scene oscillates scaling, but I need to apply this to the meshes position while they are already moving on an applyImpuse vector3 so that they oscillate while on the impuse vector - but I cannot seem to add the oscillation to the object's absolute potosition (abs). I won't even both with my attemps, as they are more problematic than helpful. But below is the last playground I was sent on a former post scling the ojects using math sin function as you can see. I thought this might be a starting point to get abs position and add the sin oscillation. http://www.babylonjs-playground.com/#1MJ09V#27 Thanks, DB
- 8 replies
-
- applyimpule
- oimo.js
-
(and 1 more)
Tagged with:
-
Hello, How might I apply constant movement using oimo.js such as would occur in an asteroid field - where no object stops moving? That is not the task, but best describes it. By the way I do have borders so the objects are contained. But even if I set no friction and a restitution of 1, no matter how I've tried to apply the impulse, I cannot keep to objects moving. There is no gravity in the scene. Thanks, DB
-
Okay, so I'm playing around with some vehicle-rigs, and the ones I found on the forum/the playground use spheres as wheels, where as I'm trying ti use the more traditional cylinders instead. Here I have created cylinders instead of spheres: http://www.babylonjs-playground.com/#IIIVB#1 I have commented out the cylinder imposter, and went with the sphere one, as it doesn't make much of a difference at this point. What I'm trying to achieve, is making the rotation of the cylinder more in the likes of a wheel, but no matter how and where I try to rotate the wheels, they just don't seem to do as I command them to. Based on the cylinder imposter, the shapes are all right, but it's a very weird ride, since, as you can see, the wheels behave in a noticably different way than they are supposed to. The playground code is based on this: http://www.babylonjs-playground.com/#IIIVB In which there are quite some versions of on the playground. All with spheres, though. Another example is this, using Oimo.js, and again some code I found on the forum/playground: http://www.babylonjs-playground.com/#1MSQGK#19 (Based on the 18 versions before it). I, again, switched the spheres with cylinders, and changed the imposters accordingly. Same problem. How do I rotate the wheels/axis in the right position? And on a side note, has anyone played with the Energy.js engine? In this thread: RaananW mentions that: But it isn't present in plugin form? Maybe I should get to know at least the basics of One first, but, this one just seemed perfect for vehicular physics.
-
How can I get my mesh moving around on a height field when using Oimo Plugin in Babylon js? This is "working": Render.prototype.createScene = function(){ this.ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "textures/heightMap.png", 50, 50, 100, 0, 2, this.scene, false, onGroundCreated);}function onGroundCreated(ground){ ground.setPhysicsState(BABYLON.PhysicsEngine.BoxImpostor, {friction:0, mass: 0, move : false });}The problem is, as the Imposter is a Box, my Mesh moves just on top of the height field. In this tutorial: https://blogs.msdn.microsoft.com/davrous/2014/11/18/understanding-collisions-physics-by-building-a-cool-webgl-babylon-js-demo-with-oimo-js/ It states four different possibilitys for colliders. Box, Sphere, Capsule and Mesh. Is Capsule and Mesh also available in the Babylon OimoJSPlugin? Because I guess thats what I would need to move around the height field i guess. Or maybe there are other valid options for that problem.
- 5 replies
-
- Babylon.js
- Oimo.js
-
(and 3 more)
Tagged with:
-
Good afternoon everyone, For some reason, my planets function is giving me the error in the topic. Everything works right in the units class, but in planets is not working. And i can't seem to find the answer. Help wanted plz The console is returning "Uncaught TypeError: Cannot read property 'setPhysicsState' of undefined" in system.js line 104, is the one in bold. I'm trying to implement Oimo.js in my project btw. system.prototype.setPlanets = function (){ var temp = this; BABYLON.SceneLoader.ImportMesh(name, "Assets/babylonreadyfiles/", "planets.babylon", scenes[0], function(newMeshes) { newMeshes[0].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet1 = newMeshes[0]; var planet2 = newMeshes[1]; newMeshes[1].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet3 = newMeshes[2]; newMeshes[2].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet4 = newMeshes[3]; newMeshes[3].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet5 = newMeshes[4]; newMeshes[4].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet6 = newMeshes[5]; newMeshes[5].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet7 = newMeshes[6]; newMeshes[6].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet8 = newMeshes[7]; newMeshes[7].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); var planet9 = newMeshes[8]; newMeshes[8].setPhysicsState(BABYLON.PhysicsEngine.SphereImpostor, { mass: 1000, restitution:0.001 }); if (temp.planet1 === "planet1"){ planet1.scaling.x = 500; planet1.scaling.y = 500; planet1.scaling.z = 500; planet1.position.x = temp.posx/2; planet1.position.y = 5; planet1.position.z = temp.posz/2; planet1.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[0].checkCollisions = true; scenes[0].beginAnimation(planet1, 0, 100, true, 0.04); console.log(planet1); //planet1.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet1,temp.planetId1,"planet"); } if (temp.planet2 === "planet2"){ planet2.scaling.x = 300; planet2.scaling.y = 300; planet2.scaling.z = 300; planet2.position.x = temp.posx*(6/4); planet2.position.y = 5; planet2.position.z = temp.posz; planet2.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[1].checkCollisions = true; scenes[0].beginAnimation(planet2, 0, 100, true, 0.04); //planet2.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet2,temp.planetId2,"planet"); } if (temp.planet3 === "planet3"){ planet3.scaling.x = 750; planet3.scaling.y = 750; planet3.scaling.z = 750; planet3.position.x = temp.posx*(6/4); planet3.position.y = 5; planet3.position.z = temp.posz*(8/4); planet3.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[2].checkCollisions = true; scenes[0].beginAnimation(planet3, 0, 100, true, 0.04); // planet3.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet3,temp.planetId3,"planet"); } if (temp.planet1 === "planet4"){ planet4.scaling.x = 500; planet4.scaling.y = 500; planet4.scaling.z = 500; planet4.position.x = temp.posx/2; planet4.position.y = 5; planet4.position.z = temp.posz/2; planet4.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[3].checkCollisions = true; scenes[0].beginAnimation(planet4, 0, 100, true, 0.04); //planet4.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet4,temp.planetId1,"planet"); } if (temp.planet2 === "planet5"){ planet5.scaling.x = 300; planet5.scaling.y = 300; planet5.scaling.z = 300; planet5.position.x = temp.posx; planet5.position.y = 5; planet5.position.z = temp.posz*(7/4); planet5.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[4].checkCollisions = true; scenes[0].beginAnimation(planet5, 0, 100, true, 0.04); //planet5.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet5,temp.planetId2,"planet"); } if (temp.planet3 === "planet6"){ planet6.scaling.x = 750; planet6.scaling.y = 750; planet6.scaling.z = 750; planet6.position.x = temp.posx*(7/4); planet6.position.y = 5; planet6.position.z = temp.posz/2; planet6.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[5].checkCollisions = true; scenes[0].beginAnimation(planet6, 0, 100, true, 0.04); // planet6.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet6,temp.planetId3,"planet"); } if (temp.planet1 === "planet7"){ planet7.scaling.x = 500; planet7.scaling.y = 500; planet7.scaling.z = 500; planet7.position.x = temp.posx/2; planet7.position.y = 5; planet7.position.z = temp.posz/2; planet7.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[6].checkCollisions = true; scenes[0].beginAnimation(planet7, 0, 100, true, 0.04); //planet7.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet7,temp.planetId1,"planet"); } if (temp.planet2 === "planet8"){ planet8.scaling.x = 300; planet8.scaling.y = 300; planet8.scaling.z = 300; planet8.position.x = temp.posx; planet8.position.y = 5; planet8.position.z = temp.posz*(7/4); planet8.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[7].checkCollisions = true; scenes[0].beginAnimation(planet8, 0, 100, true, 0.04); //planet8.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet8,temp.planetId2,"planet"); } if (temp.planet3 === "planet9"){ planet9.scaling.x = 750; planet9.scaling.y = 750; planet9.scaling.z = 750; planet9.position.x = temp.posx*(7/4); planet9.position.y = 5; planet9.position.z = temp.posz/2; planet9.actionManager = new BABYLON.ActionManager(scenes[0]); newMeshes[8].checkCollisions = true; scenes[0].beginAnimation(planet9, 0, 100, true, 0.04); // planet9.setPhysicsState({ impostor: BABYLON.PhysicsEngine.SphereImpostor, mass: 0 }); makeOverOut(planet9,temp.planetId3,"planet"); } });};
-
Hi ! I've written a new article around physics and Oimo.js on my blog: http://blogs.msdn.com/b/davrous/archive/2014/11/18/understanding-collisions-amp-physics-by-building-a-cool-webgl-babylon-js-demo-with-oimo-js.aspx It contains demos and links to understand how it works with babylon.js. The demo comes from the module 7 of the free MVA course we've built with Deltakosh: http://www.microsoftvirtualacademy.com/training-courses/introduction-to-webgl-3d-with-html5-and-babylon-js?m=11723&ct=34568 Enjoy! David