Search Unity

UMA - Unity Multipurpose Avatar on the Asset Store!

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

  1. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    What do you mean? I did specify reference mesh when it was necessary (according to youtube tutorials "uma race tutorial"), and uma obviously does merge normals because all the parts from which the mesh is assembled are also hard-edged. It is impossible to get this kind of picture unless normal merging occurs at some point.

    Are there specific requirements for the reference mesh? The mesh is pretty much the same model, except all parts are joined as single mesh. Meaning it has hard edges as well. I'm actually not sure what UMA even needs it for.
     
    Last edited: May 27, 2015
  2. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    It uses it to smooth the normals at the edges of each partial mesh if you have your body separated into sections. In your case you don't want that to happen. Try it without the reference mesh.
     
  3. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    It looks like reference mesh is REQUIRED in slot builder:

    That's what happens if I set "Race Prefab SKinnedMesh" to None.

    //outdated version, might no longer apply.
    I checked the source code of SeamRemoval.cs and I think you guys have a bug:
    Code (CSharp):
    1.  
    2.        public static Mesh PerformSeamRemoval(SkinnedMeshRenderer originalMesh, SkinnedMeshRenderer referenceMesh, float threshold)
    3.        {
    4.             float sqrthreshold = threshold * threshold;
    5.        
    6.            Vector3[] referenceVertices = referenceMesh.sharedMesh.vertices;
    7.            Vector3[] referencenormals = referenceMesh.sharedMesh.normals;
    8.  
    9.            Vector3[] normals = originalMesh.sharedMesh.normals;
    10.            Vector3[] meshIndexVertices = originalMesh.sharedMesh.vertices;
    11.  
    12.            for (int vertexIndex = 0; vertexIndex < meshIndexVertices.Length; vertexIndex++)
    13.            {
    14.                for (int othervertexIndex = 0; othervertexIndex < referenceVertices.Length; othervertexIndex++)
    15.                {
    16.                    if ((meshIndexVertices[vertexIndex] - referenceVertices[othervertexIndex]).sqrMagnitude <= sqrthreshold)
    17.                    //^^^ This line.
    18.                    {
    19.                         normals[vertexIndex] = referencenormals[othervertexIndex];
    20.                    }
    21.                }
    22.            }    
    23.  
    24.  
    The algorithm is quite obviously incorrect and will smooth out any sharp edge if it happens to be close to reference geometry.

    Alternative approach: Do not smooth the vertex if more than one vertex in original geometry shares its position.
     
    Last edited: May 27, 2015
  4. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    It isn't called that or required any more - what version of UMA are you using?
     
  5. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    I checked the version, it seems it is git UMA from 5th of March of this year. I'll try updating.
     
  6. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Hello Guys,

    I've been beavering away trying to get my free tutorial series off the ground and would like to announce the publication two first 2 videos.

    "A Practical Guide to UMA" is aimed at newcomers. The ultimate goal is to get people up and running in the shortest time possible.

    The first two videos serve as an introduction to the project, the next set will look at creating a character from scratch using C#. Later videos will cover custom slots, overlays, loading, saving, animating and using the new facial animation features. I plan to keep updating this series until I exhaust my knowledge. (Which shouldn't take too long)

    If you're interested, scooch on over to youtube and have a look:

    >>> Click Here <<<

    Thanks for your time
     
    theANMATOR2b, Flipbookee, IFL and 8 others like this.
  7. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    @SecretAnorak
    I like your narrative :) Thanks so much! I look forward to watching them all.
     
    stevenh512 likes this.
  8. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,687
    @SecretAnorak - Something that comes to mind that would be helpful to cover about UMA (and there are SO MANY things) is what the various functions in the UMA dropdown menu do, and when to use them.

    But probably you are going to cover the basics of the UMA example scenes first ... :)
     
    stevenh512 likes this.
  9. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Oh THANK YOU! I am currently building materials in UMA, not so bad, but a tutorial would be so great, especially for people who haven't touched UMA at all. I figured out UMA 1 so at least I have that advantage but I have developer friends who are afraid of it. :)
     
    Dreamaster and stevenh512 like this.
  10. night-cj

    night-cj

    Joined:
    May 13, 2015
    Posts:
    1
    Hi Guys,
    I want to create a animation with hair,so i should skinning hair mesh to some extern bones .
    What should i do.
     
  11. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Thanks for your support guys,

    Thanks for the suggestion hopeful. I have quite a fixed idea how I'd like the tutorial to progress for the first few videos but I'll welcome any suggestions for further down the line.Bear with me and I'll get round to those menus :)
     
    Last edited: May 28, 2015
  12. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    If that's your goal, consider making written tutorials as well, because you can't "ctrl+F" through the video for relevant parts. To get mesh into uma I had to spend several hours watching through the videos and skipping back and forth for relevant pieces of information. Incredibly frustrating, incredibly slow and incredibly inefficient. Same could've been accomplished in 1 hour max if tutorial was in text form.
     
    boysenberry likes this.
  13. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Good point neginfinity, although I'm aiming to teach by example here rather than producing a reference video. I'll have a look at transcribing them with screenshots when the first series is done.
     
    boysenberry likes this.
  14. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    I've looked at your video tutorial, it is actually very good (that comes from person that absolutely hates video tutorials), especially 1st part. More or less straight to the point, tolerable length, and all. Keep it up.

    I personally would love to see tutorial on making new race with the most recent UMA version, though.

    ---------

    Speaking of getting my mesh into uma, I'm still having trouble.

    I updated uma to the most recent git version, now edges stay sharp, it takes less time for characters to appear, BUT
    animation and character orientation are incorrect.



    Generated characters are rotated 90 degrees and placed on the floor. However, it looks like arms attempt to follow correct orientation.

    How do I fix this?

    In previous verison I used I had to manually setup "animated bones", I couldn't find any place to do that in this version. So either this step is no longer necessary, or I missed it and that causes the problem.

    Also, I'd like to know how to:

    1. make all the parts share same "skin" color.
    2. properly implement custom DNA that does not have sliders.
     
    Last edited: May 28, 2015
    SecretAnorak likes this.
  15. andrebakker

    andrebakker

    Joined:
    May 28, 2015
    Posts:
    1
    Hello to all...

    I was wondering if anyone could help me. I've seen the CapsuleColliderSlotScript, which basically adds a CapsuleCollider and Rigidbody to a newly created character.
    However, I was wondering how I could adapt this code to add CapsuleColliders to bones, since I need a better collision detection system.

    I've managed to create the colliders, but I'm having trouble in finding the correct radius, height and orientation for the Capsule. Does anyone know the correct way to do this?

    Any help appreciated. Thanks in advance!
     
  16. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Are you using the default skeleton? If not you'll have to make your own TPose asset for the character. There have also been several recent posts with mangled characters which I believe are from some issue with the binary FBX export in Blender - use ASCII FBX for now if you're a Blender user.

    If you assign the same overlays to multiple slots it will share them. Or are you trying to use vertex colors?

    The custom DNA requires a new DNA class and a new DNAConverterBehavior class (and you have to run the utility script "UMA:Create DNA Helper Code"). The sliders are just a separate script that is part of the example scenes, you certainly don't need to use them. The UMADNATutorial class and its converter is an ultra simple DNA example that only contains a single value.
     
    boysenberry likes this.
  17. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Absolutely fantastic stuff, once you get a few more episodes I'd like to link your videos directly from the UMA asset store page.
     
    stevenh512 and SecretAnorak like this.
  18. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Great idea!

    A lot of the tutorials on the Wiki are outdated or just end in the middle. I was happily making UMA 2 materials, slots and overlays yesterday when the tutorial suddenly ended...I am now stuck. Nothing at all about random sets, even though I still see random sets being used. So I have everything made and put in the overlay and slot list, but nothing works. I still get only the regular UMA people in their modern clothing and my items are not there.

    Obviously, I am missing something but have no idea what. I was told I had to verify the meshes or something like that, but I have no clue how do that.

    I would love to make and share content but is there a way to get more information? Or should I just wait for SecretAnorak to finish his amazing video series. :) I guess I could find other things to do.

    Another question...will prefabs made with 4.6 still work in U5? I have a load of them but figured I would have to toss them. Would be great for stand ins though.
     
    stevenh512 and SecretAnorak like this.
  19. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    I'm using custom skeleton. I did create TPose from UMA menu. Model does not appear to be distorted by any kind of fbx glitch, the mesh that is standing upright on the screenshot I provided earlier uses same model. Switching to text FBX made model 100 times smaller, but did not fix the problem - it was still thrown on the ground. Previous version of UMA did not have this problem.

    To me it looks like bones/skeleton gets rotated at some point.
     
  20. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,687
    Up near the top of the drop down window for UMA in the editor it says, "Verify Slot Mesh." As to what's going on there ... it's a mystery to me.
     
    Teila likes this.
  21. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    This is my personal opinion and in no way reflects any official UMA development group policy. I think the random sets are a confusing mess and you shouldn't use them. The recipe crowd example can do basically the same thing in a much simpler to understand way - again, my opinion only.

    Are you talking about prefabs made with UnLogick's tools? Those are just regular assets - UMA isn't even required to use them. Or if you mean character recipes from earlier versions those should be fine.
     
  22. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    If you put your slot mesh and the base mesh into the scene and select them it will compare the skeletons to see if there are conflicts. There's also a little scene with some menus that does that and a couple other tests, although unless you're on the github code you'll have to select the base mesh manually right now because the path in the script didn't get updated.
     
  23. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    How are they being created? Do you have an animation controller set so that it is adding an animator component to the characters? If so try disabling that - I'm curious if the mesh itself is damaged or if the animator/avatar is causing it.
     
  24. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Well, that explains that, Thanks! :) Not sure why that couldn't be so easily added to the documentation. Promise, if I ever figure this out, I will write something up.
     
    stevenh512 and hopeful like this.
  25. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    I'd be honoured, I'm glad to help in any way I can. And thanks for the kind words everyone.

    I've posted another 2 videos today so hopefully I will reach the first milestone sometime this weekend. I reckon by around part 8 most newcomers, with a little C# experience, should know enough to confidently add animated UMAs to Players and AI Agents.

    After that; I'm open to suggestions. I'm trying to think like a newcomer, what did I really need to know and what just bogged me down? (and believe me I did get bogged down :) ). I'm guessing that adding custom content is a no-brainer for the next set, but if anyone has any better ideas please let me know.
     
    stevenh512, Teila and boysenberry like this.
  26. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Making a new race from the ground up would be my preference :)
     
    hopeful likes this.
  27. SecretAnorak

    SecretAnorak

    Joined:
    Mar 19, 2014
    Posts:
    177
    Heh heh, I'd have to learn how to do that myself first ;) I'm pretty confident with making my own slots and overlays but never managed to sit through the werewolf stuff. I'll have a look boysenberry, but I wouldn't hold my breath, I am not the sharpest tool in the box ;)
     
    boysenberry likes this.
  28. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I would love to see a video on making slots and overlays, and getting them to work with UMA 2. I had them working and even made my own content with UMA 1 but am baffled again by UMA 2. I actually made the materials...but then...blank.

    There are a number of custom UMA clothing/armor options available now on the asset store and a video that shows users how to set those up would be valuable as well.

    One of the major draws to UMA is that you can customize your characters, either to make unique NPCs or to make unique player characters. You can even change clothing and armor within the game if you know how to set that up. We had all that working with UMA 1 and had a nice character customization screen all ready to go. Just have to figure how to make all our clothing work again!
     
  29. solidcore

    solidcore

    Joined:
    Mar 4, 2015
    Posts:
    10
    Edited: delete this post, I discovered I made a mistake and had somehow got my Dirty in a loop! :) Investigating.

    Regards
    Chris.
     
    Last edited: May 29, 2015
  30. solidcore

    solidcore

    Joined:
    Mar 4, 2015
    Posts:
    10
    Please add me on skype: solidcore, I will be happy to guide you with this process over a call or by text, while it's still fresh in the brain ... here's what I've got from it now (programmatic-ally able to disable/enable item slots from new

    Attached is a screenshot of me working with char in latest UMA 2 (git) and my meshes in PBR Spec, and Standard works too :)

     
    Last edited: May 29, 2015
  31. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Thank you! I love this community. :)

    I will add you to my Skype but I am off to bed soon so will need to work with you tomorrow or at a time convenient for you. It has been a long day.
     
  32. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Well... truth to be told you described what the Race Data was in UMA 1... we've changed it a bit so it's now a container for stuff like dna ranges, expression sets and color preferences. The race prefab and all that jazz have been completely cut because it really gave us nothing. So making races is now nothing more than defining a few colors and set up an expression set. It doesn't require any wizards or odd magic.

    About making an expression set from the bottom.... Eli help me out here... :D
     
  33. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    Would be nice to see instructions/documentation/examples on that, especially if custom ekeleton is involved. As I mentioned before I'm still having problems importing my own mesh (worked in previous version of UMA).
     
  34. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    I'm still stuck trying to get my own mesh/skeleton into UMA. So I would appreciate if someone assisted me with that.

    Right now I somehow get incorrectly rotated mode.



    I have impression that the mesh is for some reason incorrectly oriented. Here's what happens if I fail to specify "root rotation" in "race" asset:




    I also recorded how I create new race from scratch with camstudio, if anyone interested in trying to figure out what's wrong:
    Here's sped up video (4x rate, 5 minutes, 26 megabytes. you'll need to download it, because text is unreadable in dropbox video player):
    https://www.dropbox.com/s/no8asid32hc0zmc/race_construction_sped_up.avi?dl=0

    And here is normal rate video (20 minutes, so don't use this one unless you're really patient and have lots of free time):
    https://www.dropbox.com/s/pelams10l6sglem/race_construction_normal_speed.avi?dl=0

    The video stops before specifying root transform bone in the race asset
    ----

    So, can someone explain to me what exactly I'm doing wrong here and at which point?

    I know that's tall order, but I don't see any other way to figure this one out.
     
    Last edited: May 29, 2015
    boysenberry likes this.
  35. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Actually this is the time to dig out the "Scene03 - Verify Slot Meshes" It handles all the sanity checking we could think off... it will tell you exactly what bones are messed up and similar stuff. Open the scene press play and fill out the values... only now that I think about it I suspect the male/female shortcut buttons are broken (since we moved content around), so you need to specify the race thing manually.
     
  36. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    Alright. I managed to get it right.

    Clicking "Apply Transform" in fbx export options fixed the problem.

    It looks like there was a rogue unapplied rotation somewhere on the model.

    Applying transforms to objects and reparenting them to armature after that seems to work. Also apparently it is a good idea to have "root" bone (placed at feet of skeleton, pointing backwards with roll 0).

    Original message:
    I'll get to it shortly...

    Here's what I figured out so far:



    Incorrect rotation of model happens when skeleton does not have "root" bone ("root" bone should lie flat on the ground at zero coordinates with identity transform). When that happens, model gets rotated in such way that "hips" lies flat on the ground. The screenshot above is taken with added root bone (can't figure out right transformation for it yet).

    That problem happens only in UMA and previous version of uma could handle missing root bone just fine. Here's symptom of that problem (tilted bounding box on undeformed skinned mesh):



    ---
    This tool didn't help. It does not ask for custom race, and it says "everything is fine", well, because there is only one mesh slot and it can be only compared against itself.
     
    Last edited: May 29, 2015
    ecurtz and boysenberry like this.
  37. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Very happy you got this going. I readily admit that the whole top level magic transform stuff Unity does both enrages me (why not just do it right!) and gives me a huge headache when we try and deal with it in the code. Luckily Joen seems to understand it, so I can work on the things that make me less crazy.
     
  38. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Making an expression set for a custom race just involves making a skeletal animation (using the second level bones not the "Adjust" bones the DNA uses, but their parents) with a keyframe of each of the expression channels you want to support. Your unspeakable horror might only have JawOpen if that's all that made sense and it would still work with the standard expression clips. Then there's a little utility window to extract the expression data from that animation. As soon as somebody gets to that point with their custom race I'm happy to answer questions.
     
  39. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    Please consider investigating how did this work in previous version of uma. Because in the pre-git version I used before - the one where you had to drag&drop 51 animated bones by hand, it worked without root bone and without checking that export option..

    The glitch seems to happen because during export blender apparently moves mesh (deformed by the armature) into space of top-level bone of armature. So, if there is no "root" bone, that can be "hips" bone, for example, and then skinned mesh will be tilted.

    As far as I can tell, during mesh combination phase some of the transform information is ignored which results in a glitch unless "apply transform" is checked.

    The reason why glitch kept occuring is because even with zeroed/applied transforms after import skinned mesh ("GirlBodyFull" in my case) had 270 degree rotation around X axis applied to it. I suspect it is exporter's or importer's attempt to convert model into unity space. The only way to fix that completely was to select "apply transform" option.

    Also, text export to fbx seems to be partially broken - It insists on treating blender units as centimeters, so model becomes tiny after export.
     
    Last edited: May 29, 2015
    boysenberry likes this.
  40. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    I'm pretty sure (Joen may correct me though) that it's become pickier about the Blender mesh as a result of the changes we had to do to make it more compatible with models from Maya and Max, but it's always required you to make sure all the transforms were applied before export.
     
    theANMATOR2b likes this.
  41. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    @neginfinity
    I've noticed the same in reverse when importing FBX files into blender as well.
     
  42. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    After perusing the UMA code for a bit I noticed a lot of #if !UNITY_4_6 and #if UNITY_4_6 blocks and began to wonder if a lot of them need to be updated for Unity 5 as well? Here is a list of the different files I found them in:

    UMA/Core
    ExpressionPlayerInspector.cs (4 places)
    TPoseExtracter.cs (1 place)
    UMASlotProcessingUtil.cs (1 place)

    UMA/Core/Scripts
    ExpressionPlayer.cs (1 place)
    SkinnedMeshCombiner.cs (5 places)
    UMAGeneratorBase.cs (1 place)
    UMAMeshData.cs (7 places)

    I would think they should be Unity 4.6 or 5.x but maybe I am mistaken.
     
  43. ecurtz

    ecurtz

    Joined:
    May 13, 2009
    Posts:
    640
    Nope those are basically places where stuff changed in Unity 5, and since 4.6 is the only pre 5 version we support it's simpler to mark them based on that, since there's no flag for 5+.
     
    boysenberry likes this.
  44. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Awesome, thanks, glad I asked :)
     
  45. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Is there anything I should ignore using UMA 2 in the Werewolf video tutorials? I feel like there was something mentioned in the list previously, like maybe the prefab?
     
  46. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Whenever Fernando mentions the Race prefab just ignore it... It's no longer needed / used. (The slots now hold the authoritative skeleton structure.)
     
    boysenberry likes this.
  47. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    I'd suggest to ignore entire tutorial. It is very hard to use and does not map well to the most recent version of uma.

    1. Material system has changed.
    2. Fullbody mesh is no longer required.
    3. You no longer needs to copy bones by hand.
    4. Material builder has changed, slot builder is separate.
    5. Random sets are rewritten and do not function/look like the ones in the video.
    6. Lots of unnecessary information.
    7. Making prefabs in the way he does it is unnecessary.

    The only useful information you get from the video tutorial is understanding what "Race" and "Slots" are.

    The video I uploaded earlier depicts largest portion of creating your own race, except that you need to specify "root" bone name in Race asset and it will work after that. Also, there is a bit of wasted time where I got confused. It also doesn't cover creation of your own DNA (cause I don't need it), but you should be able to tear apart "TUtorialDNA" (or something) class in uma folder.

    Aside from that grab crowd examples, tear them to pieces, look how they work, and watch two videos by SecretAnorak .

    You should not need to look into source code, unless you planning to hack uma and contribute.
     
    boysenberry and UnLogick like this.
  48. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Its really nice having full length videos rather than a lot of chopped up youtube videos, thank you. I am watching them now.
     
  49. Revek

    Revek

    Joined:
    Apr 11, 2012
    Posts:
    14
    I'm sorry if this question has been asked but I'm curious as to how this was made
     
  50. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    Alright, I spent few hours of my time and made a tutorial on making a race from scratch.

    --EDIT 2017--
    The video has been uploaded onto youtube, along with links to downloadable archives with *.avi/*.ass files:



    Dropbox links replaced with tinyupload links, as I no longer host the files.
    ------

    You can pin it, wikify it, whatever.

    Tutorial is in *.avi format with *.ass subtitles, no voice. You'll need to download it and use player that can read the subtitles.

    You might need to add slight delay to the subtitles, depending on your player (my player insists on delaying video behind subtitles, regardless of what my subtitle software says).

    I originally wanted to provide written part as well, but it took too long, so I gave up on that. If you're in a hurry, use timelapse video.

    Normal speed video (20 minutes):
    http://s000.tinyupload.com/?file_id=66206880764629921398

    Timelapse video (5 minutes):
    http://s000.tinyupload.com/?file_id=01687982462320273793

    Now, I will not provide assistance on configuring video players or anything else. Anyone with free time can grab the video and make better tutorial based on it. With/without voice, written one, anything.
     
    Last edited: Apr 20, 2017
    uni00, IFL and boysenberry like this.