Yondu’s Arrow in Hololens (Guardians of Galaxy)

Yondu’s Arrow in Hololens (Guardians of Galaxy)

A couple weeks ago, after completion of my article on spatial object placement in hololens, I was playing around few other features in hololens. At the same time I was thinking about what could be the next venture. So during that week I was having a discussion over movies with my friend and colleague Joe – particularly Marvel and DC movies. Joe is also an enthusiast when it comes to Hololens. So while having that discussion he suddenly said, “I would love to have Yondu’s arrow from the Guardians of Galaxy movie, that would be cool” or something along that line (because I am pretty sure he didn’t say Yondu). That lit a bulb in my head. I told him I’ll try to create it in Hololens and that’s the reason for this post (he wanted the real one though). To be honest the real difficult part to make this app was to get a model for the arrow itself. I had to convert an stl file which I found online to an fbx and add the textures to it. The bad side was I an not a 3d modeling artist so I am not sure it looks as good as the way I wanted it to be, but on the good side I learned a lot about 3D modeling, and it was worth it. Anyway, rest of it was pretty much straightforward. So I am just sharing theĀ entire project code which is available in my git rep here (no step by step tutorial this time). The hololens features apart from standard ones we are using are the spatial mapping and spatial audio. Also, this is tested only in the hololens emulator (as I don’t have a real one). I have also mentioned below a few improvements that could be done which would definitely make this better. To control the arrow you can gaze and tap or gaze and say “move” to move the arrow. I am still trying to figure out phonetics of whistle to control the arrow. Here are few screenshots of it.

Without the spatial meshes

hololens emulator with mesh


With spatial meshes

hololens emulator without mesh


Potential improvements that could be made are below. I would strongly suggest (and implement eventually) the first two for better user experience and performance while the other ones are subject to your discretion:

  • Object pooling on decals – You don’t want to overwhelm the hololens with unlimited decals. It is a performance killer. You can use an object pooling to limit the decals to 30 or something and recycle it.
  • Spatial Audio – A better audio clip with a continuous playback until impact and a different audio on impact. As far as hololens is concerned the better the spatial audio experience is the more real the object becomes to the user.
  • A better 3D model of the Arrow – I had to create it from a stl file (3D printing format) available online and hack the heck out of it to make it in it’s current form. I personally think it is not perfect.
  • Particle effect for the arrow trail – I liked the one I have created, and I haven’t seen any lag in or performance impact in the emulator too. BUT, since I haven’t tested with the real device I am not sure about it (especially since I have turned on the noise feature in the emitter). So I leave this to your discretion.
  • Implement a better decal for impact – If you notice the above image which includes meshes you can see small orange patches. That basically happens on impact of the arrow with any gameobject with a collider. You can add a more realistic texture (like a incendiary burn hole decal or something).
  • Arrow movement – Moving the arrow at a constant speed could be a better choice than lerp-ing the position depending your choice.

Source Code

Dedicated to Joe for inspiring the idea

One Reply to “Yondu’s Arrow in Hololens (Guardians of Galaxy)”

Leave a Reply

Your email address will not be published. Required fields are marked *