This is recreation of a blog post by Brian A. White. Brian’s blog went offline sometime in 2009, and recently it was suggested that someone republish this useful tutorial to make sure it can be found by search engines and does not someday completely vanish from the Internet. So here it is.
Some of the links in this article are dead and not available in any existing archives. I’ve left those in but
crossed them out.Fortunately these dead links are not critical to the tutorial, and I was able to update the other links that have changed since this article was written. Brian, wherever you are, thank you again for writing this and I hope you are well.
Tag Archives: metaverse
OpenSimulator Community Conference 2013 – My Presentation and My Thanks to Everyone Involved
This past weekend I attended and spoke at the very first OpenSimulator Community Conference (OSCC13). It was an amazing event full of outstanding presentations, great networking opportunities, and spectacular venues with tons of attendees. It was also truly remarkable to see how far OpenSim has evolved and matured as a virtual world platform.
I’ve seen my fair share of online conferences, and this was the most professionally managed and engaging online conference I have ever attended. To everyone involved in making this event a reality, thank you!
And thank you all who attended my presentation. I apologize for not having time to answer all your questions, but if you leave a comment on this blog post I will be very happy to reply.
Lastly, for those of you interested in me possibly restarting the Hypergrid Adventurers Club tours (I got a lot of positive feedback at the conference), be sure to join the HGAC mailing list and post that you’d like to attend a future tour. If I see enough interest, I’ll definitely start them up again.
Please read on for my own presentation summary, video and downloadable slides. You can also watch recordings of all the other presentations in the Conference Archives.
“Exploring the Interconnected: How Past Dreams evolve into Future Reality”
Join us to hear more about how dreams from the past can dramatically change and evolve into something completely new. In this presentation you will hear all about John’s initial experiences in Opensim while still working at Linden Lab, the creation and mangement of “Pathlandia,” initial explorations of the Hypergrid, and how it all fits in with what he remembers as Linden Lab’s original vision of an expanding Metaverse of self-hosted and interconnected virtual worlds.
ADDENDUM 9/10/2013: Be sure to read this blog post: “The Future of Conferences.” It’s an outstanding summary of the conference by Crista Lopes, the inventor of the Hypergrid and one of the conference’s main organizers.
Take care,
-John “Pathfinder” Lester
How to convert a prim-based object in Second Life or Opensim into a mesh object on your hard drive using the Singularity viewer (also works with Firestorm!)
[Update: You also do this with the Firestorm viewer. Just Export your prim object using the Collada format. Details here on the Firestorm wiki.]
This is pretty cool.
The most recent version of the Singularity viewer (version 1.8.1) adds a particularly interesting feature:
- Wavefront (.obj) and Collada (.dae) Export by Apelsin, Inusaito, and Latif Khalifa – Allows export of your creations into Blender, Unity3D and other modeling applications and game engines
This means you can now take a prim-based object from within Second Life or Opensim and export it to your hard drive as a mesh object (either .obj or .dae file format).
How to create multiuser networked events in Jibe and Unity3d using iTween
In Jibe 2.0 we’ve included an easy system that gives you the power to use iTween to create multiuser networked events. This allows you create shared experiences between avatars using interactive and complex object animations.
Watch my tutorial to learn more!
Video: How to create multiuser networked events in Jibe and Unity3d using iTween
Take care,
-John “Pathfinder” Lester
Chief Learning Officer
ReactionGrid, Inc.
How to create Avatar Sit locations on any object in a Jibe world in Unity3d
Here’s a short tutorial video that will show you how to create avatar sit locations on any object in your Jibe world. It’s a very powerful and flexible system where you simply drag and drop sit locations onto anything in your multiuser Jibe world, allowing you to easily create collaborative meeting environments that encourage avatars to gather together in groups.
In this video, I also review how to avoid the accidental misuse of a script that could potentially cause your Avatar to fall through the floor. Safety First!
Creating Sit Locations in Jibe and Unity3d from John Lester on Vimeo.
You can also find this tutorial video in our Knowledge Base.
Take care,
-John “Pathfinder” Lester
Chief Learning Officer, ReactionGrid
Breakdown of Oculus Rift Virtual Reality Headset and Integrating with Unity3d and Jibe
I’m eagerly awaiting my own developer version of the Oculus Rift, which should arrive in about a month.
My plans are to immediately start working on how to best integrate it with Jibe and Unity3d.
In particular, our newly released Jibe 2.0 has a built-in 1st-person perspective mode that is ideal for things like virtual reality headsets.
Keep an eye on this blog for future details.
Needless to say, I was very excited to see the folks at iFixit posting a great teardown of the developer version of the Oculus Rift headset.
If you have an Oculus Rift and would like to brainstorm with me on how it can be integrated with multiuser virtual world applications, please drop me an email (john.e.lester@gmail.com) or post in the comments.
Perhaps we can also schedule a Team Fortress 2 game while using our headsets!
-John “Pathfinder” Lester
Chief Learning Officer, ReactionGrid Inc.
P.S. ReactionGrid’s Lead Developer Matthew Bertrand is also getting an Oculus Rift dev kit. He’s pretty psyched about it, and we all expect amazing things from him!
How to embed and play a video on an object in Unity3d and Jibe
Note: You’ll need the Unity Pro editor if you want to work with Movie Textures in Unity3d.
Unity3d allows you to embed and play videos on any surface in a 3d environment.
This means you can easily create a web-based Jibe world where avatars explore a multiuser 3d virtual space while watching videos or movies playing on screens/signs/any surface you wish.
The most common way to add video to a Unity3d project is by adding a video file to your project’s Asset Folder, which automatically creates a Movie Texture (details here).
However, adding a video file directly to your project means the size of the video file will be added to the final size of your completed Unity webplayer file. In other words, if your video clip is 50 Megabytes large, then your Unity webplayer file will have an extra 50 Megabytes added on to it.
For folks creating Jibe worlds with Unity3d (or anyone creating Unity webplayer files for streaming on the Web) this is not good. You always want your webplayer file to be as small as possible so your webplayer file will finish downloading and start running as quickly as possible.
Fortunately, there’s a way you can download/stream a movie from the Web so it doesn’t add to the size of your Unity webplayer file. Unity will immediately start playing the movie as soon as it has buffered enough of it, similar to how YouTube works.
Here’s a simple example:
Step 1: Get your video ready as an OGG file on the Web
If you have a video on YouTube that you want to use, you’ll have to download it. I suggest using Flash Video Downloader.
Unity needs videos to be in OGG format (file extension .ogg). If you need to convert an existing video file into OGG format, I suggest using VLC (it’s free and cross platform). Take your OGG video, put it on a webserver somewhere and remember the URL.
Important Note: If you’re managing your own webserver, be sure it has the MIME type for Ogg Vorbis enabled. For Extension use .ogg, and for MIME type use application/ogg.
Here’s a sample 60 Megabyte OGG video I made and uploaded to WordPress. Feel free to use this URL in your own tests. You can also click on it to see how it plays in your browser.
https://becunningandfulloftricks.files.wordpress.com/2013/04/hedgehog_in_the_fog.ogg
Step 2: Create a Cube
In this example, we’re going to make a basic cube and have the video play on its surface. Of course you could flatten the cube so it looks likes a screen and then place it on a model of a TV or something. I’m just being lazy.
Step 3: Create a new Javascript
I like the name of a script to remind me what the script actually does, so I’m going to call this new script ClicktoPlayWebMovie.
Here’s the code. Copy and paste this into your new script and save it.
var url = "https://becunningandfulloftricks.files.wordpress.com/2013/04/hedgehog_in_the_fog.ogg"; function OnMouseDown () { // Start download var www = new WWW(url); // Make sure the movie is ready to start before we start playing var movieTexture = www.movie; while (!movieTexture.isReadyToPlay) yield; // Initialize texture to be 1:1 resolution renderer.material.mainTexture = movieTexture; // Assign clip to audio source // Sync playback with audio audio.clip = movieTexture.audioClip; // Play both movie & sound movieTexture.Play(); audio.Play(); } // Make sure we have audio source @script RequireComponent (AudioSource) function Update () { }
You can see at the top of the script that I’ve included my demo URL as the default movie URL. You can always change it later.
Step 4: Add ClicktoPlayWebMovie script to your cube
Drag the ClicktoPlayWebMovie script from your Project folder onto the Cube in your Scene view. This will add the script to the cube.
Now select your Cube in the Scene view and look at the Inspector settings. You can change the movie URL by simply editing the URL field in the Inspector.
Also notice that there is an Audio Source added to the Cube. This was added automatically when you added the script to the Cube, since the script needs an Audio Source component to work. Don’t delete or modify the Audio Source component. Just leave it be.
Step 5: You’re done. Test it out!
You can run your Jibe world locally in the Unity editor and test it out that way. Walk up to the cube and click on it. The movie will start playing on all surfaces of the cube.
You can also view an online version of this demo in my own Jibe world.
Enjoy!
-John “Pathfinder” Lester
Chief Learning Officer, ReactionGrid Inc.
Speaking at “Train for Success” Panel on the Future of Virtual Worlds – Nov 8 @ noon Eastern
The Gronstedt Group hosts a weekly “Train for Success” speaking series, and this week I’ll be participating in a panel discussion on the State and Future of Virtual Worlds.
The panel will be held in Second Life and starts on Thursday November 8 at noon Eastern. You can also watch and ask questions via the live stream on the web.
For more details, please see Facebook. Here’s a summary:
“The landscape of virtual worlds is changing. Social and game mechanics make virtual worlds more engaging. Browser-based virtual worlds make them more accessible to a wider audience. The panel will discuss the state and future of virtual worlds. Join this conversation about the emerging platforms and applications of virtual worlds in learning and business.”
Hope to see you there, and special thanks to Anders Gronstedt for inviting me to participate.
A peaceful retreat: New waterfall area in my Jibe world
I spent some time today putting together a new waterfall area in my Jibe world.
It’s full of ambient sounds and dynamic shadows. A very peaceful place.
You can visit it by going to my Jibe world and clicking on the “Waterfall” button in the upper left corner of the screen.
It may take a few seconds for the button to appear once you arrive in the default landing area. That’s because the Waterfall area is pretty large and needs to download a bit before you can jump into it. Just be patient. 😉
For more pics, see this nice set of photos taken by Key Gruin. Thanks for visiting, Key!
Take care,
-John Lester
Building Immersion through Simple Design: Visit a Meteor Shower in Jibe
Anyone can create an exciting immersive experience in a 3d virtual world platform like Jibe.
It doesn’t have to be complicated.
And it doesn’t require loads of money and development time.
The trick is to follow a few simple design rules.