Post on 16-Dec-2014
description
Shane Harrison DMK showcase Gallery Project k0618551
Contents
Introduction...................................................................................................................................3Executive summary......................................................................................................................3A technical walkthrough...............................................................................................................5Project management....................................................................................................................16Review........................................................................................................................................19Bibliography and references.......................................................................................................20Appendix.....................................................................................................................................21
1
Shane Harrison DMK showcase Gallery Project k0618551
Virtual reality
CI3105
DMK showcase Gallery
Client: Karen Cham
Module leader: Christopher Hutchinson
Shane Harrison
2
Shane Harrison DMK showcase Gallery Project k0618551
Introduction
I enrolled into the Virtual reality module in the second semester of 2010, ran by the lecturer Christopher Hutchinson. This module is run in a virtual environment called second life which is run online and can be accessed and used my many users simultaneously. Here we are to construct builds and use scripts (programmes) to facilitate build development and
functionality for either ourselves or a client.
The aims of the module are to explore the create, paedogogical, technical and information systems design issues in this virtual environment, where we are expected to determine
practical applications of such environments within particular areas like science, information systems, education and entertainment. During this time we have had practice in the basic
building skills to construct virtual reality products and services.
Executive summaryFor this years moduel the context of the entire project is the revedelopmement of the
knowledge zone which has been commission by the ADC for re-devlopment. My role Is to be team leader of the DMK showecase gallery project, within the redevelopment where my client is Karen cham. I have to manage contact, meetings and set the deliverables with the
client and make sure they are met as well as managing my project team. My team consists of four members, Myself, John Pickard, Naqib Khanjan and Shafiq Sharifi.
The time scale for the project starts around after the first two or three of the ten week module duration over a serious of 22 lectures for project completion. The due date is set to be the 18th may 2010. The main deliverables for my project is to construct a gallery room
where digital media Kingston students can watch and interact with live media in a virtual environment.
My contributioin will be to keep the group together with meetings and in regular contact with our client, setting each group member tasks and deadlines. My building roles will be the gallery room and certain main features that surround it.
3
Shane Harrison DMK showcase Gallery Project k0618551
About the client and their business
My group’s client is Karen Cham the Development Coordinator of Digital Media Kingston and Principal Lecturer of Digital Media in the School of Communication Design within the Faculty of Arts, Design & Architecture at Kingston University London.
Digital media Kingston aims to fill in the gap of digital media skills in the UK by breaking down
the barriers between arts and sciences, by teaching enterprises and research. They want to ensure a synergy between the digital media teaching and are connected to companies such as DreamWorks, Sony computer entertainment and Samsung design Europe. These firms have helped to refine a new form of industry facing masters courses which facilitate the development of specialised technical skills to help fill the UKs digital media gap.
They aim to bond students from art and computing backgrounds as well as their skills, together by a range of DMK courses to help equip graduates in meeting the skill requirements of today’s digital media industry. They also have 20 different postgraduate courses that cover
software engineering, the arts and sciences, as well as filmmaking and web development. They commit themselves to facilitating the existing hybrid cultures and new digital ecologies
to find particular behaviours that will create strategies for new digital media technologies. Their consistent goal all throughout is to bring together diverse and heterogeneous expertise and the resources that follow into digital media within Kingston University.
The idea of us creating the DMK showcase gallery in a virtual environment (second life) within
the knowledge zone was brought on by Karen Cham, to enable the digital media Kingston students in knights park campus to view media in a virtual version of the existing showcase gallery in knights park without the need to physically attend any gallery sessions, giving
students access to digital media simultaneously and freely. The second benefit of the virtual showcase gallery are meeting rooms which Karen and other members can use to hold
meeting on future projects and developments.
4
Shane Harrison DMK showcase Gallery Project k0618551
A technical walkthrough
Due to the fact that I did not take any screen shots of my creations during development I will only make screen shots of the general process in creating each build with a final screen shot of the finished product. All of my main builds will be fully explained in terms of GUI (graphical interface). All builds were made in second life using the provided GUI interface and all self
made textures were developed with Microsoft paint.
Solar systemThe solar system was created by using sphere objects and applying textures to those spheres to enable them to resemble the planets of the solar system. One prim was used as the sun
which is attached to another sphere prim. This second prim would be a planet (in this case the earth) and both prims are attached by linking. Both also contain rotation scripts allowing the planet to rotate around the sun and the planet to spin on its own, and the other planets where also made in this manner but had their suns set to a default transparent texture which
makes them invisible. From here I placed the invisible suns together with their surrounding planets to create a solar system.
5
Created a sphere prim using the GUI
Shane Harrison DMK showcase Gallery Project k0618551
6
Applied textures to prims
Selected textures from GUI
Linking two prims together
Adding rotation script to prims
Invisible transparent prim, visible by highlighting transparent objects
Default transparent texture selected
Shane Harrison DMK showcase Gallery Project k0618551
Gift shop
The gift shop was constructed by use of box prim objects which were flattened by stretching
and had a metal texture applied afterwards. The rotating door was made in the same way the
planets where made in terms of linking and rotation scripts.
7
The complete solar system
Box prim stretched out and applied with metal texture
Stretch option selected
Metal texture selected
Shane Harrison DMK showcase Gallery Project k0618551
Lift system
The lift system is based on one multiplied block prim that was enlarged and hollowed out.
This created the lift shaft where one block was used as the lift cart. The main evaluator script was added to the cart and then the elevator call scripts where placed in sphere buttons with metallic textures.
8
Linking prim walls Link option selected after selecting both prims
Stretched and hollowed box prim Increasing hollow on prim
Default white transparent textures primChoosing transparent
texture
Shane Harrison DMK showcase Gallery Project k0618551
Gallery room
Multiple boxed prims where flattened and linked to create the water surfaces, which had
water textures and a texture moving script applied to them. The plane glass sides consist of two prims, one inner and one outer side of each glass, which are also linked together. The centre of the roof is made out of half a cylinder which was made to be halved.
9
Using the shift key and dragging the prim duplicates it
Cutting out prim to create lift cart
Increasing cut on prim
Complete lift and shaft
Shane Harrison DMK showcase Gallery Project k0618551
Portal box
This consists of a stretch box prim, and cylinder, where two flattened cylinders where joined together to create the stargate inside. This was made the same way other objects were
created. Additionally it uses the scrip in the lift system to move up and down when called so users can access the stargate inside.
10
Linked and water texture applied primsApplying water
movement script
Entire gallery room
Complete portal box
Shane Harrison DMK showcase Gallery Project k0618551
Scripts Used
All scripts have been explained in terms of main variables and functions that allow them to work, and any additional actions taken to allow them to function. Full script code has been added in the appendix.
Teleportation script (Used for teleporting around the gallery)
This script was used to enable avatars to teleport throughout the gallery. The vector targetPos variables define the coordinated target to where the avatar will be sent to.llSetSitText is used to define the default text to click to enable the teleport where the programme calls the reset(); function later to end the teleportation as the avatar reaches
their target by the llUnSit(llAvatarOnSitTarget()); function.
Main vendor script (Used for purchasing items from the gift shop)
This script works with another script, one which is the main vendor script that defines the
items and prices and allows the processes of a transaction to be made, where the second (the buy button) allows the avatar to make the purchase. The imports at the start define what items hold information on the products sold and in what formats, for example integer price
means the price must be a number. The notecardName variable is set to equal to "Config” which means the notecard I place in the object inventory of the prim that holds this script
must be named as "Config” and will contain the texture, price and item for what is being sold.
Every time new items are added and the programme is reset llSay(0,"Loading product
data..."); is called giving the seller a confirmation message, where another messages are sent to the buyer for message confirmation of a purchase.
This programme originally was supposed to allow the user to select an image and purchase the item displayed. Other scripts would have been used to allow the user to navigate
between items but due to complications I had to change the script so that only one item could be purchased form one vendor at a time. I did this by only using the code explained,
leaving out additional code of the full programme.
11
Shane Harrison DMK showcase Gallery Project k0618551
Buy button script (Used for purchasing items from the gift shop)
This script creates the button on the vending machine that allows the users to make a purchase. It uses the link_message variable to connect to the main script and allows a purchase acknowledgement to be made.
Rotation script (Used for rotating solar system, DMK logo, fountains, shop door, and other
logos and signs)
This script uses the llTargetOmega function to define in which ways a prim object will rotate in. by changing the co-ordinates you can alter the movements of the prims rotation both on the X and Y axis.
Moving texture script (Used for signs, the water effect in the gallery room and fountains)
This script uses the llSetTextureAnim function to define the speed direction, and the repeat
and animation of the texture within a prim object. It moves the texture in a set direction from this function where the llSay function is added to create a message when the user touches
the prim object.
Water movement script (used for the fountains)
This script is similar to the moving texture script and animates water textures in the same
manner. The only difference is that it uses three extra functions being llVolumeDetect to determine whether or not imported audio can be heard when using a prim with the effect, the collision_start function that determines when an avatar makes contact with the prim
object and water texture, and then the llTriggerSound function which is what the two previous functions work with. This function defines the sound that is created when an avatar
makes contact with the prim object, and in this case is a splash sound.
Elevator script (Used to create the elevator system)
This script uses the list “MENU_MAIN” variable to define how many floors the lift will have
where the float “FLOOR_HEIGHT” function defines the top level floor. The “float SPEED target” defines the speed in which the lift travels upwards or downwards and the “llSitTarget” function is used to define where and in what position the avatar sits in when using the lift. An “llSetText” function is also used to provide user guidance text on the prim object that
contains the script.
12
Shane Harrison DMK showcase Gallery Project k0618551
The llSay functions are used for the scrip to provide the user feedback on the lifts current destination when the “target” function is used to define the amount of distance travelled
between each floor which I had set to “target = BOTTOM + (idx*46);” in order to allow a great enough distance for only three floors as the original version of this programme had 10.
Call elevator script
This script works in conjunction with the main elevator script and allows the user to call the lift up or down to any of the floors programmed into the elevator. The “llSetText” function is used to place a message for the user and the “llRegionSay” function is used to define which corresponding floor in the elevator script the lift must now move towards.
Hovering text script (used to label objects such as chairs)
This script just uses the “llSetText” function that was previously mentioned in other scripts to
show text on the prims that contain this programme.
Water fall mist (Used for effect round the reception and in the lift system)
This script uses a series of particle parameters o define the actions and the lifespan of each
particle which create the water fall mist effect. The “float age” function determines the life duration of each particle. The “float maxSpeed” and “float minSpeed” determine the
minimum and maximum speeds at which each particle is released. The “string texture” function define the actual texture used to create the visual particle and the float “startAlpha”, “float endAlpha”, “vector startColor”, and “vector endColor” define how transparent the
particle will be and its size. “vector startSize”, “vector endSize” and “vector push” functions are also used to determine the size of the particles and the force used.
Following that are system parameters such as “float rate” that determines the rate at which particles are emitted and “integer count” to determine how many particles are outputted for
every burst made. The other functions here just determine angles and rotations and life emitting durations of particles.
13
Shane Harrison DMK showcase Gallery Project k0618551
Fountain No-Frills Particle Script v2 Blue script (used to create fountain of water in the fountains)
This script works very much like the previous except that it uses slightly different functions to carry out the necessary programming actions. Main functions used here are “PSYS_PART_START_SCALE” which determines the beginning size of the particles and has an opposite function for the ending size. “PSYS_PART_START_COLOR” defines the starting colour
and again has an opposite function for the ending colour. The same function types are used all through just like with the “water fall mist” script, but are just defined slightly differently.
Other builds
Other non main builds where created using the same building methods explained above for the main sections of my contribution. These include:
Teleportation boxes
Lift shaft
Reception entrance teleportation interface
DMK showcase gallery base
DMK rotating logo
Project flyer
Moving light pathway at reception
Lift and floor signs
Cylinder teleportation boxes
Chairs, fountains, media screens, and statues in the gallery room
DMK (Digital media Kingston) animated logos
Vender machine screen and purchase sphere
14
Shane Harrison DMK showcase Gallery Project k0618551
Gift shop floor platform
Gift shop Open box
Textures Used Throughout
Sign textures: Sign07 Metal Texture Bundle: AF_metal_cage_blk.tga, AF_steel_wire.tga Textures: Gall, my_statue
Snakeskin textures: fire358 Fabric: fabric – Linen Serpentine, Fabric, Grey Carpet Terrain Textures – Winter: Wet sand base Wallpaper: Wallpaper, Blue
Particle System: Water Ripple, Waterfall, medium overlay, Water – ripple layer 1, Water particle – mist
Misc Textures: Blue plasma Floor tile: White tile
How the virtual showcase gallery will be used
The user would first enter the reception area by teleporting in from the entrance. From there they view information at the reception and interact with the television screen which is
connected to the client website. From there they will either teleport to a floor in the gallery room or use the lift. This is where they interact with the media screens where they view
digital media videos and from there can either teleport to or use the lift to reach the gift shop to make a purchase. Included in the appendix will be a URL link to a video demonstrating how a user would interact with the gallery.
15
Shane Harrison DMK showcase Gallery Project k0618551
Project management
Input and advice provided for team
I had helped John with some building features of the second life GUI, such as multiplying and copying prims by dragging them across as well as advising him in the creation of the reception. I gave him the idea to make his reception transparent like my build so that everything can be consistent and suggested upon visiting the clients campus that john could
make the rotating doors, so provided him with the object rotation script and a script I named “water movement” which makes prims phantom. This had helped him in constructing the lights in his reception by making the cone shaped prim phantom so that it acted as real light when an avatar wants to pass through it.
I had also advised him on the shape of the front desk, which I based on the existing desk in
knights park campus. My sections would be very large in size in comparison to his reception (although he was already using a mega prim), so I then suggestion that he copied his reception and attached the new section to the existing part, to create a waiting room area. I
then advised him to create televisions in the waiting room and provided him with the slide show programme that he could use on the screen prim.
Team attitudes and their commitment
Both I and John had managed to create a great deal of work in less than two week at the start of this project, but the two members Naqib Khanjan and Shafiq Sharifi, did not wish to learn
anything or make any real contribution to the project from the start.
The two seemed to not know that the module was individually assed, only turned up at some
meetings and when they did, sat doing little or nothing and did not bother to ask about new developments. Both members said that they wanted to be in this group because they had seen both my and John’s name’s on the spreadsheet that contained group member names, so
that they could learn from us. But not once did they ever ask to learn about what we were creating or what they could do for the group.
This all indicated to me that these two non contributors only joined the group to take it easy on both mine and johns efforts, which is where I am strongly assuming that they did not know that all work is individually assessed. At one point I had set our first group meeting
16
Shane Harrison DMK showcase Gallery Project k0618551
in front of both of these members where they apparently made notes about the
meetings but had never arrived. John was sent an email and still arrived much earlier before I had.
I sent an email warning both of these members that attending meetings is a part of group contribution and failure to do so would result in a loss of their places. The response I received where illogical and senseless, as they claimed to have been lost and confused.
Previously I had made it clear that the group meeting was set in the sopwith building 127 (which is very well known by all ICT students here at Kingston).
At multiple times both members made different sorts of excuses throughout the project ranging from, being sick to having to attend work, which is why they claimed to have been
unable to work over the first 2 - 3 weeks, later asking me to take care of the work which I had set them.
As team leader I wanted to make the start in development an easy non - complicated matter
for all group members including myself. This is why I assigned all members the tasks of creating basic objects which would only require the use of resizing shapes, duplicating prims,
and applying textures. Both of these members were highly unable to do this in that 2- 3 week period which became increasingly worrying. And right until the end of the project I had still not received everything I had asked from both members, where one had decided to create
objects I did not request. Their performances have been non – existent to poor, but fortunately on the other hand John had been eager to work and was supportive when
needed.
Experience in being team leader, lessons learned and management
Over the duration of the project I had realised the importance in team work and communication on a far greater level than I had before. I now know how crucial it is to
communicate ideas with clients and team members and to have a clear understanding of what is understood and required. If this is done then projects can move forward quickly with
little mistakes and good development, which is what I had managed to accomplish with my leadership and the corporation with the client and John. Being team leader had its requirements in terms of dealing with multiple requests, and in responsibilities of the project
as well as in having to manage team meetings with and without our client, answer to problems and complications and make sure that the final product was delivered on time to the client as well as keeping them satisfied all throughout. I had made sure that our client was constantly notified of any changes, limitation and ideas, which saw this project to a good completion.
17
Shane Harrison DMK showcase Gallery Project k0618551
Feedback and communication from my client
The below email is from my client stating how she was pleased with the prototype demonstration I made for her and a group of her associates of the DMK showcase gallery. Further client communications regarding regular client meetings every Tuesday have been added in the appendix.
Hi Shane
thanks for yesterday, they were very impressed. Is there any chance of a couple of screen grab jpegs for me to add to my annual report ? The four Deans involved in
DMK are meeting next Tuesday and it would be great to include images of your work.
I will see you 1pm next Tuesday for a proper catch up
Thanks
Karen Cham
Development CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media,
School of Communication DesignFaculty of Arts, Design & ArchitectureKingston University
London
00 (44) 208 547 2000
www.digitalmediakingston.com
18
Shane Harrison DMK showcase Gallery Project k0618551
Review
Our client was pleased from within the first week where she only expected us to gradually understand the ideas she wanted to communicate to us, but instead because of my determination in making this group produce at good pace, we had actually begun building
structures and elements of the project at that beginning stage. At one point john had mentioned to me that my team management was better than that he had previously experienced, which made him feel comfortable mostly because the other two members in our group were not producing anything at all, and with my drive to succeed and motivation in
encouraging him and myself, he had felt safer knowing that I was handling this project.
Other good feedback experiences I have gotten were from my lecture Christopher Hutchinson and Karen Cham. I believe that they both feel that I had this project under control before the very beginning and that I had the necessary team management skills in making sure that the
project was delivered as expected to the client. Personally this has been a massive achievement for me as I now feel more confident in management roles, and had enjoyed the
project and support given to me from Chris and Karen all throughout.
Project complications where having an increased workload because two members would not
fully contribute to the project and not being able to deliver some client request due to certain lacks in knowledge, but all top level goals desired from our client were met.
Notable successes were an increased learning in programming and managing to create many builds with the effort of just two team members. Personally I should have used more low prim
techniques but most of my larger works were developed at the very start of the module making it complicated to change afterwards.
ConclusionApart from having a good result to the project, further outcomes have been my new
identification of media application in a virtual environment, and new skills in development, team leadership and organisation. Where I also have gained more knowledge in the technologies and software’s used in desktop virtual reality development.
WORD COUNT (EXCLUDING REFRENCES TITLE PAGE AND CONTENTS PAGE): 3896
19
Shane Harrison DMK showcase Gallery Project k0618551
Bibliography and references
Jeff heaton, JH, 2007. scripting recipes for second lifeHeaton Research inc
http://wiki.secondlife.com/wiki/LSL_Tutorialhttp://arianeb.com/secondlife.htmhttp://wiki.secondlife.com/wiki/A_Basic_LSL_Tutorialhttps://vorticism.wordpress.com/tutorials/basics-of-scripting/
https://vorticism.wordpress.com/tutorials/building-for-clients/https://vorticism.wordpress.com/tutorials/creating-transparent-textures/https://vorticism.wordpress.com/tutorials/importing-music-files-into-second-life/
Textures
Sign textures: Sign07
Metal Texture Bundle: AF_metal_cage_blk.tga, AF_steel_wire.tga
Textures: Gall, my_statue
Snakeskin textures: fire358
Fabric: fabric – Linen Serpentine, Fabric, Grey Carpet
Terrain Textures – Winter: Wet sand base
Wallpaper: Wallpaper, Blue
Particle System: Water Ripple, Waterfall, medium overlay, Water – ripple layer 1, Water particle – mist
Misc Textures: Blue plasma
Floor tile: White tile
Objects
Household: picture Frame
20
Shane Harrison DMK showcase Gallery Project k0618551
Scripts Used:
Teleportation (Used for teleporting around the gallery)
Purchase (Used for purchasing items from the gift shop)Rotation (Used for rotating solar system, DMK logo, fountains, shop door, and other logos and signs)Moving texture (Used for signs, the water effect in the gallery room and fountains)Water movement (used for the fountains Elevator (Used to create the elevator system)Hovering text script (used to label objects such as chairs) Water fall mist (Used for effect round the reception and in the lift system)Fountain No-Frills Particle Script v2 Blue (used to create fountain of water in the fountains)
AppendixDMK tour demonstration link http://www.youtube.com/watch?v=L6_J8yaxWbY
Main vendor script
integer index;
// for loading notecard
string notecardName;key notecardQuery;integer notecardIndex;list notecardList;integer price;string itemName;
displayItem(){ string textureName = llList2String(notecardList,index*3); itemName = llList2String(notecardList,(index*3)+1); string p = llList2String(notecardList,(index*3)+2); price = (integer)p; string display = itemName + "\nL$" + p; llMessageLinked(LINK_ALL_OTHERS , 0, ":"+display, NULL_KEY); llSetLinkPrimitiveParams(5,[PRIM_TEXTURE, 1, textureName, <1,1,1>, <0,0,0>, 0 ]); llSetPayPrice(PAY_HIDE, [price, PAY_HIDE, PAY_HIDE, PAY_HIDE]);}default{ state_entry() {
21
Shane Harrison DMK showcase Gallery Project k0618551 if( llGetListLength(notecardList)==0) { notecardName = "Config"; state loading; } else { index = 0; displayItem(); } } link_message(integer sender_num, integer num, string str, key id) { if( str=="back" ) { index--; } if( str=="forward" ) { index++; } if(index>=(llGetListLength(notecardList)/3)); index = 0; if(index<0 ) { index = (llGetListLength(notecardList)/3); index--; } displayItem(); } money(key id,integer amount) { if( amount>=price) { llGiveInventory(id,itemName); llSay(0,"Thanks for your pirchase!"); } }}
state loading{ state_entry() { llSay(0,"Loading product data..."); notecardIndex = 0; notecardQuery = llGetNotecardLine(notecardName, notecardIndex++); } dataserver(key query_id, string data)
22
Shane Harrison DMK showcase Gallery Project k0618551 { if (notecardQuery == query_id) { // this is a line of our notecard if (data == EOF) { llSay(0,"Products loaded..."); state default; } else { notecardList += [data]; notecardQuery = llGetNotecardLine(notecardName,notecardIndex++); } } }} Buy button
default{ link_message(integer sender_num, integer num, string str, key id) { string prefix = llGetSubString(str,0,0); if( prefix==":") { string rest = llGetSubString(str,1,-1); llSetText(rest,<0,0,0>,1); } }}
Teleport script
vector targetPos = <61, 214, 24>; //The x, y, z coordinates to teleport.string fltText = ""; //label that floats above Teleport
reset(){ vector target; target = (targetPos- llGetPos()) * (ZERO_ROTATION / llGetRot()); llSitTarget(target, ZERO_ROTATION); llSetSitText("Teleport"); llSetText(fltText, <1,1,1>, 1);}default{ state_entry() { reset(); } on_rez(integer startup_param)
23
Shane Harrison DMK showcase Gallery Project k0618551 { reset(); } changed(integer change) { llSleep(0.15); llUnSit(llAvatarOnSitTarget()); reset(); } }
Rotation
default{ state_entry() { //llTargetOmega(<0,0,2>,-0.3,PI); llTargetOmega(<0,0,10>,-0.3,PI);// up down + inwards - outwards // left right + right - left // centered spin +right - left //Direction + right - left // PI
}}
Moving texture
default{ state_entry() { llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES,1,1,1.0, 1,0.55); }
touch_start(integer total_number) { llSay(0, "Touched."); }}
Water movement
default{ state_entry() {
24
Shane Harrison DMK showcase Gallery Project k0618551 llSetTextureAnim(ANIM_ON | ROTATE | LOOP | SMOOTH, ALL_SIDES, 0, 0, 0, 100, .05); llVolumeDetect(TRUE); }
collision_start( integer num_detected ) { llTriggerSound("2cf64119-69e6-48e1-8d43-7e66f24f38d7", 1); }}
Elevator
integer CHANNEL = 42; // dialog channellist MENU_MAIN = ["Floor 1", "Floor 2", "Floor 3"]; // the main menu
float BOTTOM = 22.260;float FLOOR_HEIGHT = 3;
float SPEED = 2;float target;
default{ state_entry() { llListen(CHANNEL, "", NULL_KEY, ""); // listen for dialog answers (from multiple users) llSitTarget(<0,-0.5,0.5>, llEuler2Rot(<0,0,-90>) ); llSetText("Right Click a wall and Select sit to allow evelator operation",<0,0,0>,1.0); target = BOTTOM; } listen(integer channel, string name, key id, string message) { integer idx = llListFindList(MENU_MAIN, [message]); if( idx!=-1 ) { llSay(0,"Elevator arriving at " + message + "." ); target = BOTTOM + (idx*46); state moving; } } changed(integer Change) { llDialog(llAvatarOnSitTarget(), "Please chose a floor", MENU_MAIN, CHANNEL); }}state moving
25
Shane Harrison DMK showcase Gallery Project k0618551{ state_entry() { llSetTimerEvent(0.1); } timer() { vector pos = llGetPos(); if( pos.z!=target ) { if( pos.z>target ){ pos.z = pos.z - SPEED;}else{ pos.z = pos.z + SPEED;}}
if( llFabs(pos.z - target) < SPEED ) { pos.z = target; llSetTimerEvent(0); llSetPos(pos); llSay(0,"Destination reached" ); state default; } llSetPos(pos); } }
Call elevator
default{ state_entry() { llSetText("Touch to Call Elevator", <0,0,0>,1.0);}touch_start(integer total_number){ llRegionSay(42, "Floor 1");
}}
Hovering text
26
Shane Harrison DMK showcase Gallery Project k0618551
default{ state_entry() { llSetText("Hundreds of Free Sounds", <0,0,0>, 1); }}
Waterfall mist
// Particle System 1.0
StartSteam(){ // MASK FLAGS: set to "TRUE" to enableinteger glow = TRUE; // Makes the particles glowinteger bounce = FALSE; // Make particles bounce on Z plane of objectsinteger interpColor = TRUE; // Color - from start value to end valueinteger interpSize = TRUE; // Size - from start value to end valueinteger wind = FALSE; // Particles effected by windinteger followSource = FALSE; // Particles follow the sourceinteger followVel = TRUE; // Particles turn to velocity direction
// Choose a pattern from the following: // PSYS_SRC_PATTERN_EXPLODE //PSYS_SRC_PATTERN_DROP // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY // PSYS_SRC_PATTERN_ANGLE_CONE // PSYS_SRC_PATTERN_ANGLE integer pattern = PSYS_SRC_PATTERN_EXPLODE;
// Select a target for particles to go towards // "" for no target, "owner" will follow object owner // and "self" will target this object // or put the key of an object for particles to go to key target;
// Particle paramaters float age = 3; // Life of each particle float maxSpeed = 0.05; // Max speed each particle is spit out at float minSpeed = 0.0; // Min speed each particle is spit out at string texture = "Water Particle - Mist"; // Texture used for particles, default used if blank float startAlpha = .25; // Start alpha (transparency) value float endAlpha = 0.0; // End alpha (transparency) value vector startColor = <0.9,0.9,1>; // Start color of particles <R,G,B>
27
Shane Harrison DMK showcase Gallery Project k0618551 vector endColor = <1,1,1>; // End color of particles <R,G,B> (if interpColor == TRUE) vector startSize = <.25,.25,.25>; // Start size of particles vector endSize = <3,3,3>; // End size of particles (if interpSize == TRUE) vector push = <0,0,0.5>; // Force pushed on particles
// System paramaters float rate = 0.1; // How fast (rate) to emit particles float radius = 1.0; // Radius to emit particles for BURST pattern integer count = 16; // How many particles to emit per BURST float outerAngle = 0.1; // Outer angle for all ANGLE patterns float innerAngle = 0.65; // Inner angle for all ANGLE patterns vector omega = <0,0,0>; // Rotation of ANGLE patterns around the source float life = 0; // Life in seconds for the system to make particles
// Script variables integer flags;
flags = 0; if (target == "owner") target = llGetOwner(); if (target == "self") target = llGetKey(); if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK; if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK; if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK; if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK; if (wind) flags = flags | PSYS_PART_WIND_MASK; if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK; if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK; if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
llParticleSystem([ PSYS_PART_MAX_AGE,age, PSYS_PART_FLAGS,flags, PSYS_PART_START_COLOR, startColor, PSYS_PART_END_COLOR, endColor, PSYS_PART_START_SCALE,startSize, PSYS_PART_END_SCALE,endSize, PSYS_SRC_PATTERN, pattern, PSYS_SRC_BURST_RATE,rate, PSYS_SRC_ACCEL, push, PSYS_SRC_BURST_PART_COUNT,count, PSYS_SRC_BURST_RADIUS,radius, PSYS_SRC_BURST_SPEED_MIN,minSpeed, PSYS_SRC_BURST_SPEED_MAX,maxSpeed, PSYS_SRC_TARGET_KEY,target, PSYS_SRC_INNERANGLE,innerAngle, PSYS_SRC_OUTERANGLE,outerAngle, PSYS_SRC_OMEGA, omega, PSYS_SRC_MAX_AGE, life, PSYS_SRC_TEXTURE, texture, PSYS_PART_START_ALPHA, startAlpha,
28
Shane Harrison DMK showcase Gallery Project k0618551 PSYS_PART_END_ALPHA, endAlpha ]); }StartSpray (){
}
StopSpray(){ llParticleSystem([]); }
default{ state_entry() { StartSteam(); }
listen(integer channel, string name, key id, string message) { if (0 == llSubStringIndex(message, "spray on")) { StartSteam(); } else if (0 == llSubStringIndex(message, "spray off")) { StopSpray(); } }}
Fountain No-Frills Particle Script v2 Blue
// Jopsy's No-Frills Particle Script v2// All settings below are 'defaults
default{ state_entry()
29
Shane Harrison DMK showcase Gallery Project k0618551 { llParticleSystem ( [ // Appearance Settings PSYS_PART_START_SCALE,(vector) <0.1,0.8,0>,// Start Size, (minimum .04, max 10.0?) PSYS_PART_END_SCALE,(vector) <0.2,0.3,0>, // End Size, requires *_INTERP_SCALE_MASK PSYS_PART_START_COLOR,(vector) <1,1,1>, // Start Color, (RGB, 0 to 1) PSYS_PART_END_COLOR,(vector) <.5,.5,1>, // EndC olor, requires *_INTERP_COLOR_MASK PSYS_PART_START_ALPHA,(float) 0.1, // startAlpha (0 to 1), PSYS_PART_END_ALPHA,(float) 0.1, // endAlpha (0 to 1) PSYS_SRC_TEXTURE,(string) "", // name of a 'texture' in emitters inventory // Flow Settings, keep (age/rate)*count well below 4096 !!! PSYS_SRC_BURST_PART_COUNT,(integer) 20, // # of particles per burst PSYS_SRC_BURST_RATE,(float) 0.1, // delay between bursts PSYS_PART_MAX_AGE,(float) 2.0, // how long particles live PSYS_SRC_MAX_AGE,(float) 0,//15.0*60.0, // turns emitter off after 15 minutes. (0.0 = never) // Placement Settings PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE, // _PATTERN can be: *_EXPLODE, *_DROP, *_ANGLE, *ANGLE_CONE or *_ANGLE_CONE_EMPTY PSYS_SRC_BURST_RADIUS,(float) .5, // How far from emitter new particles start, PSYS_SRC_INNERANGLE,(float) PI/20, // aka 'spread' (0 to 2*PI), PSYS_SRC_OUTERANGLE,(float) 0.0, // aka 'tilt' (0(up), PI(down) to 2*PI), PSYS_SRC_OMEGA,(vector) <0,0,2 * PI>, // how much to rotate around x,y,z per burst, // Movement Settings PSYS_SRC_ACCEL,(vector) <0,0,-3>, // aka gravity or push, ie <0,0,-1.0> = down PSYS_SRC_BURST_SPEED_MIN,(float) 2.5, // Minimum velocity for new particles PSYS_SRC_BURST_SPEED_MAX,(float) 3.5, // Maximum velocity for new particles //PSYS_SRC_TARGET_KEY,(key) llGetOwner(), // key of a target, requires *_TARGET_POS_MASK // for *_TARGET try llGetKey(), or llGetOwner(), or llDetectedKey(0) even. :)
PSYS_PART_FLAGS, // Remove the leading // from the options you want enabled: //PSYS_PART_EMISSIVE_MASK | // particles glow PSYS_PART_BOUNCE_MASK | // particles bounce up from emitter's 'Z' altitude //PSYS_PART_WIND_MASK | // particles get blown around by wind //PSYS_PART_FOLLOW_VELOCITY_MASK | // particles rotate towards where they're going //PSYS_PART_FOLLOW_SRC_MASK | // particles move as the emitter moves PSYS_PART_INTERP_COLOR_MASK | // particles change color depending on *_END_COLOR
30
Shane Harrison DMK showcase Gallery Project k0618551 PSYS_PART_INTERP_SCALE_MASK | // particles change size using *_END_SCALE //PSYS_PART_TARGET_POS_MASK | // particles home on *_TARGET key 0 // Unless you understand binary arithmetic, leave this 0 here. :) ] ); //sound llLoopSound("runningriver",1.0); }}
Client emails
I have included email contact with my client to prove communication, meetings kept as client satisfaction.
Hi Shane
thanks for yesterday, they were very impressed. Is there any chance of a couple of screen grab jpegs for me to add to my annual report ? The four Deans involved in DMK are meeting next Tuesday and it would be great to include images of your work.
I will see you 1pm next Tuesday for a proper catch up
Thanks
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media, School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
00 (44) 208 547 2000
www.digitalmediakingston.com
//////////////////////////////////////////Hi Shane
as discussed I want as much stuff as poss thats been generated for the website to be imported into SL for the media assets and avatars http://www.digitalmediakingston.com/ The design company are happy to forward you stuff if you can confirm the file formats required asap and I have ccd them in.
31
Shane Harrison DMK showcase Gallery Project k0618551The banners are built in flash and the images rendered out in Cinema 4D. They can supply Quicktime movies or the source files, or a DXF or 3D studio, FBX file formats. The figures can be supplied in the same formats.
Here are some links for importing 3D files into SL: Scroll down to terraforming with external editors') http://desktopvr.wordpress.com/about/course-structure/
for a summary of how 3D models may be imported into SL Also read: http://wiki.secondlife.com/wiki/Sculpted_Prims:_3d_Software_Guide
Here is further info on how flash can be viewed in world http://vorticism.wordpress.com/2010/02/24/viewer-2/
If you could confirm asap with the agency that would be great
Thanks
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media, School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
00 (44) 208 547 2000
www.digitalmediakingston.com
//////////////////////
please remember they are just sketches to try and communicate the idea !
Best Wishes
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media,School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
32
Shane Harrison DMK showcase Gallery Project k061855100 (44) 208 547 2000
www.digitalmediakingston.com________________________________________From: Harrison, ShaneSent: Friday, March 26, 2010 1:53 AMTo: Cham, Karen LCc: Hutchison, Christopher S; Shabanathan, TharmilaSubject: RE: DMK in 2nd Life UXD Visualisation
Hi Karen,
we have taken a look and are considering what can and can not be done. We are having a work session on tuesday where this will be spoken about in detail. I will email you on progresses made and considered changes.
Shane
________________________________________From: Cham, Karen LSent: 24 March 2010 14:41To: Harrison, ShaneCc: Hutchison, Christopher S; Shabanathan, TharmilaSubject: DMK in 2nd Life UXD Visualisation
Hi Shane
further to our conversations yesterday please find attached a user experience visualisation for the DMK in 2nd Life; it is a draft as we will have to adapt to technical issues as we develop the brief.
To that end, I have ccd Chris in who will spot any glaring impossibilities.
God I enjoyed doing this ;-)
Thanks
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media,School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
00 (44) 208 547 2000
www.digitalmediakingston.com________________________________________From: Shabanathan, TharmilaSent: Monday, March 22, 2010 2:22 PM
33
Shane Harrison DMK showcase Gallery Project k0618551To: Harrison, Shane; Cham, Karen LCc: Hutchison, Christopher SSubject: RE: VR project for DMK
Hi Shane;
That is very good. Thank you.
See you tomorrow.Tammy
________________________________________From: Harrison, ShaneSent: 22 March 2010 14:15To: Cham, Karen L; Shabanathan, TharmilaCc: Hutchison, Christopher SSubject: RE: VR project for DMK
Hello Everyone,
My group are happy with that arrangement and we will all get together at 12:30 PM tomorrow on Tuesday. Two members have been notified by email and one has seen me in person.Shane
________________________________________From: Cham, Karen LSent: 19 March 2010 06:37To: Harrison, Shane; Shabanathan, TharmilaCc: Hutchison, Christopher SSubject: RE: VR project for DMK
Hi Shane
thanks very much, very professional of you and I appreciate it. Meanwhile Tharmila has suggested we all meet with herself and Chris from 12.30 if thats OK with you guys ? We can ensure a comprehensive start to the project I think this way,
Best Wishes
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media,School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
00 (44) 208 547 2000
www.digitalmediakingston.com________________________________________From: Harrison, Shane
34
Shane Harrison DMK showcase Gallery Project k0618551Sent: Thursday, March 18, 2010 10:03 PMTo: Cham, Karen LSubject: RE: VR project for DMK
Hello Karen,
I have met with the group today and it has been decided that we will all meet at 1pm on tuesday in the lecture room where we have our class. Look forwards to meeting with you.
Shane
________________________________________From: Cham, Karen LSent: 16 March 2010 06:41To: Harrison, ShaneSubject: RE: VR project for DMK
thanks shane
much appreciated
best
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media,School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
00 (44) 208 547 2000
www.digitalmediakingston.com________________________________________From: Harrison, ShaneSent: Monday, March 15, 2010 1:16 PMTo: Cham, Karen LSubject: RE: VR project for DMK
Hi Karen,
My group has been notified of the time you wish to arrange a meeting, I will contact you on any future information
Shane
________________________________________From: Cham, Karen LSent: 15 March 2010 11:54To: Harrison, ShaneSubject: RE: VR project for DMK
35
Shane Harrison DMK showcase Gallery Project k0618551Hi Shane
no worries; get well soon !
I can do next Tues 23rd at 1pm if that works for you guys ? Im sure Chris wont mind if its in class time and I could meet you there ? Is that when you do the VR module in SO 127 ?
Best
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media,School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
00 (44) 208 547 2000
www.digitalmediakingston.com________________________________________From: Harrison, ShaneSent: Monday, March 15, 2010 11:47 AMTo: Cham, Karen LSubject: RE: VR project for DMK
Hello Karen,
Sorry I have been injured during the weekend, and on top of that I could not access my K email account due to unknown technical problems. I have just seen am email from Chris Hutchison my VR (Virtual reality) module lecturer, and your email too. I am going to contact the people in my team so that I can make them aware of that we all must arrange a time to discuss and make plans on the DMK project. I will forward this email onto them so that they understand the urgency in coming together, and will inform you ASAP when I have heard from the group.Shane
________________________________________From: Cham, Karen LSent: 15 March 2010 06:52To: cshutchison@gmail.com; Harrison, ShaneSubject: RE: VR project for DMK
Hi Shane
let me know when you have 30 mins to catch up. No pressure, but this VR space is to be used for the launch of the DMK project to which we will be inviting our Industry Panel which includes
36
Shane Harrison DMK showcase Gallery Project k0618551Sony, Dreamworks and Samsung. I have worked in digital media production for many years and am a specialist in designing for emergence (unpredictable behaviours) so Im well keen to keep my nose in if thats OK !
Best Wishes
Karen ChamDevelopment CoOrdinator, Digital Media KingstonPrincipal Lecturer Digital Media,School of Communication DesignFaculty of Arts, Design & ArchitectureKingston UniversityLondon
00 (44) 208 547 2000
www.digitalmediakingston.com________________________________________From: Chris Hutchison [cshutchison@gmail.com]Sent: Friday, March 12, 2010 11:08 AMTo: Harrison, ShaneCc: Cham, Karen LSubject: VR project for DMK
Good morning, Shane.
Might I ask you, as team leader for the DMK build in The Knowledge Zone,to arrange for your group to meet some time soon with Karen Cham so thatshe can get to know who you are and ensure that you're clear on thedesign brief.
I've cc-ed to her, so you can hit Reply All to mail her.
Many thanks!
Chris
--Dr Chris Stuart HutchisonFaculty of Computing, Information Systems & MathematicsKingston UniversityPenrhyn RoadKingston upon ThamesSurrey KT1 2EEUnited KingdomTel: +44 20 8547 7808
Email: chrish@kingston.ac.uk / christopher.hutchison@bcs.org"The best way to predict the future is to invent it" (Alan Kay)
37
Shane Harrison DMK showcase Gallery Project k0618551
This email has been scanned for all viruses by the MessageLabs EmailSecurity System.
38