Virtual Reality class project
About
A goal of the project is to create a virtual world - 3D web game for kids in a virtual mart environment as a Virtual Reality - NPGR012 class project.
Main game features are called nuts. A nut is an interactive object which kid (or any other operator) should play with to achieve game points.
Authors
Technical background
We use Virtual Reality Modeling Language (VRML) to design the web game. You have to get a VRML plugin to run it.
We are planning to create X3D version of the game with a support of haptic technology using H3D API (see Haptic API survey).
Links
Virtual-E-Mart
Nuts
- Jack in the box (Martin) - box with a handle, the handle is clickable, makes sounds. The goal is to turn the handle around few times to get PING sound and then click the box to get the Jack out of it!
- Rack with toys (Martin) - all but one are the same kind. The goal is to reveal the one that doesn't belong there and grab it.
- Empties (Petr) - the goal is to grab proper empties to reverse vending machines of two types - glass and PET empties.
- Ball game (Petr) - grab the right ball and throw it to the basket
Prototypes
# ---------------------------------------------------------
# PROTO First possible head for the Jack
#
# parameters:
# - texture - Head texture
# - noseAppearance - appearance of the cown nose
# - hatAppearance - appearance of the cown hat
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO Clown [
exposedField SFNode texture
exposedField SFNode noseAppearance
exposedField SFNode hatAppearance
exposedField SFInt32 lod
] "jack-in-the-box.wrl#Clown"
# ---------------------------------------------------------
# PROTO JackInTheBox
#
# parameters:
# - boxAppearance - appearance of the box
# - coverAppearance - appearance of the box cover
# - springAppearance - appearance of the spring
# - children - appearance of the spring
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO JackInTheBox [
exposedField SFNode boxAppearance
exposedField SFNode coverAppearance
exposedField SFNode springAppearance
exposedField MFNode children
exposedField SFInt32 lod
] "jack-in-the-box.wrl#JackInTheBox"
# ---------------------------------------------------------
# PROTO ToyRack
#
# parameters:
# - color1 - Steam engine bed color
# - color2 - Steam engine boiler color
# - color3 - Steam engine cabin color
# - color4 - Steam engine features color
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO ToyRack [
exposedField SFNode color1
exposedField SFNode color2
exposedField SFNode color3
exposedField SFNode color4
exposedField SFInt32 lod
] "toyrack.wrl#ToyRack"
# ---------------------------------------------------------
# TinCan
#
# parameters:
# - scaleFactor - scale factor of the tincan
# - textureUrl - path to the tincan texture
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO TinCan [
exposedField SFVec3f scaleFactor
exposedField MFString textureUrl
exposedField SFInt32 lod
] "tincan.wrl#TinCan"
# ---------------------------------------------------------
# PROTO Bottle
#
# parameters:
# - scaleFactor - scale factor of the bottle
# - textureUrl - path to the bottle texture
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO Bottle [
exposedField SFVec3f scaleFactor
exposedField MFString textureUrl
exposedField SFInt32 lod
] "bottle.wrl#Bottle"
# ---------------------------------------------------------
# PROTO BasketBall
#
# parameters:
# - textureUrl - path to the baset texture
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO BasketBall [
exposedField MFString textureUrl
exposedField SFInt32 lod
] "basketball.wrl#BasketBall"
# ---------------------------------------------------------
# PROTO Infotable
#
# parameters:
# - textureUrl - path to the infotable texture
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO Infotable [
exposedField MFString textureUrl
exposedField SFInt32 lod
] "infotable.wrl#Infotable"
# ---------------------------------------------------------
# PROTO Ball1, Ball2
#
# parameters:
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO Ball1 [ exposedField SFInt32 lod ] "basketball.wrl#Ball1"
EXTERNPROTO Ball2 [ exposedField SFInt32 lod ] "basketball.wrl#Ball2"
# ---------------------------------------------------------
# PROTO Girder
#
# parameters:
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO Girder [ exposedField SFInt32 lod ] "environment.wrl#Girder"
# ---------------------------------------------------------
# PROTO extinguisher
#
# parameters:
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO Extinguisher [ exposedField SFInt32 lod ] "environment.wrl#Extinguisher"
# ---------------------------------------------------------
# PROTO Companion cubes
#
# parameters:
# - Appearance - appearance of the companion cubes from Portal game
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
PROTO Cubes [ exposedField SFNode appearance ] "envionrment.wrl#Cubes"
# ---------------------------------------------------------
# PROTO GenericRack
#
# parameters:
# - LOD - turn on/turn off level of detail
# ---------------------------------------------------------
EXTERNPROTO GenericRack [ exposedField SFInt32 lod ] "environment.wrl#GenericRack"