Month: June 2018

MUV601 Assignment 3 – Project Reflection

Welcome to the final post for my third MUV601 assignment. In this post, I will need to look back to my original task plan and compare it to my build process as well as the final product.

Reflection on how the Process Went

Design vs Result

So firstly looking at my original design and comparing it to my final build, I think I managed to get it pretty much spot on, the floor plan remained the same and I feel that, overall, I captured most of the elements from the pictures I was drawing inspiration from, with my own twist of course!

Learning Goals

In my task plan, I set myself learning goals for the process and I feel like I have achieved most of them, however, with my usual attitude, I believe that there is always room for further improvement. These were my learning goals:

  • Shaping and aligning objects (i.e. prims) in a 3D virtual space. I feel like I have come a long way with this, from the beginning where I had only just learnt what a prim was, to moving and shaping them with relative ease by the end of the build.
  • Learning how those shapes come together to create various objects. Again, I feel like I have come a long way with this as well. From basic beginnings to building some (in my opinion) pretty cool stuff, as basic as some of it may be. I also feel like I pushed myself even further by attempting to use Blender.
  • Apply textures appropriately in a way that looks visually appealing. I feel like I have grasped the basics of applying and scaling textures, however, this is one learning goal that I feel I could still improve on a lot.
  • Improve my scripting knowledge. I have made leaps and bounds with this learning goal, starting with not knowing how to use LSL at all, to doing some pretty cool stuff, knowing that I have hardly scratched the surface of what LSL is capable of is also shows me just how powerful it could be, especially looking at some of the other builds.
  • Improve my knowledge of how 3D virtual objects can interact with virtual avatars. I have definitely improved my knowledge here, although, I’m 100% positive that there is much, much more for me to learn about in this area.
  • Learn how particle systems can be leveraged to add atmosphere to the environment. I like the way my candles add a small touch to the tables, however, I did not quite achieve the level of knowledge I initially wanted with this learning goal.

Meeting the Requirements

In terms of requirements, I managed to achieve all of my goals, except for one, which was making the Laser Light using a particle system, however, I feel like the alternative that I came up with was much better than my original idea.

Following the Timeline

In all honesty and as I expected, my timeline was a little bit all over the place due to the workload of my other courses. I had a strong head-start at the beginning where I managed to get almost 3 weeks of my timeline completed in just 1 week, then my progress slowed drastically and almost went the other way but, in the end, things leveled out and I managed to stay (mostly) on time.

Reflection on the Strengths and Weaknesses of the Final Product

Weaknesses

So let’s start with the bad stuff first.

  • The first thing that I felt I could have improved on was the outside of my build. Overall this ended up being very plain and I would have liked to make it look a little nicer.
  • Some of my texturing wasn’t great. Particularly around the bar and with the tables/chairs. This was partly due to the textures I chose to use and partly due to my skill level but I would have liked to tidy these up a bit more
  • Although I was happy with it in the end, my “greeter” was fundamentally flawed and could be thrown out of sync if an avatar flys/teleports in or out of the pub so I would have liked to find a way to improve that.
  • The ambient sound could only be a maximum of 10 seconds, so hearing that for extended periods was a bit painful. I would have liked to add more variation to that.
  • The back bar ended up being far less detailed than I had planned and also lacked the interactivity that I wanted. If I had much more time and a slightly larger prim allowance I would have added some extra interactivity here and made it look nicer.
  • The standing positions for both the booth seating and the table and chairs are not ideal and I would have liked to figure out a way to make the avatar stand to the side of the chairs rather than stand straight up.
  • The barrels that I made have some rendering issues and only fully load when you get up close so I would have like to improve on this.

Strengths

And the good stuff

  • Overall, I feel like I did a pretty good job of building the look and feel of the environment (once you’re inside), given my very limited skills.
  • I’m really happy with the amount of scripting that I have done and the interactivity that I have added to the bar, the most notable being the dance ball as that took up far more time than I intended but the others include
    • The sliding doors (these have small glitches too but I’m really happy with them)
    • The greeter (Even though it is flawed, I love how this works… when it works)
    • The laser light (I think this adds to the look and feel of the environment immensely)
    • The music controls (The music adds to the feel of the environment and the controls were just a “cool” extra)
    • and the seating. (Particularly by the bar with the variety of poses to chose from)
  • The barrels, even though they have some rendering issues, I’m just really happy that I gave them a go and managed to get some mesh items into my build
  • Did I mention the dance ball? ;-P

Conclusion

Despite there being many things that I would like to improve on, I am really happy with the way that my final build has turned out. I have learnt a lot about building inside 3D virtual worlds and about 3D modelling in general, I feel that I have met all the requirements for my chosen option and I more or less managed to follow the timeline that I set for myself.

On a final note, I would really like to thank Isa (Aaron) and Belma for all the time and effort they have put into teaching us all this semester, I have really enjoyed this course, far, far more than I originally anticipated and, dare I say it, there were points where I even found myself having fun! Which is what life is all about, even in Second Life, apparently.

MUV601 Assignment 3 – Final Product

The Second to last post! The final reveal! Or.. final product… This will just be a brief overview of the whole project so let’s get into it!

Outside

To start off we’ll look at the outside of the bar, but first I’ll note that this build is intended to be viewed with the sun position set to Midnight as it is a night bar.

The outside of the bar could be called bland, but I prefer to call it clean 😉 below are some pictures showing the final design in the “right” light.

1 Outside

Top View (Front)

2 outside

Top View (Back)

3 outside

Standing outside

Entrance

Next moving inside the bar, from here you can see everything inside the bar. Here are some pictures.

4 entrance

Looking to the left (with the welcome reminding me to set my sun position to Midnight)

5 entrance

And some booth seating to the right

Seating

One of the main aspects of the bar is the seating. Booth seats, tables and chairs, and of course the bar! More pictures…

6 booths

Waiting for a friend in the booths… Nice candles ;-p

7 tables

Still waiting… at the tables now…

8 bar

Chilling at the bar

Dance Floor and Stage

The next main aspect is the dance floor and the stage… after such a huge battle with the Dance ball, I’m happy to finally be getting down on the dance floor!

9 dancing

Movin’ on the dance floor!

10 stage

View from the stage (Control station!)

In the distance, you can see the slight rendering issue I have with my barrels, it’s not great but overall I’m happy that I built them myself and did some learning with a 3D modeling tool. Speaking of which, in case I need to provide the Blender file for the Barrel as evidence, you can download it here.

Conclusion

So that concludes this post, just showing the completed elements of the build. Stay tuned for the final reflection!

—————————————————————-

On a side note, I have hopefully scripted this properly, but I have tried to give Isa the ability to switch the ambient sound on and off with voice the commands (“a_on” or “a_off”) or with the Mixer.

11 Ambiance

 

MUV601 Assignment 3 – Week 5 Polishing the Build

Third to last post for the Assignment, onwards along the final stretch! This week it was time to polish the build up and put on the final touches so, without further ado, my final update post.

Laser Light Extra Effects

This slideshow requires JavaScript.

So far I had a laser light that would spin, could be turned on and off, and produce some light, however, it was missing a something… although it was moving, it just felt so… static. I realized that the light needed to change or flash, like a real party light! So I added some additional code to the script and I think the final result worked great!

The slideshow doesn’t do it justice, you need to see it in pers.. uh.. in world!

Ambient Sound

With the updated laser light the overall feel of the bar was getting better but I wanted to build the atmosphere even more! so I hunted for a royalty-free bar ambiance clip, uploaded this Second Life and added it in.

This slideshow requires JavaScript.

With it playing, I wanted a way to turn it on or off, so I thought chat commands would be fun.

Music and Controls!

With the underlying ambiance set, it was time to build on that and add something that every bar needs, MUSIC! Plus I needed to make use of the monitor and mixer that I built last week!

Again, I looked for royalty free music and came across a few clips that were royalty free, however,  Second Life only allows a maximum of 10 seconds for audio clips and they were all much longer so, I got busy with Audacity.

1

With the clips cut down to under 10 seconds, it was time to get them uploaded to Second Life and playing in-world. This involved three scripts, one to change the music (in the monitor), one to adjust the volume (in the mixer) and one to play the music (in the roof? it seemed to work alright).

This slideshow requires JavaScript.

Of course, Isa reminded me I needed to be able to turn this on and off as well! so I added the “Off” option to the mixer.

Exterior Work

Finally, the outside of my bar was looking pretty bland, so I made a texture to act as a sign and uploaded that, then added it to the outside and put some “glow” on it to make it stand out.

6

Requirements that Have Been Met

Key

Met Justification To Do

This work has covered the following requirements for content creation:

  • A minimum of 100 and a maximum of 300 prims, sculpties or mesh objects used in the construction, with a combined land impact of no more than 350 
    • Land impact sitting at 302…
  • At least three different primitive types (i.e. Sphere, Torus, etc.)
    • Check: Cube, Hemicylinder, Cylinder, and Torus
  • At least four different forms of prim manipulation (i.e. Cut, Twist, etc.)
    • Twist, Taper, Hollow, and Slice
  • The use of different textures and colours throughout the build with consideration given to using appropriate textures, texture repeats, offsets and rotations
    • To complete the build, I looked around more closely at my texturing and I feel that everything looks pretty good. Some things could maybe be better, however, I don’t think it’s a big deal since a) I’m a complete amateur and b) I’m going for interactivity over aesthetics.
  • At least two different texture manipulations (i.e. Glow, Shininess, etc.)
    • Glow on the new sign outside, on the lights above the bar and on the laser lights, Shininess on the dance ball
  • The appropriate use of multiple textures on a prim
    • The walls and roof have multiple textures on the inside and outside of the building? 
  • The appropriate scale for purpose both in construction and texture use
    • Again, I personally think that I’ve done a pretty good job of this but I’ll just have to wait and see what Isa says!

And the following requirements for complex interactivity:

  1. I will implement a scanning system that will detect the presence of an avatar then interact with the avatar in some manner by adding automatic doors to the pub.
  2. I will have a prim’s inventory item (Content) passed to an avatar in the form of a notecard being passed to the Avatar.
  3. I will attempt to use an appropriate particle system to implement decorations such as candles.
  4. I will include a link out to a web page by including “advertisements” that users can click on and be taken to the website of the product.
  5. Naturally, the sitting of an avatar on a prim with the purpose of either “seating” or “teleporting” the avatar will be included as seating is an important aspect of a pub.
  6. I will implement Prim movement through scripting by making the laser light spin over the dance floor and opening the Sliding Doors at the entrance.

And with that, all the requirements have been met and that brings me to the end of the building part of the assignment. Stay tuned for the final product post!

MUV601 Assignment 3 – Week 4 Completing the Interactivity Requirements

This week, I focused on completing the remaining requirements for the Complex Interactivity option, once this was done I started looking at refining other details of the build, most importantly fixing the dance ball!

Work Completed

Content Passed and Link to Website

The first thing to tackle this week was completing the remaining requirements for my build option so, firstly, I needed to pass inventory items to a user, this was done by writing a script for one of the “poster” boards that a user could click on a receive a notecard (if they chose to accept it). I also uploaded my own texture to use as the “poster”.

This slideshow requires JavaScript.

Next, I tackled the remaining posters by uploading a bunch of new “poster” textures and adding these to the poster prims, after this, I added a script that prompted the user to go to a web page that relates to the poster.

This slideshow requires JavaScript.

With that done, the final requirements for my option were completed and the bar had a much better “feel” to it now that the posters were more than meaningless decorative textures (i.e. black and white tiles). From here, I could almost say the project was completed, however, I still felt the bar was lacking, so onwards with more work!

Completing the Back Bar

This was a minor change but it was applied to a “major” detail of the bar, which made a huge difference to the look and “feel” of the bar as well. Initially, I had planned to create numerous bottles and other items to fill the shelves that I had created, however, that would have put me well over the prim/land impact limit, so I opted for the next best thing, a single prim with a texture that represents a back bar.

3

 

Filling in the Stage Area

In my opinion, one of the biggest aesthetic problems with my build at this point was that the dance and stage area were very empty looking and I felt like I needed to address this. The first thing I did was try to break up the back wall a bit more by adding a few my posters.

4

This looked good, but the stage still looked empty and it was beginning to feel like it didn’t have a purpose in the build. I needed to fix that, so I decided to add a “mixing” desk. With hopes of adding sound to the build, I thought that this would be a great place to add some control over those sounds if I do manage to implement them.

This slideshow requires JavaScript.

“Fixing” the Greeter

My first attempt to add a greeter to the bar was last week when I added the sliding door function. The issue with that was the user would only ever get the welcome message, even if they were leaving, which was obviously not ideal, also the message was coming from “Sliding Door Left”, which was a bit odd. My current fix for this was a slightly more sophisticated script, as well as a new location for the script.

Now, I added a prim which acts as 1, a divider to add some further distinction between the grass and the floor of the pub and 2, the new “detection” object to see if the user is entering or exiting the bar and giving them a different message depending on this.

7

This design also has some problems, such as if the user “flys” in or out of the bar, or teleports somewhere else once they’re inside, it will throw the script out of sync, but I think it’s much nicer than what I had already.

Dance Ball!!!

What a mission this has been, if anything, this single feature has taken the bulk of my time in this build, mainly because I had been determined to write my own dancing script from scratch. This posed many issues and after asking Isa for advice, I finally had my answer, as it turns out if I wanted the Dance ball to be able to animate more than just me (which I did), I needed two types of script, a server, and a dancer script for the number of avatars I wanted to be able to dance, this is because one script can only one avatar at a time.

Armed with this information I found a free “dance server” script from outworldz that included a dancer script as well, however, the dance script was very generic, it gave an ugly menu and it had a very similar problem to what I had in week 2 where I could not stop the animations without forcing them to stop with Firestorm.

Fortunately enough, I happened to have an almost perfect dancer script of my own from the last few weeks of trying to get the dance ball working, it just needed some minor alterations to work with the “server” script and with that done I FINALLY had a working dance ball!!!

8

Requirements that Have Been Met

Key

Met Justification To Do

This work has covered the following requirements for content creation:

  • A minimum of 100 and a maximum of 300 prims, sculpties or mesh objects used in the construction, with a combined land impact of no more than 350 
    • Land impact sitting at 301…
  • At least three different primitive types (i.e. Sphere, Torus, etc.)
    • Check: Cube, Hemicylinder, Cylinder, and Torus
  • At least four different forms of prim manipulation (i.e. Cut, Twist, etc.)
    • Twist, Taper, Hollow, and Slice
  • The use of different textures and colours throughout the build with consideration given to using appropriate textures, texture repeats, offsets and rotations
    • I have done some work on this, however, this will not be finished until the build is complete
  • At least two different texture manipulations (i.e. Glow, Shininess, etc.)
    • Glow on the lights above the bar and on the laser lights, Shininess on the dance ball
  • The appropriate use of multiple textures on a prim
    • The walls and roof have multiple textures on the inside and outside of the building? 
  • The appropriate scale for purpose both in construction and texture use
    • Again, I will check this off when the build is complete

And the following requirements for complex interactivity:

  1. I will implement a scanning system that will detect the presence of an avatar then interact with the avatar in some manner by adding automatic doors to the pub.
  2. I will have a prim’s inventory item (Content) passed to an avatar in the form of a notecard being passed to the Avatar.
  3. I will attempt to use an appropriate particle system to implement decorations such as candles.
  4. I will include a link out to a web page by including “advertisements” that users can click on and be taken to the website of the product.
  5. Naturally, the sitting of an avatar on a prim with the purpose of either “seating” or “teleporting” the avatar will be included as seating is an important aspect of a pub.
  6. I will implement Prim movement through scripting by making the laser light spin over the dance floor and opening the Sliding Doors at the entrance.

To Accomplish Next Week

Next week is the big one, this will be time to polish off the build and really get everything finished as the due date for the project is Friday the 16th of June so once the build is complete I will also need to write 2 more blog posts, one for the final touches of the build and one to reflect on my build!

MUV601 Assignment 3 – Week 3 Dance Area Cont. and More Scripting!

This has been a great week for learning due to the numerous problems that I encountered, unfortunately, this means that I have not completed as much as I had hoped to as a very large amount of time was spent solving the problems.

Dance Area Continued

This week I wanted to complete the dance area, however, I ran into a bit of a problem, when I started constructing the barrels I realized that adding them may put me over the prim/land impact limit for the assignment! that went quickly! So I decided to try my hand at using Blender to create the barrels in the hopes that it would reduce the land impact required for them. This was quite a fun experience as it had been over 10 years since I last attempted 3D modeling!

My first attempt was not too shabby, so I thought, however when I went to upload it to Second Life the upload option was greyed out, I later discovered that it may be due to the smoothing or texturing that I did in Blender, I’m not sure!

This slideshow requires JavaScript.

So I re-made the barrel, which was much faster this time, and I used the “Generate Normals” option while uploading to do the smoothing for me.

This slideshow requires JavaScript.

This resulted in a barrel with a land impact of 4, opposed to the 6 that it would be if it was simply made with prims, which was not a great saving but it was a saving nonetheless. Next, I added the textures in Second Life, this did not look as good as in Blender but it was better than nothing. Finally, I duplicated the barrel and stacked some by the wall.

5

Textured

6.1

Stacked

Sitting Scripts

This is the task that took up most of my time, particularly the seating in the middle of the bar. Firstly I tackled the bar stools, for these I wanted to add the option of sitting in different poses and being able to turn to the left or right, however, I eventually settled for just adding the poses, this is because turning the avatar while still sitting proved to be quite difficult!

Adding the pose options also had the issue of moving the position of the avatar away from the seat which, obviously, was not desirable. I spent a good chunk of time “fine-tuning” the seating positions for each pose, while also adding a chunk of script from the Linden Lab Wiki which allowed me to move the avatar position while still seated.

This slideshow requires JavaScript.

In the process of scripting the bar stools I also found yet another bug with the Dance Ball script which meant it was “listening” to the bar stools dialog and throwing an error. Through this, I learned about “Listen Handlers” and implemented this into both the Dance Ball and the bar stool scripts.

After spending far too long on it, I finished fine tuning the bar stool script and the poses were working.

This slideshow requires JavaScript.

Next, on to the center seating and what a NIGHTMARE! Why I opted for angled seating I have no idea! The process of trying to set the llSitTarget on these chairs almost pushed me to change the angles of the chairs, however, after hours of struggling, I found a huge helping hand online with the Magic Sit System Box, which truly worked like MAGIC! It took me from struggling to “achieve” a sitting angle like this:

9

To quickly and easily sitting like this:

10

With all chairs done in under 5 minutes! Next, I need to work on the stand position, however, I decided that will be a task for next week.

Improving the Laser Light Script

I wanted to add the option of turning the laser light on and off, this was a fairly straightforward task, just adding a “switch” variable and changing some parameters with the touch event. This is difficult to show in a picture so you’ll just have to come and try it out 😉

Sliding Doors

My final task for the week was the sliding doors which, to my surprise, was also quite an easy task. I opted to keep the doors un-linked from the building and from each other, I then simply used the scanning system on the left door to detect when an avatar approaches.

On the detect (or non-detect), a message is sent on a “private/invisible” channel, the right door is then scripted to listen for the message and open/close depending on the message it receives from the left door. There is also a welcome message scripted, however, this also happens when leaving so I need to work on that next week as well.

11

Finally, doors that open!

Requirements that Have Been Met

Key

Met Justification To Do

This work has covered the following requirements for content creation:

  • A minimum of 100 and a maximum of 300 prims, sculpties or mesh objects used in the construction, with a combined land impact of no more than 350 
    • Land impact sitting at 293…
  • At least three different primitive types (i.e. Sphere, Torus, etc.)
    • Check: Cube, Hemicylinder, Cylinder, and Torus
  • At least four different forms of prim manipulation (i.e. Cut, Twist, etc.)
    • Twist, Taper, Hollow, and Slice
  • The use of different textures and colours throughout the build with consideration given to using appropriate textures, texture repeats, offsets and rotations
    • I have done some work on this, however, this will not be finished until the build is complete
  • At least two different texture manipulations (i.e. Glow, Shininess, etc.)
    • Glow on the lights above the bar and on the laser lights, Shininess on the dance ball
  • The appropriate use of multiple textures on a prim
    • The walls and roof have multiple textures on the inside and outside of the building? 
  • The appropriate scale for purpose both in construction and texture use
    • Again, I will check this off when the build is complete

And the following requirements for complex interactivity:

  1. I will implement a scanning system that will detect the presence of an avatar then interact with the avatar in some manner by adding automatic doors to the pub.
  2. I will have a prim’s inventory item (Content) passed to an avatar in the form of a notecard being passed to the Avatar.
  3. I will attempt to use an appropriate particle system to implement decorations such as candles.
  4. I will include a link out to a web page by including “advertisements” that users can click on and be taken to the website of the product.
  5. Naturally, the sitting of an avatar on a prim with the purpose of either “seating” or “teleporting” the avatar will be included as seating is an important aspect of a pub.
  6. I will implement Prim movement through scripting by making the laser light spin over the dance floor and opening the Sliding Doors at the entrance.

To Accomplish Next Week

Next week I will first and foremost work on the remaining requirements for complex interactivity by scripting the notecard and working on adding advertisement with links out.

If I get time after this, I will work on the Dance Ball and possibly continue working on the seating scripts and, at this point, it looks like I will be adding a “false” wall to back of the bar with a texture containing the drinks which won’t look as good but will be closer to the desired look.