Texturing Hands
Texturing the 3D Hands
The purpose of texturing the box was so that eventually I could move on to texturing realistic hands.
The first issue I had was that Leap Motion export their prefabs in the ASCII format of .fbx (i'm guessing because it's human readable?) and Blender doesn't allow importing of ASCII file so I had to convert to a Binary file using an external application.
After importing it into Blender I realized there was something called Armature which I hadn't heard of before and as I started reading I figured it would help to look a little bit into how animation works so I could understand the Leap Motion documentation a little bit better.
Leap Motion uses something called Skeletal Animation for their hand prefabs. When using this method we split the character object (in this case hands) into two parts, the skin/mesh and the interconnected bones/rig. The bones are connected in a hierarchy so that when you move for example the tip of the finger, the rest of the finger moves as well. This is called rigging, which is a term I've read a lot on Leap Motion. Armature is a type of object used for rigging and helps move the model around and can be used to change the position of the bones. The hand almost acts like a puppet and the armatures are the points on the hand that the strings would be attached too. (maybe)
After that it was relatively straight forward. I chose a part to split the hand on and made a selection that would split the hand into palm and back of the hand. I then saved this selection as a group in case I accidentally deselected it and then marked it as a seam. Then using UV unwrap I had two hand maps in the UV map view. I then selected some of the edges at the bottom of the hand and stitched and welded them together. Below is the final product:
These are the default rigged hands and as you can see they are quite "blocky" and are made up of about 800 polygons. These are the preferred choice from Leap Motion and what they now use in all their demos. On a lot of Leap's blog posts they talk about another set of Prefabs called PepperBaseCut and PepperBaseFull.
These hands are made up of 20000 polygons which would be ideal for our application as we want the most realistic hands as possible however they no longer exist in any of the modules that they have updated and I assume this is because "they are not suitable for mobile applications." Worst case we just find an older version of leap to get these prefabs to use not sure?
Currently we are going with the lo-poly hands from above and I've given them to Matt who's going to adapt his program to generate the texture for me. From what I can gather the result will probably be somewhat realistic hands on kind of cartoon like models.
Also while reading the blog I found a good explanation of how all the classes are related which when it comes to decoupling later will probably be useful:
"The RiggedHand script is an implementation of the IHandModel class that provides methods that drive the 3D model’s transforms with Leap Hand data. The rigged IHandModel and the Leap Hand data are paired to become an IHandRepresentation and are then managed and driven by the HandPool and LeapHandController classes. RiggedHand gets assigned to the top of a hand model’s hierarchy and maintains a list of references to RiggedFinger scripts. The RiggedFinger components get attached to the top of each finger’s hierarchy and maintain a list of references to that finger’s bone transforms.
Both RiggedHand and RiggedFinger also derive from HandModel and FingerModel scripts, as do the RigidHand and RigidFinger classes, which drive Leap Motion physics hands. HandModel and FingerModel classes provide a collection of methods calculating the positions and rotations of the various transforms of a model. The RiggedHand and RiggedFinger scripts then use these methods for updating the hand and fingers."
I'm also half way through a blog post on the mimicking actions that I discussed with Holger, I have the video's filmed just have to write it up.
Comments
Post a Comment