고도를 기다리며, 2015

본 포스트는 2015년 제작했던 미디어 아트 작품 <고도를 기다리며> 에 대해 기술하는 포스트 입니다.

<전시 포스터>
<고도를 기다리며, 2015>

작품에 대해 소개하는 영상을 보여드리겠습니다.

  • <고도를 기다리며>
  • 제작 기간 : 2015.1 – 2015.2 (총 1개월)
  • 팀원 : 이한나, 나대엽, 이예원
  • 역할 : 작품 기획 (공통) 전체 작품 프로그래밍, Processing + Arduino 연동
  • Utility : Processing (Java 기반), Arduino

희곡 <고도를 기다리며> 를 읽어보시면, (스포가 될 수 있습니다.) 두 명의 주인공이 등장하는데, 결말에 가서도 그들은 여전히 무언가를 기다리며 끝이 납니다. 희곡은 작가가 구상한 세계관과 스토리 베이스를 그대로 일방적으로 감상해야 하지만, 저희가 만든 <고도를 기다리며> 는 총 4가지의 스토리를 플레이어가 직접 바꿔가며 기다리지 않고 주인공에게 Action 을 취하게 할 수도 있고, 희곡 스토리 그대로 기다리게 할 수도 있습니다.

<고도를 기다리며의 전체 스토리 flow chart>

위와 같은 flow 로 플레이어는 <고도를 기다리며> 의 스토리를 바꿔가며 작품을 즐길 수 있습니다.

제가 팀에서 맡았던 파트는 프로세싱 작품 구현, 아두이노와의 연동입니다. 각 기능에 대한 code 를 보여드리겠습니다.

<Code Snippet – 전체적인 작품 구현 방법>

Processing 은 setup() 함수와 draw() 함수 두 가지로 구동합니다. 실제 그림을 그리는 draw() 함수 부분에 4가지 스토리 갈래를 넣습니다. 프로세싱과 아두이노가 Serial 통신을 하면서 매끄럽게 연동이 잘 안되는 문제가 당시 있었어서, 임의적으로 플레이어에겐 보이지 않지만 위치를 mouse X,Y 좌표로도 잡아내서 정확한 버튼 인식을 하게끔 catcher 를 별도로 심어놨습니다.

<Code Snippet – Processing 과 Arduino 연동 Setting>

프로세싱과 아두이노는 기본적으로 Standard Firmata를 이용한 Serial 통신 방식을 사용했습니다. 프로세싱에서 아두이노를 이용하기 위한 시리얼 및 아두이노 라이브러리를 import 한 다음, 각 버튼을 프로세싱 내에 정의합니다.

<Code Snippet – 아두이노 버튼을 활용한 스토리 진행 방식>

Yes / No 버튼을 지정된 위치에 놓고, 플레이어가 Yes 버튼을 누르면 Arduino Yes 버튼의 LED 에 불이 켜지고 (플레이어에게 본인이 선택한 스토리가 어떤건지 alert 하기 위함), 다음 스토리가 진행이 됩니다. 마찬가지로, No 버튼을 누르면 Arduino No 버튼의 LED 에 불이 켜지고, 그에 해당하는 스토리가 진행이 됩니다.

저는 이 프로젝트로 “코딩” 이라는 것을 완전히 처음 접해보았기 때문에 간단하지만 많이 헤맸었던 기억이 납니다. 하지만 지나고나서 지금 이 포스트를 써보니 저에겐 첫 프로그래밍 경험의 결과물이 미디어아트 작품으로 나와서 굉장히 기뻤고, 저의 꿈을 다져가는 좋은 계기가 되었던 프로젝트 였습니다.

긴 글 읽어주셔서 감사합니다.

Leave a comment