Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. tytylion

    tytylion

    Joined:
    Mar 8, 2014
    Posts:
    1
    I'm trying to see if it's possible to use Unity's cloth system with UMA avatars. Can someone here can point me in the right direction?

    Maybe I would be better off implementing cloth or physics based clothing as prefabs outside of the UMA system?(scale the clothes to generally match the body, and let the cloth do it's thing as far as fitting.)
    However I feel separating the clothes from the body parts to apply cloth to, might defeat the purpose of UMA and having one draw call though.

    Also is UMA 2 (5.3) going to be replace the version in asset store soon?
     
    hopeful likes this.
  2. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    Coming from UMA2, should go in without issues. Anything using legacy materials will need to be updated (since it doesn't include them), but you already got those.

    Jaimi
     
    silentneedle and Teila like this.
  3. Just4F

    Just4F

    Joined:
    Jun 28, 2016
    Posts:
    1
    Anybody knows what's wrong with UMA WIKI?
    uma.unity3d.com/wiki has replied error for several days..
     
  4. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,624
    We're looking into it
     
  5. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    I'm trying to design new characters that are not based on the default Unified Male and Unified Female. These new characters are cartoony, with different proportions.

    I took the Unified Male rig and moved the bones around to fit the new mesh. I skinned the mesh to the "adjust bones" when necessary. I then, copied the unified male skin weights to the separated mesh files for the head, torso, legs, hands and feet. I exported the files out as FBX.

    In the C:\Users\seanr\Documents\UMA2_Clean_Implement_Custom_Character\Assets\UMA\Content\UMA\Humanoid\FBX\Male, I replaced the original "Unified Male.fbx" and "Male_Separated.fbx" with my own files.

    Following the Secret Anorak videos(which are very cool, by the way), imported all the seperated meshes and set the rig to legacy. I made slots with all my new separated parts. Then, added them to the SlotLibrary of the legacy scene and pressed "Update List." Made overlays with materials set to UMALegacy and pressed "Update List" and "Apply". Edited the strings names in the sample code.

    But when I press play, I do not see the new rig with the new mesh and I do not see the new slots. I still see the default bald guy in his white underwear. At the very least, I thought I would see my new rig proportions on the bald guy.

    How do I replace the default bald guy in his white underwear with my new rig and make my new rig the new default so I can see my new slots?
     
  6. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,624
    I got hold of a Unity IT Admin, the server had crashed after three years, he rebooted it and now it's back up and running!
     
    hopeful likes this.
  7. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,624
    We're still working on UMA 2.1 which is perhaps gonna be our biggest release yet. In addition to the previously mentioned features we've managed to sneak in some nice additional features.

    The latest addition is

    Cutout overlays
    By moving to the cutout shader we can cut holes in your models... this is super cool for all those toes poking through shoes... a simple overlay can make the toes completely transparent so the shoe fits.

    Take a look at these pictures that Secret Anorak posted after playing with the latest feature.

    Without cutout overlays



    With cutout overlays


    If you want to join us on slack as always just pm any of us your slack email address and we'll toss you an invite.

    With the power tools I'm taking this to the next level and supporting removing the triangles from the mesh to reduce overdraw.
     
    hopeful likes this.
  8. tequyla

    tequyla

    Joined:
    Jul 22, 2012
    Posts:
    327
    Hello,

    Could you share tutorial for updating default clothes with shirt and pant ?

    regards.

    ++
     
  9. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,126
    Hello,

    I am using UMA2 for NPC and my own Player. I have a first Person and a third person camera.

    When I defend with my shield,I have an Animation where the Player raises his shild. If you look a bit to the bottom, you can see it very good. If I look straight Forward, you do not see it.

    Does anybody have an idea how to see this better? Maybe I can raise the arm by a bone more assigned to the camera upwards Rotation?

    Most of the animations are also very good with the first Person camera. Any idea or Suggestion ?

    Thanks a lot :)
     
  10. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    I believe the answers I need is creating a new race. Peace. :)
     
  11. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Hello, Uma 2 seems to be different than the UMA used in the race video tutorial. Fernando, talks about opening up the UMA_Human_Male in the Race folder then copying the UMAData and Locomotion components onto the new race game object. However, when I open up the UMA_Human_Male in the Race folder, the UMAData is not loaded and there is no Locomotion script component.

    Does anyone know how if the Locomotion script is needed in UMA2 and how does one load the UMAData onto the empty component of the new game object?
     
  12. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    The UMA Data script cannot find the UMA data for the default UMA_Human_Male. Has support for creating a new race been removed from UMA?
     
  13. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,025
    I wish someone more knowledgeable about this would answer your questions. But if you have the patience to search backward through this long forum thread, you will likely find some of the answers you are looking for. People try to create new races in UMA all the time, and I imagine they run into a lot of the same difficulties. In fact, about a year ago, I think, someone created a toon race much like @sean3Dmonkey is attempting to do.

    The UMA 1.0 race creation tutorial is outdated. While the basic premise of UMA has remained the same, a lot of stuff has changed in the code. I've not created a race, so I can't give you better info than that, sorry.

    You know how it goes. Someone asks in the forum how to make a new race, they finally figure it out, some info may get imparted in the thread, and then - since they have solved their problem and UMA is working fine for them - they head on off, and don't check the UMA thread any more to see if anyone new to UMA is having a problem creating a new race. ;)
     
  14. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,624
    How to create your own race in UMA 2
    • Create your uma ready meshes (with adjustment bones)
    • Creating a TPose asset.
      • Import your model into Unity, make sure to set it to Mecanim Humanoid
      • Select the model and press the UMA|Extract T-Pose menu item
    • Create a RaceData and link the T-Pose to it
    • Create a dna converter
      • This mysterious process is nothing sort of a class with a single method that calls various scale, rotate and move commands to the skeleton. Take another DnaConverter and do a bunch of copy pasting.
      • Create a GameObject and add your DnaConverterComponent to it
      • Make it into a prefab and add it to the RaceData similar to how the dna converters are set up on the human's RaceData.
    • Create Slots and overlays like normal
    • Add everything to the OverlayLibrary, SlotLibrary and RaceLibrary.
    • Create a UMA Text Recipe and select it
      • Use the Inspector to set up the race (Slots tab), add slots and overlays.
      • Complain that who ever added a way to set the Race didn't also add the relevant dna!
    • Set up a Dynamic Avatar in a scene to load the recipe on start and press play
      • This should create a bland 0.5,0.5,0.5, etc. dna for you, so select the character and save the recipe again.
        Now you can edit the dna too.
     
    tequyla and hopeful like this.
  15. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Hello UnLogick, how do I create the Race Data? There is no "Create Race Data" button in the UMA drop down. Fernando does not talk about creating Race Data and linking the T-Pose to it. Is this new? I assume I will link the T-Pose to the Race Data by dragging the T-Pose onto the Race Data Inspector?

    Thank you for the help.
     
    Last edited: Jul 15, 2016
  16. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,624
    The RaceData is an asset, so you create it in the project hierarchy with the Create context menu.

    And yes.
     
  17. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    O' I see, you have to create a "Race" folder, RMB on that folder, then choose Race Data from the "Create" drop down. This creates the "New RaceData." Then, you drag the TPose into the Inspector.

    Thank you, UnLogick.
     
  18. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Ok, this is what I had to do. Is this correct?

    1. Unlogick wrote, "This mysterious process is nothing sort of a class with a single method that calls various scale, rotate and move commands to the skeleton. Take another DnaConverter and do a bunch of copy pasting."
    • Duplicate the "HumanoidDNAConverterBehaviour" script change the name of the script to "New_HumanoidDNAConverterBehaviour" and then copy the name in the class in the script? This way I don't need to do a bunch of copy and pasting.
    2. Unlogick wrote, "Create a GameObject and add your DnaConverterComponent to it."
    • Create an empty Game Object and assign the script to it. Drag the game object into the hierarchy to make a prefab.
    3. Unlogick wrote, "Make it into a prefab and add it to the RaceData similar to how the DNA converters are set up on the human's RaceData"
    • Go back to the new "Race Data" File and put the number 2 in the "DNA Converter List." Drag the prefab to the Element 0 and drag the "TutorialDNAConverterBehaviour" script found in the UMA>Content>Humanoid>DNA folder into the Element 1 slot.
    • In the New Race data, enter 1 in the "DNA Range." Then, click on the radio button and choose "Human Male UMADNAHumanoid range."
     
  19. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    How do I create an UMA Text Recipe?

    Fernando does not talk about this when creating a race. Is this a tool I need to buy or is there a way to do this in UMA2. I can only imagine one would create an "UMA Text Recipe" after you plug in your new avatar race into a scene, use the sliders, then hit a button to save out the recipe. But I can not get my new avatar race into a scene, yet. I don't see how I can save out a recipe.
    Following Unlogick's notes, I have just completed the step where I add everything to the OverlayLibrary, SlotLibrary and RaceLibrary.

    Thank you, Unlogick.
    Looking for a way to create an UMA Text Recipe for a new race.
     
  20. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    After you have all your libraries in the scene (and a UMAContext to track them), right click in your project and choose "Create", and then select the option "UMA Text Recipe" to create the recipe. Highlight the recipe, and edit it in the Inspector. Click on the "Slots" button. It should warn you that you don't have a RaceData. Drop one on the slot. Now you can create the recipe.

    If you are NOT using the latest version from GIT, I suggest you go there now and get it. There are many, many updates for recipe editing that you need.

    The latest UMA is here: https://github.com/huika/UMA/tree/unity53

    Click on the "Clone or Download" button and select "Download Zip"
     
  21. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Thank you, Jaimi. After I created the UMA Text Recipe, I clicked on it. In the Inspector I see empty DNA and Slot tabs. There was nothing to drag the Race Data onto. I guess this means my UMA2 is out of date. Thank you providing the link to get latest UMA. I'm doing that now.
     
  22. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    I'm still trying to create a new race. I'm getting stuck in step 7.

    Thank you Unlogick and Jaimi for your help. These are the steps I'm doing.

    How to create your own race in UMA 2.

    1. Create your UMA ready meshes (with adjustment bones)
    2. Creating a TPose asset.
    • Import your model into Unity, make sure to set it to Mecanim Humanoid
    • Select the model and press the UMA|Extract T-Pose menu item
    3. Create a RaceData and link the T-Pose to it
    • You have to create a "Race" folder, RMB on that folder, then choose Race Data from the "Create" drop down. This creates the "New RaceData." Then, you drag the TPose into the Inspector.
    4. Create a dna converter
    a. This mysterious process is nothing sort of a class with a single method that calls various scale, rotate and move commands to the skeleton. Take another DnaConverter and do a bunch of copy pasting.
    • Duplicate the "HumanoidDNAConverterBehaviour" script change the name of the script to "New_HumanoidDNAConverterBehaviour" and then copy the name in the class in the script? This way I don't need to do a bunch of copy and pasting.
    b. Create a GameObject and add your DnaConverterComponent to it.
    • Create an empty Game Object and assign the script to it. Drag the game object into the hierarchy to make a prefab.
    c. Make it into a prefab and add it to the RaceData similar to how the DNA converters are set up on the human's RaceData.
    • Go back to the new "Race Data" File and put the number 2 in the "DNA Converter List." Drag the prefab to the Element 0 and drag the "TutorialDNAConverterBehaviour" script found in the UMA>Content>Humanoid>DNA folder into the Element 1 slot.
    • In the New Race data, enter 1 in the "DNA Range." Then, click on the radio button and choose "Human Male UMADNAHumanoid range."
    5. Create Slots and overlays like normal
    6. Add everything to the OverlayLibrary, SlotLibrary and RaceLibrary.
    7. Create a UMA Text Recipe and select it.
    • After you have all your libraries in the scene (and a UMAContext to track them), right click in your project and choose "Create", and then select the option "UMA Text Recipe" to create the recipe. Highlight the recipe, and edit it in the Inspector. Click on the "Slots" button. It should warn you that you don't have a RaceData. Drop one on the slot. Now you can create the recipe.
    • This is where I have to stop. I still get empty DNA and Slot tabs in the Inspector. There are no fields to drag in the RaceData.
    8. Use the Inspector to set up the race (Slots tab), add slots and overlays.
    9. Complain that who ever added a way to set the Race didn't also add the relevant DNA!
    10. Set up a Dynamic Avatar in a scene to load the recipe on start and press play
    • This should create a bland 0.5,0.5,0.5, etc. DNA for you, so select the character and save the recipe again.
    • Now you can edit the DNA too.
    Hopefully we can sort this out and someone will put this processes on the UMA WIKI. :)
     
    hopeful likes this.
  23. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    This is what it should look like if you have installed the version from the Unity53 branch. There should be a big ugly red box saying "Warning: No race data is set!", right below the RaceData field.

    If it doesn't say this, then I'm guessing something went wrong with the update...

    Screen Shot 2016-07-15 at 2.36.53 PM.png
     
  24. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    Yep, something must have gone wrong with the update. I do not see the red box and I do not see the Race Data channel below the DNA and Slots buttons. I'm using Unity 5.3.5, I'll go back to 5.3.2.

    Thank you, Jaimi.
     
  25. Honour-Demon

    Honour-Demon

    Joined:
    Aug 19, 2013
    Posts:
    9
    I quick Q on the versions Currently available:

    Should I clean out any Asset Store UMA 2 Files before importing the bundle from GIT? <> or am I good to just go ahead and import?

    Also ty UnLogick for the server update :). I think I enquired on that in the original UMA thread :?
     
  26. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    I still do not see the red box and I do not see the Race Data channel below the DNA and Slots buttons. I wrote the process I used. I get an error on step 11,"UMATextRecipe, internal storage string Length 0."



    1. Create a NewRace folder in the Assets directory, this is where you will put all your new race assets. In the NewRace folder, create more folders:
    • NR_DNA
    • NR_FBX
    • NR_Overlay
    • NR_Race
    • NR_RawModels
    • NR_RawTextures
    • NR_Scenes
    • NR_Slots
    • NR_Tpose
    2. Put all your new race FBX exports in the NR_RawModels folder.
    3. Put all your new race textures in the NR_RawTextures folder.
    4. Set up your new race FBX exports found in the NR_RawModels folder.
    • Select the Male_Unified and Male_Separated FBX files, look in Rig tab found in the inspector, and change the Animation type to "Humanoid."
    • Select the Male_Unified.fbx, click on the "Configure" button and make sure all your bones are plugged into the correct channel.
    • After the bones are plugged in, creating a TPose asset by clicking on the Pose button. Then choose "Enforce TPose" from the drop down menu. Then, click "Done."
    • Select the Male_Unified.fbx you just configured, go up to the main menu and find the "UMA" tool set, and select "Extract T-Pose" from the drop down menu. This will create a new "Male_Unified_TPose" file under the FBX. Move this "Male_Unified_TPose" into the NR_TPose folder.
    5. Create a RaceData and link the T-Pose to it.
    • RMB on the NR_Race folder, then choose Race Data from the "Create" drop down. This creates the "New RaceData." Rename this to NR_RaceData. Make sure the NR_RaceData is placed in the NR_Race folder. Then, you drag the TPose (channel found in the the NR_TPose folder) into the TPose channel found in the NR_RaceData file.

    6. Create a DNA converter, this mysterious process is nothing sort of a class with a single method that calls various scale, rotate and move commands to the skeleton. Take another DnaConverter and do a bunch of copy pasting.

    • Go into Uma>Content>UMA>Humanoid>DNA, then duplicate the "HumanoidDNAConverterBehaviour" script. Change the name of the script to "NewRace_HumanoidDNAConverterBehaviour" and then double click on the script to open it in Monodevelope. Change the public class in the script: "public class NewRace_HumanoidDNAConverterBehaviour : DnaConverterBehaviour
    • " This way I don't need to do a bunch of copying and pasting.

    7. Create a GameObject and add your DnaConverterComponent to it.

    • Create an empty Game Object and assign the "HumanoidDNAConverterBehaviour" script to it. Rename the Game Object to "NR_Male_Humaniod". Drag the NR_Male_Humaniod into the NR_Prefab folder located in the hierarchy to make a prefab.

    8. After making the NR_Male_Humaniod prefab, we are going to add the prefab to the RaceData similar to how the DNA converters are set up on the human's RaceData.
    • Go back to the new "NR_Race Data" file in the NR_Race folder, open up the "DNA Converter List" drop down arrow and put the number 2 in the "Size" channel of the "DNA Converter List." After entering the number 2, you will see an Element 0 channel and an Element 1 channel. Drag the NR_Male_Humaniod prefab to the Element 0 and drag the "TutorialDNAConverterBehaviour" prefab found in the UMA>Content>Humanoid>DNA folder into the Element 1 slot.
    • Under the "DNA Converter List," you will see the "DNA Ranges", open up the drop down arrow and enter 1 in the "Size" channel. Then, click on the Element 0 radio button and choose "Human Male UMADNAHumanoid range."

    9. Create Slots and overlays like normal.

    10. In the UMA>Example> Scenes folder you will see a "Scenes01 - Crowd - PBR 1" file. Duplicate it, rename it to "NR_Scenes01 - Crowd - PBR 1," and move it into the NewRace>NR_Scenes folder. Double click on the "NR_Scenes01 - Crowd - PBR 1." Look in the scene hierarchy, open up the UMA game object then add everything to the OverlayLibrary, SlotLibrary and RaceLibrary.
    • For the OverlayLibrary, drag in all your overlays.
    • For the SlotLibrary, drag in all your slots.
    • For the Racelibrary, if you have only one asset to test, change the "Size" value from 2 to 1.
    • Drag the "NR_RaceData" from the NR_Race folder into the Element 0 channel of the Race Element List.
    11. Create a UMA Text Recipe and select it.

    After you have all your libraries in the scene (and a UMAContext to track them), right click in your project and choose "Create", and then select the option "UMA Text Recipe" to create the recipe. Rename UMA Text Recipe to "NR_Male_UMATextRecipe" and place it in the NR_Race folder. Highlight the recipe, and edit it in the Inspector. Click on the "Slots" button. It should warn you that you don't have a RaceData. Drop one on the slot. Now you can create the recipe.

    • This is where I have to stop. I still get empty DNA and Slot tabs in the Inspector. There are no fields to drag in the RaceData and no red button named "Clear." I get an error message above the DNA and Slots buttons that read,"UMATextRecipe, internal storage string Length 0."

    12. Use the Inspector to set up the race (Slots tab), add slots and overlays.
    13. Complain that who ever added a way to set the Race didn't also add the relevant DNA!
    14. Set up a Dynamic Avatar in a scene to load the recipe on start and press play

    This should create a bland 0.5,0.5,0.5, etc. DNA for you, so select the character and save the recipe again.
    Now you can edit the DNA too.
     
  27. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Hmm? Now, I can see the red button and Race Data channel under the Slots tab. I shut down Unity, started it back up, clicked on the NR_Male_UMATextRecipe then POOF, the red clear button and Race Data channel showed up. I dragged in my NR_RaceData into the Race Data channel.

    Moving forward, :)
    Thanks for your help, Jaimi.
     
    hopeful likes this.
  28. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Is there a special way to save Slots in the NR_Male_UMATextRecipe?
    I dragged in the NR_RaceData from the NR_RaceData folder into Race Data channel in the NR_Male_UMATextRecipe. Then, dragged in the slots from my slots folder into the "Drag Slots here" field of the NR_Male_UMATextRecipe. I clicked the "Save Collection" button.
    But, when I click onto a different asset (so the Inspector changes), then click back onto the "NR_Male_UMATextRecipe" to plug in more slots, everything that I previously plugged into the UMATextRecipe is gone.
     
  29. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    Are the slots in a slotlibrary in the current scene? Do you see any errors in the console?
     
  30. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Hello, Jaimi. Yes, the slot is in the Slot Library, I pressed the "Update List" button after I added the slot to the Library.
    Then, I click on the UMATextRecipe, drag in the NR_RaceData into the RaceData channel. I can not add anything to the "Add Slot" channel. If I use the radio button to choose a slot, nothing gets plugged into the channel. I can not drag anything into the channel, either.

    There are errors in the console:
    ArgumentNullException: Argument cannot be null.
    Parameter name: key

    NullReferenceException: Object reference not set to an instance of an object
    UMAEditor.CharacterBaseEditor.Rebuild () (at Assets/Standard Assets/Editor/UMA/Core/CharacterBaseEditor.cs:1091)

    ArgumentException: Getting control 1's position in a group with only 1 controls when doing Repaint
    Aborting

    NullReferenceException: Object reference not set to an instance of an object
    UMAEditor.CharacterBaseEditor.ToolbarGUI () (at Assets/Standard Assets/Editor/UMA/Core/CharacterBaseEditor.cs:1112)
     
  31. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    Hmmm - this is kind of tough to figure out. It's missing some piece of information somewhere, but I can't tell there from the error messages where it's att (the last two are simply the outer functions where it's setting up the GUI, so the first one is somewhere buried inside).

    If you can put a breakpoint on line 377 in CharacterBaseEditor.cs (should be "DragAndDrop.AcceptDrag()", and drop a single slot on the drop panel, it should be possible to find the problem by stepping through the code and finding where the initial blow up is,. My guess would be somewhere in UMAData.MergeSlot.
     
  32. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Hello Jaimi, I put the break point in. The error is a missing Temp file.

    Documents\UMAProject\CSC: Error CS0006: Metadata file 'Documents\UMAProject\Temp\bin\Debug\Assembly-CSharp-firstpass.dll' could not be found (CS0006) (Assembly-CSharp)

    I assume this missing file is the reason why I'm seeing text in the CharcterBaseEditor script colored in red:
    UMADnaBase
    UMAData.UMARecipe
    UMAGeneratorBase
    UMADnaBase
    GetAllDna
    RemoveDna
    and a bunch more.
     
    Last edited: Jul 18, 2016
  33. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    The DLL should be generated by Unity - if it's not, it sounds like something is wrong with an editor script somewhere. That could explain why you were having strange issues with the racedata warning not showing. You might try manually updating an editor file, to force it to recompile that DLL. But to be honest, I'm not sure how the recipe editor would be working at all without it.

    Anyway, something somewhere is missing a value on a field. Is the UMAContext setup? Are all the races in the racelibrary? Does the RaceData have the TPose assigned, and at least one DNA Converter Behavior?
     
  34. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,014
    Hi all, I've been trying to generate an UMA without a head for a first person game with body awareness. When I don't include a head overlay the frame rate drops. Is it possible to create my own material to use for the UMA head that casts shadows but can't be seen by the camera?
     
  35. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    Yes, just created a different UMA MATERIAL for it.
     
  36. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Hello Jaimi, I made sure every field had something plugged into it. The RaceData has a TPose and the DNA Converter List has a Male Humanoid and the TutorialDNAConverterBehaviour plugged in. The CharacterBaseEditor runs without errors when I put a break on line 377. Cool, there are no errors when I debug the script.

    However, I still can not plug in any slots in the UMATextRecipe. It is strange, the name of the slot matches the slot I want to drag in, but the add Overlay and add Slot channels will not accept any input. When I click on the radio button next to the add Slot and choose the appropriate slot from the list, I can not see the name of the slot in the add slot channel.

    Furthermore, if you click onto a different asset then click back onto the UmaTextRecipe all fields have been reset to blank defaults. Is there an "Apply" button missing from the UmaTextRecipe UI? The "Save Collection" button does not save any entries.
     
  37. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    No, all the slots/overlays automatically save, no need for manually saving or applying. The "Save Collection" button just forces it to save the entire asset, because if we saved colors as they are changed, the editing is really painful.

    What it sounds like is that for some reason the slot is invalid. If you could get me a small sample project that demonstrates the error, I could likely fix it.

    First though - are there any warnings or informational messages in the console when you drop the slot? (I ask because Sometimes people turn those off so only errors are shown)
     
  38. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Yes, so I Clear all in the console, then click on the UMATextRecipe to see all fields are clear. Then drag in the NR_RaceData into the Race Data channel in the UMATextRecipe. This error pops up in the console.

    NullReferenceException: Object reference not set to an instance of an object
    UMA.UMAData+UMARecipe.ClearDNAConverters () (at Assets/Standard Assets/UMA/Core/Scripts/UMAData.cs:765)

    Then, I check the NR_RaceData fields. All fields have been filled. Is there a specific file that needs to be plugged into the DNA Converter? I have the TutorialDNAConverterBehaviour and the Male_Humanoid plugged in.
     
  39. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    This is blowing up here:

    Code (csharp):
    1.  
    2.             public void ClearDNAConverters()
    3.             {
    4.                 umaDnaConverter.Clear();
    5.                 if (raceData != null)
    6.                 {
    7.                     foreach (var converter in raceData.dnaConverterList)
    8.                     {
    9.                         umaDnaConverter.Add(UMAUtils.StringToHash(converter.DNAType.Name), converter.ApplyDnaAction);
    10.                     }
    11.                 }
    12.             }
    13.  
    Either converter.DNAType is null, or converter is null.

    You don't have a blank entry in the DNA Converter list (on the RaceData), do you?
     
  40. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    No, I do not. In the NR_RaceData, I have these inputs plugged into the DNA Converter List:
    Size: 2
    Element 0: NR_Male_Humaniod (prefab)
    Element 1: TutorialDNAConverterBehaviour (prefab)
     
  41. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    I think I would need to have a (hopefully) small example project to be able to debug this further. It looks OK from here.
     
  42. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Ok, I have a small example project to set up. How do I sent it to you?

    Thank you for your time. :)

    I followed all the steps I did before, now I get a warning that says,"Editing a recipe requires a loaded scene with a valid UMAContext with RaceLibrary assigned." All the fields in the Race Element List are filled in.
     
    Last edited: Jul 19, 2016
  43. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    You'll need to fix that by putting a UMAContext in the scene (along with all the other base UMA stuff) and assigning a racelibary to the UMAContext. Once you've done that, zip up the project, and if it's small enough you can email it to me.
     
  44. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    Ok, I copied the crowd scene and used its Race Library. I do not get the warning anymore. I'll send you a PM through this forum, tonight asking for your email address. Then, I'll send you the project. The project is 87mb, I'll put the zip file on a cloud drive for you to download it, is that OK?

    Thank you for your help, Jaimi.
     
  45. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    Yeah, that's OK. Just PM me the link to the file, and I'll pull it down and look at it
     
  46. sean3Dmonkey

    sean3Dmonkey

    Joined:
    Oct 21, 2014
    Posts:
    69
    I sent the PM and the file is ready for you. Thank you for your time, Jaimi.
    Your awesome,

    Sean
     
  47. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    Ok - I believe the problem is that another step is needed. The NR_HumanoidDNAConverterBehaviour was copied from HumanoidDNAConverterBehaviour in step 6. But this class is just a base class, and isn't meant to be used as a Converter Behaviour as it doesn't do the setup needed (The derived classes HumanMaleDNAConverterBehaviour and HumanFemaleDNAConverterBehaviour do the setup, and these are the ones that are used in the samples).

    In order to use the NR_HumanoidDNAConverterBehaviour, you would need to setup the DNAType and ApplyDnaAction, like the two derived classes do.

    For testing, I added a constructor, and set the DNAType, and set the ApplyDNAAction to a copied function, and then the recipe editor works! :)
     
  48. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    I'm almost there, the UMATextRecipe now remembers that I plugged in the NR_Race Data. But, I still can not load the slot when I click on the add slot radio button and click on a slot from the list.

    I re-did step 6.
    1. Create a DNA converter.
    (If I understood your suggestion correctly, I need the " ApplyDnaAction" and the " DNAType" found in the HumanMaleDNAConverterBehaviour script.)

    a. Go into Uma>Content>UMA>Humanoid>DNA, then duplicate the "HumanMaleDNAConverterBehaviour" script. Change the name of the script to "NewRace_HumanMaleDNAConverterBehaviour" and then double click on the script to open it in Monodevelope. Change the public class in the script: "public class NewRace_HumanMaleDNAConverterBehaviour: DnaConverterBehaviour"

    b. Still in the script, under the newly pasted public class, change the "public HumanMaleDNAConverterBehaviour()
    " to "public NewRace_HumanMaleDNAConverterBehaviour()"


    I'm getting an error in the console after I click "clear" in the UmaTextRecipe:
    NullReferenceException: Object reference not set to an instance of an object
    UMACrowd.RandomizeShape (UMA.UMAData umaData) (at Assets/UMA/Example/Scripts/UMACrowd.cs:418)
     
    Last edited: Jul 20, 2016
  49. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    4,993
    Do you mean if you set the "RaceData" to none in the recipe? If so, I expect it will error as that is required to be filled out in a recipe. If not, what are you clearing?
     
  50. seanrod

    seanrod

    Joined:
    Jan 13, 2015
    Posts:
    52
    If I click off the UMATextRecipe(so the inspector changes) then, click back onto the UMATextRecipe; I get a Big red "Clear" button. In order to see the DNA and Slot tabs, I have to click "Clear." So I click Clear, then click on the "Slots" tab. My Race Data now stays plugged in, but I can not load any slots.

    Can you post the edits you did to the DNAConverterBehaviour in this forum?
    Or, can you please send me the file you edited so I can see how you edited the DNAConverterBehaviour? I can grab the file when I get home. PM the Sean3DMonkey user and I can get that message at home.
     
    Last edited: Jul 20, 2016
unityunity