Posts

Showing posts from January, 2018

Breakdown of Leap Motion classes

Image
This blog post isn't really for reading, it's more about me trying to understand what everything in the classes do so that it will be easier to write my own classes when it comes to decoupling them. It's mainly a break down, line by line of how the bottom two classes, which deal with the actual frames/data work.  Leap Service Provider Order of method calls in Unity. Start() checkShouldEnableHeadMounted() This checks to see if VR is enabled and whether or not head mounted is enabled and logs an error if both are true. This is because by default they enforce that you use head mount when in virtual reality. This is an important thing to note for when I go to implement a table mounted version of the system. Would have to disable this check.  Returns true if we should enable head mount, false if not necessary createController() " Create an instance of a Controller, initialize its policy flags  and subscribe to connection event" - Leap Motion Create...

"Mimicking" Gestures

Mimicking Currently the way our original prototype works, as well as the general theory for mirror therapy is to have a vertical mirror in between the hands so that the virtual hand is simply a mirror of the "real" hand. Holger has suggested a different type of "mirroring" which potentially may work better and could be of use to Chris for his project as a comparative technique. It would instead be a combination of mirroring & translating which may be better explained by this video: Potential Variation: One thing about this technique is the rotation of the hands means that if you have your control hand facing downwards the virtual hand will be facing upwards & vice versa. I suspect that this may not be a very natural movement because if we decide to implement physics into the hands it would be difficult to interact with in our case a box for example. Another potential way to implement the movements would be to change the hand rotation...

Texturing Hands

Image
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 fin...

Texturing using Blender

Image
Terms: Material: Defines the optical properties of an object: its color and whether it is dull or shiny.  Texture: A pattern that breaks up the uniform appearance of the material. A property OF the material Can't have a texture without a material Blender: For no particular reason other than a few trial and error attempts with a few different modelling applications I decided to use blender as my 3D modelling software of choice. I've never done any kind of 3D modelling before so learning some of the absolute basics took awhile to get my head around.  After watching a load of tutorials I have a 2 different techniques that are basically the same, one just requires more work in Blender and the other more work in Unity.  Technique 1: This is the first way that I tried where I created the textures inside Blender and applied them to the box within the application. I then imported the fbx file to Unity and for the most part the textures crossed the platfor...

10th of January Update Post

Image
UPDATE POST Sorry for the radio silence over the past month, a few weeks went by where I felt like I didnt make enough progress to warrant a blog post but now after writing a very long update post I realize I probably should of been updating at least my failed attempts at fixing the problems I mentioned in the last post.  That being said, prepare for a bit of a novel this time round and I'll try be more onto it for future blog.  System as it currently stands: I only just now after reading back on my previous blosg have realized that I haven't actually written about the new rigged hands (started a draft and then stopped) that I implemented from the Hands Module. The way that I implemented this seems like a little bit of a round about way of doing it but is how Leap Motion recommends to do it. So basically each controller has a hand pool, this is essentially an array of hand representations mapped to a single hand. The main purpose behind this I ...