1 / 110

Structure of Artist Virtual Environments

Structure of Artist Virtual Environments. Mark Green School of Creative Media. Introduction. We have examined some of the techniques for building virtual environments time to look at some real environments: how they are structured techniques used to construct them what we need to support

dayo
Download Presentation

Structure of Artist Virtual Environments

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Structure of Artist Virtual Environments Mark Green School of Creative Media

  2. Introduction • We have examined some of the techniques for building virtual environments • time to look at some real environments: • how they are structured • techniques used to construct them • what we need to support • then look at narrative structure and some of the other things we need

  3. Artistic Virtual Environments • Very few virtual environments are well documented, lack of good visual and written descriptions • without good documentation can’t analyze the techniques used, not enough information • start with one project: Art and Virtual Environments, Banff Canada, 1991-94

  4. Art and Virtual Environments • Around a dozen pieces produced over a three year period • hardware: • SGI Onyx1 RE (4Mb texture, 64 Mb main memory, R4000 processors) • mainly HMD, some projection • Fastrak and Dataglove for input

  5. Bar Code Hotel: Perry Hoberman

  6. Bar Code Hotel

  7. Bar Code Hotel • Features: • non-standard device configurations • autonomous object behaviors • users suggest behaviors, don’t control detailed motion, commands like: chase, drift, wall flower and punch • richness comes from the interactions between multiple users

  8. Archeology of a Mother TongueToni Dove and Michael Mackenzie • Takes place in a theatre, large screen projector, a guide runs the piece navigating with a Dataglove • approximately 40 minutes for the entire piece • strong emotional responses from the audience, not like a typical VR piece

  9. Archeology of a Mother TongueToni Dove and Michael Mackenzie

  10. Archeology of a Mother TongueToni Dove and Michael Mackenzie • Three main features: • strong visual effect • minimal interaction, mainly navigation • strong narrative component • the piece tells a story, the guide moves the audience between the different parts of the story

  11. Visual Richness

  12. Narrative • Narrative structure consists of scenes and transitions • the story is told in the scenes, each scene contains part of the story • the transitions are used to move between scenes, change the setting for the next part of the story, usually short: 10 seconds

  13. PlaceholderBrenda Laurel and Rachael Strickland • A shared environment, two participants • has a much looser narrative structure, more concentration on interaction • the interaction drives the story • intended to be an experience, participants take turns playing the four characters in the story

  14. PlaceholderBrenda Laurel and Rachael Strickland

  15. PlaceholderBrenda Laurel and Rachael Strickland • Features: • role playing, users take on characteristics of other characters, modify their view and behavior • voiceholders: ability to leave marks on the environment • interaction between participants • spatial sound

  16. Voiceholders • Artifacts in environment, used to record user’s voice • user grabs an empty voiceholder to record a message • grab a full voiceholder to hear the message • build up narrative by leaving messages for future users

  17. Scenes and Transitions • Three scenes: cave, waterfall and hoodoos • each scene has a different visual presentation and characteristics, not story driven • users control scene transitions by entering a portal to another scene • 10 second transition for user orientation

  18. The Bush Soul • A more recent piece developed by Rebecca Allen at UCLA • under development for a number of years, with a good sized team • shown in 1998 and 1999 • PC based multi-screen system with joystick as the main input device

  19. The Bush Soul • This piece has a linear narrative structure, the user visits four sites over a virtual day • environment populated by creatures • these creature are autonomous, they react to each other, the user and actions that occur in the environment • user can enter the body of one of the creatures

  20. The Bush Soul

  21. The Bush Soul

  22. Summary • Features that should be supported • object behavior • autonomous • user controlled • non-standard device configurations • interaction • with user • between objects • between users

  23. Summary • Features (continued): • visual richness • multiple media: graphics, sound, force, … • scenes and transitions, support for narrative structure • control of user • how they experience the environment • where they can move

  24. More Behavior • The behavior we have done so far has been mechanical, it doesn’t appear intelligent • we will now look at ways of doing more intelligent behavior • what do we mean by intelligent behavior? • What a real organism might do? • Something that doesn’t look stupid?

  25. More Behavior • The features of intelligent behavior: • goal directed • react to environment • avoid collisions or other accidents • social actions: move towards objects we like, away from objects we don’t like • do what we might do??

  26. Goal Directed Behavior • Often over rated, many assume that all behaviors are goal directed • this makes the theory and programming much easier • we can select the goals, and then produce the appropriate actions • can string goals together to achieve larger goals

  27. Goal Directed Behavior • Goals can have hierarchies • short term goals are short lived, solve an immediate problem • longer term goals take longer to reach, require more planning and time • long term goals usually divided into a sequence of shorter term goals

  28. Goal Directed Behavior • Many AI and Alife techniques have been developed based on this approach • lots of algorithms to draw on • But, are we really goal directed? • Some of the time we definitely are, when we have a problem to solve, or something that needs to be done

  29. Goal Directed Behavior • Other time assigning goals to our actions is quite difficult: • watching cartoons on TV • going for a walk • browsing in a store (or the web) • we can try to assign goals to these activities, but they sound more like excuses

  30. Goal Directed Behavior • Quite often we assign goals to people’s actions when we really have no idea of what they are doing • this makes life seem more rational • Example, a large crowd of people walking, we assume they all know where they are going, this may not be the case

  31. Goal Directed Behavior • Doing good goal directed behavior is quite hard, often looks more like a robot than a living object • it’s not clear that it buys us anything, better off spending our time developing other behaviors • if it looks like it could have a goal, its probably good enough

  32. Realistic Behavior • Actions should look like they have a purpose, object doesn’t do anything stupid • we want our objects to move around the environment: • mainly travel in a straight line, so they look like they know where they are going • avoid running into other objects • start by looking at a simple object, mover

  33. Mover • The mover moves in a simple environment: • floor • four walls • both the floor and walls are made from the same plane • want to make the mover look like it has a purpose, not just a random walk • the mover is a small cube

  34. Mover • Two observations: • we walk in the direction we are facing • we walk in straight lines as long as possible • in each tick the mover moves a small amount in the direction its facing • the push action does this: push distance; • to change direction use rotz

  35. Mover Direction of motion Mover

  36. Mover • When we reach an obstacle (a wall) we need to do something • one solution is to turn so we are no longer facing the obstacle • two questions: • how do we know when we are about to hit something? • How much do we turn?

  37. Mover • The hit action can assist with obstacle avoidance • hit shoots a ray, given a starting point and direction, returns any object hit and the distance to the object: hit x, y, z, rx, ry, rz, obj; • first three parameters are start of ray, next three are the ray direction

  38. Mover • The last parameter is a variable, name of hit object stored in this variable • the variable “distance” is set to the distance to the object • what direction and position should we use? • The position and direction of the object! • This information is stored in a set of variables

  39. Mover • Object position: Locx, Locy, Locz • Object direction: Anglex, Angley, Anglez • hit functions as eyes, looks to see what is in front of the object • since the environment is enclosed, we will always hit something, so should we always turn? • Only if the obstacle is close

  40. Mover • The environment is 12x12, we are moving at 6 units/second • start avoiding collision when we are 2 units from obstacle • the basic motion is done in the tick event handler • the turn event handler is used for basic obstacle avoidance

  41. Mover on tick eval v = 6*dt; push v; hit Locx, Locy, Locz, Anglex, Angley, Anglez, obj; select obj; if distance < 2; trigger “mover”, “turn”; endif end

  42. Mover • Now we need to turn • the basic idea is to turn a bit (0.4 radian), and see if we are still going to collide • this is repeated until the collision is avoided • if for some reason the mover gets too close to the obstacle (less than 0.2 units) we have an emergency action, the back event handler

  43. Mover • In the back event handler we move back two steps and then make a large turn (1.5 radians, about 90 degrees) • we then continue the motion • this should avoid any potential disaster

  44. Mover on turn spinz 0.4; hit Locx, Locy, Locz, Anglex, Angley, Anglez, obj; select obj; set flag 0; if distance < 2 ; set flag, 1; endif select flag; triggerif distance < 0.2, me, “back”; triggerif distance > 0.2, me, “turn”; end on back eval dx = -2*v; push dx; spinz -1.5; end

  45. Mover

  46. Mover • What we’ve done so far gives us basically circular motion • the mover travels in a circle just inside the walls • this looks kind of stupid • periodically change the objects direction, a random change in direction, every 4 to 10 seconds

  47. Mover on change random dz, 1.20, 3.14; spinz dz; random t, 4, 10; triggerAt “mover”, “change”, t; end on first translate 0, 0, 0.15; triggerAt “mover”, “change”, 5; end

  48. Mover • Gives relatively good basic motion • can introduce a number of obstacles into the environment, a set of cubes • the mover can successfully avoid them • this gives us one motion unit, later we will add more behavior to the mover

  49. Mover

  50. The Thing • The mover can move around the environment, but it only reacts to obstacles • the thing is a plant-like creature that reacts to the user • the thing normally bends back and forth at a fairly slow rate (think about a plant slowly blowing in the wind)

More Related