Attach things to user’s head

Imagine if you have to show some kind of game status on screen for the tracked user… You can just have that object always in front of the user in the CAVE. There are two ways:

1) Use OnUpdate() to always update that object’s position to User0’s position. OR

2) When initializing, use self.movable().setParent(‘User0Head’) to attach it to the User0Head entity. You can then set the position of the object, and it’ll be in relation to the parent. You won’t need to use OnUpdate() to position it anymore!

Understanding the physics collision type in Virtual Lab

There are three different types of CollisionType properties for the physics.  Let me give a little bit more information than is provided in the documentation.

Static: This means that the program assumes that the object will not be moved, but other objects can interact with it.  A good example of something that should be static is a building, as we wouldn’t expect to move the building, but we would like to walk up stairs.

Dynamic: This means that the physics system is the one in charge of moving the object.  This means that the objects will fall due to gravity and be pushed around when other objects collide with it.

Kinematic: This means that you move the objects around and the physics systems acts accordingly.  In this way, the objects will not fall as there is no gravity putting a force on them.  This is the state of objects in the kitchen scenario when they are attached to the wand.

You can also dynamically change between these modes, for instance changing from kinematic when the user has an object selected and dynamic when they don’t, causing the object to appear to fall.

Ski Mountain Update – 4/28

This week Russ began modeling the Mountain Resort. We decided that for an appropriate size for the resort (based on the size of our mountain) to make the structure approximately 200′ long x 50′ deep. Based on time limitations, we will keep it very simple to limit the time spent modeling the structure to focus on adding detailing elements to the mountain itself. The general structure of the resort is in place, but I will continue this week to model more rooms and work on applying surface finishes in more of the rooms. Because we want the participants to experience the ski hill more than the mountain resort, more of our focus is on the mountain itself at this time.

Nick worked this week on fine tuning the geometry of the mountain, including creating a flat surface on top where the users will start skiing, and the mountain resort will be placed. He also worked on making the 3 ski runs more individualized so that they vary in difficulty level. We are working on creating the jumps on the various runs, and working on trying to incorporate a half pipe (hopefully we can get it to work with our model!).

Dan worked on the code for our model this week since we were having some trouble getting it to launch on the LEL screen. We were finally able to get the person to move, though are fine tuning the settings and code to make it as realistic as possible.

Dan was able to figure out how to move and rotate the skiis and “attach” the user to the skiis. He is still working on figuring out the following:

-right now you can either rotate or move, you can’t do both (basically, we move by applying a force, and we rotate by applying a Euler translation, and for whatever reason the Euler translation seems to cancel out any applied force)

-when you attach the user to the skiis, they disappear

-there is still some bizarre bounding box stuff going on. I’m not sure if it is due to the way the mountain is represented (probably) or the skiis (also possible), but a lot of times the skiis will bounce of invisible things due to (I’m assuming) bounding box errors
(we are trying to address this as we fine tune the mountain model)

 

 

C.A.V.E. 4/28 Update

THIS WEEK IN C.A.V.E. NEWS:

Group: Tried to test the Egypt level in the cave, but it was taking forever to load.

Lauren: Finished the Terminal and Egypt models.

Kevin: Got the Kinect VR to work and is now looking into getting the Egypt file up and running tonight.

CC: Almost finished with the Museum level. Needs to be tested

Nick: Worked out all puzzles/level flow diagrams. Started shooping for the Egyptian(hieroglyphics) & Museum(paintings) levels. Started creating the handouts to users.

What we’ll need for next week: Temple and Museum modeled. Add puzzle elements and programming to Temple, Museum, Egypt levels. Everything tested. Finish the user handouts. Start the powerpoint for the final presentation.

The Jasper: Week 4 Update

Hi!

This week we started to bake lighting and did more FBX about ghosts when they were caught! We had some questions how to export animations of explosions into FBX. But we also have B plan if it does not work. We added lighting effects in 3D Studio Max in order to create scaring and creepy atmosphere in our hotel.

Bake Lighting of 2F

Bake lighting of 1F

Bake Lighting of Landscape

FBX animation

 Link: 001~4 001~5

 Link: 002~4

 Link: 003~4 003~5

  Link: 005~3

Update from Hasti:

I finished the landscape and outside of the Hotel.

After merging the whole models (restaurant, lobby, rooms and landscape), the final file became too big because of using so many textures and material after adding the details. This data was stored in the SketchUp file and caused the slow work loading. So, we purged our file as following steps to delete all unnecessary textures to make it run faster:

  1. Click “Window” > “Model Info.” The Model Info dialog box will open.
  2. Click “Statistics” > “Purge Unused.”
    (https://sites.google.com/site/sketchupsage/faster/purge)

Updates from Jerry H:

We have a solid framework as far as game engine and base classes to create various ghosts and monsters. The Paranormal class, which serves as the base class for all other specialty creepy things, is now ready to interact, showing the paranormal in three states: “hidden” (as a static object), “discovered” (static, or animation through either programming or FBX), and “captured” (simply disappear, or animation through programming/FBX). It’s very easy to extend the class and inject different programmatic animations; I’ve created a “ghost” class that hovers during the discovered state.

The model as a whole is really really big—upward of 189Mb—and has been causing Sketchup to crash. Natalie has helped me create a simplified version of the hotel, in which rooms are represented by simple blocks, so that we can export it to get the coordinates. Once all the OSG files with lighting baked in are ready, I’ll try to put the hotel back together.

By Saturday I was trying to display text in the CAVE but I’ve no luck. I can attach a mesh (e.g. a sphere) to a fixed position in front of the user0 entity, so that the user will always see it, but I just can’t get the text to show. Help??

Simple FBX files work fairly well in the CAVE. Jerry C and I (haha, Jerry x 2) discovered that FBX coming out of 3DS sometimes may get turned in a funny angle; this is due to a “Y-up” or “Z-up” option when exporting. I’ve extended Kevin’s Animation class to allow easy pre-scaling and pre-rotation when loading an animation file; feel free to grab it if you need.

As for the game interaction, originally I really hope to work with Wii mote and Kinect, but practically we might just not be able to get there because of time. However, if any of the other teams have had success in connecting with the Wii fit board, please let me know—the library to call Wii board and Wii mote are the same, and maybe I can bounce off your code.

Reading 12

 For class 4/30/13
Post Comments by 11:59 PM on Monday 4/29/13

I wanted this reading to be somewhat light.  This is a forward looking article from about 10 years ago. It brings up many issues we have discussed in class and some new ones as well.  The posting wont be due until Monday as opposed to Sunday.

http://www.scienceclarified.com/scitech/Virtual-Reality/Which-World-Is-Real-The-Future-of-Virtual-Reality.html

Discussion

Write a few paragraphs about your thoughts and reactions to this article.  Feel free to respond to others comments.

Update: How to connect to the network drives

At WID (in case this doesn’t automount)

  1. Go to my computer
  2. Choose map a network drive
  3. Choose a letter and choose the folder \\lel-fs.morgridge.net\CAVE-Shared

For Windows

  1. VPN into WID (see here for details)
  2. Go to my computer
  3. Choose map a network drive
  4. Choose a letter and choose the folder \\lel-fs.morgridge.net\CAVE-Shared
  5. Enter your user name and password.
    For your user name, add  morgridge\ before your user name, e.g. morgridge\kponto

For OS X

  1. VPN into WID (see here for details)
  2. Connect to the samba mount: smb://lel-fs.morgridge.net.
    press command-k to connect.
  3. Enter your user name and password
  4. Mount CAVE-Shared

How to export an FBX

There is one major option you must enable when exporting FBX files for the CAVE. Make sure the version is FBX 2010 or below.  See the example figure

You can choose either Binary or Ascii in this menu.  If you have problems, ascii is esaier to debug but binary files are smaller and are self-contained.

If you want texture to also be included, make sure you have the embed media enabled

To play these files, you can use the Animation.py found in ds501\Resources\Animation\

This file currently contains the class, and loads the file as well for demo purposes (something you can get ride of).  The argument for the play command corresponds to the play modes documented in the Virtual Lab API (modes such as pingpong, once, loop, etc)