Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[Released] Morph Character System (MCS) - Male and Female

Discussion in 'Assets and Asset Store' started by berk-maketafi, Sep 17, 2015.

  1. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Why not try it and see. Would be a very simple test. Come back and tell us all the pros and cons :)
     
    wetcircuit likes this.
  2. 99thmonkey

    99thmonkey

    Joined:
    Aug 10, 2012
    Posts:
    525
    African skins - where are those? I didn't see them on the Unity Store.
     
  3. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Yeah, they weren't advertised as such. I actually find all the DAZ3D hype to be obnoxiously unhelpful and DISinformative…. A few people said in the forums, otherwise I would not have known, even a side-by-side comparison a few pages back…. The "shadow man" and "voodoo queen" have the African textures.
     
    99thmonkey and LukeDawn like this.
  4. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I have an issue with one of the MCS outfits "Jersey Girl". The bolero jacket shoulders show dark polygons(?) at runtime only. The issue does not show in the scene view. It is not "poke-through" as there are no clothes underneath the shoulders.

    Switching to the Standard Shader doesn't fix it but other simpler shaders do work (mobile, for instance). Problem is much worse under Deferred but still shows (smaller area) under Forward rendering too.

    I also get a string of errors, but I am not sure they are related…. Any clues what is happening? Thank you for advice.

    pic 1: Deferred, pic 2: Forward, pic 3: console errors (?)

    Screen Shot 2016-11-18 at 10.05.06 AM.png Screen Shot 2016-11-18 at 10.05.47 AM.png Screen Shot 2016-11-18 at 10.19.36 AM.png
     
    LukeDawn likes this.
  5. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    Last I check it wasnt working properly. When cloth componenet is added to a piece it will fly away (or fall down depending on the gravity setting). Even if you edited the constaints (Max distance and surface penetration) it wont stick when you hit play.

    If you copy the cloth component before running, run the game and paste the values it will work though.

    I think something's wrong about MCS instantiation of the pieces. It skips constraints for cloth.
     
    LukeDawn likes this.
  6. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Have you looked at the injection mask texture to see if there's anything that might be causing it. It looks like poke-through, so could be poke-through to nothing.

    No idea what the error is, does it have more info when selected?
     
  7. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Thanks for the shout out on African skins on the store, I do wish we had greater diversity of race in the textures and some morph settings for specific races as well, I can't make anything that looks even partially correct.
     
    neoshaman and wetcircuit like this.
  8. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Nothing I understand….

    It must be a shader/rendering issue. It doesn't show in the scene preview at all (it looks correct there), and I can still see the normal map texture on the "patches".
     
  9. Morph_JN

    Morph_JN

    Joined:
    Nov 15, 2016
    Posts:
    123
    @wetcircuit is right about the injection masks. Each content pack is set up to work with itself. If you are kit bashing (mixing clothing from different content packs) you'll need to modify the injection mask.

    If you post screen shots I may be able to offer more specific advice.
     
  10. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,628
    Kit bashing as the norm, rather than the exception, is something for Morph3D to consider in their character customization suite. Models created by a dev in an editor may be the rule in DAZ world, but in games it is also common to allow players to customize their characters ... which means lots of kit bashing.
     
  11. 99thmonkey

    99thmonkey

    Joined:
    Aug 10, 2012
    Posts:
    525
    Yep. And I have no clue what an Injection Mask even is.
     
  12. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Yes, I would suggest that "kit-bashing" is the norm. Take any RPG and clothing is all mix and match. That should be a foremost concept to build around.

    @99thmonkey The injection-mask is a texture that is used to hide various parts of underlying model/clothing to ensure "no"™ poke-through.
     
  13. nickyoso1

    nickyoso1

    Joined:
    May 2, 2011
    Posts:
    85
    If I use different shaders than the default ones, will the injection masks still work?
    For example: for the skin I use the Pre-Integrated skin shader from the asset store.
    There are also cloth and fabric shaders on the asset store which possibly could look good for certain clothing. It would be a shame if we can't use different shaders than the default ones if those are needed for stopping poke-through.
     
  14. Morph_JN

    Morph_JN

    Joined:
    Nov 15, 2016
    Posts:
    123
    As it stands right now kit bashing won't always work out of the box; it may take some extra work. That being said I would agree that in a production environment kit bashing would be the norm.
     
  15. Morph_JN

    Morph_JN

    Joined:
    Nov 15, 2016
    Posts:
    123
    Honestly I don't know as I've never tried it out. I would say try it out and see. I'll ask around and see if I can't get a better answer.

    Edit: I have a better answer. It honestly depends. The shader for the skin is what handles the alpha injection masking, so you can't use a custom shader for the figure. For the clothing it shouldn't matter what shader you use... No guarantees that every shader will work.
     
    Last edited: Nov 18, 2016
  16. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    If each separate piece of clothing comes with it's own injection-mask, there shouldn't be an issue; should there?

    Can you find out exactly how the injection-mask is applied; whether it's through the shader, or with code within the dll? And if that is the case, what are the API routines that let us work with them?
     
    Last edited: Nov 18, 2016
  17. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,628
    I haven't reviewed this in many months, and my recollection of the situation isn't clear, but I think to get injection masks to work you need to be using transparent or cutout shaders. Essentially, the poke throughs get the cutout or transparency applied to them.
     
  18. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    I'm not sure about that. Looking at the shaders used, they are all variants of the standard shader, and none seem to reference the injection-masks. The injection-mask is referenced in the CIclothing script, but as that is within the dll, we can't see what it's doing with the mask. The masks are also set to read/write enabled, which leads me to wonder if there's some sort of per pixel maths going on - which for 2048x2048 images over n pieces of clothing doesn't sound like a performant method to do anything. Happy to be wrong on any of these points :)
     
  19. Morph_JN

    Morph_JN

    Joined:
    Nov 15, 2016
    Posts:
    123
    The mask is only applied to the figure (in fact if you look at one of the injection mask png's you'll notice it will match up with some part of the figure UV map). However, there is a way to use transparency to hide poke through on clothing. This seems to be a common enough problem that it is worth making a tutorial so that is what I'll be working on for the rest of the day.
     
    wetcircuit, hopeful and LukeDawn like this.
  20. Morph_JN

    Morph_JN

    Joined:
    Nov 15, 2016
    Posts:
    123
    Looks like the shirt might be poking through the sweater. I'm not sure about the console log errors though.
     
  21. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    It looks like a fair few of us are heading in a similar direction, and whilst poke-through clothing 2 body is sorted with injection masks, what we really want to see is how to deal with poke-through clothing 2 clothing. It would seem to be the single area of maximum impact for many of us :)
     
    umutozkan likes this.
  22. sixb0nes

    sixb0nes

    Joined:
    Nov 1, 2016
    Posts:
    6
    Solid product! Adding my vote for these packs as well.
     
  23. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Screen Shot 2016-11-18 at 6.40.00 PM.png
    Swapping out other shaders to see…. the issue is transparency???? ugh. I guess the Forward/Deferred discrepancy was the clue… I wonder where the jacket is borrowing the transparency map…. And why…
    (mummble grummble)
     
    Last edited: Nov 18, 2016
  24. Morph_JN

    Morph_JN

    Joined:
    Nov 15, 2016
    Posts:
    123
    Very quick and dirty tutorial. They are doing construction in the office so there was no quiet place to record so there is no audio. I tried to draw attention to important aspects using the cursor, hopefully you guys can follow along. On Monday I'll try to pretty it up a bit.

    At one point in the video I add a layer and draw a black line on the texture. This was to get a reference point on the figure and get an idea of how the UV maps looked since I didn't have access to them.

    I didn't actually get the poke through completely fixed. It is an iterative process that takes time. I just wanted to show the basic idea of how to do alter the clothing's texture to clip poke through. You'll want to wash, rinse and repeat when doing this.

    I used Photoshop for this, but I'd imagine you could do the same thing in GIMP.

     
    montyfi likes this.
  25. celebrus

    celebrus

    Joined:
    Jul 23, 2015
    Posts:
    88
    I appreciate your help. Is this a temporary work around or Morph3D's official solution. If this will be the solution, it is very dissapointing.
     
    hopeful likes this.
  26. Bigg_P

    Bigg_P

    Joined:
    Jul 16, 2014
    Posts:
    10
    I tried adding cloth component at the beginning, but it doesn't work. However if i pause the scene and add cloth component and edit the constrains and unpause it, it works fine.Does anyone know what causes this problem? or is there any workaround?
     
  27. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,628
    Are you sure this is a MCS issue? I'm not a cloth user, but I've recently read that it can have some odd behavior.
     
  28. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    When I instantiate a clone MCS model, I get the error :-

    NullReferenceException: Object reference not set to an instance of an object
    JCTTransition.HotfixUpdate ()
    JCTTransition.LateUpdate ()

    on the JCTTransition script on the hip bone transform. What is this error and what can I do to prevent it?

    Update:

    Ok, I think the issue is with AssetBundle workflow. For some reason when instantiating an MCS prefab from an AssetBundle, the CharacterManager script has lost all of the blendshape info. There could be a number of reasons for this, but one possibility is that the Morph files are not added to the AssetBundle as the file extension .morph is not a valid Unity textfile extension.

    Because the code is in dll format, it's not possible to see exactly what is going on when a model is instantiated.

    It seems that the MCS system is not yet AssetBundle friendly, which is a must for larger games. Happy to talk with anyone from Morph3D about AssetBundles if needed :) Can even provide AssetBundles of Morph3D content to show the issues.
     
    Last edited: Nov 19, 2016
    hopeful likes this.
  29. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,628
    My understanding is that for Unity, asset bundles are the way of the future. Everything needs to be asset bundle friendly.
     
    LukeDawn likes this.
  30. EddieChristian

    EddieChristian

    Joined:
    Oct 9, 2012
    Posts:
    725
    I just wanted to report that the light female package was causing issues with any newly import packages. It conflicted with newly imported materials and textures. Read here for more NFO.
     
  31. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    This is true. It makes patching larger games much simpler as content can be updated without clients having to download the complete package. Although the Morph3D code has to be contained within the client; clothing, hair, and models *should* be AssetBundle safe. So far in my checking, I fall at the first hurdle, with models failing due to unknown code running on instantiation. Without knowing what code is running, and what that code needs; errors are meaningless, except to Morph3D.

    It may be a very simple fix; I sure hope so :)
     
  32. Morph_JN

    Morph_JN

    Joined:
    Nov 15, 2016
    Posts:
    123
    it is a solution. I wouldn't say that it is the only solution, nor is it an official solution. I'm sorry you think it is disappointing. I can of course put in a feature request for a runtime solution, but I can't promise it will get implemented. It has been talked about and our devs are aware of the issue.
     
  33. EDarkness

    EDarkness

    Joined:
    Feb 1, 2013
    Posts:
    506
    I think poke-through has been one of the most irritating aspect of Morph3D that I hope you guys end up finding a better solution than what we have currently. It's spotty, works sometimes, and fails a lot of the time. There just seems to be too many things that can go wrong and I find that we (and you guys) spend a lot of time trying to help people fix it and that energy could be better spent on other things. I'm sure you guys get tired of messing around with this, too. Finding a better way of dealing with poke-though should be the top priority. At least I would think it would since it's such a common issue.
     
    Fenris2, wetcircuit and hopeful like this.
  34. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I'm working on an open-ticket issue now with the outfit I showed above that has holes where there shouldn't be any, but only at runtime. They say they can't reproduce the problem on their end, but I'm still pursuing it.

    A few negative experiences have dented my overall impression. I still like the figure and all the blendshapes…, but Unity is a moving target. MCS relies on several technologies that might be duplicated by using 3 or 4 different 3rd-party assets (Ootii's Mount Points, for instance: https://www.assetstore.unity3d.com/en/#!/content/16318 ). Seeing as how often Unity breaks assets due to some under-the-hood changes, it tends to make me skeptical that Morph3D will be able to keep up. DAZ isn't the greatest at maintaining compatibility with their own software, much less another company's…. I kinda wish we had a little more control, but I suppose it is give-and-take between a complicated figure using multiple systems, and a simple figure that (mostly) just works.

    The alternative is to get better at making my own figures :rolleyes: but where is the excitement in that? :p
     
  35. mrdl2010

    mrdl2010

    Joined:
    Jun 1, 2016
    Posts:
    23
    ETA of MCS tool? if this can not handle the poke-through of your own package, I doubt the mcs tool can handle asset of others.
     
  36. Gojira96

    Gojira96

    Joined:
    Jun 18, 2015
    Posts:
    32
    Okay so, after a few weeks of using MCS I've got a few things to ask.

    I honestly don't even mind right now that there is not a single piece of clothing that isn't poking through at least a little bit, but I have a huge problem with the performance spikes when AI with MCS model is created during run time.
    Game freezes completely for a second or two, anyone else tried doing so? I never had this kind of problem, and creating an AI gameobject with other models works without any issues.

    Performance spike is caused by CostumeItem.Start and CoreMesh.Start.
    Most of the AI is created during start, so that is not a problem, but there are some aspects of the game that have to be handled at run time.

    How do I fix this? Is there a way to combine a model with clothing equipped?

    One more thing, why are there no separate clothing parts of the "Midnight Rogue" ?

    Here is a profiler screenshot of the performance spike: Spike.png
     
  37. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Instantiation of anything causes freezes on the main thread. Before starting a scene/zone/area, create a pool of pre-instantiated characters, mobs, etc. Then you can lease them from the pools as needed. Clothing is another matter though. In a game, there's no way to pre-instantiate every possible piece of clothing, so keeping spikes down on clothing is way more important.
     
    Alexarah likes this.
  38. EDarkness

    EDarkness

    Joined:
    Feb 1, 2013
    Posts:
    506
    This is something I hope the next update fixes since it's giving me some serious problems on one particular platform.
     
  39. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Giving me an issue on PC. 10 characters come into view each with 8 items of clothing, I can get the characters out of the pool at very little cost, but then instantiating 80 items of clothing and hair.
     
  40. VeronHelstein

    VeronHelstein

    Joined:
    Nov 25, 2016
    Posts:
    3
    Hello,

    just a quick question. I'm pretty new to Unity in general. I bought a MCS charater und would like to know whats the best way to create animations for it (as I don't want to use off the shelf animations). I tried to import the MCS fbx in Blender, Poser and Daz3d but failed so far. In Daz3d i cannot access the morphs. In Poser I have the morphs but but couldnt apply an exported Animation to the character in Unity. Maybe a Unity extention for creating Animation directly in Unity - like Skele - would be the best way?

    Many thanks for any hint.
     
  41. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,171
    You don't need to animate the MCS character directly. You can animate any of the unity compatible characters (such as Ethan, the default Unity character). You can then use the Mecanim system to retarget the animations to your MCS character.

    Start here: https://unity3d.com/learn/tutorials/topics/animation/humanoid-avatars?playlist=17099
     
    Alexarah, VeronHelstein and umutozkan like this.
  42. Alexarah

    Alexarah

    Joined:
    May 1, 2014
    Posts:
    110
    Hi Morph3d is your EULA the same as DAZ3d in terms of the ownership of the end result characters? Like I noticed that DAZ3d ALWAYS retains the rights and ownership of the genesis characters that are designed using DAZ Studio regardless of how much they are customized even with clothing, hair, and morphs made from scratch. So in other words there's no way of stopping anyone from deliberately publishing a character that looks the same as mine. I figured since Morph3d is a part of DAZ3d expect is geared toward game development I assume that your terms are much more game development friendly. So anyway I've read your EULA but I'm still not sure if your terms are the same as DAZ3d in means of game developers being able to receive copyright to the end result character. If your terms are better than DAZ3d's then that's awesome but if not then there's no point in purchasing any of your products since I one of those who is not able to make characters from scratch and I've basically given up on DAZ3d because of their EULA. :( Please tell me your terms are game developer friendly!
     
  43. LunarExGames

    LunarExGames

    Joined:
    Feb 18, 2015
    Posts:
    44
    Hello. I have the Morph3D Male & Female purchased. I've been trying to get it to work with LipSync Pro but kept running into an issue when I add an animation controller (so the character can do an idle - but also a walk), the mouth stays open. I removed LipSync Pro and found that anytime I add a animation controller - even a new one - when I click play the mouth stays open. When I had LipSync connected, the mouth was wide open but can see the lips barely move. Essentially - it looks like whenever an animation controller is added, the mouth stays open. Need to be able to have the character walk with animation controller while being able to talk using LipSync Pro. Attached a screenshot of when I press play and how the mouth stays open. Please help!
     

    Attached Files:

  44. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I also came across this issue, but not because of Lipsync… it was my idle animation. Try some others, I eventually used one that didn't open the mouth.

    It can probably be fixed with a mechanim layer, but if you discover a better solution please post back.
     
  45. umutozkan

    umutozkan

    Joined:
    Oct 30, 2015
    Posts:
    406
    It is not an MCS issue, rather a mechanim issue (I am not even sure if it's an "issue". More like it's designed that way). Open mouth occurs when your animation's humanoid skeleton doesn't have a jaw bone. Unity's default behaviour is using the default rotations for nonexistent bones. If you downloaded the animation from mixamo try uploading a model with a "complete" skeleton and download the animation with model. Othervise you can edit the animation and add jaw keyframes to start and end (in closed position). Or find an animation that has a jaw bone like wetcircuit suggested.

    (You can see the default bone rotations, when you hit configure on the inspector when your model or animation is selected. Hit the muscle tab when mapping opens up. You'll see that mouth is open by default)
     
    LukeDawn likes this.
  46. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I wonder if you could also just disconnect the jaw bone?
    (**EDIT — yes, this works and is probably the simplest "fix")

    There are a few blendshapes for opening the mouth so the jaw bone might be redundant...

    Screen Shot 2016-11-28 at 12.26.18 PM.png
     
    Last edited: Nov 28, 2016
    LukeDawn likes this.
  47. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    SlackJaw is such a common issue. You can try modifying code to reset the jaw rotation before lipsync pro does it's work?
     
  48. AurimasBlazulionis

    AurimasBlazulionis

    Joined:
    Aug 13, 2013
    Posts:
    209
    You can edit a custom shader, assuming it already has a cutout variant.

    The way I did it with UBER was to copy the specular setup shader and it's CGINC files. Add _AlphaTex similarly to how _MainTex is defined. In CGINC files or the shader, find clip (somevalue) lines, move back until you see _MainTex used for the cutout part using common sense (sometimes it is right in the clip functions). Then change _MainTex with _AlphaTex and add a _AlphaTex definition in the cginc the same way _MainTex is defined (float4 or sampler2d, but it depends).

    Note 1: you might encounter some functions called which use _MainTex inside them.
    Note 2: you might better off use _AlphaTex.r instead of _AlphaTex.a in the shaders and their includes. It seems like alpha does not really exist on the masks.
     
  49. AurimasBlazulionis

    AurimasBlazulionis

    Joined:
    Aug 13, 2013
    Posts:
    209
    So, will there be some fix on the instantiation performance, apart from using pools? Could not that part be multi-threaded in some way? I am OK with the character appearing a bit later.
     
  50. LukeDawn

    LukeDawn

    Joined:
    Nov 10, 2016
    Posts:
    403
    Any news on the NullReferenceException from JCCTransition.HotfixUpdate() when instantiating a model from an assetbundle?