Search Unity

PolyMorpher [Released]

Discussion in 'Assets and Asset Store' started by kalagaan, May 27, 2012.

  1. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502

    Now available on Asset store!

    Hi,
    with PolyMorpher, you can create morph shapes on any mesh within Unity!
    Easy to use, you can edit vertices, import mesh target, animate shapes in no time.


    Features :
    • Edit any mesh with a powerful vertex editor.
    • Import shape keys from existing mesh.
    • Export shape keys you created as new mesh.
    • Animate morph shapes using animation curves.
    • Animate physics with Mesh collider morphing.
    • Works on Android / iOS

    Demo link
    Asset store link




     
    Thanathos likes this.
  2. Yippie

    Yippie

    Joined:
    May 4, 2009
    Posts:
    227
    Cool can I weld or break the vertexes? Or delete some parts of the model?
     
  3. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    No, morph shapes must have the same vertex structure, so you can't break the mesh.
    But you can scale vertices distance to 0 to weld them.
     
    Last edited: May 28, 2012
  4. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    PolyMorpher update

    version 1.1
    - better performance for vertex editor
     
  5. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    PolyMorpher update

    version 1.2
    - optimisation bug fixed
     
  6. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    PolyMorpher update

    version 1.3
    - multi materials support
    - add save shape dialog box
    - better smooth selection
     
  7. SleepyJ

    SleepyJ

    Joined:
    Jul 6, 2012
    Posts:
    1
    Looks great! Is is possible to deform a mesh symmetrically?
     
  8. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Symmetry is not available yet, but I think it could be a very useful upgrade.
    It should be easy to add this feature, I'll think about it for next version.
     
    Last edited: Jul 7, 2012
  9. gizmo1990

    gizmo1990

    Joined:
    Jul 12, 2012
    Posts:
    32
    Can I import morph targets from a 3d program such as max or xsi using this?
     
  10. MikeUpchat

    MikeUpchat

    Joined:
    Sep 24, 2010
    Posts:
    1,056
    This package is for building morphs inside Unity if you want to import morphs from Max etc you need MegaFiers.
     
  11. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Yes, you can import shape from any mesh you have imported in unity ( with same vertices count ).
    So export all your shapes from your favorite 3D program, create a new shape in polymorpher and drag&drop the target mesh.
    No plugin needed into your 3D software, and you can modify vertices with polymorpher vertex editor.
    Polymorpher can also export all the shapes created as new meshes in your project folder.
     
    Last edited: Jul 13, 2012
  12. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Vertex editor is not the only way to create shapes, you can import any mesh with the same vertices count.
    Please don't answer if you don't know how it works...
     
    Last edited: Jul 13, 2012
  13. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    PolyMorpher update

    version 1.4
    - better vertex picking
     
  14. MaDDoX

    MaDDoX

    Joined:
    Nov 10, 2009
    Posts:
    764
    This should be a standard filter feature in any forum... alas, it's not the case :)

    Does this include source code?
     
  15. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Source Code is now included (version 1.5)

    old post : "No, the source code is not included, the package contains 2 dlls one for runtime and another one for editor features.
    But I can share the runtime part if you need it :)"
     
    Last edited: Jan 7, 2013
  16. gizmo1990

    gizmo1990

    Joined:
    Jul 12, 2012
    Posts:
    32
    Well that sounds excellent and just what I've been looking for! Finally a way to enable vertex animation in Unity and for a reasonable price too.

    Another quick question before I buy kalagaan. What's performance like under iOS? I know it may be subjective but I just wondered if any gotchas had come up in testing?
     
  17. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    All samples work on iOS/android.
    Performance depend on polycount and morph modification frequency, blending is computed only if you change morph shape weights.
    If you have any trouble, you can send email for support :).
     
    Last edited: Sep 2, 2012
  18. JamesPro

    JamesPro

    Joined:
    Mar 5, 2012
    Posts:
    509
    I'm a Programmer for a MMO and we just bought this for use in our Character Creation System. So far I have been unable to get this to work on our custom Character Models. Once in a while it will select a Vertex when I click but it ends up being the vertex opposite of the one I clicked on. Is there some special way we have to build our Characters or something? Your Monkey model that comes with the Demos works no problem and Cubes work no problem...
     
  19. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    The picking system check vertex normal, it seems that there's something wrong with your model importation.
    Could you please send me a mesh sample ( contact@kalagaan.com ), we will solve this problem.

    Another way to solve it :
    - create all your morph shapes in your 3D software (max/maya...)
    - Ceate a new shape on your Polymorpher object

    - click "Load from mesh" button
    - drag drop the new mesh and click "Load"
    - morph target is imported
     
    Last edited: Dec 5, 2012
  20. pyratej

    pyratej

    Joined:
    Jul 13, 2012
    Posts:
    12
    Hello, just bought your plugin. Having some issues around selecting Vertexes. Seems to work fine in the Demo scenes. Also does work with a primitive cube (only before scaling it tho). Plugin does not work at all on imported shape from C4D as FBX. Any thoughts. I saw above that it may be an import setting issue, but i've tried just about everything i can. Solving outside of Unity will not work as i need to be able to tweak shapes from inside Unity at runtime.

    UPDATE:
    I've found that export from C4D as FBX does not work. Exporting as 3DS seems to work, except for the textures coming mapped with the file
     
    Last edited: Dec 27, 2012
  21. toto2003

    toto2003

    Joined:
    Sep 22, 2010
    Posts:
    528
    hello
    no holidays sale for this? i m very interested about it but i m a bit short now :)
     
  22. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi,
    If you have problems with a mesh, send me a sample to contact@kalagaan.com.
    If mesh normals are not imported properly, vertices selection could not work.
     
  23. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Sorry, but Unity team didn't contact me for this... :p
     
  24. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    I have been looking at your morph tools, and I see potential issues with the idea of creating the morph targets on a full mesh... how is the performance on this...?
     
  25. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    In the sample scene, the mesh (monkey head) contains 2012 vert and 3936 tris, it works very well on iOS and android devices.

    There's different ways to optimize performance :
    - use mesh with lower polycount
    - change shape weights only when needed (morphing is not computed if shape weights don't change)
     
    Last edited: Dec 30, 2012
  26. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    PolyMorpher update

    version 1.5
    - Unity 4 support
    - All scripts included!, no DLL required

    bugs fixed and optimisation:
    - better serialisation when switching to PlayMode, all shape weights are applied properly.
    - 2 functions have been added in Polymorpher class to change morph weights by script.
    - skinned mesh morphing is now edited in T-Pose in vertex editor.
    - Scene GUI works on Unity 4.
    - New wireframe script for vertex edition
    - Scene sliders are now available in PlayMode
     
    Last edited: Jan 7, 2013
  27. Ghisallo

    Ghisallo

    Joined:
    Sep 27, 2012
    Posts:
    10
    Does PolyMorpher works in Flash builds in Unity 4? Thanks.
     
  28. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Yes, it works :)
     
  29. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    PolyMorpher Update]

    version 1.7
    - New : Modifier system, Add bend, twist, taper and more to your mesh.
    - Fix : issue using SkinMeshRenderer in prefab.

    >Demo here<
    $polyMorphermodifiers.PNG
     
    Last edited: May 2, 2013
  30. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    415
    a few questions, i'm assuming there's a play function that morphs the mesh in a given time, does it also let you tell the update frequency in order to increase performance? also, when more than one morph is being called does the computational increase adds up proportionally? i'm concerned if this would be too expensive for facial animation
     
  31. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    There's no play function, morphing is only done when you change morph weight.
    So you're free to update your morph when you need to, Polymorpher won't take cpu time if no morphing is needed.
    You can add many morph shapes, polymorpher is optimized for this. ;)
    Try the facial animation demo : kalagaan.com/?p=polymorpher.
     
  32. hai_ok

    hai_ok

    Joined:
    Jun 20, 2007
    Posts:
    193
    I just purchased this. I cant get it working yet. I dont want to write a review until I can get it working.

    Please make a video tutorial and put it on youtube.
    I dont know where to drag and drop.
    I have dragged everything and dropped it everywhere.
    Nothing happens.

    I'm sure I'll get it working eventually.
    But I think it would help new users if they could see what to do.
    Even if its just adding more photos to the documentation.

    EDIT:
    I started a new scene.
    I added the monkey.
    I selected the monkey.
    I clicked Component-Polymorpher-Polymorpher.
    I clicked New Shape.
    I clicked Load From Mesh.

    It instructs me to drag&drop mesh.

    I drag from the meshes loaded into the scene, from the hierarchy.
    I drag from the Project area.

    I drop onto the mesh in the Scene view.
    I drop onto the shapes dialog.
    I drop onto the shape tools dialog.

    But no shapes are added.

    Nothing Happens.

    I'm using your models so that I make sure I'm using geometry that has been tested and works.
    I've read your document and I've read your posts.
    Please help.
     
    Last edited: Jul 22, 2013
  33. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi,
    you have to drag&drop the mesh from your project folder to the mesh field,
    then click on "load" button to import the morph target.

    $polymorpher_loadfrommesh1.png

    I'm working on a wizzard that will scan fbx file and import all morph targets in one click. ;)
     
  34. michaeljr

    michaeljr

    Joined:
    Aug 7, 2013
    Posts:
    2
    Some issues...

    ok, so I setup a simple scene in Blender.. a sphere with a single bone.. one blend shape.. just to test it out..

    when I get into Unity though, I have an issue..

    after I apply polymorpher.. I ADD NEW SHAPE.. the object moves.. sometimes it moves down or flips over on it's PIVOT point

    seems like some issue with the axis pivot.. it moves outside it's bounding box also..

    in 3dsmax i know there is a RESET XFORM.. is there something like that in Blender?

    EDIT - I tried and reset the pivot in Blender Set Origin command.. still same issue.. then I got this error

    PolyMorpher need MeshFilter, SkinnedMeshRenderer. Add one of these script before.
    UnityEngine.Debug:LogError(Object)
    PolyMorpherBaseEditor:OnEnable() (at Assets/PolyMorpher/Editor/PolyMorpherBaseEditor.cs:268)

    The mesh def has Mesh Filter and Skinned

    does the mesh need to be OUT of the imported capsule?
     
    Last edited: Aug 10, 2013
  35. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi,
    morph edition on SkinMeshRenderer move your mesh to T-pose (without bone influence)
    pivot and rotation depend on mesh import settings, so position or rotation could change during edition.
    When edition is over, save your morph shape and quit edition Mode (click "E" button),
    mesh will return to its position and rotation according to bones positions, and morph shapes will work fine.

    Be carefull when you apply skinning in your 3D software,
    your issue looks like an offset position between mesh pivot and root bone position.

    If you have any other issues, send me a fbx or a blender file by email : contact@kalagaan.com
    I'll make it work ;)
     
    Last edited: Aug 10, 2013
  36. michaeljr

    michaeljr

    Joined:
    Aug 7, 2013
    Posts:
    2

    ok, I'm going to look at this here in a minute, I sent the file anyway.. I'm sure it's something I'm missing or that the FBX exported in Blender doesn't do automatically like in 3dsMAX..
     
  37. nishiut

    nishiut

    Joined:
    Aug 16, 2013
    Posts:
    1
    I have a question.

    I edited the contents of .anim text file (Unity4.2)
    And, I've created an animation file that has a value less than 0f, or value greater than 1f.

    $PolyMorpher001.png

    And I made ​sure that the value of Shape1 exceeds 0f ~1f in PolyMorpherAnimator.

    $PolyMorpher002.png

    However, the actual deformation is as is done in the range of 0f ~1f.

    In PolyMorpher, I would like to play the shape animation with values ​outside the range of 0f ~1f.

    What should I do now?
     
  38. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi,
    sorry I didn't receive any notification of your post...

    morph weight values are clamped in GetMorph function (PolyMorpherBase script), you can disable clamp in this script,
    but a morph weight outside 0f,1f would make weird deformations...

    If you want a specific way of morphing, send me sample or references : contact@kalagaan.com
     
    Last edited: Aug 25, 2013
  39. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,260
    Hi,

    I've just bought this to bend a fishing rod. So far so good but I need the line to stay at the tip of the rod. When i use meshFilter.mesh.vertices to get the vertex position at the tip of the rod, it no longer bends. Can you suggest a way I can make it work please?

    Thanks
     
  40. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi,

    here a piece of code to lock a gameObject on a vertex position :

    using UnityEngine;
    using System.Collections;

    public class polyMorpherSnapVertex : MonoBehaviour {

    public PolyMorpher m_morpher;
    public int m_vertexID = 0;//change this value at runtime to find the vertex ID

    void LateUpdate () {

    m_vertexID = Mathf.Clamp( m_vertexID, 0, m_morpher.m_mesh.vertexCount );
    transform.position = m_morpher.transform.TransformPoint( m_morpher.m_mesh.vertices[m_vertexID] );
    }
    }


    Drag drop this script on the gameObject you want to snap on rod gameobject.
    Drag drop rod gameobject in polymorpher field and change value to find the vertex ID of the tip (at runtime).

    the object will be snapped on Polymorpher mesh, and will follow all deformations (morph or modifier).



    Edit : use PolyMorpherSnapVertex script, included in PolyMorpher package
     
    Last edited: Mar 20, 2015
    pachermann likes this.
  41. pachermann

    pachermann

    Joined:
    Dec 18, 2013
    Posts:
    133
    Hi mister kalagaan

    i like your polymorpher script mutch, so i choose it for the use in a webgl project on angular basis.

    Since iam a beginner with unity, iam not able to do a simple object binding, or in other words bind one animated object to the other.

    i have opened a general thred on this:

    http://forum.unity3d.com/threads/bind-a-gameobject-to-another-with-animations.312377/

    could you maybe help me out a bit with this?

    kind regards, pascal
     
  42. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    pachermann likes this.
  43. pachermann

    pachermann

    Joined:
    Dec 18, 2013
    Posts:
    133
    Hi Again, i setup the polyMorpherSnapVertex trough the Scripts Menu.
    + Do i now have to code something or is the scene topo wrong?

    I can trigger the roof animation dachrechtwinkel inside the editor, but the cells dach_zellen dont want to follow the vertex #48
    morp_ui.PNG

    Here is the setup i made:
    vertex_snap_setup.jpg

    i have also animated the dach_zellen with polymoropher
    animated-cells.PNG

    i still hope i can make it by myself with a little bit more advice from you :)
     
    Last edited: Mar 26, 2015
  44. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
  45. JoLef

    JoLef

    Joined:
    Mar 25, 2015
    Posts:
    3
    Hi i stumbled on this asset and it looks great,

    Can this asset also morph the vertex colours on a model?

    -joeri
     
  46. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi,
    sorry but it don't morph vertex color, it only works on geometry.
    It could be a great feature, but I don't think I'll do it because it would take too much time and only a few shaders uses vertexcolor.
     
  47. tombombadil1988

    tombombadil1988

    Joined:
    Feb 21, 2015
    Posts:
    20
    Hi,

    I have a scene with a lot of trees (about 20-30 visible). Will I be able to use your module to bend them individually to simulate wind with high framerate on mobile (iOS)?

    - Tom
     
  48. c_v

    c_v

    Joined:
    Nov 12, 2013
    Posts:
    8
    Hello! I'm not your customer yet, but I'm very interested to become one. But first - I have a question.

    How does PolyMorpher manages memory? Is there some magic to optimize memory allocations and garbage collection?

    As far as I know, to morph mesh in Unity3d, you need to create new Vector3[] array for each frame of morphing. And in code it looks like this

    Vector3[] vertices = new Vector3[verticesCount] ;
    // some morhph logic
    mesh.vertices = vertices;
    mesh.RecalculateBounds();
    mesh.Optimize();
    meshFilter.sharedMesh = mesh;
    collider.sharedMesh = mesh;

    And this will create new mesh, new vertex array and therefore memory allocotaions.
    So, once every couple of dozens frames you will have nasty performance spike, since GC needs to clear all this junk.
    If you have some concrete solution for this problem, I will buy PolyMorpher just to see your solution and use it in my project. I actually need this for my own crazy mesh deformation task.
     
  49. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi Tom,
    PolyMorpher is a full C# solution, each morph is performed on the CPU (when needed), but if you have too many vertices, performances will be impacted on mobile.
    I recommand a solution using shaders, the GPU will do a better job.
    have a look at VertExmotion ;)
     
    Last edited: Jan 22, 2016
  50. kalagaan

    kalagaan

    Joined:
    May 27, 2012
    Posts:
    1,502
    Hi,
    If you create a new array each frame the GC will clear it and do nasty spikes.
    PolyMorpher do the memory allocations in Start function, so there's no allocation in Update.
    In the profiler you must have 0B of 'GC Alloc', if you don't want spikes ;)
     
    Last edited: Feb 2, 2016