가. 피아노 연결 및 정보 처리
구현시스템은 사용자가 연주하는 데이터를 실시간으로 수집하고 분석하여 다양한 피아노와의 호환성을 제공한다. 피아노 너비 설정을 통해 사용자가 사용하는 피아노의 건반 너비를 감지하고, 연주에 적합한 데이터를 실시간으로 조정한다. 이를 통해 사용자마다 맞춤화된 연주 환경을 제공하고 입력 데이터를 최적화하여 학습 경험을 더욱 개인화하고 향상시킨다. 또한, 서버와 연동하여 학습 데이터를 실시간으로 동기화하고, 언제 어디서나 데이터 접근이 가능하다. 연주 기록이 서버에 저장되며, 이를 기반으로 한 맞춤형 학습 경로를 제공한다. 또한 연주 기록을 제공하여 사용자는 자신의 연주 패턴, 정확도, 템포, 텍스처 등의 세부적인 연주 데이터를 분석할 수 있다. 시스템은 이를 바탕으로 사용자에게 맞춤형 피드백을 제공하며, 실력 향상에 필요한 정보를 즉각적으로 제공한다. 시스템은 사용자의 로그인, 프로필 설정, 연주 기록을 종합적으로 관리하며, 사용자가 학습 목표를 설정할 수 있도록 지원한다. 이를 통해 사용자는 자신의 연주 실력을 체계적으로 관리하고, 학습 목표를 달성할 수 있다.
나. 피아노 학습 보조 피아노 학습 보조 기능은 악보 표시, 노트 표시, 배속 및 구간 반복, 커리큘럼 제공의 4가지 주요 기능을 제공한다. 이 기능들은 사용자가 보다 효율적으로 피아노 학습을 할 수 있도록 지원한다. 모든 기능은 학습자의 진행 상황을 기반으로 피드백을 제공할 수 있으며, 로그인된 사용자 정보에 맞춰 개인화된 학습을 제시한다. 악보 표시 기능은 피아노 연습 시 필요한 악보를 화면에 표시하는 것으로, 사용자가 연주하는 곡의 악보를 선택하면 자동으로 연동된 시스템을 통해 화면에 나타난다. 이때 사용자의 연주에 맞춘 노트도 화면에 실시간으로 제공되며, 이를 통해 정확한 연습을 할 수 있도록 돕는다. 또한 배속 및 구간 반복 기능은 학습자가 연주하기 어려운 부분을 반복해서 연습할 수 있도록 지원하는 기능으로 원하는 구간을 설정하고 속도를 조절하여 천천히 또는 빠르게 연습할 수 있다. 특히 초보자가 연습할 때 중요한 구간을 반복적으로 연주할 수 있어, 자연스럽게 실력을 향상시킬 수 있다. 마지막으로 커리큘럼 제공 기능은 사용자 맞춤형 학습을 제공하여 단계별로 피아노 연주 능력을 향상시킬 수 있도록 돕는다. 모든 학습 기록은 데이터베이스에 저장되며, 로그인 시스템을 통해 학습 진행 상황이 유지된다. 따라서 다른 기기로 접속하거나 로그아웃 후 재접속하더라도 사용자의 학습 기록과 커리큘럼이 유지되어 지속적인 학습이 가능하다.
다. XR 환경 XR 환경은 사용자가 가상현실에서 실제 피아노를 연주하는 것처럼 학습할 수 있는 몰입형 학습 경험을 제공한다. 이 기능은 피아노 연주 데이터를 혼합 현실 환경으로 확장하여, 사용자가 가상 피아노 앞에서 실제 연주하는 것과 같은 느낌을 받을 수 있도록 설계되었다. XR 환경 내에서손의 위치와 움직임을 감지하는 핸드 트래킹(Hand Tracking) 기술이 사용되어, 별도의 컨트롤러 없이도 손의 동작으로 피아노를 연주할 수 있다. 또한, XR UI와 Hand Menu 기능을 통해 사용자가 직관적으로 메뉴를 조작하고 설정을 변경할 수 있으며, 피드백을 실시간으로 확인할 수 있다. 예를 들어, 학습자가 연주할 때 가상 피아노 상에서 실시간으로 노트가 나타나거나, 연주 정확도를 바로 확인할 수 있어 몰입형 학습이 가능하다. 이러한 XR 환경은 학습자가 실제 피아노와 비슷한 환경에서 연습할 수 있게 하여 피아노 연주 능력을 효과적으로 향상시키는 데 도움을 준다.
본 시스템에서 클라이언트와 서버 간의 데이터 통신은 UnityWebRequest를 사용하여 구현되었다. 클라이언트는 서버로부터 데이터를 가져오고 서버에 전송하는 두 가지 주요 기능을 수행한다.