카테고리 없음

Interaction Lab (2)_Final

ddoyyo 2024. 12. 19. 00:55

4조 / C493001강건우, C475013김민성

https://drive.google.com/drive/folders/19d4k6C6-nEFAJhq1J4PQFawwtVE0f_9N?usp=sharing

 

인터랙션랩2 최종 파일 - Google Drive

이 브라우저 버전은 더 이상 지원되지 않습니다. 지원되는 브라우저로 업그레이드하세요. 닫기

drive.google.com

아두이노와 프로세싱 파일입니다.


프로젝트 요약

CoFlight

Cooperation(협동) + flight(비행)

 

2인용 컨트롤러를 이용해 비행기를 조종하여 목표 점수까지 도달하는 탄막슈팅게임을 제작하였습니다.

Interaction Lab (1) 때 만들었던 슈팅게임을 수정해 1인용 이었던 게임을 2인용으로 수정하였으며, Interaction Lab (2) 에서 배웠던 아두이노와 프로세싱 명령어들을 접목하여, 가변저항과 플렉스센서, 버튼을 이용해 컨트롤러를 제작한 뒤 프로세싱과 연동하였습니다.

 


대상 및 목적

대상        

학생, 개발자, 교육 기관

  

목적 

센서와 버튼을 활용해 몰입감 있는  인터랙티브 경험과 2인 플레이를 통한 역할 분담과 협업 유도 할 수 있습니다. 그리고 아두이노와 프로세싱을 결합해봄으로써 두 프로그램의 활용 능력 향상 시킬 수 있습니다.

 


부품및 센서

일반 부품

우노보드 / 빵판 / 점퍼케이블 / 10k옴 저항 / 3t우드록 / 2.7mm mdf / 3D프린터 / 고무줄

 

센서

플렉스 센서 / 가변저항 / 버튼

 

플렉스 센서는 컨트롤러를 앞뒤로 움직였을 때 저항 값의 변화를 이용해 비행기가 전후로 이동하도록 구현하기 위해 선택했습니다. 수업 시간에 직접 플렉스 센서를 제작해본 경험이 있지만, 모든 면에서 고르게 압력을 감지하지 못하고 값이 일정하지 않았기 때문에 기성품을 사용하는 것이 더 적합하다고 판단했습니다.

 

가변저항1P 컨트롤러에서 비행기의 좌우 방향을 조절하고, 2P 컨트롤러에서는 비행기 포의 방향을 조절하는 기능을 위해 선택했습니다. Tilt analog sensor도 고려해보았지만, 이 센서는 같은 벨로스탯 면에서 동일한 값만 출력되기 때문에 연속적인 움직임을 보여야하는 포탑의 특성과는 맞지 않아 가변저항을 사용했습니다.

 

버튼은 비행기 포를 발사하는 기능을 위해 사용했습니다. 버튼은 손으로 눌렀을 때 신호를 보내야 한다는 줌에서 벨로스탓 센서를 사용할 수도 있었지만, 사용자가 느끼는 확실한 작동감을 위해 버튼을 선택했습니다.


의도한 인터렉션

주요 인터랙션은 컨트롤러 밀고 당기기, 누르기, 회전하기입니다.

테스트 당시 컨트롤러에서는 밀고 당기는 기능이 명확하게 드러나지 않았고, 포를 쏘기 위한 버튼의 가시성이 떨어진다는 피드백을 받았습니다. 이러한 의견을 반영하여 기존 디자인에 옆면에 레일이 달린 가이드를 추가해 움직일 수 있다는 것을 간접적으로 나타내었으며, 버튼에는 색상을 적용해 단순한 장식이 아니라는 점을 직관적으로 인식할 수 있도록 개선하였습니다.

 


레퍼런스

프로세싱과 아두이노 모두 Chat Gpt의 도움을 받았습니다. 특히 버그 해결과정에 큰 도움이 됬습니다.

 

게임아이디어는 zeroranger, 1942, skyforce 같은 탄막슈팅게임에서 얻었습니다.

조이스틱 아이디어는, 비행기 조이스틱과 군사무기의 고저장치 손잡이에서 아이디어를 얻었습니다.

 


작품진행과정

 

프로세싱 수정

새로운 turret 클래스 / 포탑에서 발사되는 포탑글래스

 

 

회로설계

팅커캐드를 이용해서 각 센서들의 연결을 설계하였습니다.

 

 

아두이노작성

 

 

조이스틱설계

fusion 360으로 모델링 및 설계된 조이스틱 본체

 

 

연동

 

 

 

피드백

다양한 피드백이 있었습니다

1. 조이스틱의 기울임 기능을 알아채기 어렵다.

--> 레일이달린 가이드를 추가해서 기울이는 기능이 있다는것을 시각적으로 알리려했습니다.

 

2.버튼을 눈치채기 어려워서 누르는 센서가 있는지 몰랐다.

-->버튼을 빨간색으로 색칠해 표시하였습니다.

 

3.회로가 지저분해 보인다.

-->케이스를 설계해서 회로를 숨겼습니다.

 

4.메뉴 화면의 버튼 위치가 치우쳐있어서 불편하다.

-->메뉴화면을 새로 만들고, 글자를 중앙으로 정렬하였습니다.

 

5.난이도가 너무 어렵다.

-->적 증가량과 생성 빈도를 설정하였습니다.

 

 

3D프린팅

지저분한 회로를 숨기기 위해 제작한 케이스

 

 

아두이노수정

 

 

프로세싱수정

 


완성 및 시연

 

완제품의 모습

 


기존작품과의 차이점 

가변저항, 버튼, 플렉스 센서 등 물리적 입력 장치를 활용해 기존 상용 게임기와는 차별화된 아날로그적 조작감과 독창적인 사용자 경험을 제공합니다. 또한 두 명의 플레이어가 하나의 게임기에서 비행기 조종과 포탑 조작을 각각 담당하며 협력과 역할 분담을 통해 협력적인 플레이를 유도합니다. 이러한 특징들은 상용 게임기와 차별화된 새로운 인터랙티브 경험을 제공합니다.

 


개선사항

가번저항의 불안정성과 부족한 마감의 완성도 그리고 약한 내구성을 개선사항으로 뽑습니다.

가변저항의 신호가 매우 불안정해 포탑 조종이 어려워, 아두이노에서 잡을 필요가 있었고, 본드와 테이프등이 그대로 들어나 미관상 감점요소가 있엇습니다. 또 , 순간접착제로 고정되어, 예상보다 고정력이 약해 잘 부러지는 문제등이 있습니다.