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 'Works In Progress' started by FernandoRibeiro, Oct 5, 2012.
Sure, just make a new base mesh with only arms and hands and im pretty sure it should work.
Also the camera should cull the rest of the mesh if it's not visible or you can just instantiate the arms hands.
Great, I'll have to give this a try, thanks.
I should say that I want to keep the customization linked to a full body for use in third person perspective, but I don't want to use the whole body in first person. I need the arms as independent meshes, perhaps the lower body could also be used to simulate full body awareness, but I'm not quite that ambitious.
Mucho Thanks for such INCREDIBLY AWESOME WORK. !!!
Hi there! Base meshes are already on their final stage, so I don´t plan changing their skinning data again. Every time I review those base meshes I find something I would like to change, but it wouldn´t be wise to keep changing those, as content creators depend on a stable reference.
The future of UMA mostly depends on content creators and developers. As an open source project, makes no sense I would try to keep all it´s development for myself. There´s plenty of space for development and improvement on UMA, and I´m happy not being alone on those.
Sure! Just comment the extra code that includes the rest of the body. Usually I keep arms and torso together, but you can simply remove torso mesh and create a new slot.
PS: Just saw Virror´s answer Sorry
Happy this can help you =)
Hi there! =)
Project is fully updated, last tests before release:
@goat, That sounds very promising, I will see how it works with my data when I get home and let you know
I finally decided to give this a whirl and see what I could do with it, but 4.3 Mecanim changes seem to have borked some code up. I commented it out but the agents just keep trying to follow the mouse around or something and end up just falling off the grid so I decided to put it down for the time being.
I don't really know if I have the latest version, I got it from the top of the website's download list but it seems the runtime editor controls are very downgraded from one of the webplayers I just used here. I also got an error when I had RageSpline also in the project that I'm certain was not there just after I upgraded to 4.3.
How do you store or save these generated avatars? Is it a matter of storing the resulting manipulator data and recreating the avatar at runtime? If so, can any of that be done in the editor or does it need to be designed during runtime and saved? Is a save button planned? I like it so far, and want to get into making some additional assets for it that I can inject into the generator.
The controls are really extreme and its difficult to make small changes. Small changes are critical to making characters non-stupid looking. Perhaps the controls are too variable - would anyone actually use the values over under 10/20 or over 80/90? I think the vast majority of people are going to try to use this for custom character creating for unique player characters like how Bioware does character startups in their games rather than random crowd generation.
Please choose an idle animation that does not turn the head since it breaks the angle the user is trying keep the face on, and disable right clicking in the webplayer.
Also, are there any plans for blending textures for the character skin? The skin is very ripped, shiny, muscular and unnatural for regular female characters. A slider for blending in a soft texture would really improve the skin quality on females.
Incredible work so far, I know you've got a lot on your list but I suppose feedback is always useful.
Hey zerobounds, the version at the webpage is pretty old by now, you can get the latest and greatest version here: https://github.com/huika/UMA
This one will work very well with latest Unity version except for a crash on exit when using standalone windows player, but Unity team is working on a fix for that.
The controls are just an example, and if you want to use it in a game you probably want to remake them anyway.
Saving is really easy and good examples exist for that, basically the configuration is serialized to a string that you save how you want.
Regarding texture you are free to use any texture you want, look at page 58 to see an example when Fernando is using human scanned textures with UMA, looks incredible!
You can pm me or Fernando if you wish to join our Skype channel were we discuss all kinds of stuff related to UMA, good place to get some help!
Thanks for the info! Sending you a PM.
Hey =) Thanks for the feedback, hope the Git version worked for you.
I´ll update the beta test webpage to link it.
UMA Betatest website updates:
I cloned the repo onto my local hard drive and opened the project with Unity 4.3 pro. The scene runs and the characters all show up but the sliders do not change the character features.
Do you know what could be the cause of this.
Hi there =)
Are you right clicking the avatars on the game windows?
Dumb me. I forgot. That was the problem.
OK, I have spent the entire day pulling the 'public const' declaration out of my code and putting them into their own class. I've also added a lot more constants to help me keep what indexes what correct and more importantly so that information can be saved as a character. I've decided to make many changes in order that the random generated characters from Fernando's code can be named and saved.
So anyway, the last constants I need to declare have been declared but it seems C# doesn't like what I've done: which is basically declare a list of public const string definitions and the declared a public const string array which is initialized with the previous public const string definitions, e.g.
error message in Unity (Visual Studio 2013 isn't complaining for whatever reason): Assets/UMA/Example/Scripts/UMAUIConstants.cs(414,27): error CS0134: A constant `UMAUI.UMAUIConstants.slotsMale' of reference type `string' can only be initialized with null
Example offending code: it's the array definition Unity is complaining about.
Suggestions? I have a feeling I am going to have to make the array of public const string slotsMale as a variable public string slotsMale in my other code rather than keep it as a public const string. I save the indexes into the string slotsMale array as identifying the particular slots each character can use in their 'pseudo DNA' so the reference array should be constant.
P.S. I just checked and public string slotsMale works although it 'violates' being 'constant'. How would you do what I'm trying to do in C#?
public class UMAUIConstants
// MOUSE BUTTONS
public const int LMB = 0;
public const int RMB = 1;
public const int MMB = 2;
// Crowd Control
public const int CROWDMAX = 16;
public const int CROWDMIN = 0;
// String Constants for UMA Human Male Slots
public const string SMALEEYES = "MaleEyes";
public const string SMALEHEAD0H = "MaleFace";
public const string SMALEINNERMOUTH = "MaleInnerMouth";
public const string SMALETORSO = "MaleTorso";
public const string SMALEHANDS = "MaleHands";
public const string SMALELEGS = "MaleLegs";
public const string SMALEJEANS01 = "MaleJeans01";
public const string SMALEFEET = "MaleFeet";
public const string SMALEHEAD1H = "MaleHead_Head";
public const string SMALEEYELIDS1H = "MaleHead_Eyes";
public const string SMALEMOUT1H = "MaleHead_Mouth";
public const string SMALENOSE1H = "MaleHead_Nose";
public const string SMALEORCNOSE1H = "MaleHead_PigNose";
public const string SMALEARS1H = "MaleHead_Ears";
public const string SMALEELFEARS1H = "MaleHead_ElvenEars";
public const string SMALEEYELASHES = "MaleEyelash"; // DNE
public const string SMALESHORTHAIR0H = "MaleShortHair01"; // DNE
public const string SMALELONGHAIR1H = "MaleLongHair01"; // DNE
public const string SMALEPONYTAIL1H = "MaleLongHair01_Module"; // DNE
public const string SMALEHAT = "MaleHat"; // DNE
public const int ISMALEEYES = 0;
public const int ISMALEHEAD0H = 1;
public const int ISMALEINNERMOUTH = 2;
public const int ISMALETORSO = 3;
public const int ISMALEHANDS = 4;
public const int ISMALELEGS = 5;
public const int ISMALEJEANS01 = 6;
public const int ISMALEFEET = 7;
public const int ISMALEHEAD1H = 8;
public const int ISMALEEYELIDS1H = 9;
public const int ISMALEMOUT1H = 10;
public const int ISMALENOSE1H = 11;
public const int ISMALEORCNOSE1H = 12;
public const int ISMALEARS1H = 13;
public const int ISMALEELFEARS1H = 14;
public const int ISMALEEYELASHES = 15; // DNE
public const int ISMALESHORTHAIR0H = 16; // DNE
public const int ISMALELONGHAIR1H = 17; // DNE
public const int ISMALEPONYTAIL1H = 18; // DNE
public const int ISMALEHAT = 19; // DNE
public const string slotsMale =
SMALEEYES, SMALEHEAD0H, SMALEINNERMOUTH, SMALETORSO,
SMALEHANDS, SMALELEGS, SMALEJEANS01, SMALEFEET,
SMALEHEAD1H, SMALEEYELIDS1H, SMALEMOUT1H, SMALENOSE1H,
SMALEORCNOSE1H, SMALEARS1H, SMALEELFEARS1H, SMALEEYELASHES,
SMALESHORTHAIR0H, SMALELONGHAIR1H, SMALEPONYTAIL1H, SMALEHAT
}; // slotsMale
Guys, I´m working on updating documentation on my free time today. Feel free to list content you feel are missing on latest documentation.
@goat, It sounds like you should declare all the strings in slotsMale in another function, after you've initialized it. And sorry for the delay but I had trouble setting up the newest version of UMA, which are you working with?
What problem did you got mike? May I help you?
Thanks, for now I've left those string maleSlots and femaleSlots in the UIConstants file because that's what I want the to be functionally even though technically they are not (e.g. you can add new slots later if you develop new meshes for those slots).
I have the newest version from Fernando's Website or GitHub. I will update to the 'official Unity version' when available to be sure of compatibility.
It you are working using the UI code I am building I made many changes from what you see on GitHub and won't commit to GitHub until default characters of each of human, orc, elf, male female are possible. The characters you see in the png I posted earlier are auto-generated by checking the generate Lots UMA in the Unity editor (and press play) and you can then play around with the UI code by right clicking one of those avatars and modifying the avatar. You can't save anything yet, not until I get the UI code settled then I will add save/restore. Fernando have provided a script for that too.
If you send me a private message with your email I will upload the zip of my current work to my SkyDrive to download. I don't think you'll have trouble seeing where I am going with the code. Note, the code on my HD is still broken. The code on my GitHub is partially functional: you need Fernando's latest (with will be the same in GitHub Unity Asset Store). I would create a new project rather than import overwrite an earlier version of UMA.
I am working on the last two 'organization' parts now before I get into the interesting part (for me at least).
I should have something working well enough (but not complete!) to post to GitHub this evening (EST).
Hi there guys! UMA documentation has been updated:
One thing I've been curious about regarding UMA is setting general body proportions. I see that users can alter a variety of physical parameters, but has anyone discussed making a facility for creating characters of varying standard proportions?
Like something along the lines of an age progression?
I'm sure the people working with creating humanoids of various ages, fantasy races, groups, and possibly art styles might find some form of standard proportion guide / constraint tool helpful.
I'm guessing this is not excluded under the current framework, but I notice in the demo scene there is no means of adjusting the dimensions of the torso except by using the overall body height slider. There is, for example, no way of adjusting the horizontal dimensions of the torso in relation to the height, such as a shoulder breadth slider or a chest depth slider. Probably the capability to make these adjustments exists, but is not fully exposed in the demo ...?
What I envision is a system that allows me - when creating a single custom character - to select a standard human proportion (or fantasy racial profile) first, then raise or lower the character to desired height, and then refine individual dimensions as needed.
For random generation, a standard proportion would be part of a constraint used in a character profile.
EDIT: I've seen that goat is working on creating a form of fantasy racial profile, but I guess what I'm asking is if there is any formal, general method of doing this that is being discussed, or are we all expected to go off on our own with our own specific solutions?
Hi there! Great feedback =)
Those sliders are just example code. You have full access to all bone adjusts by code, so you can implement a very precise solution to handle age progression, and the best part: clothes would still adapt to it.
@Fernando, hurray for the new doc! And no, it was nothing on your side causing my problems. Thanks though
How much do you charge for the final product?
Its free! : )
Jeez, that's awesome. Thank you.
Fernando sadly i cannot open documentation you provided, my web browser freezes if i open it. Do you have any other suggestion to see it?
Hi there Janpec! Sorry about that!
Have you tried "right click + save to file"?
Oh ofcourse that should work. Hehe. Thanks.
Great to see you´re taking a look on UMA. I´ve been following your posts on art content, really amazing stuff!
I am certainly very serious about your character system. I dont think there is any way around for me. I need plenty different character heads, heights, muscle definitions, races and it would just be a lot of work to do this manually not to mention getting UV seams correct once everything is so dispatched which i tried already and it was a pain. So yeh i can be thankful that your timing on character system release was perfect for project i am working on.
Just one question Fernando, what is performance gain for example if there is locked pickable characters (still made with your system) or the ones that can player modify. For example if i make characters ahead with your system and i do not give player ability to edit them will that save any performance?
The biggest benefit I can see pre calculating the avatar is avoiding the extra processing time on it´s creation, but if you use Unity PRO, it´s a matter of one or two frames.
Also, one big strategy would be removing the extra adjusts bones on the finalized character, this would reduce bone count and skinning calculations.
But for most games, having the ability to change the avatar at any moment overcomes above benefits.
It´s aways possible to share the body mesh and atlas textures between multiple avatars, and still be able to have unique shapes. That´s usually very useful for crowd or standard soldiers.
Hey everyone! The guys at the BetaTest channel just noticed something HUGE!
Can you guys using Unity free confirm we can actually have usePRO checked on UMAGenerator and use RenderTextures???
Not sure if this is intentional or will be changed on next Unity update.
Cheers : OOO
Thanks for clarification.
So i was doing some testing with a combining script i modified as you can see in the screenshots, the performance is awesome:
Without combining script:
With combining script:
And the animations etc works perfectly.
PD: The render to texture works on indie.
This is really amazing =D
Specially when shadows are enabled, this has a huge impact!
Maybe i should post the script here for everyone:
Here is the link for the script, you need to choose the last one, and put the inversed normals on false.
Very Cool Discoveries.
Would be awesome to incorporate the new combine features with the official version.
The page at http://unity3d.com/unity/whats-new says :
Save on textures with automatic atlas generation (Pro preview)
But it would be awesome if indie users were able to use this feature. How can I confirm this? I am an indie user.
About the Atlassing in non-pro: I've noticed this earlier. It works in non-pro editor, but if I run the exported project, textures come out all black (only tried iOS Android so far, though).
I came here for a question though: I'm evaluating the options for doing lip-sync with UMA's.
It's for a small research project, so budget is really tight. Right now I'm considering Tagarela and Speecher.
Am I right in assuming that bone based would be preferable for UMA? It seems like this way I could use Mecanim and have a Lip-Sync layer (override) for the lip sync animation, and an Emotion layer (additive) to mix in some hand made facial expression poses. Sadly, the open-source Tagarela works only with blend shapes. On the other hand, looking at the demos of Speecher, the quality doesn't seem to nearly justify the 100$.
I'd really prefer the flexibility of real time lip-sync through audio analysis, but I could live with an "offline" option in a third tool, too. I've looked at this blender tutorial, but it also seems to be based on blend-shapes/shape-keys and not just bones, which seems like a lot of work to add to the UMA base avatars.
(Please correct me if I'm wrong anywhere, as I'm pretty new to this whole topic and I'm still trying to get a complete picture!).
Fernando how many bones is in head controling speech (with mouth)? I am thinking not including them beouse with 50 characters on screen that could be quite an save on FPS.
Hi there! My main experience with facial expressions was using FaceShift.
Face uses 74 bones (37 pairs), most of those are responsible for the head shape variation as well.
Fernando thanks for answer. 74 bones is for sure a lot i dont think i will be able to keep that much bones and 50 characters on screen. Is it possible to decrease bone size in head only to three (for mouth speech), so one bone for eyes and two bones for mouth (1 for upper and 1 for bottom lip).
One more thing is is it possible to change main body with complete different sets if player changes armor? I am asking this becouse for performance it would be best if i dont use skiny body part bellow armor to render not needed triangles and texture, and just rather switch body with actual armor that will be used- if player use it. I hope you understand what i mean to say. This would mean that sine you have 2 UV sets for whole character the main body UV set along with body mesh would get replaced with whichever armor set player uses. This would help me with rigging and saving draw calls and polys.
Yes, you can use and mesh/rig you want, would be easy to edit the current one and just remove the bones you don't need. But UMA can run many characters on screen at the same time, i think Fernando has tried with 100 UMAs without any problems, also you can share the textures to save memory and drawcalls.
The body consists of separate parts, so you can just swap the legs for leg armor and body for body armor, this is the best way of doing it as you say because it saves a lot of tris. Same when adding helmet as an example then you can remove ears and hair.
Looks cool, could you maybe write a few lines about the pipeline? So what would I need to do to get something I created with FaceShift to work with the default UMA avatars in Unity?