Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Released] Mega-Fiers. A mesh deformation system - RELEASE

Discussion in 'Assets and Asset Store' started by SpookyCat, May 18, 2011.

  1. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Zhx
    Just looked at the UVTile and it is working still though the values in the demo scene are messed up, I hadnt reset them when I did the renaming. Also the modifier doesnt use the shader tile and offset it is a modifier on the uv coords.

    I will add the looping options now for you :)
    Chris
     
  2. 3Duaun

    3Duaun

    Joined:
    Dec 29, 2009
    Posts:
    600
    SpookyCat to the rescue again !!! :)
     
    Last edited: Sep 28, 2011
  3. bigSky

    bigSky

    Joined:
    Jan 31, 2011
    Posts:
    114
    Hi - Rubber modifier rocks my secondary animation socks! Long live physics based modifiers! But ... I'm trying to set the colors of the vertices procedurally on awake, at hopefully at runtime, and it seems that mega rubber does not like that. Is there a yield that I can set or something so megafiers will read these vertex colors?
     
  4. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi BigSky
    I have just added that functionality to the next version for you, there will be some new methods you can call on the MegaModifyObject component, they are:
    Code (csharp):
    1.     void UpdateCol(int i, Color col);        // Set i'th color to col
    2.     void UpdateCols(int first, Color[] newcols);    // Set colors starting at first to newcols
    3.     void UpdateCols(Color[] newcols);    // Replace all colors
    After changing the weights you will need to call the ResetPhysics() method of the MegaRubber modifier, ie:
    Code (csharp):
    1. public void ChangeWeights(GameObject obj)
    2.     {
    3.         MegaModifyObject modobj = (MegaModifyObject)obj.GetComponent<MegaModifyObject>();
    4.         MegaRubber mod = (MegaRubber)obj.GetComponent<MegaRubber>();
    5.  
    6.         modobj.UpdateCol(0, Color.red);
    7.         mod.ResetPhysics();
    8.     }
    Just as a note if you scripting the rubber modifier and you change the weights or the channel or the threshold value you will need to call ResetPhysics to update the internal physics data. You do not need to call anything if you are just changing physics params ie, Intensity, gravity, mass, stiffness, damping.
    Chris
     
    Last edited: Sep 29, 2011
  5. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    If anyone has any ideas of Modifiers they would like to see in the system or improvements to existing modifiers just leave a post here or pm me.
    Chris
     
  6. ivanzu

    ivanzu

    Joined:
    Nov 25, 2010
    Posts:
    2,065
    I think you got them all :)
     
  7. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Submitting a new version to the store with the UpdateCol methods. I have also added helper methods directly to the MegaRubber modifier so you don't need to call the reset physics it will be done for you next update. The call to reset physics is slow as it has to rebuild the list of weighted vertices and remove duplicates so it isn't suitable for changing weights every frame. If that functionality is needed then I will look at changing the system about a bit, I do hope to do some kind of weight painter when I get time instead of relying on vertex colors, this would give much more control over areas of stiffness etc on a mesh.

    The changes for v1.66 this time are:

    • Fixed the values in the UVTile test object to show correct functionality.

    • Added animation looping option to UVTile playback;

    • Added UpdateCol methods to MegaModifyObject so colors can be adjusted for col/weight based modifiers.

    • Added helper methods to rubber modifier to alter color/weights with auto update of physics. (Currently update physics is slow so ideally not to be called often).
    So if you want to change cols for rubber weights you can now do it like this:
    Code (csharp):
    1. MegaRubber mod = (MegaRubber)obj.GetComponent<MegaRubber>();
    2. mod.UpdateCol(1, Color.green);
    The system will automatically recalc the weights when they are needed.
    Chris
     
    Last edited: Sep 29, 2011
  8. zipper

    zipper

    Joined:
    Jun 12, 2011
    Posts:
    89
    Well, since you asked :) Here are a few:

    1. Morph synchronization with animation clips.
    2. Upper and lower boundaries for ripple, wave, and noise, so they can modify a region of a 3d object.

    #2 would be nice for a transparent "cube" or "cylinder" of water (with the water just rippling on the top surface), or jello, or monsters with ripply exposed brains etc..

    Thanks,
    zipper
     
  9. MikeUpchat

    MikeUpchat

    Joined:
    Sep 24, 2010
    Posts:
    1,056
    Love the rubber modifier works great on my characters tummy and other bits :)
     
  10. droderick

    droderick

    Joined:
    Aug 25, 2008
    Posts:
    169
    Hi,
    Has anyone found a workflow for point cache animations from c4d into unity? I have tried to export point cache tags from c4d and import into unity/megafiers, however not had luck doing so. Apparently we need mdd files from c4d. Any help on the matter would be awesome. Thanks
    D
     
  11. rhamm1320

    rhamm1320

    Joined:
    Mar 29, 2008
    Posts:
    44
    Thought for a minute it said "tire" :), you have one of those sold soon as its available
     
  12. MikeUpchat

    MikeUpchat

    Joined:
    Sep 24, 2010
    Posts:
    1,056
    There is a plugin for Cinema4D called MDDWriter which can be found at http://www.animationsnippets.com/downloads.html which should do what you need for Cinema4D, there are probably others available as well. That plugin also works for Lightwave users.
    Mike
     
  13. Rick77

    Rick77

    Joined:
    Sep 29, 2011
    Posts:
    2
    thanks mike will check it out.

    d
     
  14. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    If you have any trouble let me know, I have noticed slight differences in formats from different packages so if it doesnt work straight off get in touch and we will sort it out :)
    Chris
     
  15. droderick

    droderick

    Joined:
    Aug 25, 2008
    Posts:
    169
    Other things which would be cool to see would be some of the effectors found in C4D. Selfishly, i'm mainly interested in controlling groups of objects in fluid/dynamic ways.

    Chris, let me know if you want me to upload any samples of some of the stuff you can do with MoGraph effectors in c4d. Happy to up sample movie clips, c4d files, etc.

    daniel
     
    Last edited: Oct 4, 2011
  16. innercircus

    innercircus

    Joined:
    Aug 19, 2009
    Posts:
    15
    Can anyone enlighten me on how to get the displace modifier to work? everything else works flawlessly...

    Steps I'm doing...

    1. create plane in unity.
    2. add "modify object" script.
    3. add "displace" script.
    (I get an error "NullReferenceException:Object reference not set to an instance of an object-> MegaDisplace.Map(Int32 i, Vector 3p) (at Assets/Standard Assets/MegaFiers/Modifiers/MegaDisplace.cs:40)
    - I assume this is because no texture has been assigned?
    4. Assign a read/write enabled normal map (? I'm assuming this should be a normal map, though I've tried a normal Texture).

    I've peeked through the demo scene and found no displacement examples?

    No matter what I do I keep getting that same error repeating upon changing any of the settings so I'm assuming it's a texture issue? Nothing in the docs seems to shed light on this... but I'd love to make this work! :)

    Thanks in advance!
     
  17. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Innercircus
    I think the problem is your mesh has no uv coords, the modifier uses the uvs to find the corresponding point on the texture to get the displacement amount. I will put a friendly warning in to make it clear in the next version.
    Chris
     
  18. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    There was a small problem in the displace modifier that stopped it working, so I have fixed that will submit later today. At the same time did a quick video on the displace modifier.
    Chris
     
    Last edited: Mar 1, 2013
  19. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    WOW ! Fantastic effect...

    6R
     
  20. innercircus

    innercircus

    Joined:
    Aug 19, 2009
    Posts:
    15
    EXCELLENT! Thank you so much Spooky Cat! savin my bacon ;)
     
  21. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Version 1.69 submitted to the store with the following changes:

    • Fixed issue with the displace modifier, now works again.

    • Added displace example to test scene.

    • Fixed bug that corrupted normals when more than one displace modifier added to a mesh
     
  22. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Version 1.69 is now in the Asset store :)
     
  23. innercircus

    innercircus

    Joined:
    Aug 19, 2009
    Posts:
    15
    New version works just as advertised! thanks again! Added a review as well! keep up the insanely awesome work!
     
  24. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Last edited: Mar 1, 2013
  25. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    Time and time again Chris you hurt my head...in a good way.
    This is so Pixar, and it is so cool. When it is live...can't wait.
     
  26. Kapouaii

    Kapouaii

    Joined:
    Oct 7, 2011
    Posts:
    6
    hi everyone.

    Sorry to post my thread here, but I don't know where I should post it....

    I have some issues using morpher and point cache with megafiers...

    I try to import an animation based on morphers (from 3dsmax).

    I tryed it two ways:
    First: I made my morphers into 3dsmax, point cache it and import point cache in unity using Mega-Fiers.
    Second:I made my morphers into 3dsmax and import it into Unity using the Morphers of Mega-Fiers.
    None of them worked...
    Exactly, sometime it works with a really few number of Morphers, but never with the pointCache.

    I tryed to change a lot of paramters in the export setting using both the FBX and the Obj, but it never works fine.

    So, if someone has a solution or is experimenting the sames issues, let met know.

    Here is my scene: http://dl.free.fr/myGwgmbG8

    Thanks a lot

    Paul.

    PS: I tryed with really light mesh (as basics cylinders from 3dsmax) and it works fine...
     
    Last edited: Oct 7, 2011
  27. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Kapouaii
    If you email the max file to me at chris@west-racing.com I will have a look to see what is going wrong.
    Chris
     
  28. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,160
    Spooky, when I have updated MegaFiers the last time I have experimented Unity editor warnings (about errors to fix) because some scripts of the package appear as duplicated. I had to delete the entire MegaFiers Example Demo to solve it.
     
  29. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Angel_m
    Can you show what kind of errors they were? Were you updating from an old pre rename version?
    Chris
     
  30. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Kapouaii
    I have looked at the morph, the good news is it imports fine and the data is all there and it morphs, the not so good news is that due to the nature or your mesh the remapping of unity vertices to original vertices can sometimes pick the wrong vertex when you have exact overlapping vertices that belong to different triangles, this is something I will be fixing in the near future but at the moment to get around it you just need to jiggle a fraction the vertices to make their position unique so the remapper can tell them apart. Other than that it all worked fine, you will need to use the 'Mega' normal method to keep smoothing info looking correct as you have a 'complex' uv mapping that confuses the Unity normal calculator, you need to select the Mega normal method before applying any modifier to the mesh as it uses the current normals to build smoothing groups.
    Chris
     
  31. angel_m

    angel_m

    Joined:
    Nov 4, 2005
    Posts:
    1,160
    No, I am updating every time you upload a new version. The error is when I press play in my project and Unity after compiling show a " fix error warning."
    The console says two Megafier scripts with the same name exists and are duplicated, but it is easy to fix, only deleting the duplicate script located in the example folder. Don't worry.
     
    Last edited: Oct 7, 2011
  32. Tim Hays

    Tim Hays

    Joined:
    May 8, 2010
    Posts:
    12
    Spookycat,

    Awesome looking tool! I was really blown away after watching your "MegaFiers Playroom demo" video and I'm really close to purchasing but I was wondering if the "MegaFiers Playroom demo" scene will also be included in a future update? That would make it a slam-dunk for me!
    Thanks!
    -Tim
     
  33. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    WOW ! Very nice playroom demo, SpookyCat !!! Great job !!!

    6R
     
  34. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Thanks all for the nice remarks :) The demo scene may make it into the package I am not totally sure yet as it would make it quite a big download/upload for every update, it might become it's own scene asset package, need to talk to the artist about that.
    Chris
     
  35. Kapouaii

    Kapouaii

    Joined:
    Oct 7, 2011
    Posts:
    6
    Hi SpookyCat.
    Thanks a lot for your answer.
    I'll try it in the next hours.

    If something is wrong again, I'll come back to you:)

    Once again: thanks a lot.
     
  36. Kapouaii

    Kapouaii

    Joined:
    Oct 7, 2011
    Posts:
    6
    Hi Spookycat.

    I tryed as you said, but it still doesn't work.

    I export my mesh as an FBX, I export the same mesh as an Obj (to load it in the "load mapping"), then I export all my morphers in an single .obj.
    But when I try to load my obj in the "load mapping" (on the FBX), I have an error message: "Mapping failed!"....

    If I use directly the .obj, I can load himself with the "load mapping" and I also can load the morphers in the "load target" (in a new channel), but nothing append...
    I can move the slider, but nothing append.

    So, could explain to me, what exactly is your pipline to export te mesh from max to unity?
    I thing my problem should be there....

    Thanks

    If it can help, evrytime it doesn't work, I've got this message error:

    IndexOutOfRangeException: Array index is out of range.
    MegaMorph.Modify (.MegaModifiers mc) (at Assets/Scripts/MegaFiers/Modifiers/Morph/MegaMorph.cs:371)
    MegaModifiers.ModifyObject () (at Assets/Scripts/MegaFiers/Modifiers/MegaModifiers.cs:288)
    MegaModifiers.ModifyObjectMT () (at Assets/Scripts/MegaFiers/Modifiers/MegaModifiers.cs:601)
    MegaModifyObject.Update () (at Assets/Scripts/MegaFiers/Modifiers/MegaModifyObject.cs:137)
     
    Last edited: Oct 10, 2011
  37. 3Duaun

    3Duaun

    Joined:
    Dec 29, 2009
    Posts:
    600
    just to chime in, @ Kapouaii, wont your vertex order change for your separate FBX and OBJ exports(depending on the 3D host app you're using)? Thus the verts wont perfectly map(in the same position). IMO, those are 2 different export schemes(for most 3d host apps), that depending on your 3D host application(maya/blender/etc), you MAY get different vertex id's from the 2 separate export processes(thus not properly mapping in MegaFiers). I wont name names, but there is a certain 3D host application that CAN export(often enough) the same vertex id's for an FBX and an OBJ(Blender!, though Maya can do the job on occasion too)... ;-)
     
    Last edited: Oct 10, 2011
  38. Kapouaii

    Kapouaii

    Joined:
    Oct 7, 2011
    Posts:
    6
    hi zhx.

    Now i understand my problems between fbx and obj.

    So, at least it does'nt matter, I will just use the Obj export

    Thanks
     
  39. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Kapouaii if you are using Max you shouldnt be using OBJ format you should be using the MegaFiers exporter, pm your email address and which version of Max you use and whether it is the 64 or 32 bit version and I will send you the exporter, it makes life a lot easier. I have your test file working with no problems (after shifting a vertex or two a tiny amount) with the exporter.
    Chris
     
  40. Kapouaii

    Kapouaii

    Joined:
    Oct 7, 2011
    Posts:
    6
    Hi spookyCat.

    I've sent you an email (kapouai@gmail.com)

    Thanks
     
  41. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Just a little note to say I have been working with the guys at Di-O-Matic so that MegaFiers can export and make use of their Morph-O-Matic animation system for 3ds Max. I hope to have an example of that to show soon.
    Chris
     
    Last edited: Oct 12, 2011
  42. herrschobel

    herrschobel

    Joined:
    Sep 18, 2011
    Posts:
    8
    Hi Chris...first i gotta say that i love your asset !!!

    second i was wondering how i could randomly animate the displace modifier to create abstract morphing landscapes for a project i am doing right now ... i am a total coding noob, thats why i was so happy to find mega-fiers...
    so how about animating parameters ?
    ideas ?

    thx in advance
     
    Last edited: Oct 14, 2011
  43. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Herrschobel
    If you didnt want to do any coding you could get the ground doing nice strange things using the ripple and or noise modifiers. For example in the video below the ground planes are affected by two world space ripples, you could layer in a noise on top and so on.

    If that doesnt give the control you need then you can always alter the values directly in the displace texture. If neither of those types of solution suit you then if you could let me know what kind of effect you need and how you need it to work I can add it to the todo list :)
    Chris
     
    Last edited: Mar 1, 2013
  44. herrschobel

    herrschobel

    Joined:
    Sep 18, 2011
    Posts:
    8
    wow...quick answer ! again: this asset is worth every penny...and some more i would say...
    anyhow thanks for the answer...that is an interesting solution and might just do the trick...


    cheers man !
     
  45. shinriyo_twitter

    shinriyo_twitter

    Joined:
    Aug 12, 2011
    Posts:
    328
    Hello SpookyCat

    I came from old Thread.

    Stretching MegaStretch attached object, it looks like become bigger.
    however, I always set amplify to object.
     
  46. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Shinriyo
    Could you show a picture of the problem as I am not quite understanding what the problem is?
    Chris
     
  47. shinriyo_twitter

    shinriyo_twitter

    Joined:
    Aug 12, 2011
    Posts:
    328
    Hello SpookyCat

    I am using Mega-FIres for my work, so while for confidentiality reasons I am unable to provide you with these screenshot,
    but I'd like to create like LocoRoco using Mega-FIres.

    Is Mega-FIres able to like create that?
    http://www.youtube.com/watch?v=pFKpyScxv0k
     
  48. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    Hi Shinriyo
    Did you get the stretch to work better? As for LocoRoco I am currently working on some new physics based modifiers which will be more of what you are needing so keep an eye on the forum for those.
    Chris
     
  49. shinriyo_twitter

    shinriyo_twitter

    Joined:
    Aug 12, 2011
    Posts:
    328
    Hi SpookyCat.

    Thank you for creating.
    What time will you button up the work?

    >>Did you get the stretch to work better? As fo
    I didn' t get better yet.

    I attached test project file to be checked for you, would you check it?

    The Player's testbody has 2-Stretchs and 2-bind(stretch).
    The walls and a floor affect his testbody.

    When mouse grabs Player, the Player change his shape.
    but, I couldn't change shape like the attached picture.

    When mouse grabs it up to down, it crumples up.
    When mouse grabs it down to up, it stretch upper direction.
    When mouse grabs it right-up, it stretch upper direction.
    When mouse grabs it left-up, it stretch at a slant and left.
    When mouse grabs it left-up, it stretch at a slant and right.
     

    Attached Files:

  50. SpookyCat

    SpookyCat

    Joined:
    Jan 25, 2010
    Posts:
    3,748
    If you need the stretch to happen at angles relative to the mesh you will need to change the Gizmo Rot values accordingly, if you apply a stretch to a mesh and then mess with the values in the inspector you will see the angle of effect will change. With a bit of scripting you should be able to get the effect you are looking for.

    Not sure when the new systems will be ready, got a lot of requests for help, new features and support coming in at the moment so it is getting harder to get a solid block of time to focus on the new stuff :) I will keep you posted though.
    Chris