Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

Discussion in 'Assets and Asset Store' started by FernandoRibeiro, Dec 24, 2013.

  1. Prod212

    Prod212

    Joined:
    Dec 13, 2017
    Posts:
    17
    Thx for the reply but my problem isn't actually implementing the animation, the animation is working perfectly fine and i've followed this tutorial but the main problem im getting is when this animation is being played, the DNAs have no effect on the scaling of the actual model.
    This is how it looks when the animation is being played and keep in mind this has all the predefined DNA values:
    View attachment 411445

    This is how the model should look but for some reason the default scaling overwrites the DNA when the animation is being played:
    upload_2019-4-27_8-22-18.png
     

    Attached Files:

  2. HP

    HP

    Joined:
    Nov 20, 2012
    Posts:
    80
    @kenamis It's not working anymore with the newest UMA version.
    The layers reset again after close and reopen the editor.
     
  3. Ne0mega

    Ne0mega

    Joined:
    Feb 18, 2018
    Posts:
    755
    Unity 2019.1 brand new clean install.
    First thing, UMA 2.8.1 clean install.

    UMA 2.8.1 worked fine in 2018.3
    In 2019.1, I have 46 errors, they all mostly look like this:
    Assets\UMA\Core\Extensions\Timeline\UmaRace\UmaRaceTrack.cs(9,6): error CS0246: The type or namespace name 'TrackBindingTypeAttribute' could not be found (are you missing a using directive or an assembly reference?)

    All in the timeline folder.
     
  4. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You need to download UMA 2.8.1 from the asset store using unity 2019.1. there is a change to the asmdef file you do not get if you downloaded it with a previous version.

     
  5. jiguja_unity

    jiguja_unity

    Joined:
    Jun 22, 2018
    Posts:
    4
    Excuse me, does UMA support custom head mesh replacement?? If yes, how to do that? Because I do have my own face mesh of myself..
     
  6. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    The download has an example of head replacement in it. To do it correctly, would require you to be able to match your custom head mesh to the body, rig it, export it, and create slots/overlays as needed for it. Please see SecretAnoraks for modelling, rigging, and creating slots and overlays.

    If it were me, I would simply merge the face texture onto a copy of the existing face, and then adjust the DNA to get it close.
     
    hopeful likes this.
  7. drcrck

    drcrck

    Joined:
    May 23, 2017
    Posts:
    328
    Selecting the included DynamicCharacterAvatar prefab freezes Unity 2017.4 for 1-2 minutes, then the inspector finally appears. Is it a known bug?
     
  8. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I've seen delays of 20-30 seconds when I've loaded up every UMA resource I had in the lib. Have you loaded up the Global Library with a million UMA resources? It has to load everything in the lib when something that uses the lib is first selected. I recommend to trim out everything you don't need, resize textures that can be smaller, etc.

    If that's not it, are you setup to use Asset Bundles, and perhaps it's looking for a server or something?
     
  9. drcrck

    drcrck

    Joined:
    May 23, 2017
    Posts:
    328
    What is Global Library? :D
    I just imported the latest version from the asset store + also tried with the latest rc from github, same behavior
    I don't use Asset Bundles
     
  10. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Seems like something is very wrong. The global library sits in the resources, and has a reference to UMA objects. It needs these objects to be able to construct UMAs on the fly. When you access something in UMA the first time, it has to load the library from the resources, and because it has references to the objects, it loads those too.

    If you are running UMA on a network drive, or perhaps from a thumb drive, this can cause a slowdown. But usually only noticeable if you have loaded it with a ton of resources.

    All I can say is that I don't see that behavior with either the previous RC or the release of 2.8.1.

    If you click on something else, and then click on the prefab again, does it show up right away?
    If that is the case (only the first time is slow), then it's the library load.
     
  11. drcrck

    drcrck

    Joined:
    May 23, 2017
    Posts:
    328
    no, it happens every time I select it, not just once
     
  12. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Not sure what is wrong then - you might just create a new one from scratch - it's just a gameobject with a "DynamicCharacterAvatar" component on it.
     
  13. drcrck

    drcrck

    Joined:
    May 23, 2017
    Posts:
    328
    It's selectable now, but doesn't render anything, saying "uma data not loaded".
    How to load it? I have the UMA_DCS prefab on the scene, not sure what else should I do
     
  14. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You need to select an Active Race before it can build a UMA.
     
    drcrck likes this.
  15. Cleverlie

    Cleverlie

    Joined:
    Dec 23, 2013
    Posts:
    219
    hi guys, is there any roadmap page or something? I wanted to check if there is any plans on improving the model importing process, I'm the guy who had several problems trying to import a custom humanoid model (with custom skeleton) in UMA, some weeks ago.

    over the last two months I tried several ways to export from blender and even from Cinema4D, but I had no luck, but I remember someone mentioning that there are plans on improving on the way UMA imports the models, maybe an algorithm that does some magic on the bone rotations as the internal Unity importer does? just wanted to know if it is in any foreseeable future? for the moment I had to go with using mesh baker to kind of optimize in one batch our runtime dynamically dressed NPCs but I'm eager to use UMA, ideally :cool:

    cheers!
     
  16. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    There is a new Content Creation doc that shows all the correct settings to use to export from Blender 2.7 and Blender 2.8 included with UMA 2.8.1 in the UMA folder. While I agree it will be much nicer to get Unity's conversion working, until then, you should be able to successfully export from Blender using the parms in that document.

    As for the roadmap, it's on trello here: https://trello.com/b/Vsy00s8N/uma-features-list
     
    hopeful likes this.
  17. arteria

    arteria

    Joined:
    May 31, 2007
    Posts:
    2,189


    New Release today - 'Tribes Man & Woman Costume DUO Pack'




    'Tribes Man & Woman Costume DUO Pack'
    Pack Contains:


    • 16 Slots
    • 8 Overlays
    • 16 Wardrobe Recipes
    SLOTS Included & Overlays & Wardrobe Elements for:

    • Boots
    • Tabbard
    • Belt
    • Belt Padding
    • Trousers
    • Cape
    • Cloak
    • MALE & FEMALE VERSIONS included
    Pack can be purchased from Arteria Webstore, via below link for just $25 for both costume sets!

    https://arteria3d.myshopify.com/products/tribesman-woman-uma-costume-pack
     
    Jaimi and Firlefanz73 like this.
  18. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,316
    Looks great :)
     
  19. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    One - UMA is open source. You are more than welcome to contribute. However, putting everything in one folder makes it very hard to prune things when you go to remove objects that have dependencies. In addition, there are requirements from Unity about having things in specific named folders.

    Second - some of the design choices are inherited from the original developers, who had different ideas about how UMA should work. Thus - the slot names and overlay names being different from the asset names. In code, we call those "evil names" (programmer humor).

    Third - The global library and recipe editors were specifically enhanced to help you find items. There is usually an Inspect button and clicking on the item will "ping" so you can find it in the project if you need to.

    In addition, you can search the global library itself for items. it has every asset indexed by type. And it has a search box (and it can search by asset name or internal "evil" name.). If you need to find an item, type part of the name in the search box - the library will filter the results as you type. You can find it in seconds.

    In the example picture here, I was looking for "Color Upper M_Poor 1" asset (which in this case, has a name and asset name that are the same). But I could change what it was showing by pressing the "name" or "asset name" button if I needed to.

    GlobalLibrary.jpg

    Third, We do this for free. I understand your frustration, but this kind of post isn't really helpful. We're not stupid, we're just working with an existing codebase, and we don't want to break peoples existing code when we don't have to. We will be rewriting all of the recipe and asset handling in the next big release (UMA 3). But this will require anyone who updates to it to recreate absolutely every recipe. It will be painful, just like the update from UMA 1 to UMA 2 was painful, even though Joen wrote a bunch of helper tools to assist.



     
  20. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    I think it's great that you guys are making plans to tackle the "evil names" issue. With UMA being around so long, and being altered here and there, it's developed some cruft, and some things are painful to change.

    I didn't take the poster's comments as being that negative. I'm looking forward to the future changes, and much thanks to you guys who are doing the developing! :)
     
    Jaimi likes this.
  21. zSkeeter135

    zSkeeter135

    Joined:
    Apr 12, 2015
    Posts:
    19
    is there a way to highlight the slot at run time? basically when the the player has their character panel up i have an uma there to show the player what their gear looks like. I would like to be able to have the player be able to hover over say the chest for an example and have that slot highlighted. I thought maybe if i put a collider around the area in question and use ontrigger enter/exit and then change the color but i cant find the color option how to get the slot or overlay. Any ideas on how to do this or where i could ask?
     
  22. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    For completeness, I'll start at the top.

    A UMA is constructed from a recipe. There are several ways to generate this, but the most common is currently using a DCA to construct the umaRecipe from a set of wardrobe recipes and a base race recipe. Wardrobe recipes can contain multiple slots (and duplicate slots), and multiple overlays. The base race recipe contains multiple slots and overlays as well (but no duplicates).

    When a DCA is built, it merges all of those recipes together into a single recipe on the umaData.

    You can access the umaData.umaRecipe for any avatar, and that will give you the core UMA slots, the overlays on them, and the current value of the colors assigned to the overlays.

    You can modify the colors in the umaRecipe, and then tell the system to rebuild the textures calling umaData.Dirty(false,true,false).

    Unless you have specifically designed it that way, there is no one-to-one relationship for UMA core slots to Wardrobe recipes.

    Don't rebuild your character the normal way, as that will cause it to recreate the recipe and wipe out your changes.
     
  23. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    Hey!

    I am trying to use UMA with AssetBundles and I got it to work. I loaded a RaceData, it's Overlays, Meshes and Textures from an AssetBundle and Unloaded the AssetBundle when the Character is dead. However, when I use the Memory Profiler to look at the Texture Memory, the Loaded Textures from the AssetBundle still remain even after the UMA is destroyed. I assumed Unity would take care of Unrefernced Assets in Memory. I doubt if Resources.UnloadUnusedAssets would help since I loaded these from an AssetBundle outside the Project and not via Resources.

    Thank You!
     
  24. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Since you loaded them from an AssetBundle, you can free them by unloading the AssetBundle with AssetBundle.Unload(true). Note that if you have references to the assets they become unusable.
     
    hopeful likes this.
  25. Gillissie

    Gillissie

    Joined:
    May 16, 2011
    Posts:
    305
    I just ran into an issue where some light probes are affecting my UMA avatar when I don't want it to. The solution is to set the renderer's "Light Probes" property to "None". However, since the renderer is created dynamically at runtime, I don't know the best way to do this. I would prefer that UMA has a property that can be set, which handles it, so that I don't have to make a GetComponent<SkinnedMeshRenderer> call on every avatar I generate. Suggestions?
     
  26. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Shouldn't be a big problem to add that to the code, I'll add it to the trello list. Generally, things like that are fixed by fixing the lighting and environment. What are you seeing?

    Also - if you need something now, you can create a quick script that hooks into the "Character Created" event that you can then manipulate the renderer, so setting the renderer values all happens automatically.
     
  27. Gillissie

    Gillissie

    Joined:
    May 16, 2011
    Posts:
    305
    Thanks. Yeah, I created an extension method that I'll call in the event callback, which iterates on the umaData.GetRenderers() array, so I don't actually have to call GetComponents<>.

    The problem I ran into is that I have a scene with baked lighting data that is additively loaded to the main scene as needed. The main scene is what handles showing the player profile screen, which includes an UMA avatar. The light probes from the added scene are affecting the lighting on the player profile avatar, which is making the lighting unexpectedly tinted out of context. I learned that light probes don't have a falloff range, and also don't have a culling mask. The only way to not be affected by light probes in a scene are to disable the option on the renderers.
     
  28. Gillissie

    Gillissie

    Joined:
    May 16, 2011
    Posts:
    305
    Others may find this code useful... and it's expandable for doing other common things on the avatar after it's been created.

    Code (CSharp):
    1. public class UMACharacterCreatedCommon : MonoBehaviour
    2. {
    3.     public LightProbeUsage lightProbeUsage = LightProbeUsage.Off;
    4.     public ReflectionProbeUsage reflectionProbeUsage = ReflectionProbeUsage.Off;
    5.  
    6.     private DynamicCharacterAvatar avatar;
    7.  
    8.     void Awake()
    9.     {
    10.         avatar = GetComponent<DynamicCharacterAvatar>();
    11.  
    12.         avatar.CharacterCreated.AddListener(onCharacterCreated);
    13.     }
    14.  
    15.     void OnDestroy()
    16.     {
    17.         avatar.CharacterCreated.RemoveListener(onCharacterCreated);
    18.     }
    19.  
    20.     private void onCharacterCreated(UMAData umaData)
    21.     {
    22.         foreach (Renderer rend in umaData.GetRenderers())
    23.         {
    24.             rend.lightProbeUsage = lightProbeUsage;
    25.             rend.reflectionProbeUsage = reflectionProbeUsage;
    26.         }
    27.     }
    28. }
     
    hopeful and Jaimi like this.
  29. Duende

    Duende

    Joined:
    Oct 11, 2014
    Posts:
    200
    Hi, thank you very much for your effort and your work, you make some very good videos.

    I've seen the videos to import a model from DAZ to UMA, but in those videos you don't import custom clothes or hair. Do you plan to make those tutorials or is it not possible to import custom clothes in a custom Model and use the benefits of UMA?
     
  30. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I'm not SecretAnorak, and maybe he can chime in with more information, but I can tell you that importing custom clothes for custom models is the same as importing custom clothes for the stock races. Just fit the clothes to the custom race mesh, and copy the bone weights, export, create slots, etc.

    SecretAnoraks content creation video are here:

    https://www.youtube.com/playlist?list=PLkDHFObfS19yOjGzDUqvoq-oTy97g2G_J
     
    Duende likes this.
  31. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    I started an upcoming feature for advanced uma renderer management that would be very similar to what you're asking. The main goal was to be able to specify parts of the uma to break off into other renderers so they have different settings (like a culled head for fps but still cast shadow), but you could use it for edit time renderer settings for the entire UMA.



     
    zisaboy, chrisk and Jaimi like this.
  32. Duende

    Duende

    Joined:
    Oct 11, 2014
    Posts:
    200
    Ok, I'll take a look. Thank you. :)
     
  33. Viggy1996

    Viggy1996

    Joined:
    May 11, 2017
    Posts:
    39
    I am using the
    AssetBundle.Unload(true)
    . While this Unloads the AssetBundle itself, the actual textures use by the UMA GameObject are not removed from memory because they're still referenced in the Slot and Overlay ScriptableObjects. I need to destroy these ScriptableObjects in Memory, but I don't have a reference to these ScriptableObjects as they're Loaded from the AssetBundle by UMA and not by me.

    Here is what I do:
    1. Have an Scene with a DynamicCharacterAvatar. The Project contains no UMA Assets like Slots or Overlays and the Global Library window has zero References. The Memory profiler shows no Textures in the Memory (except for a few editor stuff).
    2. After getting the AssetBundles, I Call
    avatar.LoadRecipeFromString("...")
    which auto-magically loads the Base Race, Wardrobe Recipes and the respective Meshes and Textures from the AssetBundles. The character is Built and I see all the Textures used by the Character in Memory Profiler.
    3. Now, I destroy the DynamicCharacterAvatar GameObject; call
    AssetBundle.Unload(true)
    and Load into an Empty Scene with no GameObjects. The Profiler shows a slight reduction in the Overall Memory size, which indicates that the AssetBundle has been successfully Unloaded. But I can still see the Textures used by Character in the Memory and upon inspecting, it shows the Textures are still referenced by Overlay Assets loaded from the AssetBundle.They're still floating in memory, even though no Object is using it. And since they have references to these Textures, Unity keeps these Textures in Memory.
     
  34. DavidBVal

    DavidBVal

    Joined:
    Mar 13, 2017
    Posts:
    206
    What is the recommended method to know when all DynamicCharacterAvatars in a scene have finished loading?
     
  35. DankP3

    DankP3

    Joined:
    Jul 17, 2017
    Posts:
    93
    Duende and Jaimi like this.
  36. Tarball

    Tarball

    Joined:
    Oct 16, 2016
    Posts:
    166
    Hi, Uma seems like a really powerful tool. I have a few questions though.

    1) Is there a method to add a recipe without passing a string? Strings are scary.
    2) What is the method to remove/clear all recipes, essentially reverting to default Uma?
    3) What is the method to remove a single recipe?
    4) Are there docs with explanations of the methods in the API? I didn't really see anything on the wiki or github.
    5) What's the difference between "HumanFemale" and "HumanFemaleDCS"?
    6) Is there any way to trim down the build size while keeping functionality?

    Thanks.
     
  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    1. A wardrobe recipe is json, so those have to be text (for now). However, they are compressed, so it's not as bad as you might imagine We will have s more compact version coming in v3.

    2.ClearSlots() I believe. I'm on my phone so I can't look it up.but that's what u recall.

    3. ClearSlot()

    4. There is documentation in the UMA folder in the package itself. It doesn't cover everything though.

    5. HumanFemale is the one you should use. The DCS and Legacy are there just for compatibility. As far as I know there is no actual difference.

    6. Most if the size is in the assets. Trim out the meshes and textures you dont need or want.

     
  38. Tarball

    Tarball

    Joined:
    Oct 16, 2016
    Posts:
    166
    Thanks for the quick reply. When I change to HumanMale or HumanFemale though, I get spammed in my log the following:

    Code (CSharp):
    1. Debug.LogWarning("DCS removed " + u.name + " from Recipes");
    2.  
    3. Debug.LogWarning("DCS removed " + u.name + " from RecipeIndex");
    4.  
    I'm not really sure what's going on with all those nested ifs, but I have already done "Rebuild from Project" and "Add Build References" from the Uma > Global Library window. Do I need to add each race to the wardrobes or vice versa, and how do I do that? Can I trust the Global Library tools, or should I add everything manually?
     
  39. pegassy

    pegassy

    Joined:
    Sep 28, 2017
    Posts:
    49
    Hello. I am trying to figure out how to change clothes in runtime. I am using Opsive's UCC and I am trying to use the Interact ability or the pickup component to change cloth recipes in runtime.

    Thank you.
     
  40. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    You can check the Generator - IsIdle() or QueueSize()
     
    Last edited: May 11, 2019
    hopeful likes this.
  41. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    To change clothes, pass the clothes recipe to the SetSlot() function. This is documented in the "UMA Documentation" file under "Changing the avatar in code" on Page 7.
     
  42. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    I don't think this has anything to do with the Global Library. If you're having trouble with the lib, then you can of course use Asset Bundles. However, I'm not aware of any issues in the library.

    As for what that set of warnings is doing, I'm not sure either. It seems to have something to do with WardrobeCollections. Are you using those for anything? I don't get that spam either, but I'm just using plain vanilla wardrobe items.

    In short, you shouldn't have to add compatible races to the wardrobe recipes. But I personally do, because that's what I'm used to.
     
  43. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Since it's not releasing the textures, which seems a Unity bug (or a documentation bug), then the only thing I can image that you can do is find the textures, and use Destroy() on them to free the references. Sorry, I can't be helpful here. You may need to manually destroy the OverlayDataAssets also.
     
  44. pegassy

    pegassy

    Joined:
    Sep 28, 2017
    Posts:
    49
    Thank you for your help. I am not a programmer so I probably am getting it wrong. Is there an editor based solution or an event system that I could utilize within UMA to trigger a change?

    I tried the following code and could not get it right. I appreciate your direction:

    using System.Collections;
    using System.Collections.Generic;
    using UMA;
    using UMA.CharacterSystem;
    using UnityEngine;

    public class UMA_Spartan_Set : MonoBehaviour
    {

    void Update()
    {
    DynamicCharacterAvatar.SetSlot(UMATextRecipe SPW_TorsoArmour_Recipe);
    DynamicCharacterAvatar.BuildCharacter();
    }
    }
     
  45. Tarball

    Tarball

    Joined:
    Oct 16, 2016
    Posts:
    166
    Yeah, you really don't want to put that in Update()... Instead, name Update something else and call it from an animation event, since you want it to coincide with an animation. You can do most of that in the editor.

    For lack of a better option, I wound up just commenting out those debug.warning messages for the time being. In any case, I've got new problems. Hopefully, someone here can help or point me in the right direction.

    I bought an Uma face pack, but it doesn't have any documentation, just textures and overlays, not even the wardrobes... I put an overlay in the face slot of a new wardrobe and it looks fine in the inspector, but when I call DynamicCharacterAvatar.SetSlot(), it looks like the texture wraps around the head wrong and its all messed up looking. What am I doing wrong? Shouldn't all facial textures get mapped to face slots the same?

    Edit: I'm not exactly sure what I did, but I kept fooling with it, and it seems to be ok now.
     
    Last edited: May 12, 2019
  46. Ne0mega

    Ne0mega

    Joined:
    Feb 18, 2018
    Posts:
    755
    How do you add Pose Bones to your Bone Poses list?
    "Add Bones" and "remove Bones" are grayed out, (although you can click remove bones and remove them).
     
  47. Tarball

    Tarball

    Joined:
    Oct 16, 2016
    Posts:
    166
    If I make a new race which references the base race along with the DNA converter of the new race, how can I ensure that face textures are mapped to the face mesh of the new race correctly? As of now, I get black polygonal splotches on the face where mesh and texture don't coincide.

    In other words, how can I switch face textures on a new created race? I get that the mesh is altered, but there are references to the base race and the DNA converter, so that mesh should be updated, and I don't get why it doesn't work. Any help would be greatly appreciated.

    Edit: I'm guessing the code doesn't work like I think it does or should. It seems to me that you should treat race creation just like OOP with base races and derived races. I'm curious how it does work, without digging through all the code.

    Edit2: I guess it doesn't work like I thought it did, and it is easier in my case to just have one race for all of the "races." The thing is I need to load from text.asset files to switch between them, and I can't tell where the header of the file ends and the JSON recipe data begins. Or, if there is a way to just load the text.asset file directly and still make changes to the UMA? That would work for my case as well. However, ideally, I could still drag the text.asset file to inspector and not refer to file path with strings. That would be a recipe for disaster.
     
    Last edited: May 13, 2019
  48. Tarball

    Tarball

    Joined:
    Oct 16, 2016
    Posts:
    166
    I guess this warrants a new post. For lack of better options, I would like to load default DNA and Overlays of my character through a text file. I do the following:

    Code (CSharp):
    1. private DynamicCharacterAvatar avatar;
    2.     [SerializeField] private TextAsset Char_Recipe;
    3.     private void Change_Char()
    4.     {
    5.         avatar.LoadFromTextFile(Char_Recipe.ToString());
    6.     }
    So, I change the extension of an UMATextRecipe.asset to .txt, drag it in the inspector field "Char_Recipe," and call the method "Change_Char()." Now, The overlays are loaded into the scene from the file, but the DNA is not. How can I make sure both are loaded?

    Edit: It seems I was way off, but I figured it out. For anyone wondering, the way to do this is:
    Code (CSharp):
    1. [SerializeField] private UMATextRecipe Char_Recipe;
    2. private void Change_Char()
    3. {
    4. avatar.LoadFromRecipeString(Char_Recipe.recipeString);
    5. }
    It's actually pretty simple, but I could not find the information anywhere.
     
    Last edited: May 13, 2019
  49. MrGky93

    MrGky93

    Joined:
    Feb 27, 2014
    Posts:
    281
    have someone a simple save and load system for uma?
     
  50. Ne0mega

    Ne0mega

    Joined:
    Feb 18, 2018
    Posts:
    755
    Secret Anorak goes into saving and loading here:
     
    MrGky93 and kenamis like this.