0%

Unity

손가락으로 뇌 도해의 한 부분을 터치하면, 바로 옆에 놓인 아크릴 조형물의 해당 영역이 실제로 빛을 냅니다.

전*원··수정됨 2026.07.21

손가락으로 뇌 도해의 한 부분을 터치하면, 바로 옆에 놓인 아크릴 조형물의 해당 영역이 실제로 빛을 냅니다.

디지털 터치와 물리 조형물이 한 호흡으로 반응하는 체험. 이번 포스팅에서는 두 대의 PC가 한 쌍으로 움직이는 전시물 '슈퍼 뇌 모형'의 기술적인 구현 과정을 공유합니다.

아키텍처_01_전체구조.png

1. 시스템 아키텍처 개요

본 프로젝트는 크게 세 가지 단계로 구성됩니다.

클라이언트 인터랙션: 관람객이 뇌 이미지를 확대해 12개 부위 중 하나를 선택하면 해당 부위의 설명이 화면에 표시됩니다.

UDP 패킷 송신: 선택된 부위 인덱스를 4개 비트 중 하나로 매핑한 뒤 [0xFA, bitValue] 형태의 2바이트 패킷으로 서버 PC에 전달합니다.

시리얼 LED 제어: 서버 PC는 패킷을 받아 비트 상태를 누적 OR 로 합성하고, 시리얼 포트로 연결된 LED 컨트롤러에 [0xFA, currentState] 를 송신해 아크릴 뇌 모형의 해당 영역을 점등합니다.

클라이언트와 서버는 모두 Unity Standalone 빌드로 구성되며, 같은 LAN 상에서 UDP 로 통신합니다.

2. 주요 기술적 구현

2.1 뇌 이미지 확대와 페이지 전환 SuperBrainModelManager.cs)

타이틀 화면에서 관람객이 뇌 이미지를 탭하면 CloseToBrain() 이 DOTween 의 InOutSine 이징으로 RectTransform 을 화면 중앙으로 이동시키며 동시에 zoomScale 배율로 확대합니다. 애니메이션이 끝나면 내부 페이지 딕셔너리에서 PageZoom 을 꺼내 활성화하고, 부위 선택 시 PageExplain 으로 전환합니다. 페이지 시스템은 scenePage[] 배열을 이름 키 딕셔너리로 감싼 구조라, 새 페이지를 추가해도 ChangePage("이름") 한 줄이면 전환 로직이 연결됩니다.

2.2 인덱스-비트 매핑과 디바운스 UDP 송신 UDPManager.cs)

ThinkManager.cs 가 인식한 12개 부위 버튼은 onClick 에서 UDPManager.SendData(Index) 를 호출합니다. 이 함수는 2초 디바운스isSend 플래그)로 중복 송신을 차단한 뒤, 인덱스를 네 개 비트(1 / 8 / 4 / 2)로 그룹 매핑합니다. 즉 12개 부위가 4개의 LED 회로로 그룹화되는 구조이며, 매핑 결과는 [0xFA, bitValue] 2바이트 UDP 패킷으로 서버에 전송됩니다.

- 디바운스 시간: 2초

- 패킷 헤더: 0xFA

- 비트 그룹: 4개 × 3부위

2.3 UDP 수신과 시리얼 자동 해제 SeialManager.cs)

서버는 UdpClient 로 바인딩 후 ReceiveAndSendCoroutine 에서 무한 루프로 패킷을 읽습니다. 헤더 0xFA 를 검증한 뒤 bitValue 를 currentState 에 OR 합성하고 SendSerialData() 로 baud 9600 시리얼 포트에 [0xFA, currentState] 를 송신합니다. 각 비트는 BitOffCoroutine 이 5초 뒤 자동으로 해제하며, 같은 비트가 재수신되면 타이머가 갱신되어 LED 가 끊김 없이 유지됩니다.

3. 사용자 경험(UX) 최적화

확대 애니메이션으로 유도하는 진입감 : DOTween InOutSine 의 부드러운 확대 애니메이션이 관람객의 시선을 뇌의 특정 부위로 자연스럽게 끌어당겨, '탐색 시작'이라는 심리적 전이를 만들어냅니다.

디지털-물리 연동의 즉각성 : 버튼 탭 시점과 물리 LED 점등 시점 사이를 UDP 디바운스 2초와 서버 측 5초 자동 해제로 조율해, 관람객이 "방금 내가 눌러서 저 조형물이 켜졌다"는 인과 관계를 명확히 인지하도록 했습니다.

두 손 터치 지원 : TouchManager.cs 로 1손 드래그 이동과 2손 회전·줌(0.3~3.0 배)을 함께 제공해, 작은 아이부터 성인까지 자연스럽게 뇌 구조를 탐색할 수 있게 했습니다.

무입력 복귀와 안전 종료 : 60초 무입력 시 타이틀로 자동 복귀하고, 종료 버튼 10회 연타(60초 내) 조건을 두어 전시 운영 중 우발적 종료를 방지했습니다.

4. 마치며

디지털 화면의 정보와 물리 조형물의 빛이 하나의 시스템으로 엮일 때, 관람객은 '지식'을 보는 것이 아니라 '작동'을 체험합니다. 두 개의 Unity 빌드, UDP 와 시리얼이라는 이질적인 프로토콜, 그리고 12부위 × 4비트라는 과감한 그룹 매핑이 이 일체감을 만들어냈습니다.

향후에는 UDP 기반 통신을 TCP 또는 MQTT 로 전환해 패킷 손실 시에도 상태 동기화가 보장되도록 개선하고, 현재 2초 고정 디바운스를 이벤트 큐 기반 방식으로 바꿔 관람객이 여러 부위를 빠르게 연속 탐색할 때도 모든 선택이 LED 로 응답되도록 발전시킬 계획입니다.

읽기 도구

5분 읽기

이 글이 도움이 되었나요?

다음으로 읽기