1.1k likes | 1.35k Views
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
E N D
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 • then look at narrative structure and some of the other things we need
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
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
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
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
Archeology of a Mother TongueToni Dove and Michael Mackenzie
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
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
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
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
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
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
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
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
Summary • Features that should be supported • object behavior • autonomous • user controlled • non-standard device configurations • interaction • with user • between objects • between users
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
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?
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??
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
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
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
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
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
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
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
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
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
Mover Direction of motion Mover
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?
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
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
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
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
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
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
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
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
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
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
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
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)