Search the Community
Showing results for tags 'ik'.
-
QUESTION: How to animate many things? GOAL: review ALL types of Animation Options available. Reduce various animations into Patterns or Templates or MINIMUMS. There are great docs on this... what follows are the practices of each. RESULT: Animation-Type-Templates Examples: - eyes to look at stuff - mesh.lookAt() - a generic low-poly arm to grab stuff: bone animation - scene.beginAnimation() import from blender. - a generic IK arm - constraints - a morphing eyebrow - morph targets (minimum). - interpolate - random attributes like color, or opacity - a motion path - Blender Animation Ranges like: idle, jump, attack, die, win ADDITIONS: - Bone Animations - Review from docs - mesh.spinTo(), moveTo(), scaleTo() - Dynamic Animation (powerful?) - BABYLON.Animation.createAndStartAnimation() There are a ton a great resources on all of these. Point is: They are all different Animation Types. Highlighting the tricky spots, referencing solutions, and... the great docs and playgrounds that already exist. UPDATE: a long list of successful blender animation export examples below.
- 54 replies
-
- lookat
- interpolate
-
(and 8 more)
Tagged with:
-
This topic is a follow up to one of the "what's next?" comments I made. I have added facility into an addon for Blender, which allows post import operations on MakeHuman meshes / skeletons. The button highlighted, converts the 160 some odd bone, default skeleton to one made for Kinect2. The bones are named for the bone tail which lines up to the joints the sensor's output. There was an old topic about this, but: The people are gone. They shared nothing but pictures. This includes their skeleton, which could have been the reason for all their problems. Here is a .blend of my converted skeleton. Any comments would be appreciated, @gryff, @dbawel maybe? The skeleton units are in decimeters, which are easy to convert the sensor's meters to, but any solution should probably have a units multiplier. The .blend is already in weight paint mode, seen below. Just RIGHT click any bone to see its weighting on vertices. For the rest of this topic, I am just sounding out how I think this might be implemented in 3.2. DB, for your electronics company work, I think you are going to have time requirements which are too tight for waiting for 3.2. First, I wish to use this for pose capture, but making changes to the Skeleton class (or QI Skeleton sub-class) to do live animating may actually help debug things & therefore be a twofer. To this skeleton class, if the bones array cannot be changed to a { [bone: string] : BABYLON.Bone } dictionary for compatibility reasons, I think there needs to be some additional data elements & a method to switch on Kinetics, because calling getBoneIndexByName() 25 times every update is probably slower. Next thing is, yes bones are basically a local matrix to the bone parent, & kinetics returns data in it's world space, BUT that is no reason to go all the trouble of converting sensor output to local space (unless doing mocap - more later), WHEN skeleton.prepare() is just going to have to convert it back. Performance could suck. Having an alternate _computeTransformMatrics() seems like the level to branch off to convert from kinect space to world space. Here is a non-running mock up of all these changes: public onAfterComputeObservable = new Observable<Skeleton>(); protected _kinectsDictionary : { [bone: string] : BABYLON.Bone }; protected _useKinetics : boolean; protected _kineticsBody : any; protected _kinecticsBodyIdx : number; protected _kinecticsUnits : number; protected _kineticsFloorClipPlane : BABYLON.Quaternion; public switchToKinetics(val : boolean, units = 1, bodyIdx = 0) : void { this._useKinetics = val; if (val) { for (var i = 0, len = this.bones.length; i < len; i++) { this._kinectsDictionary[this.bones[i].name] = this.bones[i]; } this._kinecticsUnits = units; this._kinecticsBodyIdx = bodyIdx; } else this._kinectsDictionary = null; } public incomingKineticsDataCallback(eventData : string) : void { var parsed = JSON.stringify(eventData); this._kineticsBody = parsed.bodies[this._kinecticsBodyIdx]; // account for right handed to left handed for this here this._kineticsFloorClipPlane = new BABYLON.Quaternion( parsed.floorClipPlane.x, parsed.floorClipPlane.z, parsed.floorClipPlane.y, parsed.floorClipPlane.w ); this._markAsDirty(); } /** * @override */ public _computeTransformMatrices(targetMatrix: Float32Array, initialSkinMatrix: BABYLON.Matrix) : void { if (this._useKinetics) { this._kineticsTransformMatrices(targetMatrix, initialSkinMatrix); }else{ super._computeTransformMatrices(targetMatrix, initialSkinMatrix); } this.onAfterComputeObservable.notifyObservers(this); } protected _kineticsTransformMatrices(targetMatrix: Float32Array, initialSkinMatrix: BABYLON.Matrix) : void { // ... } For using this for capture, maybe a method in the bone class say, worldToLocalMatrix(), which could be called by code monitoring the onAfterComputeObservable. This is my current straw man. I do not even have the hardware, right now. Thoughts?
-
Hi I'm trying to create a scene where randomly generated balloons move across the screen with toys hanging from them. When the user clicks the balloon the toy will drop and either hit or miss a basket. I would like to use a tween on the y position of each balloon so that they move up and down as well. I would like to use a tween on the toy so that it swings a bit (less important). I am thinking of setting up an array to push the balloon objects into so that I can push and pop as they are generated and destroyed. What is the best way to set up the parent > child relationship for the balloon and toys though please? Should I create a Phaser.GameObjects.Group() and create() the balloon and toy within that group and then push that group into my array? Or should I create each balloon and toy as a Phaser.GameObjects.Sprite and set a parent > child relationship somehow (I think you could use addChild() in Phaser 2?)? Or should I be using physics bodies and linking the toy to the balloon somehow, and then releasing that link to drop the toy when the balloon is clicked? Thanks! By the way, I don't know if it's helpful, but there is an error in http://labs.phaser.io/view.html?src=src\physics\arcade\circular body.js - "Uncaught ReferenceError: GetOverlapX is not defined".
-
Hello, What is the simplest OR best way to get a cube to copy a footIK bone transforms (location/rotation) AND export successfully? When the right foot IK is posed, the cube mimics the transform in Blender, but on export the cube has no animation. How to get the cube to mimic the footIK transform? NOTE: not a case of applying transforms (did that).