Archive for the ‘412 – Class Documents’ Category

What We Learned This Semester

Wednesday, May 11th, 2011

Well, I certainly learned a lot. I hope the rest of the class did. Here’s my list of the main items:

  1. Our lives are embedded in a complex network of technologies (thank you James Burke). Technologies are connect to other technologies and to history, politics, and most of all the to the economy in which we live (capitalism).
  2. Artists should be aware of technologies because a) they are a lens through which we see the world (see John Berger, b) they are an artistic tool, and c) they are important cultural phenomena in which artists (and all of us) should be interested.
  3. We made art using post-its investigating how the technologies we use everyday are part of a rich web of connections.
  4. We looked at how video games can be used to make art and developed a proposal for an art project using the US Army’s video game and propaganda tool America’s Army.
  5. We learned the basics of video game programming in the Unity game development environment and we came full circle by making a connected virtual archipelago of islands, each with a technological theme.

Code for Text on Level Loading

Sunday, May 8th, 2011

This is the script to show text at the beginning of your level. This needs to be linked to a GUIText object. Adjust the time to suit. The text should be something simple like following with your technology and name inserted:

ISLAND OF THE COMPUTER by Andy Cox

Find the technology….
Press the Esc key for menu

For line breaks insert \n into your text.

private var StartTime : float;

/*OnLevelWasLoaded () runs once*/
function OnLevelWasLoaded () {

	/*set the start time to the start of the game*/
	StartTime = Time.time;

}

function Update () {

	/*if less than 5 seconds since start of game display the text*/
	if(Time.time - StartTime <= 5){
		guiText.enabled = true;
		guiText.text = "ISLAND OF THE COMPUTER by Andy Cox
               \n Find the technology....
                \nPress the Esc key for menu ";

	}
	/*otherwise destroy the game object to which the script is attached*/
	else {
		Destroy (gameObject);
	}

}

Audacity – Mix Down to Mono

Thursday, May 5th, 2011

http://wiki.audacityteam.org/wiki/Mixing_stereo_tracks_to_mono_in_your_Project

Grade Breakdown – Revised – Please Read

Thursday, May 5th, 2011

This is from the syllabus with some minor clarifications. Please read. Note that I have reduced the America’s Army art % to 5% and increased menus, splash screen and art tweaks to 15%. This is to place more emphasis on the creative artistic elements of your Interactive Island. I also increased the 3d Sculpture % to 15% (and reduced fostering a learning environment to 5%) to account for the increased effort required for this assignment. By doing this, the total grade for the Interactive Island is now 50% of the total grade which I think is more representative of the work required.

In addition to the percentages below there will be bonus points available at my discretion for exceptional work that goes above and beyond requirements. For example, tweaking the game engine and textures to produce something truly unusual and exceptional. Please contact me for me information on this.

Grade Breakdown

Fostering a learning environment 5%

Digital image of self and Gravatar 5%

Ways of Seeing – cultural impacts of the computer 10%

Domestic technology connections 10%

Computer music composition, video capture, upload 10%

Proposal for art based on America’s Army 5%

Read and response to Art and Video Games reading 5%

Interactive Island – terrain 10%

Interactive Island – 3d sculpture – SketchUp, import 15%

Interactive Island – game element: sound and text 10%

Interactive Island – menu, splash sreen, art tweaks 15%

TOTAL 100%

Move From One Random Scene to Another Using A Menu

Tuesday, May 3rd, 2011

This code uses the ESC key to bring up a menu. The user then has the option to proceed to another island or to stay where they are. Remember that Update() and OnGUI() are evaluated every frame of the game (i.e. about once every 1/30th of a second)

Notice use of quitMenu = !quitMenu; This means quitMenu becomes equal to the opposite of whatever it is now. So if it is false (menu not showing) it now becomes equal to true and the menu shows. If it is true (menu showing) it now becomes equal to false and the menu is not shown.

Also notice the code for use of keyboard keys in Unity I if (Input.GetKeyDown(KeyCode.Escape)) means do something if the escape key is pressed down.

The code needs to be linked to an empty game object in the hiearchy, and in that game object you need to set the height and width of the menu in the Inspector.

To change the look of the menu you will need to implement GUISkin. See page 227 of Unity Game Development Essentials.

var quitMenu : boolean = false;
/*var menuSkin : GUISkin;*/
var areaWidth : float;
var areaHeight : float;

   function OnGUI() {

        if (quitMenu == true) {

        	/*GUI.skin = menuSkin;*/

			var ScreenX = ((Screen.width * 0.5) - (areaWidth * 0.5));
			var ScreenY = ((Screen.height * 0.5) - (areaHeight * 0.5));

			GUILayout.BeginArea (Rect (ScreenX,ScreenY, areaWidth, areaHeight));      	

            if (GUILayout.Button ("Another Island")) {
            	Application.LoadLevel(Random.Range(0, Application.levelCount));
                quitMenu = false;
            }

       		if(GUILayout.Button ("Stay Here")){
			quitMenu = false;
			}        

         	GUILayout.EndArea();
        }
    }

   function Update () {
        if (Input.GetKeyDown(KeyCode.Escape)) {
            quitMenu = !quitMenu;
        }
    }

Publishing Your Unity Web Builds – Important

Sunday, April 24th, 2011

You cannot upload the .html and .unity3d files through Word Press. It does not work – the user is repeatedly requested to download the Unity web play. You MUST upload the files directly to the server via ftp as described in a previous post. Also, please do NOT upload to your own server. Follow the instructions in the post. I may need to edit the .html or make other necessary adjustments….

Making text appear on the screen near an object

Tuesday, April 19th, 2011

For more details on these procedures see Unity Game Development Essentials pages 107 – 113; and 144 – 149. I developed the following procedures from these pages so read them first before proceeding. There may be minor details that I have not covered below!

OVERVIEW

Basic Procedure – Collision Setup:

  1. Set up a box collider for the object.
  2. Tag the object so the script can access it.
  3. Write a script PlayerCollisons.js that defines what that controls what happens when the player hits an object.
  4. Link the script to the First Person Controller

Basic Procedure – Text Setup:

  1. Set up a GUIText object to contain the text.
  2. Write a script showText.js that defines how the text is displayed.
  3. Link the scripts GUIText.
  4. Apply fonts (not covered below, see p. 148)

COLLISION SETUP

1. Select your object then go to Component > Physics > Box Collider. Resize the green Box Collider using the X, Y, Z values.

2. Select your object. Tag the object by clicking on the Tag dropdown menu. Choose Add Tag, and select a suitable name in the Tag Manager that replaces the current Inspector view. Once you’ve created the tag you will need to reselect it in the object and reselect the tag from the dropdown menu.

3. You can create the PlayerCollision.js script outside of Unity using Unitron, or right click in the project window and Create > Javascript. If you do it this way, rename the script created. Click on the script and select Edit… in the Inspector window. Unitron opens. Enter the following:

function Update () {
}

function OnControllerColliderHit(hit : ControllerColliderHit){

		if(hit.gameObject.tag == "Wall"){
			showText.message = "HELLO WORLD";
			showText.turnTextOn = true;
			/*MenuGUI.showMenu = true;*/

		}

}

OnControllerColliderHit() is a function provided by the Unity game engine. “Wall” is the tag of my object with a box collider. Yours will be different! ShowText is the name of the function that we have not written yet. And of course replace HELLO WORLD with your own text.

4. Select the First Person Controller and Component > Scripts and select the PlayerCollisions script.

TEXT SETUP

1. Create a GUIText object (see page 144 of UGDE): GameObject > Create Other > GUI Text. Rename this object to TextHintGUI. (In order to avoid confusion I called mine the same name as in the book TextHintGUI, but you could call it anything as long as you use the same name in the script that addresses it).

2. Create a new Javascript file (as described above) and IMMEDIATELY rename it to showText.

static var turnTextOn : boolean = false;
static var message : String;
private var timer : float = 0.0;

function Start(){
	timer = 0.0;
	TurnTextOn = false;
	guiText.text = "";
}

function Update () {
	if(turnTextOn){
		guiText.enabled = true;
		guiText.text = message;
		timer += Time.deltaTime;
	}
	if(timer >=5){
		turnTextOn = false;
		guiText.enabled = false;
		timer = 0.0;
	}
}

Note the use of static var to create global variables which will be accessible to the Player Collisions.js script.

3. Link the above script to TextHintGUI object by selecting it in the Hierarchy and then Component > Scritps > showText to add the above script that you just created.

4. Apply fonts to your TextHintGUI. See page 148 of UGDE for how to import fonts of your choice. If you want to use the default font Arial you can go ahead and changes its appearance in the inspector without importing anything.

Introduction to Scripting for Unity

Tuesday, April 19th, 2011

General

Scripting provide custom behavior for game objects.

General procedure is to write the script and then link it to the game object by selecting the game object then Component > Scripts and select the script.

Save scripts to the Assets folder and Unity will detect them and add them to the Project window.

Scripting languages for Unity include Javascript, C#, and Boo.

Jacascript

Javascript: also used for web authoring.

Must declare variables to be used before using them, e.g

static var X : float 1.0;

static var Y : float 2.0:

static var Z : float;

private var A : boolean = false;

Other variable types include boolean (true, false) and string (text).

static means the variable is available to all other functions

private

Basic math: Z = X + Y;

Functions are the build blocks of Javascirpt (and all programming languages), e.g.

function AddNumbers (X,Y){

Z = X + Y

}

call the function: AddNumbers(a,b)

All Unity scripts include the function Update (){} which is a call to the engine to update the script at every frame.

Conditional Statements: if (a == b){ do something}

Compiling: scripts are compiled for use in the game as soon as you save them. Any errors will appear in the bottom window bar.

Art as the uncanny and six bloody prayer flags

Wednesday, April 13th, 2011

We’ve been talking a lot about “art” in the 412 class. For me it is something that jolts me into looking at the world differently. It strikes me as uncanny or “unheimlich” to use the psychoanalytic term. It takes a receptive mind to see it…. and it does not necessarily take intention to create it.

Amy hangs 6 red rags on the clothes line with 6 identical clothespins. They flap in wind like bloody prayer flags. Did she mean it as art? (She is an artist after all.) But it doesn’t matter, because it was seen as such.

bloody_prayer_flags

Andy Cox, April 2011

Senior Show – Essential Information

Wednesday, April 13th, 2011

Art 412 will be participating in the Senior Show on Saturday April 23. You participation is mandatory. Those who may noteworthy contributions will receive extra credit. We will be showing the post-it technology network and sketches and your islands.

Post-It Technology Network

This will be displayed in the alcove near the elevator. A group of students have volunteered to paint the alcove on Thursday 4/14 between Paul’s and my classes, and will bring in the paint and materials. We will install the network and the sketches on Tuesday 4/19.

You must bring in your original sketch or a good copy on Tuesday 4/19. I will supply foamcore, glue, knives, etc and you will mount your sketches. If you do not bring in your sketch you will not be in the show.

Islands

Your islands will be displayed on a computer in either FA544 or FA538.

To be in the show your islands must be on the web by Thursday 4/21 and you must post a screen  shot of your sculpture in it’s island setting AND a view of your island from directly above by Tuesday 4/19. Each image should be 400 px by 200 px.

The web player islands will be accessed from a web page displaying your screen shots in a simple grid. The screen shots will link to the web play. I am planning to make the web page, but if anyone wants to make it for extra credit then please let me know.

Building for Web Player and Uploading

Monday, April 11th, 2011

Building for Web Player

File > Build Settings

Platform > Web Player

Scenes to Build > Add Current

Player Settings opens an Inspector Window

Default screen width > leave at default of 600

Default screen height > leave at default of 450

Web Player Template > your choice

Make no other changes.

Hit Build and a folder with two files will be created. One is an html file (let’s call it island.html) and one is a unity3d file, in this case it would be island.unity3d.

Uploading to the Internet

I have established a class folder called art 412 on my server to which you need to upload your files.

FTP to twcdc.com / login: art 412 / password: ask me

Create a folder with your name within the art412 folder. The process for this depends on which ftp client your are using.

Upload the two files (not the folder itself) to your folder.

Your game will now be playable at: twcdc.com/art412/your_name/island.html (or whatever you named it during the build process).

Here’s an example link to my test game: twcdc.com/art412/andy/unity_web_player_test.html

Videogames and Art

Monday, April 4th, 2011

“Should Videogames be Viewed as Art”, by Brett Martin

We should focus on what he is trying to say before we criticize it.

Does he think that all videogames are art?

What technologies does the essay compare to videogames?

Images from the essay (all images from Wikipedia unless noted):

Oscar-gustave-rejlander_two_ways_of_life

Two Ways of Life (1857) - Oscar Rejlander

School of Athens (1505), Raphael

School of Athens (1505) - Raphael

Les Romains de la décadence (1847) - Thomas Couture

Les Romains de la décadence (1847) - Thomas Couture

America (1995) – Nam June Paik

TV Bra for Living Sculpture (1969) – Name June Paik and Charlotte Mormon

22281ozthe-wizard-of-oz-posters2

The Wizard of Oz (1939)

National Lampoon's Vacation (1983)

National Lampoon's Vacation (1983)

Final Fantasy VII (1997)

Final Fantasy VII (1997)

Goldeneye 007 (1997)

Goldeneye 007 (1997)

Rez (2001)

Rez (2001)

Rez on the Sega Dreamcast

Artists who use video games

wordpress unity test game

Thursday, March 24th, 2011

Brainstorming Sculpture

Tuesday, March 22nd, 2011

This is applicable to devising an approach to this assignment.
Concept: technology, mystery, abandoned, worshipped, hated, futuristic, personal, networks
Place: high, low, light, dark, hidden, inside, outside, buried
Form: big, small, abstract, representational, multiple, single
Materials: natural, manmade, heavy, light, dark, color
Audience: nobody, me, everybody
Sound: loud, quiet, stereo, mono
Text: incorporated, ambiguous, explanatory

Some trends in 20th Century sculpture

Rodin, The Kiss, 1886

kiss_musee_rodin

Brancusi, The Kiss, 1909

brancusi-kiss-small

Branusi, Atelier, Paris

220px-Atelier-brancusi-2

Henry Moore, Two Forms, 1938

henry-moore-two-forms-philadelphia_lh170_0

Marcel Duchamp, Fountain, 1917

220px-Duchamp_Fountaine

David Smith, The Banquest, 1951

david-smith-banquet-1951

David Smith, CUBI VI, 1963

250px-SMITH_CUBI_VI

Robert Smithson, Spiral Jetty, 1970

spiral_jetty_big

Claes Oldenburg, Clothespin, 1976

clothespincopy

Jeff Koons, Balloon Dog (Yellow), 1994 – 2000

koons_01_R

Barbara Kruger, We Don’t Need Another Hero, Billboard, 1986

kruger_billboard

Totem Poles, Alaska

Wrangell_totem_poles

Stephen Cox, St. Anselm’s Altar, 2005

 cox_altar_ace

Revised Syllabus – 03-21-11

Monday, March 21st, 2011

Revised Class Syllabus 03-21-11

Embedding Unity Games in a WordPress Blog Post

Thursday, March 17th, 2011

Follow these instructions to embed Unity games in a WordPress blog post…

(The above instructions were included with this plugin which is now installed on the server.)

Unity – First Person Controller

Thursday, March 17th, 2011

To get this to work you need to import the Character Controllers package.

Assets > Import Package, then navigate to the Applications / Unity / Standard Packages and select Character Controller.unityPackage

In the program Character Controllers now appears under Standard Assets in the Project Window. Drag First Person Controller onto your Scene, then press play  play_button to run your game.

3D Game Geometry

Monday, March 7th, 2011

coordinates_polygons

The invention of cartesian coordinates is attributed to Rene Descartes and bear his name; he may have been inspired by the techniques of Renaissance painting.

vectors_polygons

Vectors describe the movement of objects in cartesian space. The concept of vectors goes back possibly thousands of years but vectors based on cartesian coordinates appears to originate with Liebniz and Newton

Unity Navigation

Sunday, March 6th, 2011

Essential to know for getting around your scene in Unity……………………….

  • Learning the Interface-13-hand Click and drag to pan around the scene.
  • Learning the Interface-14-eye Hold Alt then click and drag to orbit around the scene.
  • Learning the Interface-15-mag Hold Command then click and drag to zoom the scene.

Unity Game Development Essentials Files

Sunday, March 6th, 2011

In Chapter 1 of Unity Game Development Essentials, the correct link to download the files used in the book is: https://www.packtpub.com/code_download/4209

If this does not work for you, go to the publisher’s web site https://www.packtpub.com/ find the book and the link to the code.

America’s Army LAN Game

Thursday, March 3rd, 2011

1. Log on to Personnel jacket

2. Press the ~ key to bring up the in-game consol

3. Type: start 130.212.27.195:1716

4. Choose Assault or Defense

AA 2.5 Assist

Thursday, March 3rd, 2011

This is needed to view available internet games and helps run a server….

http://aa25assist.sourceforge.net/

Safety Guidelines for Digital Media

Tuesday, February 22nd, 2011

http://userwww.sfsu.edu/%7Einfoarts/technical/cia.sfsu.healthandsafety.html

Capturing Sound from Mario Composer with 1/8″ Audio Cable

Wednesday, February 16th, 2011
You will need an audio cable that looks like this:
c217_054p2
  1. Plug one end of the cable into the headphone socket on the back of the computer; and plug the other end into the line in socket next to it. The back of the computer should look something like this. We are connecting the analog output to the analog input.
  2. Click on the Apple in the top left of your screen and open System Preferences. Under Hardware click on Sound.
  3. Click on Output and select Headphones; click on Input and select Line In.
  4. Open Jing. Select preferences (the image of the cogs) and under Audio Input, select device as Built-In Input.
  5. Capture the Mario window with Jing while it is playing. Note that you won’t be able to hear anything while the capture is taking place.

Revised Class Schedule 2-15-11

Tuesday, February 15th, 2011

Revised Class Schedule

Technology as a Subject of Artistic Inquiry

Tuesday, February 1st, 2011

Technology as the subject artistic inquiry rather than technology as a tool or as a lens through which the world is seen, is a relatively new phenomenon.

The Renaissance – In this era there was not the separation between art and technology that we have now. A man such as Leonardo could embrace a large proportion of human knowledge.

Design_for_a_Flying_Machine_web

Leonardo Da Vinci, Design for a Flying Machine, c. 1488

The Industrial Revolution – technology starts to have a rapid and real impact on people’s lives. These images from J.M.W. Turner evoke the shock of the new and sorrow for loss of the old.

A response to the speed of technological change:

480px-Turner-rain-steam-and-speed

J. M. W. Turner - Rain, Steam and Speed - The Great Western Railway, 1844

The poignancy of technological change:

480px-The_Fighting_Temeraire_tugged_to_her_last_Berth_to_be_broken

J.M.W. Turner, The Fighting Temeraire tugged to her last Berth to be broken up, 1838

Modernism – the modern era includes instances of the horrific impact of technology on society as well as celebrations of technology, and artists working in “traditional” media have responded.

The horror of war:

PicassoGuernica_web

Guernica, Pablo Picasso, 1937

The joys of technology:

Intonarumori-veduta_web

FLuigi Russolo with his assistant Ugo Piatti and their Intonarumori (noise machines)

sound

Digital Technology – from the 60′s onwards artists have used digital technology as a tool and have investigated the impacts of the technology on art and society.

Artistic manifestos for a new era in art:

EAT_statement_of_purpose_1967_web

Experiments in Art and Technology, Statement of Purpose, 1967

Telecommunications was one of the first areas of technology with which artists became involved:

send-receive-X_mag_SR_02_web

Send/Receive Satellite Network, Keith Sonnier and Liza Bear, 1977

Networked communications systems facilitate inquiries into networked systems:

they_rule_web

Josh On, They Rule, 2001

Artistic inquiries into disparate areas of science:

greenrabbit_web

GFP Bunny, 2000, Edouardo Kac

Relationships between Art and Technology

Monday, January 31st, 2011

I’m proposing three different ways in which technology can relate to art.

1. Technology as a way of seeing the world.

2. Technology as an artistic tool.

3. Technology as a subject of artistic enquiry and involvement.

Two good references to explore these are:

1. Way of Seeing by John Berger

2. Digital Art by Christiane Paul

Art 412 Syllabus

Thursday, January 27th, 2011

412_Art_and_Technology_Syllabus