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 ] UCC - Create custom morphs and modifications on any model

Discussion in 'Assets and Asset Store' started by Aerozo, Nov 4, 2015.

  1. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Introducing UCC (Universal Character Customisation), a customisation tool that can be used to create morphs and modifications on any model in your project!

    Asset Store Link
    Open in Asset Store

    Featuring
    • Create custom morphs and modifications
    • Easily morph clothes with your main character
    • Select parts or change the whole model
    • Reskin any mesh to a skinned mesh
    • Blend between morphs using sliders
    • Support for normal and skinned meshes
    • Realtime editing and visual feedback in the editor
    • Easy drag-and-drop integration into any project
    • Simple API for programmers to control and update modifications
    • Fast runtime (works on mobile)
    Demo Builds
    WebGL
    Android

    General Workflow

    Here is the Quick Start Guide to give you an idea of how it works:



    Thanks for reading, if you're interested or have any questions, please ask :)
     
    Last edited: Jan 14, 2016
  2. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
  3. MrIconic

    MrIconic

    Joined:
    Apr 5, 2013
    Posts:
    239
    Looks good. Bought it. Going to play around with it and see what comes of it.
     
  4. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hi, thanks for being my second customer :D

    If you have any feedback or find it lacking in any way, please post in the WIP thread so I can look into it.
     
  5. su-young-jang

    su-young-jang

    Joined:
    Jan 26, 2015
    Posts:
    2
    Can be custom mesh in real-time(run-time)?
     
    Last edited: Nov 14, 2015
  6. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hey, the way it works is that you have to import the mesh in the editor and set up the modifications at edit time. Once you do that, you can change the values on the modifications you've put on your mesh at runtime but you can't change the vertex selection or the weights.

    So if you're talking about adding a modifier to a procedural mesh (i.e. create a mesh at runtime and then add modification to it) then no, it doesn't do that.
     
  7. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    I understand it work mainly by using curves. What if I wanted to morph only a single vertex, say I had 1 edge of armor I was trying to tweak to fit a character. Is the process use a selection cube, drag over only the one point and then use the tools? Is there an straight move a vertex to a specific Vector3, for precision work?

    Are there any runtime allocations for these morphs, like what is performance cost and speed on mobile? I imagine a skinned morph takes some calculation time, but once it is morphed does it still require memory or CPU per frame?

    Sample scripts for the various use cases:
    Morphing armor based on character selection.
    Simple custom character at runtime with simple UI.
    A sample of an animated character, not a still skinnedmeshed, we need to see the mesh animated after the morph are even while morphing in an idle position or a variety.
     
  8. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I was wondering what impact the morphs have on animations. What happens if I have existing animations on a model with skinned mesh clothes, and I morph the character. Will there be unexpected deformations due to the animation on the altered model, or any other surprises?
     
  9. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    That's how it's done at the moment but the next version will most likely include a way to let you choose and move individual vertices to where you want them to be. The curves are only there for adding weights to your vertices. If you'd rather not use them, you can remove the Weighter component and use the Transformer to change the vertices without any weights but that usually looks quite bad.

    There's a bit more memory usage per mesh but it's kept to the bare minimum needed to get fast updates. It works really well on mobile (tested on a OnePlus One) and there's no extra CPU usage per frame as long as you stick to using on-demand updates (i.e. you call UpdateMesh() only when you change something).

    There's already an included example scene that shows these things. I'll try to upload a build somewhere to show you what I mean :)
     
    Last edited: Nov 14, 2015
  10. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hi, most animations will still work as long as the morphs you make aren't too extreme. Skinned mesh clothes are supported too but right now you have to duplicate modifications and do some drag-and-drop to make it work.
    It's also completely undocumented because I'd like to replace it in the next version. If you buy it for that and want to try out the current method then message me and I'll make a video :D
     
  11. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    cool, how long do you plan to keep it at the $50 beta. I may not be able to budget you in this month is why but that is a good price point for me.
     
  12. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Hi Aerozo,

    I have characters with separate clothes, RPG style. They were modeled in 3dMax and exported as separate meshes. So, I was thinking of using UCC to create more NPC characters from our existing base character and clothes. It would be very nice to be able to work with the character and clothes at the same time, but I am not in a big hurry and can wait if you are going to revise the process.

    If you develop a drop in player character creation system, I would be interested in that too.
     
  13. PhoenixRising1

    PhoenixRising1

    Joined:
    Sep 12, 2015
    Posts:
    488
    I really shouldn't buy this now since I'm way too early in development, but it's hard to resist. What will the normal price be for this?
     
  14. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    It'll stay the same price for at least another 3 updates (read: at least a month) while I finish off and polish the Mesh Customiser's features. Once that's done I plan to move on to the Texture Customiser and that's when the price goes up.
     
  15. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hey, I'm planning to make video showing how the current system works at some point tomorrow so I'll post here when it's uploaded. Look forward to hearing your thoughts on it.

    Could you explain what you mean by "drop in player character creation system"? (I'm collecting ideas of things to add in the future)
     
  16. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hi, the current price will stay for at least another month and then go up once I add Texture Customisation. Once it's out of Beta the price will go up again but that's at least 2 or 3 months away.

    It's hard to say what the final price will be at this point (depends on final feature list and how much of my time it's taking up) but it's safe to say that you've still got a lot of time to observe it's development before you decide :)
     
  17. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I was imagining a Unity3d "character creation" scene, where the player selects a base character, then uses UCC to change its appearance to suite the player's taste. The character would then be saved or baked and used to play through the game. Lots of RPGs have character creation built in, and it seemed to me that UCC could be used for this.

    I was hoping that part of UCC would be a system designed for this purpose that could be "dropped in" to a unity3d scene and not require much hook up for the base characters, maybe hair, beards, and lots of wonderful UCC sliders. :)
     
  18. PhoenixRising1

    PhoenixRising1

    Joined:
    Sep 12, 2015
    Posts:
    488
    It's not a matter of if I want it, it's more like when :). If I was further into development I wouldn't hesitate.
     
  19. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Video of Modification Linking (a.k.a. how to deform clothing meshes with the main mesh) is now on the UCC YouTube channel.

    DISCLAMER: Contains 3D boobs.

     
    kurotatsu likes this.
  20. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I really think you have the best approach, so much so, that I just bought UCC.

    I'm impressed with the video. From what I see, I can immediately modify my NPC characters with their clothes. This is great!

    My one comment is that my game's player characters have many items of clothes, RPG style. If I let the gamer modify their player character, how do I get the clothes to fit their chosen alterations? Or is this system better suited to player characters who only wear one skinned outfit?

    Either way, great product!
     
  21. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Glad you like it, I'm refining it in the next version so there'll be fewer steps involved.

    It can do multiple outfits, check out the included example scene. There's a UI in there for switching between clothes that you can use to test your own character. All you need to do is:

    1. Paste your own character with the modifications into the scene (move Ethan out of the way but keep him for reference)
    2. Add a "MeshCustomiserItemManager" script using the Add Component menu to your own character
    3. Make some slots and some items for each slot (look at how it's set up on Ethan for reference)
    4. Find the "UI Initialiser" GameObject and drag your character into both slots
    5. Find the "Main Camera" and drag your character into the "Orbit Transform"
    6. Hit play and enjoy :)

    I'll be refining that approach in the next version so there's less clicking and dragging involved. Some other good news is that I've been given permission to include a reduced version of the model shown in that video so update 0.2 will have a good example of all the things this system can do :D
     
  22. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Hey Aerozo - UCC looks awesome. If I can move up on Santa's list just a couple more slots - I'd like to get this for x-mas.

    One situation I thought about which I couldn't figure the answer to -
    In the previous video example - if the boobs had static tassles that I didn't want to scale - but I still wanted to sit on the deformed surface - and/or deforming surface of the boob - is that possible?
    Another example is if I wanted to scale up the diameter of an Orgre's forearm but I wanted to keep the static spiked wooden forearm armor piece the same size - but move/adjust it to the surface volume of the forearm. Is that possible?

    I believe this static mesh adjustment is doable - but I think I overlooked it. Thanks for the clarification.
     
  23. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    I'm getting some odd results when I try selection volume on other items of the female lover's clothes. Sometimes the vertex gizmos are floating beside the character. (make the selection volume big and you will find them.) The clothes, themselves, appear on the character correctly because Unity3d compensates for rotation and root of skinned meshes(clothes). However, UCC is reading raw numbers and rendering its gizmos based on "uncorrected" data.

    Try the underwear_white_granit_bottom. Add the new mesh modification component and you will see vertexes floating beside the girl, and not on the bottom. The yellow bra works in your demo, because the imported bra has no import data for which Unity need compensate. UCC is unaware that certain items of clothes, and characters, need compensation, for root and rotation, and is basing its vertex gizmo on raw data obtained from some component in Unity, prior to its correction further along in the rendering pipeline. I'm no expert, but that is what I suspect.

    Our clothes and character work great in Unity, but the UCC gizmos don't line up with our clothes, or character.

    What do you think?
     
    theANMATOR2b likes this.
  24. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hey, thanks for the kind words.

    To make the boob tassles move right now, you'd have to...

    1. Select all their vertices and weight them at 100% (or remove the weighter component).
    2. Make a Parameter with the same name as the boob transformation and adjust the translation on so it's in the correct position at -1 and +1.

    After that the tassel should move with the boob as it gets larger since any Parameters that have the same name are given the same "Parameter Amount" value when adjusted through the API.
     
    theANMATOR2b likes this.
  25. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    I'm aware of this problem and I'm trying to find a solution for it. You're right about UCC using the raw mesh data but that's because there's no way that I know of to get the mesh data you see on screen.

    The culprit here is Unity because it ignores the position of the Transform when the mesh is skinned. If you look at this screenshot, you can see the actual position it should be at and the preview that Unity shows. You can even drag that Transform around and it will make no difference to the rendered preview shown by Unity.



    As far as I'm aware there's no quick fix for this but in the next update I've added a check box that shows the actual mesh position that UCC uses for reference so you can align it with the preview.

    In the meantime if you scroll to the bottom of MeshCustomiserMesh.cs and paste this code before the #endif, you should be able to see the same thing as the screenshot which should let you reposition it to the correct place and get the right results when you're selecting vertices.

    Code (CSharp):
    1.  
    2.     void OnDrawGizmosSelected()
    3.     {
    4.         Gizmos.color = Color.magenta;
    5.         Gizmos.DrawWireMesh(originalMesh, transform.position, transform.rotation, transform.lossyScale);
    6.         Gizmos.color = Color.white;
    7.     }
    8.  
     
  26. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Just wanted to give you an update to say that the next version won't have this problem any more. You'll be able to make your selection on skinned meshes regardless of their pose in the editor.
     
  27. kurotatsu

    kurotatsu

    Joined:
    May 10, 2012
    Posts:
    588
    Is there future plans for dynamic movement, rather than just animated vertice movement?
     
  28. wood333

    wood333

    Joined:
    May 9, 2015
    Posts:
    851
    Thanks Aerozo, looking forward to the next version.

    We did take a look at your temporary work around, and we came up with one of our own, but we're going to be smart and wait for your revision.

    One thought. What you have inadvertently provided is a diagnostic tool. This is the first time I have been able to visually see the skinned mesh data both raw (UCC gizmo) and Unity rendered. We can see visually when the model artist has not followed Unity3d practice for proper export from the art tool (max in our case). We will use your tool to examine our skinned models and rewrite our max export settings and procedure. A correctly exported skinned mesh can have the same raw and unity window transform values, like the model and bra in your demo.
     
    TeagansDad and theANMATOR2b like this.
  29. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Can I ask what you mean by "dynamic movement"?

    Agreed. One of the biggest problems I'm facing while making this system is how to deal with skinned models that haven't been correctly exported. Some are rotated 90 degrees and even rotated on the Y-axis.
    *looking at the Blacksmith model from Unity* ¬_¬

    Fortunately there's a way to get the output of a skinned mesh which I'll be using for selections and the previews of vertex positions in the next version. The only thing is, this will have a performance impact in the editor and I'm not sure how much that will be yet (runtime performance will stay the same).
     
    theANMATOR2b likes this.
  30. kurotatsu

    kurotatsu

    Joined:
    May 10, 2012
    Posts:
    588
    I mean your system is just steps away from allowing softbody movement like in VertExmotion.

    https://www.assetstore.unity3d.com/en/?gclid=CO3wvaSNo8gCFZKAaQodT88KQA#!/content/23930

    It'd be great to use your modifiers to add soft body physics.
     
  31. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    That looks like it could be a fun little experiment.

    I'll add it to my to-do list but I can't promise when or if it will happen right now because the list is already pretty big.
     
    kurotatsu likes this.
  32. kurotatsu

    kurotatsu

    Joined:
    May 10, 2012
    Posts:
    588
    Hey no rush, still trying to put time aside to do some experiments.

    I drive a snowplow, so I'm working through the holiday and this weekend.;)
     
  33. Recon03

    Recon03

    Joined:
    Aug 5, 2013
    Posts:
    845
    So does this not work at runtimes, like for example Fall out 4?? If you want to allow the player to change the look of the character ???? Just want to be clear here on what it does. I know it does it in edit mode, but I have no interest in that. I want to be sure this would work for runtime like Fall out. or like it. Thanks.
     
  34. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Yep, it's designed so you can set up a character for your players to customise at runtime.

    You can check out the builds here:
    WebGL
    Android

    The only thing you can't do at runtime is to select vertices and assign weights to them. Any Transformers you've set up in the editor, however, are fully changeable at runtime.
     
    Recon03 and theANMATOR2b like this.
  35. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Added another WebGL build with animations for those who want to see how the morphs hold up while animating:
    (removed - see first post in Thread)
     
    Last edited: Jan 14, 2016
  36. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    Please excuse the stupidity of this question, my excuse is I'm a programmer not an artist or animator.

    Now I know the love models are not yours, but what animation did you use? I have a Mecanim controller that I know works but the model just sits there. Did you have to make a custom animation for your demo above?

    Thanks
     
  37. PhoenixRising1

    PhoenixRising1

    Joined:
    Sep 12, 2015
    Posts:
    488
    Check if the model is using the correct rig.
     
  38. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    Hum not sure how to change the rig even if it's wrong. But I'm not going to ask how, I don't want to clutter up Aerozo forum with useless junk. Guess I got some research to do, thanks.
     
  39. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hey, the character doesn't have a Mecanim rig when you get it from the Asset Store so you need to find the FBX in your project and change the "Animation Type" to "Humanoid" in the Rig tab. It's not related to the asset but I've stumbled on the same thing a few times myself :)

    EDIT: FYI, I used Props Animations from the Asset Store for that demo.
     
    theANMATOR2b likes this.
  40. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    Getting the same vertex next to model issue as above. I removed the image I had, no need to duplicate information.
     

    Attached Files:

    Last edited: Dec 6, 2015
  41. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
  42. Cdngater

    Cdngater

    Joined:
    May 29, 2014
    Posts:
    65
    Oh you are right, ok I'll remove the image to save bandwidth.
     
  43. Obsurveyor

    Obsurveyor

    Joined:
    Nov 22, 2012
    Posts:
    277
    Any idea when you might start supporting Unity 5.3? In 5.3.1f on OS X, I'm getting errors about the GUI, arrays out of bounds, etc.
     
  44. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hey, PM me with your invoice number and email address. I'll send you a preview of 0.2 to try.
     
  45. Abanem

    Abanem

    Joined:
    Feb 10, 2016
    Posts:
    2
    I hope this thread is not dead by now.

    I got one simple but necessary question.

    Will your product interact well with facial morph imported from other software (3DS Max, Maya, Blender)? Because i plan to make my own facial morph and use your tool to set-up body morph and ease clothing adjustment.
     
  46. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Hi, the last time I checked it works with blendshapes imported by Unity. They're applied additively (i.e. if you make a waist modification using UCC and a waist blendshape, both are applied on top of each other).

    Hope this helps :)
     
  47. Abanem

    Abanem

    Joined:
    Feb 10, 2016
    Posts:
    2
    Thx, for the answer. I will buy in a short time. :)
     
  48. DigitalAdam

    DigitalAdam

    Joined:
    Jul 18, 2007
    Posts:
    1,202
    Any new updates or features coming up? :)
     
  49. Aerozo

    Aerozo

    Joined:
    Sep 3, 2010
    Posts:
    127
    Replied to you in the other thread :)
     
  50. RoyArtorius

    RoyArtorius

    Joined:
    Jul 11, 2013
    Posts:
    73
    Hello,

    Does this system allow for more than one character to be separately customized in a scene like NPCs?
    I've been looking around and it appeared to not be the case judging by the videos which show Scene Variables.