Search the Community
Showing results for tags 'morphing'.
-
I'm struggling with getting this girl to walk and make facial expressions. If I separate the head, the head moves when using the "pout" morph. https://playground.babylonjs.com/#BDG7ME#11 If I apply to the whole body, the rest pose is applied to the walk. https://playground.babylonjs.com/#BDG7ME#15 Both work fine in Blender though. Is there something else I need to do to get morphing working with armature animation?
-
Morphing between meshes with unequal amount of vertices
ziguri posted a topic in Questions & Answers
Hi there, I do have a bunch of data measurements loaded as mesh. The following example represents one measurement: https://www.babylonjs-playground.com/#XG8RH3#7 What I wanna do now is perform a kind of morphing between one measurement mesh and its consecutive measurement mesh. I wanna create a kind of timeline from the first to the last measurement with morphing transitions. I found: https://doc.babylonjs.com/how_to/how_to_dynamically_morph_a_mesh Do you guys think it is possible to apply it to my meshes? I think I face a few issues here: - The amount of vertices is not exactly the same in every measurement. - Is there a maximum amount of vertices (e.g. 60.000) morphing can deal with? Do you think morphing is still possible or do you have any other ideas how I could smoothly create a transition between the meshes? Looking forward to your answer. -
Support has been added for Blender shape keys along with direct control of them in JavaScript/Typescript. What follows is something I wrote the day before. Some names of classes may change, Tower of Babel may also go away in name, and there may be some internal mixups in order to be more integrated with BJS before 1.14 goes into production. This system is ready for testing though. These keys are contained within a Babylon.Automaton, which is a sub-class of Babylon.Mesh. The Tower of Babel exporter generates instances of Babylon.Automaton for a .babylon file, or sub-classes of Babylon.Automaton for Javascript or Typescript files. If shape keys are part of a Blender mesh you will get a Babylon.Automaton, otherwise you get a Babylon.Mesh. For CPU time and memory efficiency, the exporter isolates only those vertices of the mesh which change (GPU time & memory are un-affected). At the same time, keys affecting the same area of a mesh can be grouped & controlled together, independently of other key groups, e.g. MOUTH, & LEGS. You indicate your groups by the names you give the keys. Format: "Group Name-State". If no "-" is found in the name, you get a warning message in the log file, & it will put into the group "ENTIRE MESH". FYI, groups & states are all upper case once they get to BabylonJS. As far as the special key "Basis", it must simply be there. The exporter will break it up, so that the relevant parts of it are in each group. Automatons are deformed / morphed using control objects, completely in BJS. POV motion and rotation can also be incorporated into these control objects, if you wish the mesh to move / rotate at the same time. These control objects are called Deformations. Deformations can be done linearly in time or at any rate of change, you wish. You can also specify that a shape key group is to be mirrored along the X, Y, or Z axis. When done, the end state ratio of the Deformation may also be from -1 to 0, in addition to 0 to 1. Deformations are grouped into an array along with Actions and functions() to create an AutomatonEventSeries. The Deformations DO NOT have to all be to the same shape key group, just the same mesh. Event series can have repeat counts associated with them. The first repeats of a series can have their time duration prorated, to create acceleration / deceleration across repeats. If the series has multiple groups, there is sync across repeats. If more control is needed, individual Deformations can be made sync partners where neither start till both are ready. Technically, sync partners do not even have to be in the same mesh, but Warning: deadly embrace potential exists. The other great thing about shape key groups is they are queue based. You submit your AutomatonEventSeries to the Automaton, and it puts on the queue of each interested shape key group. This allows you to do an unlimited amount of stuff in advance. Just queue it and forget it. Finally, there is an Action subclass which allows you to put an AutomatonEventSeries in it. With that introduction, a couple of Automatons have been built and exercised. They are part of the Blender-test directory in the Github repository. You have full access all the way from the .blend file. I have put up the generated results so you can play without doing any downloading / exporting. https://googledrive.com/host/0B6-s6ZjHyEwUdHp3a3pJdlgwS0U. The "exercise" code for the 2 Automaton tests are in common .js files, so they can be accessed by either the .babylon or .js versions. Here are the links to them in GitHub: Automaton (Table Cloth) - https://github.com/BabylonJS/Babylon.js/blob/master/Exporters/Blender/blender-test/lib/automaton_common.js multi_group (Bumps) https://github.com/BabylonJS/Babylon.js/blob/master/Exporters/Blender/blender-test/lib/multi_group_common.js Enjoy! Jeff P.S. - I would also like to thank Gryff for the .blends. No way I could do it without those!