미디어아트 저작도구 개발

  • Category: DEVELPER
  • Project date: 2013.08 - 2014.03

PROJECT BACKGROUND

프로젝트 개발배경

디지털 기술과 예술의 결합으로 불리는 인터랙티브 미디어 아트의 저작에 있어서 기존의 저작도구들을 예술가, 혹은 비전문가가 종합적으로 사용하기 어렵다는 점을 개선하여 미디어 아트 분야가 활성화되고 발전할 수 있는 환경구축의 중심으로서 통합 미디어 저작 도구의 개발이 필요하다. 그러나 완전히 새로운 저작도구를 만드는 것보다는 세계 시장을 선도하고 있는 기존 저작도구가 갖는 장점을 유지하는 동시에 저작도구간의 상호 보완적 시너지를 극대화 하여 사용할 수 있도록 통합관리형 저작환경을 만들고, 이를 통해 작가-연구기관-기업-문화/산업 현장이라는 문화, 경제적 가치사슬의 구조화를 설계하는 것이 바람직하다. 동시에 사용자 저변을 확대하고 산업적 부가가치를 확산시켜가는 전제조건으로서 고등교육기관의 미디어아트 교육을 위한 교육용 저작도구로서의 활용 가능성이 모색되어야 한다. 본 연구개발에서는 미디어 아트의 원활한 작품 저작이 가능한 기술적으로 통합된 저작 경로를 확보하고, 특히, 작가들이 주로 사용하는 다른 저작 도구를 충실히 지원하는 통합적 프로토콜을 확보함으로써 저작 도구의 범용성을 확장을 목표로 하는 통합미디어저작도구를 개발하였다.

Distortion Field(왜곡장)라는 전시 주제는 인터랙션이 있는 미디어아트 작품에 관람자가 참여함으로써 펼쳐지는 새로운 경험 창조의 장을 의미함. 이러한 주제 하에 베타버전의 저작도구를 활용한 2차년도 3개 분야의 작품을 실질적으로 제작함으로써 실증 사업으로서의 전시회를 개최하였다. 이를 통해 현재 개발 중인 저작도구의 방향성을 검증하고 전시회를 통해 사업 및 저작도구에 대한 홍보 효과를 얻었다.

PROJECT DESCRIPTION

전시 작품 설명

[기획의도]

사용자가 26개의 문자로 서로 다른 다양한 의미를 생성하면 그것이 공간 속의 일부로 저장되며 동시에 SNS를 통해 웹에 흩어진다. 한 공간 안에서 발생하는 다양한 의미들이 시간의 흐름으로 뒤엉키고 웹에 조각나 있던 순간의 흐름으로 뒤엉키고 웹에 조각나 있던 순간의 경험들이 눈 앞에 재결합되어 펼쳐진다.

[사용방법]

1. A-Z 마커 중 원하는 마커를 선택하여 원하는 자리에 위치한다.
2. 입력하고자 하는 단어를 완성한다.
3. 단어가 완성되면 마지막으로 '마무리'마커를 놓는다.
4. 테이블 안에서 완성된 단어가 Twiter로 전송되며, 동시에 정면 스크린에 기록된다.

PROJECT TECHNIQUE

PROCESSING을 이용한 텐저블 미디어아트 작품 주요코드


import processing.opengl.*;
import geomerative.*;
import java.util.Date;

Particle p;
ArrayList particles;

RFont font;
RShape s;
float distMin=40;

//New variables
int mode;
int onoff;
String message;
char word;

void setup() {
  size(640, 350, OPENGL);
  smooth();
  particles = new ArrayList();

  //Init values
  mode = 0;
  onoff = 0;
  message = "";
}
					
					

void draw() {

  translate(width/2, 275);
  background(0);
  fill(255, 50);
  strokeWeight(0.3);
  stroke(0, 255, 255, 50);

  if (onoff == 1) {
    message = message + word;
    onoff = 0;
  }
  
  if (mode == 1) {
    RG.init(this);
    RCommand.setSegmentLength(10);
    font = new RFont("FreeSans.ttf", 273, RFont.CENTER);
    RGroup maGroupe = font.toGroup(message);
    RPoint[] points = maGroupe.getPoints();

    for (int i=0;i points.length;i++) {
      particles.add(new Particle(points[i].x, points[i].y, 3));
    }

    mode = 2;
  }

  if (mode == 2) {
    for (int i=0;i<particles.size();i++) {
      Particle p = (Particle) particles.get(i);
      p.draw();

      float dpart=0;
      for (int j =0;j<particles.size();j++) {

        Particle pj = (Particle)particles.get(j);
        dpart = p.distance(pj);

        if (dpart <= distMin) {
          line(p.x, p.y, pj.x, pj.y);
        }
      }
    }
  }
}

void keyPressed() {
  //space bar : capture
  if (key == ' ') {
    saveFrame("captures/capture_"+(new Date().getTime())+".tiff");
    println("save TIFF");
  }
  // enter : show char
  else if (key == ENTER) {
    mode = 1;
  }
  else if (41<=key || key<=90 || 97<=key || key<=122) {
    onoff = 1;
    word = char(key);
  }
  else if (key == 44) {
    onoff = 1;
    word = char(key);
  }
}

					

Processing 3.0에서 Java언어를 사용하여 구현하였다. 특별한 점은, 마우스의 위치에 따라 점, 선으로 2차원 벡터 그래픽으로 구현하는 Geomerative 라이브러리를 이용하였다는 것이다. Geomerative를 응용하여 사용자가 원하는 위치에 원하는 글자를 벡터 그래픽으로 표현하는 코드를 완성하였다.

Designer X Engineer

✓ Java, C, C++, HTML, Javascript, CSS, Python, MySQL, Scratch
✓ Flash, PhotoShop, Illustrator, Sketch, Zeplin, AdobeXD, Protopie
✓ Service Blueprint, Customer Journey Map, Infograohic, FGI, Pilot test
✓ Double diamond, Design Sprint, Design Thinking
✓ Aftereffect, Premiere