A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by berk-maketafi, Sep 17, 2015.
curious how youll save that. through a scriptable object or ?
Not sure. I'll play with some options. Maybe an XML file or something? Or maybe even a text file with the info in it. I assume that this would be something a lot of people would like to be able to do as it adds a bit of flexibility moving from project to project.
I've done this before with ScriptableObjects, but I imagine it's easy to store as XML or JSON as well. You can get all active morphs with MCSCharacterManager.GetActiveBlendShapes(). Store the localname and value for each morph and then you can load those in again with MCSCharacterManager.SetBlendshapeValue(name,value). Don't forget to call MCSCharacterManager.SyncAllBlendShapes() afterwards.
I might share my script at some point but it has a bunch of extra stuff and I haven't tested it with MCS 1.7 yet.
I have my NPCs store the values of what they look like in an array currently, but for some reason I never thought about actually saving that file somewhere for future use. This would definitely be good for long term flexibility. So next update will include importing/exporting blendshapes. I probably won't work on that until next week, though. I'm in the middle of trying to fight some fires in my own game. Thanks for the info.
What kind of other functions did you add to the system?
I also store the active hair and clothing, as well as overrides for textures and blendshapes. Blendshape overrides can be helpful in case of pokethrough, for instance to make a shirt flare out a little bit more on the bottom by increasing the PearShape morph on that specific item so it fits over wider pants.
That sound like a good idea, most soft body systems and dynamic bone system have a influnce/Intensity property that can be gradually dialed up when the game object is spawned
Is anybody else having problems with MCS on Unity 2019?
i think everybody is.. to my knowledge no one can get it to work .
There's an issue with ordering. It's something on my list of things to fix, but I think the only way to really do it is to re-import the models. I'll be delving into it seriously next week. The issue is that if models get fixed, then they'll need to be redistributed and I'm not sure how we can go about doing that. I guess we'll jump through that hoop when we get there.
With the partial fix I posted a while back the only thing you need to replace are the StreamingAssets, which I think should be fair to redistribute. I've already set up a server for hosting the new files; I just need some time to generate and upload.
However it's just a partial fix so I don't know how if the definitive fix will be as easily amended, or if it does indeed require the entire model to be patched.
To be honest, I don't mind reimporting the models. The issue is how to distribute the updated files. Not everyone can technically get them as they were sold. The base models shouldn't be a problem as those are free. The CiaoBella outfit is free, too. That's where I'm gonna start.
Once the models are reimported, then it should be fine for everyone to use and we shouldn't have to do it again. I'm considering it a long term investment.
Would probably be better to distribute a tool to generate the reordered models, that way people can fix what they own.
That's what I'd like to do, but I'm personally not too familiar with messing around with models on that level. Heh, I guess it's never too late to learn, eh? I'll mess around with this in more detail and perhaps talk to some folks about what would be the best way to compare and connect the messed up verts, because when I loaded the models into Blender, I could see there's definitely some verts messed up. Of course, perhaps I didn't load them into Blender properly, either.
I just stumbled upon this issue in 2019 (and latest 2018 versions as well), thought I'd share in case other people are working on a fix:
The nodes and offsets values of every morph in the JCT Transition component are somehow a factor 10k off, which causes the model to just disappear the moment you activate a morph. When I divide everything by 10000, the morphs are unfortunately still broken, but at least all the vertices now remain contained within a visible range...
Hmmm...thanks for the heads up. Looking over the numbers, it's not just a factor of 10k, but something else. Looks like there's something messing up values in 2018/2019. Tomorrow I'll be working on the MCS stuff again, so I'll look into this and see if I can find a fix. Very interesting as I didn't see anything strange in 2018 when I ran this through my test project. Everything seemed to work fine even with morphs enabled. I didn't try some of the more extreme morphs like Aged, but I'll mess around with that to see if something is going wonky somewhere.
Great catch! As a matter of fact, that's totally it! I exported the values from 2017 and imported them into 2019 and now everything works. EVERYTHING WORKS! Team effort!
Next step is to implement and distribute appropriate fixes. In summary, there are two things broken in 2019:
- There is a mismatch between vertex order of the model and the vertex order of the blendshape data in StreamingAssets. Either we have to overwrite the StreamingAssets (easy to patch but has to be done for every new project) or fix the base model (hard to do and probably illegal to distribute for paid assets).
- The JCT morph values are somehow scrambled upon importing the model. This should be something we can fix in the MCS_Importer.dll.
Meanwhile, I'll implement my quick and dirty JCT fix into my converter tool.
Edit: diving a bit deeper and it appears the JCT morphs are being reimported every time you restart Unity or go into play mode, which means you'll need to apply my fix every time. That's not great.
Edit 2: Updated my MCS Converter: https://github.com/erikvdb/river-mcsconverter
Thanks for contributing. My goal at this point is to fix the base model for the male and female. These are free and can be used in all versions of Unity. Unfortunately, I'm not super familiar with making 3D models, so if someone would be so kind as to assist, I (and everyone else using MCS) would greatly appreciate it. This does create a problem for clothes and that's something else that has to be discussed with @jjanzer_tafi.
I have a couple of ideas of what might be going on, but I'm gonna mess around with MCS in 2019 today to test some things.
My goal originally for this next build was to do some code cleanup, but it looks like I may be doing a bit more. The ability to export blendshape data is going to be in and I hope to have an improved male/female model for everyone to use.
Also, those who would like to use SALSA from @Crazy-Minnow-Studio, I'm working on a OneClick for the MCS models. To be honest, this has eaten most of my time in the last day or so and I'll continuing that work this afternoon. I don't know how I'll be able to distribute this, but maybe the SALSA guys would be so kind as to throw it up on their site.
I've tried editing the models in 3Ds Max and Motionbuilder before but I think the FBX files have some custom parameters that get discarded by those programs, making them break in Unity. Blender's FBX interpreter might be more flexible. I might look into hacking into the FBX through the FBX SDK directly, but frankly I'm happy with patching the StreamingAssets instead.
I was just thinking about how I would need to get my lipsync working with MCS as well, unfortunately we use Rogo's LipSyncPro instead of SALSA, so I won't be able to use or contribute to your solution
Yeah. I've been looking into the model situation and I'm starting to get the feeling that Tafi is gonna have to do it, or release the original .fbx files. I haven't given up on this as there has to be a solution that works. Heh, we'll figure it out. I'm not too worried about it.
I haven't heard of Rogo's LipSyncPro. I should look into that one, too. Maybe they can work with us in providing a way for people using MCS to use that one, too.
Converting the Morph3D preset for LipSyncPro to work with MCS turned out to be incredibly trivial. I've asked Rogo Digital to upload an MCS extension, but it's just a matter of replacing "M3D" with "MCS" in one single file.
Found the issue in the JCTImportUtility:
In parsing the JCTData, it uses System.Convert.ToDouble(), but in newer .NET versions this is sensitive to the user's region settings. In my case the decimal and thousands separater are swapped. This can be solved by parsing with CultureInfo.InvariantCulture.
Admittedly I'm not too familiar with all the different ways to parse stuff so if someone has a better solution please share.
Started working on what I'm calling MCS 1.9.1. Since this build is going to add a couple of things.
1. You'll be able to import and export your blendshapes for a model. They'll be stored as an XML file and you can specify where the files are. This will make it a 1000 times simpler to make NPCs and move them from project to project without creating a whole new model.
2. Blendshapes related to facial movement will be added to the Skinned Mesh Renderer upon dragging the base mesh into the editor. I found out that facial blendshapes are not added to the SMR automatically. This means that when trying to access them through the SMR you'll get an error initially since they're not there. I have it set up so that they can be accessed this way by other programs...or yourself if you want them. This was a big problem for me when trying to make the QuickClick for SALSA.
3. Temporary fix for Streaming Assets issues in 2018/2019. This will be a temporary fix, but one that should work and be mostly without any involvement from the user. What should happen is that it'll just work and you'll wonder why it works. Heh, heh. Gonna need a lot of testing on that so my timeline for getting this out will be sometime next week. The end game for this, however, is to fix the models directly. That's gonna take a bit more time.
The code updates I was going to do will have to wait since I feel like these other things are more important. I'll look into incorporating some stuff that @ru_erikvdb is working on so that those things can live on in other builds. I still haven't heard back about distributing MCS with code instead of the .DLLs. Once I get the go ahead for that, then I'll have both available.
Thanks to everyone who's helped with this. I feel like we're in a much better situation than we were a few months ago and I think we're getting closer to some stability and that would be good as it would allow us to get to the content part (which is vastly more fun).
Sorry just saw this notification pop up... What was/is the problem you're running into?
The problem is mostly distribution. Since clothes are things sold, then we can't fix the models and put them up for people to get. The base models are free and a couple of the clothing models are, too. Then, there's the issue of being able to distribute a project with the code instead of the DLLs. Sure, you guys said it's okay to use the code in our projects, but can we distribute that along with the DLLs?
Honestly, I have a lot of questions as I've been working with the whole system on a more intimate level these days and there are a lot of things I don't know. However, right now I'll settle for trying to solve the distribution issue.
I'm planning on making 2019 compatible StreamingAssets for all clothes in the Daz mega pack available for download, maybe even make a tool in Unity that automatically grabs and updates them. If that is allowed.
I'm also hoping some of our fixes/improvements will make it into the official release.
For the paid assets you are correct. If someone wants to convert all the assets and repackage them, I'll get them uploaded so people have access to both the original (pre-2019) and post 2019 as needed if they have bought the pack in the past or in the future.
If you have specific questions about distribution feel free to ask, I'll do my best to answer them. I'm not sure I understand your first question "...but can we distribute that along with the DLLs", are you referring to assets like clothing?
Hosting/updating a converter (runtime or offline) is fine, and I think that is probably one of the better ways to do this that way there aren't 2 giant sets of assets. I'd also be happy to accept a pull request for a converter into the main master branch if you'd prefer.
So I put out an update a couple of weeks ago and it was a .unitypackage with the DLLs. I wanted to put out a .unitypackage with the code for those who wanted it that way. Can I do that or can we only distribute the DLLs in a bundle to the public?
Good to know about the clothes. That would make working on them a lot better, because a few of the clothing packs aren't organized properly and some even are using the old folder system. Which makes them hard to use with current MCS. I'd like to fix them, but with no way to get the fixes to people who purchased the packs, I held off. Now that I know this, I'll throw this on my list of things to fix and I'll let you know when I have the updated .unitypackages.
You should recreate the MCS artist tool Jazz and than people will just use that to update the clothes for 2018/2019
I don't see any way to convert the assets without at least hosting something:
1. Host the entire fixed unitypackage for 2019, which means people won't have to do any conversion, but you do indeed end up with 2 giant sets of assets (up to 1GB per file). Hosting will have to be done by Tafi/Daz to make sure only those who purchased the assets can download them.
2. Host the fixed StreamingAssets. These can be imported fast and easy and are relatively lightweight (<25 MB). I'd be happy to host them on our university server (longevity guaranteed), but I don't know if the StreamingAssets are technically protected by copyright or not.
3. Host the conversion maps and convert the assets locally in Unity. This is the most scaleable and open source solution, but conversion takes a while so can get quite tedious.
I would very much be in favor of option 2 and have already started creating patches for the free assets:
Just import the original asset, then import the corresponding 2019Patch.unitypackage and it'll overwrite the StreamingAssets.
@ru_erikvdb I've been just including them with the main build, BUT I think best case scenario is that they're included with the actual clothing piece. If @jjanzer_tafi drops them into the files (or we do that and then Tafi hosts them), then all everyone needs to do is update the clothing piece. I've already written a part in the main codebase that checks to see if the user is using something newer than 2017 and then simply updates the streaming assets once the model/clothing piece is added into a scene. This way, the user doesn't need to do anything at all besides get the update of the model. Granted, it does make the whole package larger, which is something I'm against, but without updating the models themselves to fix the ordering, this is all we have to go with.
I'm looking into getting the models fixed and a friend of mine may be willing to do it...I just have to do a bit of convincing.... Heh, heh.
Good thinking, I like that a lot!
Let's figure out a way to split conversion work and how to share the fixed files.
Been working hard on upcoming changes to the MCS asset. I wanted the new build to be released last week, but changes in how I wanted to handle things meant that I needed to rethink what I was doing and there have been some growing pains to get to that point. So far, so good, though.
The main issue is really just making the transition to 2018/19/20 to be easy without having to beak things so badly that someone has to reimport everything. It's taken a bit more time to iron out everything, but the good news that importing/exporting blendshapes for characters works great. Can't wait to add that into my own project as I have to keep rebuilding NPCs with every reinstall of MCS.
Unless something crazy happens, I think I can get this update out this week. I'll be really interested to see how the changes will function in the real world. After this is done, then I think I'll be looking at user requested features as well as finding a way to have a long term solution to models as well as how to create new clothing/facial hair from the Daz base.
Good afternoon! Can this be used with genesis 8?
It has its own model and clothing. I believe they're derived from Genesis 3, but if you're looking to use DAZ models with MCS, then that's not possible. After we get this whole 2019 stuff figured out, then we'll look into how we can convert DAZ clothing into the MCS system so that if you buy a set there, then you'll be able to convert it to the MCS and use it in games. We're not at that point yet, however. Just keep following this thread and stay up to date with progress we're making.
Took a while, but we now have another stable release of the MCS system. I'm calling this 1.9. You can get it below:
There are a couple of things that you'll need to know about this. First, if you're using Unity 2019 and install it, the first time you click on your models, it'll try to update them. Same with dragging them into the scene. Once the update is done, then you'll need to do a full restart of Unity. Not doing so will cause strange things to happen and if you mess around with the models before a restart, the only way I've been able to fix it is to reinstall the models. So keep this in mind. After restart, everything should work fine and no more updates are needed. It'll periodically check the models, but nothing should happen.
For clothing/hair, you just need to add them to the model like normal and they'll automatically update. However, there is one very important thing you need to have before the update is done. You have to have the .covx files installed in the appropriate Streaming Assets folder for that model. How do you get these files? Well, what you can do is fire up Unity 2017, add the MCS system, and it'll allow you to export the information. Just drag the Costume script into the box, hit Export and the files will be generated. You can add them to your 2019 project and all should be fine. Just remember after all vertex order conversions, you'll need to restart Unity for the changes to take affect.
If you don't want to go through the trouble, then I'm going to see if I can put the .covx files for each clothing item in a .unitypackage so you can just easily import them into your project. Ideally, I would LOVE for these files to be included with the original packages so that anyone who downloads them will have them immediately. Maybe @jjanzer_tafi will be so kind as to do that for us. Either way, I have most of the clothing items, so send me a request for the ones you want and I'll make them available.
Male and Female .covx files are already included, so you don't have to do anything.
Now, here's one of the key points, DON'T EVER DELETE or even REINSTALL the .covx files. If you do, then the system will automatically try to update since the check against the file will fail and it'll keep looking. Or, in the case of reinstalled files, it'll fail to read the correction note in the file and then reconvert the main models again which will screw up the models and you'll have to reinstall and convert them. Not really a problem, the files are small and shouldn't get in the way. I'm considering adding a button on the models that will turn the check off completely, but we'll see how it goes in the coming days/weeks.
You can now save/load your blendshape data! Yep, that's right. This means you can now save that look you've been working on for days now and use it in any version or game you want that is using MCS. Now, it doesn't make note of textures, materials, hair, etc. but now you don't have to remember all of the numbers and type them in when you want that character in another game. Simply load up the .xbd file and you're golden.
It's also possible to save/load via script. This means you can do this in game if you wish. What you'll need to do is call:
string myFile = "Assets/Resources/character.xbd";
//to load a file
//to save a file
The only real bug I know of at this point is that Unity 2018.4 doesn't like the system and will lose connection to the morphs after you adjust a couple of the sliders. Not sure why that is, but it's something I'm looking into. One thing I have noticed is that if you adjust the character and then close Unity and reopen, then all of your changes will be fine. It's just something to do with the visual aspect of it right now. My recommendation right now is that if you're using 2018.4 avoid installing or updating until we get a fix. Every other version should work fine, but if you notice any strange behavior, let me know.
I guess that's it. I still haven't finished the SALSA OneClick and that's something I'll work on tomorrow for those who want to use SALSA with MCS. The next update should be to fix whatever is going on with Unity 2018.4 and to clean up some of those warnings which are from some code that has been deprecated and needs to be updated. Gonna be a big undertaking, so I haven't messed with that yet.
Before I end, I want to give a BIG shout out to @ru_erikvdb for his contribution in getting this 2019 situation ironed out. We owe him big, I think. Thanks again, man!
I forgot to mention that the update will also update the JCT morphs for Unity 2019 for the male and female models. It should only do this once. If you're having trouble with this, let me know. It happens in the background and is fairly nonintrusive, but for the sake of transparency, I wanted to throw that out there.
@EDarkness Question - do we still need to follow the steps where we load first in Unity 2017 then copy the information over to Unity 2019 so that we capture all the .covx files? OR, can we skip that and go straight into Unity 2019?
Where you get the .covx files is entirely up to you. But they have to be in the project BEFORE any conversion will happen. So if you install on Unity 2019 as normal, then you only start with the male/female .covx files. It'll automatically convert for 2019 when the model is added via the inspector. However, none of the .covx files for clothes/hair are included. You'll need to get those from somewhere. You can do it yourself by loading up/installing MCS into Unity 2017 with all of the hair/clothes you want and export the files for the clothes you have. See screenshot below:
Drag the CostumeItem to the box and then hit Export. You'll need to then move those files to 2019. They're stored in the Streaming Assets folder of that clothing/hair item.
Or you can ask someone to get them for you and you can install them into 2019 for conversion. I should go ahead and put a few of them out there for people just to make it easier. If you need one of the clothing/hair sets let me know and I'll go ahead and make the .covx files for you (assuming I have that content pack....).
Great work @EDarkness . I'll have to dive into the code a bit more to understand your system a bit better, but it's nice to have it out there.
One thing I'm not a huge fan of is storing the .covx files into the StreamingAssets folder and requiring them to stay there. The SA folder is a special folder in Unity for files to stay accessible via pathname even when building. As such they will be included with every build you make even though they're only necessary in editor once to do the conversion.
Also is there a way to make your converter compatible with my json conversion maps? I've already exported a whole bunch of those, lol, so I'm not going to redo all of them. Json is also a bit lighter than XML.
Well, in theory, they can be deleted after the conversion is made. But with the auto check happening when someone adds an item to a model or drags a model into the game, those files need to be stored somewhere and I went for ease of use and easy to understand. They're in the same folder where the converted .morph.mr files are going to be. I considered making a new folder for the .covx files, but then it felt like adding more bloat and one more folder that someone is gonna have to worry about, especially with the sheer number of files we're talking about for each clothing item. I can reevaluate that if it is a problem. There's ultimately no real problem putting them in another folder somewhere in the MCS system. I'd like for that place to be standard so that the system is simple.
I don't think it'll be too hard to add in a .json converter as well. I'll look into this next week. Could you send me one to test with? I also have a bunch of outfits done already. I could just give you those files to save some time.
Hey folks. It's been a crazy few weeks, but I'm trying to keep myself busy with a few projects and my own game. Been going well so far. Gonna do some work on the MCS stuff next week and a couple of things I'm going to adjust.
1. I'll be removing automatic conversions in 2018/2019. My reasoning for this is that I don't like the overhead in the long term and having to keep more files in a project just for this is not cool, either. Going forward, I'll just leave it up to you (the user) to do your own conversions when you need it. At least then, once you do the conversions, you won't have to do them again and messing around with the models won't accidentally break anything. You'll be able to rest easy and keep project file sizes down as you'll be able to delete (or move) .covx files.
2. For some reason if you change the materials for the body, the whole system gets messed up. Eye and lash and body materials are connected. This means that if you want to add your own body materials, you're stuck as the system will not know what to do and swap things around. Gonna turn this off. It's odd behavior and limits flexibility. I wanted to add more races to my game, but this behavior is really getting on my nerves.
3. I'll look into the viability of making .json readable, but if these files are going to be temporary anyway, then I'm wondering if that's really necessary. The conversion shouldn't be a problem, though. I'll keep everyone posted on that front.
These are the main things on my mind right now. I want to be able to put more flexibility into the system as the original design is super rigid. Eyes and skin color are some of the biggest changes we can make to characters and not being able to do that efficiently is bad. The eye system is already pretty messed up as changing eye color has been an issue from the beginning. I'm exploring the idea of getting a shader to put on the eyes that will allow easy eye color changes. Skin tone/color is another issue as it seems simple, but under the surface is more complicated. I want to smooth this out a bit.
Anyway, that's it for now. I'll keep everyone posted on future developments.
Yessir weird times indeed. The uni I work for has been in lockdown, so most of my MCS related projects have been postponed or given lower priority since they have to run in our research labs.
@EDarkness I think it's a good decision to remove auto conversion. With Unity dropping LTS support for 2017 this month it's clear that everyone will just have to move to 2019 or later so I'd rather just have to convert once, repack the assets and be done with it.
I've also been playing around with saving materials in presets and I did get it working pretty reliably although there's definitely some funkiness going on. With the old Morph3D assets I've been using the Overlay parameter in the Volund skin shader to replace eye colors, however the shader that comes with MCS is different and does not have that <_<. I ended up creating my own shader, which I aim to develop a bit further (including adding skintones) and make publicly available, though I'll have to see whether I want to end up going with LWRP/URP anyway.
Is there a simple way to just export clothed characters as FBX (maybe with facial blendshapes) and forget about all the MCS functionality ?
No, at least not derived from MCS.
For both technical and licensing reasons you'd have to buy Daz3D models and export them to FBX in Daz Studio.
Is there a tool to make our own clothing ? i.e. in the mcs they have artist tool right ? So is there a chance ?
As far as I know, the Artist Tools still work. I'm not a creator, so that's an area I don't know a whole lot about.
Thanks for the repos. I was able to test the free packs for male and female in 2019.3.10 and after a few botched attempts got the morphs working. LOD system still seems off, but for now I just use LOD0. Great work.
@EDarkness Thanks for the repos. I cannot seem to expand the Character manager options (Morphs, Morph groups etc) in 2019.3 after installing the new package. The steps I followed were
1. Import the MCS-1_7-CodeAndShaders
2. Import the MCS_1_9_DLL from your GitHub repo
3. Import the MCS-1_7_Female package
4. Drop the MCS female model to scene.
5. Restart unity
After that trying to expand any of the options don't seem to work
Can you pls help throw some light? Thanks
You don't need MCS-1-7 Code And Shaders.
All you need is MCS_1_9_DLL and the MCS-1_7_Female package. The MCS 1.7 is the old system and at this point, it's outdated.
I ran into the same problem or thought I did. In 2019.3.10 what I realized is you can't click the carrot like you do 2017-2018 but in 2019 you double click the name and it expands. Was so thrilled, as I think I got stuck last time I tried there too. Who would of though a double click hope that helps!
fyi @EDarkness I am making a few bugs notes. I can try to fix myself and send PR or if you open issues tab you might be able to fix faster or when you are in there. i.e. props didn't seem to work right, and then the LOD thing I can document in greater details. Also I am having some success with changing the materials out fyi, since the LOD thing messed up even before these past 2 revs. (LODs have been messed up for me since 2018.4 with Asset store M3D version, and still with mcs 1.7, the patch I think also they still were messed, and mcs 1.9) I'm sure other people see it basically its like the LODs don't trigger the mesh render but still turn the top level LOD0 material off. Again I can send pics or whatever here or GitHub would be easier if you felt like getting semi organized ;-) at any rate, I am good at putting together lists of crap to do