Unity
2D 그림이 3D 캐릭터가 되기까지
한*현··수정됨 2026.07.21


실시간 라이브스케치 콘텐츠를 서버-클라이언트 구조로 설계한 이유
전시 콘텐츠는 단순히 “동작한다”만으로는 충분하지 않습니다.
관람객이 기다리지 않고, 끊김 없이 체험할 수 있어야 하며, 현장 환경에서도 안정적으로 운영되어야 합니다.
이번 프로젝트에서는 관람객이 직접 색칠한 그림을 스캔하면, 전광판 속 3D 캐릭터로 실시간 등장하는 라이브스케치 콘텐츠를 제작했습니다.
단순히 그림을 화면에 띄우는 수준이 아니라, 스캔된 결과물을 5초 이내로 전광판에 반영하고, 다수의 관람객이 동시에 체험 가능한 구조를 목표로 설계했습니다.
2D 그림이 3D 캐릭터가 되기까지
관람객은 준비된 도안에 자유롭게 색칠한 뒤 스캐너에 그림을 올립니다.
이후 시스템은:
스캔 이미지 획득
이미지 전처리
텍스처 데이터 생성
3D 모델 쉐이더에 적용
전광판 렌더링
과정을 거쳐, 관람객의 그림을 실시간 3D 캐릭터로 변환합니다.
중요했던 것은 단순 변환 자체보다 “체감 속도”였습니다.
전시 콘텐츠에서는 몇 초의 대기 시간만으로도 체험 몰입도가 크게 떨어질 수 있기 때문에, 전체 처리 시간을 5초 이내로 유지하는 것을 핵심 목표로 잡았습니다.
왜 서버-클라이언트 구조를 선택했는가
초기에는 하나의 PC에서 모든 기능을 처리하는 구조도 검토했습니다.
하지만 실제 운영 환경을 고려했을 때 몇 가지 문제가 존재했습니다.
대형 전광판 렌더링 부하
실시간 이미지 처리 비용
스캔 데이터 관리
향후 동시 사용자 확장 가능성
콘텐츠 간 연동 가능성
특히 전광판 출력 환경은 일반 디스플레이보다 훨씬 높은 렌더링 성능을 요구했습니다.
결국 시스템을 다음과 같이 분리했습니다.
서버
전광판 렌더링
실시간 캐릭터 출력
인터랙션 및 애니메이션 처리
클라이언트
스캔 이미지 수신
이미지 처리 및 데이터 변환
콘텐츠 상태 관리
이 구조를 통해 렌더링 성능과 데이터 처리 부하를 분리할 수 있었고, 시스템 안정성 역시 높일 수 있었습니다.
“한 명만 사용할 것”이라고 가정하지 않았다
실제 운영에서는 스캐너를 하나만 사용했지만, 개발 단계에서는 다수의 관람객이 동시에 체험하는 상황까지 고려했습니다.
전시장은 항상 예상과 다르게 동작합니다.
여러 명이 동시에 접근하거나,
연속적으로 스캔 요청이 들어오거나,
예상보다 빠르게 콘텐츠를 반복 체험하는 상황이 자주 발생합니다.
따라서 초기 설계 단계부터:
오브젝트 풀 관리
데이터 충돌 방지
스캔 순서 관리
클라이언트 동기화
등을 고려하여 구조를 설계했습니다.
실제 현장에서 모든 기능이 사용되지 않더라도, 이러한 대비는 운영 안정성 측면에서 매우 중요했습니다.
단독 콘텐츠가 아닌 “연결되는 체험”
이번 라이브스케치 콘텐츠는 별개의 체험으로 끝나지 않았습니다.
스캔된 캐릭터는 이후 다른 인터랙션 콘텐츠와도 연동되도록 설계했습니다.
관람객 입장에서는 단순히 그림을 색칠하는 경험에서 끝나는 것이 아니라, 자신이 만든 결과물이 이후 콘텐츠 속에서 계속 살아 움직이는 경험으로 이어집니다.
전시 콘텐츠에서 이러한 “체험의 연결성”은 관람객 몰입도를 높이는 중요한 요소 중 하나입니다.

실시간 콘텐츠에서 예상보다 중요했던 메모리 관리
다수의 관람객이 연속적으로 체험하는 환경을 고려하면서, 시스템은 스캔 요청이 들어올 때마다 개별 객체를 생성하여 처리하도록 구성했습니다.
초기 개발 단계에서는 단순히 기능 구현과 반응 속도에 집중했지만, 운영 테스트 과정에서 메모리 사용량이 지속적으로 증가하는 문제가 발생했습니다.
원인을 추적해보니, 런타임 중 생성된 Texture2D 객체가 자동으로 메모리 해제되지 않고 누적되고 있었습니다.
Unity는 일반적인 C# 객체와 달리 엔진 리소스에 대한 메모리 관리 특성이 다르기 때문에, 사용이 끝난 텍스처를 명시적으로 정리하지 않으면 메모리 누수가 발생할 수 있습니다.
문제 원인을 인지하기까지 다소 시간이 걸렸지만, 이후 텍스처 lifecycle 관리 로직을 별도로 구성하여 안정적으로 운영할 수 있었습니다.
실시간 이미지 처리가 반복되는 전시 콘텐츠에서는 단순 기능 구현뿐 아니라, 장시간 운영을 고려한 리소스 관리 역시 중요하다는 점을 다시 체감한 사례였습니다.
“버튼 없는 체험”을 위한 자동 스캔 구성
전시 콘텐츠에서는 사용자 행동을 최소화하는 경우가 많습니다.
특히 발주처에서는 물리 버튼 입력 없이 자연스럽게 체험이 이어지는 UX를 선호하는 경우가 많았고, 이번 프로젝트 역시 종이를 올리면 자동으로 스캔이 시작되는 방식을 적용했습니다.
이를 위해 스캐너의 자동 감지 기능을 활용하여 별도의 입력 과정 없이 다음 단계로 자연스럽게 연결되도록 구성했습니다.
관람객 입장에서는 작은 차이처럼 보일 수 있지만, 실제 전시장에서는 이러한 인터랙션 흐름이 체험 몰입도에 큰 영향을 주기도 합니다.

전시 콘텐츠 개발은 “현장성”이 중요하다
전시 콘텐츠 개발은 일반적인 소프트웨어 개발과 다른 점이 많습니다.
특히 다음 요소들이 매우 중요하게 작용합니다.
제한된 운영 시간
다양한 현장 변수
즉각적인 반응성
직관적인 사용자 경험
장애 발생 시 빠른 복구 가능성
아무리 기술적으로 뛰어난 시스템이라도, 현장에서 체험 흐름이 끊긴다면 좋은 콘텐츠라고 보기 어렵습니다.
이번 프로젝트 역시 단순 기능 구현보다:
얼마나 빠르게 반응하는가
얼마나 자연스럽게 연결되는가
얼마나 안정적으로 운영되는가
를 중심으로 설계했습니다.
마무리
라이브스케치 콘텐츠는 단순한 그래픽 출력 프로젝트가 아니라,
실시간 이미지 처리,
서버-클라이언트 구조 설계,
전광판 렌더링 최적화,
다중 사용자 대응,
콘텐츠 연동 설계
등 다양한 기술적 요소가 결합된 프로젝트였습니다.
앞으로도 단순히 “보여주는 콘텐츠”를 넘어, 관람객의 행동과 경험이 자연스럽게 이어지는 인터랙티브 콘텐츠를 계속 고민하고 만들어가고자 합니다.
읽기 도구
약 6분 읽기
이 글이 도움이 되었나요?