April in Review: HoloLens, Unity Tutorial, WebVR, and More!

April has been a busy and exciting month – there’s been a lot of news in the VR and AR communities, and HoloLens has jumped into the mix with Build this week, finishing off the keynote address yesterday and starting to gain exposure with various demos available to Build attendees. I had a chance to try out the Holographic Academy event they’re doing (expect more on this very soon, in the meantime check out this guy’s experience) and I’m really excited with the direction HoloLens seems to be heading.

This month, I also published a getting started with Unity 5 tutorial that I created as I was teaching myself the basics of 3D development and world creation within the Unity editor. It’s not meant to be a best practices guide, but instead walks through the fundamentals of getting down basic game mechanics for developers (and non-developers) who are interested in picking up some of the basics. VR support will be coming alongside the basic gameplay mechanism soon, as companies begin to release more complete versions of their tools and SDKs. Yes, at some point in the future, HoloLens will be one of them. If you’re interested in picking up some of the basics about Unity, or know someone who might be, check out the tutorial here.

12_particles Alongside Unity, I’ve been teaching myself the basics of WebVR, which I’ve mentioned in previous blog posts on the topic. I’ve recently begun a second WebVR application that allows you to visualize Excel charts in 3D space using Three.JS and a new virtual reality boilerplate template, and am getting excited about that being close to a point where I can share more details about it. I’ve also been a lot more exposed to other projects being worked on with WebVR as part of a talk that I’m doing in two weeks at JSConf Budapest, where I’ll be speaking about JavaScript’s role in virtual reality and how web developers can get started with the technology today! The talk will be live streamed and available on-demand after the conference, so stay tuned for that! I’ll also share my slides – and if you’re interested in hosting the talk in a social VR space, please get in touch because that would be amazing! 

Finally, in unrelated-to-VR-news, I’m in the process of transitioning my blog off of WordPress.com and making some much-needed updates to the overall site. Things may be a little wonky as I figure these out, so if things look out of place or are unavailable, shoot me a note on Twitter and let me know if there are bugs I miss!

Happy Holograming!

Do we live in a hologram? 

April in Review: HoloLens, Unity Tutorial, WebVR, and More!

Accessing SWAPI in Unity

A few weeks ago, I learned about SWAPI (Star Wars API) – the REST API for getting information about people, planets, ships, films, and species related to the Star Wars universe. As part of a Meta AR hackathon project that I worked on this weekend, I decided to integrate SWAPI into Unity. You can find the whole project on GitHub here.

SWAPI
Stereoscopic rendering in Unity of a sphere GameObject representing Hoth. The MGui objects for the Meta HMD are displaying information pulled from SWAPI in realtime as the planet is accessed in the application.

A little bit about SWAPI: I have a bit of an obsession with Star Wars, so when I was introduced to a full API to access the information about the Star Wars universe, I knew that I had to include it into one of my projects. SWAPI allows you to make a GET request to a base URL, http://swapi.co/api/, which you then append a specific suffix to in order to make requests for specific things – we focused on /planets during this demonstration. Each category can be requested on its own, which will return a JSON object with an array of all elements (i.e http://swapi.co/api/planets) or you can specify an id for which particular planet you want data for (i.e. http://swap.co/api/planets/1, which returns data for Tatooine).

So, onto the implementation! First, I created a new C# script from within Unity. In addition to the standard Start() and Update() functions, you’ll need to add in a new function that returns an IEnumerator object. Since we were accessing information about individual planets based on their tag in Unity, I called this function DownloadPlanet(string s), which took a string parameter that specified which number planet to retrieve data for.

Continue reading “Accessing SWAPI in Unity”

Accessing SWAPI in Unity

Creating a Timer GUI in Unity

Hey all!

February has been a busy month for me – I’ve been heads down in several projects and cranking out more content for my upcoming Unity tutorial, but over the past few days I worked on a simple scripting exercise to add a timer to the maze I’m building/writing about in the tutorial and decided that I’d share that here in case you’re interested in the fundamentals of adding UI elements to a Unity game.

The basic timer element from a First Person view
The basic timer element from a First Person view

Continue reading “Creating a Timer GUI in Unity”

Creating a Timer GUI in Unity

Unity Tutorial Notes now available on GitHub

Hey all!

I mentioned a while back that I was working on a Unity Tutorial for getting started with the Oculus SDK, and while it’s still got a way to go before it’s done, I’ve shared the tutorial, which is written in markdown, on my GitHub profile. If you’re interested in browsing through to learn my train of thought with terrain editing or getting an overview of 3D development, head over and check it out.

https://github.com/misslivirose/basic-unity-vr

I’m hoping to get to the section about using the Oculus camera tonight, since I’ve done a lot of work with the Oculus SDK over the past few weeks. In the meantime, you can help by leaving GitHub issues or comments here on things you’d like to see covered in the tutorial specifically, which will help me know what sort of stuff people are interested in.

Quick Edit: I recommend checking out this YouTube video for an overview on how to get the Unity Camera in the project while the tutorial is being finished!

*The final tutorial will have corresponding screenshots – as I mentioned, this is a WIP so stay tuned for the final results!

Link

Getting Started with Prefab Animation in Unity Animator

I spent some time playing around with a holiday asset pack that I snagged on the Unity Asset Store and discovered that the Santa I had purchased came with a series of animations. I decided to give the Animator a try to figure out some of the basics.

Santa’s snowball throw… aka Santa’s ‘Naughty List Slap in the face’

Continue reading “Getting Started with Prefab Animation in Unity Animator”

Getting Started with Prefab Animation in Unity Animator

Oculus Rift First Impressions

So, I’ve had a couple of days with my Oculus Rift DK 2, and it’s been a whirlwind of screen time since Thursday, when it arrived! It’s time to jump deep into the world of virtual reality – hands on!

IMG_20141120_203021

First things first: the headset! For those of you who haven’t had a chance to try it out, the Oculus Rift is a solid device, though heavier than the Gear VR (the Oculus clocks in at just under 1 pound) with an over-the-head strap that guide the cables back over the wearer. The device is cushioned with roughly a half inch of foam, which makes it pretty comfortable against the eyes, but I had a ridiculously difficult time trying to get it on myself the first few times. The lenses were quickly smudged, but after a few tries I got accustomed to maneuvering the headset on without sliding the lens down my forehead and it was go time!

Continue reading “Oculus Rift First Impressions”

Oculus Rift First Impressions

It’s a wrap! Reflections on SDC 2014

Today was the final day of the Samsung Developer Conference, and it was a blast! This was my first time attending SDC and the past two days were a whirlwind of hands-on play, awesome new tech, and a ton of virtual reality experiences that made me even more excited about where VR is headed. Trust me, I didn’t think it was possible to be more excited than I already was. 

Continue reading “It’s a wrap! Reflections on SDC 2014”

It’s a wrap! Reflections on SDC 2014

SVVR Meetup & A New Unity Project!

There is a way to make dreams come true, and that is virtual reality. This week, I had my first chance to try out the Oculus Rift, where I became a Jedi using the Sixense STEM System, as well as the SeeBright AR headset and the recently funded NimbleVR NimbleSense (spoiler alert: yes, I totally backed them!)

A life long dream of being a jedi brought to life.  Photo: Komei Harada
A life long dream of being a jedi brought to life.
Photo: Komei Harada

Continue reading “SVVR Meetup & A New Unity Project!”

SVVR Meetup & A New Unity Project!

Unity Day 2: Where I Learn how to make Random Colors

Working “Randomly” is never easy. There is a lot that goes into a random number generator, and it tends to act just a little bit differently from language to language. Today, I learned the very valuable lesson that Random behaves just a little bit differently even in the same language, depending on the IDE.

Continue reading “Unity Day 2: Where I Learn how to make Random Colors”

Unity Day 2: Where I Learn how to make Random Colors

Unity: Hello World

Notes from going through the Unity Hello World Tutorial from Emanuel Eferonato:

  1. Binding a script to a game object controller is reminiscent of how you connect iOS Storyboard elements to their associated actions in Xcode. At least, the way I did it was – with a drag from the Asset list of scripts to the GameObject.

  2. This didn’t work for the cube. I am supposedly scripting in C#. This is a very different C# from what I’m used to with Windows Phone development, but is oddly comfortable. It will probably only take me using Console.log() instead of Debug.log() about one hundred times before I can do it right the first time.

  3. Hmm, turns out I did just need to drag that to the Cube to get it to run. What did cube.AddComponent(“CubeScript”); do? Regardless, it’s working now. Yay!

  4. Aww yiss, we have a color changing block when we click. I wonder how long it’s going to take me to remember to stop being in “play” mode when I go to re-run the game after making changes.

  5. What the flip is Quaternion? Ohhh, it’s a rotation type.

At the end of the tutorial, I’ve made an object that moves 180 degrees. It’s not super interesting, but at least it’s an interaction! After I made the cube work, I went ahead and made a sphere to do the same thing. I ran into the issue where my sphere was sitting on top of my square, so I learned about positioning:

cube.transform.localPosition = new Vector3 (222);

I still don’t see how my objects are 3D (perhaps they’re “3D” in the sense that they move in the Z axis) but I figure that can be adjusted by adding a Z dimension to my initialization, right?

Bingo!

Change:

cube.transform.localScale=new Vector3 (2,2,0.1f);

to:

cube.transform.localScale=new Vector3 (2,2,2);

This was interesting to learn: I wouldn’t have thought that you would use the scaling function to create the object size, but when I started thinking about it in terms of the way you would scale a vector graphic, it made sense. Thinking in vectors is going to be a new challenge, but I’m pretty excited about it.

That’s it for tonight – stay tuned as I .transform these introduction tutorials into general knowledge!

PS: Turns out QuickTime is actually useful and can capture Mac screen videos. TIL!

Unity: Hello World