2011-09-18 8 views
5

저는 지난 몇 달 동안 다양한 소프트웨어 음악 신디사이저 용 Kinect 기반 멀티 터치 인터페이스를 개발했습니다.NUI/touch 인터페이스에 대한 일반적인 고려 사항

제가 생각해 낸 전반적인 전략은 프로그램 적으로 또는 가능한 경우 알고리즘에 따라 부드러운 신디의 다양한 컨트롤을 나타 내기 위해 개체를 만드는 것입니다. 이것들은 가지고 있어야한다;

  • X 위치
  • Y 위치
  • 높이
  • MIDI 출력 채널
  • MIDI 데이터 스케일러

2 전략 (MIDI 값 XY 좌표 변환) I agorithmic creation을 고려한 이유는 XML을 기술 한 것이고 어떻게 든 물건을 당기는 것입니다. 전자 화면 (즉, 실행중인 프로그램이 있으면 모든 컨트롤의 xycoords를 찾습니다). 나는 그 두번째 이야기에 대해 어떻게 생각하는지 모른다. 그래서 나는 그것을 특정한 기술 언어로 표현한다.). xml 파일을 생성하기 위해 컨트롤 모서리에서 마우스 클릭을 사용하는 것과 같은 중간 솔루션을 사용할 수 있습니다. 내가 플래시 애플 리케이션에서 자주 보았던 또 다른 일은 화면 크기를 변수에 넣고 수학을 사용하여 화면 크기와 관련된 모든 인터페이스 객체를 작성하는 것입니다. 객체를 화면 상 컨트롤과 동일한 크기로 만들거나 모든 화면 상 객체를 나타낼 필요는 없습니다 (일부는 대화 형 컨트롤이 아닌 표시기 일뿐입니다).

기타 고려 사항;

입력 (왼손 및 오른손)으로 두 세트의 X/Y 좌표를 감안할 때, 사용하기에 가장 적합한 옵션은 무엇입니까? 내 첫 번째 본능은 어떤 종류의 포커스 테스트를 작성하는 것이 었습니다. x/y 좌표가 인터페이스 객체의 경계 내에 있으면 객체가 활성 상태가되고 일정 기간 동안 다른 작은 경계 밖으로 벗어나는 경우 비활성 상태가됩니다. 내가 찾은 저렴한 솔루션 포인터/선택기와 컨트롤러로 오른쪽으로 왼손을 사용하는 것이었지만, 내가 더 할 수있는 것 같습니다. 몇 가지 제스쳐 솔루션 (숨겨진 마코프 체인)이 있습니다. 그것들은 일하기 쉽기는하지만, 정확히 말해서, 충분한 인센티브를 받으면 자신이 볼 수있는 것입니다.

그래서, 요약, 문제는
  • X/Y의 두 세트를 사용
  • 그것을 조작하는 제어를 선택 (디폴트 인터페이스 항상 마우스 입력이 예상하므로 필요한)

    • 인터페이스를 나타낼 것이다 (회전식/연속식 컨트롤러) 또는 스위치의 경우에는 초점을주지 않고 전환하는 제스처를 사용하는 것이 가장 좋습니다.

    모든 댓글, 특히 멀티 터치 io/NUI에서 일하고 있거나 일하고있는 사람들의 의견은 크게 감사드립니다. 기존 프로젝트 및/또는 좋은 독서 자료 (서적, 사이트 등)에 대한 링크는 큰 도움이됩니다.

  • +0

    이 질문에 대한 메타 토론이 진행 중입니다 : http://meta.stackexchange.com/q/106720/146495 –

    답변

    2

    여기에 많은 것들이 있습니다. 나는 마이크로 소프트에서 많은 NUI 작업을 해왔으므로 우리가 할 수있는 일을 보자. ...

    하지만 먼저이 "킨 넷트 기반 멀티 터치"라고 말해야한다. 그것은 틀 렸습니다. Kinect는 원래 터치와 아무런 관련이 없습니다 ("선택 컨트롤"이있는 이유입니다).터치, 바디 추적 및 마우스에 필요한 UI 고려 사항 유형은 완전히 다릅니다. 예를 들어, 터치 UI에서는 화면 크기/해상도/DPI를 기준으로 크기를 조정할 때 매우 신중해야합니다. 화면에 상관없이 손가락은 항상 동일한 물리적 크기를 가지며 사람들은 동일한 정도의 물리적 정확도를 갖기 때문에 귀하의 버튼 및 유사한 컨트롤은 항상 대략 동일한 물리적 크기입니다. 연구 결과에 따르면 터치 스크린 버튼을위한 3/4 인치의 작은 부분이 발견되었습니다. 이것은 Kinect의 관심사가 아닙니다. 손가락의 크기가 아니라 센서의 정확도와 사용자의 정확성에 따라 정확성이 좌우됩니다. 가상 커서보다 더 까다로운 제어를 정확하게 수행 할 수 있습니다.

    Kinect 게임을하는 동안 시간을 ​​보내면 4 가지 상호 작용 패러다임이 있음이 분명합니다. 1) 포즈 기반 명령. 사용자가 공격하고 응용 프로그램 전체 또는 명령을 호출하는 포즈를 취합니다 (일반적으로 메뉴 위로 올라갑니다). 2) 호버 버튼. 사용자가 가상 ​​커서를 버튼 위로 이동하고 특정 시간 동안 계속 버튼을 선택합니다. 3) 스 와이프 기반 탐색 및 선택. 사용자가 손가락을 움직여 한 방향으로 스크롤하고 나열하고 다른 방향을 목록에서 선택하십시오 4) 음성 명령. 사용자는 명령을 말합니다.

    애호가가 시도한 다른 아이디어가 있지만 (실제 게임에서는 볼 수 없었지만) 솔직하게 말해서 : 1) 커서를 한 손으로 사용하고 다른 손으로는 커서가 있거나 2) "클릭"여부를 결정하기 위해 손의 z 좌표 사용

    Kinect에서 기존 마우스 위젯을 사용하는 방법을 묻는 질문이 있는지는 확실하지 않습니다. 그렇다면 Kinect 입력으로 마우스를 제어하는 ​​방법을 보여줄 웹 프로젝트가 있습니다.하지만 그것은 절름발이입니다. 그것은 아주 멋지게 들릴지도 모르지만 당신은 정말로 장치가 최선을 다하는 것을 이용하지 않고 있습니다.

    음악 신시사이저를 제작하고 있다면 3 번 접근법에 집중할 것입니다. Dance Central과 같은 것. 화면의 왼쪽에는 MIDI 컨트롤러의 목록이 표시됩니다. 사용자가 왼쪽 손을 스 와이프하여 스크롤하고이 목록에서 컨트롤러를 선택하게하십시오. 화면 오른쪽에는 몸 앞에있는 비행기 내에서 사용자 오른편을 어떻게 추적하고 있는지 보여줍니다. 이제는 양손을 동시에 사용하여 각 손의 해석 방법에 대한 즉각적인 시각적 피드백을 제공하고 초정밀하지 않아도됩니다.

    ps ... 조쉬 블레이크 (Josh Blake)의 상상력이 넘치는 NUI 책에도 큰 호응을 보내고 싶습니다. 좋은 물건이야. 이 영역을 마스터하고 싶다면 http://www.manning.com/blake/

    +0

    Robert - thanks 당신의 대답을위한 뭉치, 선내에 사는 전직 녀석을 만나서 반갑습니다. 첫째, 멀티 터치와 비교하십시오. 나는 다양한 blob 추적 솔루션을 사용하여 잠시 뒤로 돌기 시작했고, 조명 조건이 상상할 수있는 가장 작은 여백으로 변경되면 시스템 응답이 느려지 게되어 포기했습니다. 나는 blob 추적을 내부적으로 처리하고 하나 이상의 x/y 커서 좌표를 출력하기 때문에 kinect에 들어갔다. 디스플레이 해상도와 인터페이스 크기가 다르기 때문에 여러분이 언급 한 해상도 문제 (같은 것을 말하면)는 여전히 kinect를 얻는 것으로 나타났습니다. – jamesson

    +0

    Re 마우스, 내가 사용하는 미들웨어 (primesense nite)는 기본적으로 제스처 기반 클릭 ("손을 화면쪽으로 밀기")뿐 아니라 손 모드에서도 2 개의 커서를 출력합니다. 내가 선택하면 모든 관절을 사용할 수 있습니다 (10 개 정도를 출력, 무릎, 엉덩이 등). 나는 아직 느끼지 못했습니다. 당신의 스 와이프, 그건 내가 스스로 내놓을 수있는 최고의 것입니다. 다른 사람들이 더 나은 아이디어를 얻기를 바랍니다. – jamesson

    +0

    다음은 내가 "더 나은"- http://anythinghonest.com/amos/를 고려한 예입니다. 그것은 신기술 (이 경우에는 ipad)의 모든 사용 가능한 기능을 직관적 인 방법으로 사용하면서 심도있는 제어를 제공합니다. 나는 그 일의 일부를 훔칠지도 모른다.도와 줘서 고마워. Joe – jamesson