이 가이드에서는 Charades 게임 형식으로 간단한 몰입형 환경을 구성하는 구성요소를 설명합니다. 게임은 대부분 맞춤 UI 및 입력 컨트롤이 필요하기 때문에 몰입에 완벽한 사용 사례입니다.
또한 자체 Glass 소프트웨어를 빌드하는 데 중요한 설계, 개발, 배포 팁도 배웁니다.
시작하기 전에
Charades 게임의 전체 소스는 GitHub에서 확인할 수 있습니다. 이 가이드에서는 이 가이드를 많이 언급하므로 시작하기 전에 Android 스튜디오로 가져옵니다.
- 빠른 시작 화면에서 Check out from version Control(버전 제어에서 체크아웃) > Git을 클릭합니다.
- Charades에서 클론 URL을 복사합니다.
- 클론 URL을 Vcs Repository URL(Vcs 저장소 URL)에 붙여넣고 Clone을 클릭합니다.
- 다음 화면에서 Yes를 클릭합니다.
- 다음 화면에서 OK를 클릭합니다.
- 프로젝트를 빌드하고 Play 버튼을 클릭하여 연결된 Glass에서 실행합니다. 샘플의
README
에서 호출 세부정보를 확인하세요.
학습할 내용
Android SDK의 구성요소를 사용하여 대규모의 Charades 몰입을 빌드하고 GDK를 Glass 환경에 연결하는 방법을 알아봅니다. 알아볼 주제 목록은 다음과 같습니다.
- Google에서 제공하는 디자인 리소스로 UI 흐름 설계
- Glassware를 시작하기 위한 음성 트리거 설계
- Android 활동을 사용하여 게임의 UI 구조 정의
- 사용자가 게임 옵션을 선택할 수 있는 Android 메뉴 항목 빌드
- 기본 메뉴에서 음성 트리거를 사용하여 Glass 환경에 통합
- 사용자 입력을 감지하고 맞춤 작업을 실행하는 GDK 동작 감지기 사용
- 세련미를 더하고 Glass 스타일을 따르는 간단한 Android UI 구현 학습
- 배포 과정과 Glass 소프트웨어를 출시할 때 Google에서 확인하는 사항에 대해 알아보기
디자인
개발을 시작하기 전에 시간을 내어 Glass 소프트웨어를 설계합니다. 이렇게 하면 Glass에서 가장 효과적인 UI 흐름, 사용할 음성 명령, 카드의 모양 등을 파악할 수 있습니다.
물론 Glass 소프트웨어 설계는 반복 프로세스이며 현재 설계하는 항목 중 일부는 변경될 것입니다. 하지만 이러한 작업의 상당 부분을 초기에 완료하는 것이 훌륭한 환경을 구축하는 데 중요합니다.
UI 흐름
UI 흐름을 설계하는 것은 간단한 연습이므로 코드를 작성하기 전에 Glass 소프트웨어를 시각화할 수 있습니다. 저희가 만드는 Glass 소프트웨어에 항상 이러한 작업을 하고 있습니다.
Charades 몰입의 주요 UI 요소를 살펴보면서 UI의 작동 방식과 자체 Glass 소프트웨어를 만들 때 이 프로세스가 얼마나 유용할 수 있는지 알아보겠습니다.
스플래시 화면
이 화면은 사용자가 Charades 몰입을 시작할 때 가장 먼저 보게 되는 화면입니다. 이는 사용자가 게임 환경으로 시작하기 전에 방향을 파악할 수 있도록 해주며, 사용자에게 익숙한 일반적인 게임 구조입니다.
사용자가 터치패드를 탭하면 새 게임과 안내라는 두 가지 항목이 있는 메뉴 시스템이 표시됩니다.
안내 모드
몰입을 만들 때 입력 메커니즘이 새로운 경우가 있으므로 사용자에게 특히 게임에서 몰입과 상호작용하는 방법을 알려주는 것이 좋습니다.
이 카드 세트는 게임 안내를 보여주고 사용자에게 게임 방법과 UI를 탐색하는 데 사용할 동작을 안내합니다. 사용자는 스플래시 화면에서 안내 메뉴 항목을 탭하여 이 기능을 이용할 수 있습니다.
게임플레이 모드
이러한 화면은 기본 게임플레이 흐름을 구성합니다. 사용자는 스플래시 화면에서 새 게임 메뉴 항목을 탭하여 이 흐름으로 이동할 수 있습니다.
이 카드 모음에는 임의의 단어 (최대 10개)가 표시됩니다. 사용자는 앞으로 스와이프하여 단어를 건너뛰고, 단어를 올바르게 설명하면 터치패드를 탭합니다.
게임 결과 화면
이 화면은 게임 결과를 보여줍니다. '게임 오버' 화면이 처음에 표시되고 사용자는 앞으로 스와이프하여 게임 결과를 볼 수 있습니다. 사용자가 결과 카드 중 하나를 탭하면 다른 게임을 시작할 수 있는 새 게임 메뉴 항목이 표시됩니다.
음성 명령
음성 명령은 설계 프로세스 초기에 알아내야 합니다. 음성 명령을 사용하면 사용자는 필요한 경우 Glass 홈(시계 카드) 음성 메뉴에서 Glass 소프트웨어를 시작할 수 있으며, 이는 Glass 소프트웨어 설계 방식의 주요 부분입니다.
예를 들어 업데이트 게시 명령어는 사용자가 명령어를 말하면 추가 사용자 개입 없이 글래스웨어가 이 명령어를 처리하는 Fire-and-Forget 모델에서 잘 작동합니다. 이를 통해 사용자는 하던 일로 빠르게 돌아갈 수 있습니다
반면 게임하기와 같은 앱에서는 일반적으로 사용자가 먼저 방향을 찾을 수 있도록 스플래시 화면을 표시하는 것이 좋습니다. 이 음성 명령은 몰입을 시작할 가능성이 높으므로 게임 시작을 위한 추가 화면과 메뉴 표시도 사용자가 괜찮다고 예상할 수 있습니다. 음성 명령 직후 사용자를 게임 환경으로 내보내면 일반적으로 게임에 좋지 않습니다.
제스처는 게임하기 음성 명령을 사용합니다 . 사용자가 음성 명령을 호출하면 Charades 스플래시 화면이 나타나고 더 많은 옵션을 보려면 탭하라는 메시지가 표시됩니다 (이 경우 새 게임 또는 안내).
카드 레이아웃
몰입형 환경을 빌드하든 라이브 카드를 빌드하든 가능하면 CardBuilder
또는 XML 레이아웃을 사용해야 합니다.
종종 자체 레이아웃을 빌드해야 하는 경우가 있으므로 UI 가이드라인을 따르면 가장 멋진 Glass 소프트웨어를 만들 수 있습니다.
스톱워치는 일반 레이아웃 가이드라인을 따르지만 뷰 및 레이아웃과 같은 표준 Android 구성요소를 사용하는 맞춤 UI 레이아웃이 있습니다.
개발
몰입형 기술을 개발하려면 Android 개발에서 사용하는 것과 동일한 도구를 사용하여 대부분의 Glass 소프트웨어를 빌드하고 GDK 부가기능의 API를 사용하여 동작 감지기 및 음성 명령과 같은 Glass 관련 기능에 액세스합니다.
일반적인 Android 구성요소를 사용하여 Glass 소프트웨어를 만드는 경우가 많지만 일부 개념이 다를 수도 있습니다. 예를 들어 Android 활동과 몰입을 동일시해서는 안 됩니다. 몰입형은 하나 이상의 Android 활동은 물론 GDK 및 Android SDK의 다른 여러 구성요소로 빌드된 Glass용으로 설계된 환경입니다.
개발 섹션의 나머지 부분에서는 Charades 게임의 구성 방식과 이전에 가져온 프로젝트의 주요 구성요소를 살펴봅니다. Android 스튜디오를 실행하면 실습을 진행하는 데 도움이 됩니다. 소스 코드 자체에는 주석이 달려 있으므로 이 섹션에서는 각 파일의 대략적인 목적과 자신의 Glass 소프트웨어에 적용할 수 있는 유용한 팁을 살펴봅니다.
다음은 Charades의 주요 구성요소에 대한 간략한 개요입니다.
- Glass 기본 음성 메뉴에 연결할 음성 트리거 선언
- 사용자가 게임을 시작하거나 안내를 볼 수 있는 스플래시 화면 활동 이 활동은 안내 활동 또는 게임플레이 활동을
- 튜토리얼 활동은 사용자에게 게임의 주요 작업을 실제로 실행하여 게임을 플레이하는 방법을 보여줍니다.
- 게임플레이 활동을 통해 사용자는 실제 게임을 플레이할 수 있음
- 결과 활동은 게임 점수와 추측한 단어와 추측하지 않은 단어의 목록을 보여줍니다. 또한 사용자가 메뉴 항목으로 새 게임을 시작할 수 있습니다.
음성 명령
사용 중인 명령어를 지정하는 XML 리소스 파일로 음성 명령을 만든 후 AndroidManifest.xml
파일에서 XML 리소스를 지정하여 음성 명령을 만들 수 있습니다.
다음 파일은 Charades 음성 명령과 연결되어 있습니다.
res/xml/voice_trigger_play_a_game .xml
- 사용할 음성 명령을 선언합니다.AndroidManifest.xml
- 음성 명령을 말하면 활동이 시작되도록 선언합니다.
스플래시 화면 활동
스플래시 화면은 사용자가 Charades를 시작할 때 가장 먼저 보게 되는 항목으로, 게임을 시작하기 전에 방향을 설정합니다.
다음은 이 활동과 관련된 파일입니다.
res/layout/activity_start_game.xml
- 스플래시 화면의 레이아웃을 선언합니다.res/menu/start_game.xml
- 안내 및 새 게임 메뉴 항목을 포함하는 스플래시 화면의 메뉴 시스템을 선언합니다.res/values/dimens.xml
- 이 프로젝트의 활동에서 Glass 스타일을 따르는 데 사용하는 표준 카드 크기 및 패딩을 선언합니다.src/com/google/android/glass/sample/charades/StartGameActivity.java
- 스플래시 화면의 기본 클래스입니다.res/drawable-hdpi/ic_game_50.png
- 새 게임의 메뉴 아이콘입니다.res/drawable-hdpi/ic_help_50.png
- 안내의 메뉴 아이콘입니다.
게임 모델
항상 게임의 모델 (게임 상태)을 UI와 분리하는 것이 좋습니다. CharadesModel
클래스는 게임의 점수, 게임플레이 모드에서 추측한 문구 수, 다양한 안내, 사용자가 안내 모드에서 이러한 문구를 진행했는지 여부를 추적합니다.
다음은 게임 모델과 연결된 파일입니다.
src/com/google/android/glass/sample/charades/CharadesModel.java
기본 게임 활동
게임의 튜토리얼과 게임플레이 모드는 매우 유사한 기능과 UI를 공유하므로 이 기본 클래스는 두 모드의 공통 기능을 정의합니다. 안내 및 게임플레이 모드 관련 활동은 이 클래스를 확장합니다.
다음은 이 활동과 관련된 파일입니다.
res/layout/activity_game_play.xml
- Charades의 게임플레이 및 안내 모드에서 공유하는 레이아웃을 정의합니다.src/com/google/android/glass/sample/charades/BaseGameActivity.java
- 공유되는 Charades의 게임플레이 및 안내 모드의 기본 기능을 정의합니다.
안내 활동
안내 활동에는 게임 방법을 설명하는 3개의 카드가 표시됩니다. 사용자가 계속 진행하기 전에 카드에 표시된 작업을 실행하는지 여부를 감지합니다.
다음은 이 활동과 관련된 파일입니다.
src/com/google/android/glass/sample/charades/TutorialActivity.java
-BaseGameActivity
를 확장하고 사용자가 게임의 안내를 따를 때 표시할 안내 텍스트와 동작을 처리하는 방법을 정의합니다.
게임플레이 활동
게임플레이 활동은 게임의 기본 흐름을 정의합니다. 표시할 단어와 점수를 유지하는 방법을 파악하고 동작을 처리하는 동작 감지기가 있으며 게임이 끝나면 결과 활동을 실행합니다.
다음은 이 활동과 관련된 파일입니다.
GamePlayActivity
-BaseGameActivity
를 확장하고 기본 게임 흐름 로직을 포함합니다.
결과 활동
결과 활동은 추측한 단어, 추측하지 않은 단어, 게임 점수를 보여줍니다. 또한 사용자가 새 게임을 시작할 수 있는 메뉴 항목도 포함되어 있습니다.
다음은 이 활동과 관련된 파일입니다.
res/layout/game_results.xml
: '게임 오버' 카드의 레이아웃을 정의합니다.res/layout/card_results_summary.xml
- 추측 단어와 추측되지 않은 단어를 목록에 표시하는 레이아웃을 정의합니다.res/layout/table_row_result.xml
- 결과 요약의 개별 행 레이아웃을 정의합니다.src/com/google/android/glass/sample/charades/GameResultsActivity.java
- 앞서 언급한 XML 리소스로 정의한 레이아웃과 메뉴를 표시하는 실제 활동을 정의합니다.res/raw/sad_trombone.ogg
- 사용자가 모든 단어를 다 읽지 못할 때 재생되는 소리입니다.res/raw/triumph.ogg
- 사용자가 10단어를 모두 입력할 때 재생되는 소리입니다.res/drawable-hdpi/ic_done_50.png
- 올바르게 추측한 단어에 의해 표시되는 체크표시 아이콘
애니메이션 리소스
다음 애니메이션 리소스는 Charades를 한층 더 다채롭게 만듭니다.
res/anim/slide_out_left.xml
- 이 메서드는 기존 뷰가 왼쪽으로 슬라이드아웃되도록 애니메이션 처리합니다(예: 단어가 전달될 때).res/anim/slide_in_right.xml
- 이렇게 하면 새 단어가 들어가는 경우와 같이 들어가는 뷰가 오른쪽에서 슬라이드되어 들어갑니다.res/anim/tug_right.xml
- 이 설정은 스와이프를 사용하지 않는 뷰에서 스와이프하는 경우 빼기 애니메이션을 정의합니다. 이렇게 하면 스와이프가 효과가 없다는 것을 사용자가 알 수 있습니다.
Android 매니페스트
AndroidManifest.xml
파일은 시스템에서 Glass 실행 방법을 알 수 있도록 Glass 소프트웨어의 주요 구성요소를 설명합니다. Charades의 매니페스트는 다음을 선언합니다.
- Glass 소프트웨어의 아이콘 및 이름 Glass는 둘 이상의 Glass웨어가 동일한 음성 명령에 응답하면 기본 터치 메뉴에 이 정보를 표시합니다.
- 제스처와 관련된 모든 활동. 이는 시스템에서 Glass 소프트웨어의 활동을 시작하는 방법을 파악하는 데 필요합니다.
- 음성 명령 및 음성 명령을 말할 때 특정 활동을 시작하는 인텐트 필터
- Glass 소프트웨어의 버전 코드입니다. 이 코드는 이 APK의 새 버전이 MyGlass에 업로드될 때마다 업데이트되어야 하며 일반적으로 버전 이름도 업데이트해야 합니다.