---
# System prepended metadata

title: 상호작용

---

3/15(화) 정기회의

다마고치 > 미니게임

주 콘텐츠
: AR 위주로 작동할 수 있는 콘텐츠
먹이 주기, 인사 하기, 씻기기 등 + 산책(부가 기능)
>> GUI에 각 상호작용에 대한 버튼 만들고 해당 버튼 누르면 해당 씬으로 넘어가서 해당 기능 수행

(캐릭터 각자 찾아서 나중에 정하기)

진화 시스템 (알 -> 어떤 먹이를 주느냐에 따라서 캐릭터가 아예 달라지게끔)
>> 진화 종류 3~4개

~~미니게임을 통해서 진화에 필요한 애정도,
경험치 등을 획득 가능~~
본 콘텐츠의 소소한 분량을 늘리고 이후에 여유가 있으면 미니게임 추가

콜렉션북을 만들어서 사용자가 수집한 아이템을 보관

마커리스 >> 펫을 어디에 둘 지?
펫이 바닥을 감지하고 그 위에 생성되게끔


------------
# 상호작용
1. 산책하기:
    GPS 기반으로 주변 맵 생성하고 수집 요소 랜덤 드랍
    or 화면 안에서 수집 요소 랜덤 드랍
    
    수집 요소 얻는 법?
    1. GPS 기반으로 주변 맵 생성해서 수집 요소 드랍하면 터치해서 펫이 그곳으로 움직이게끔
    

------------
# 수집 요소

------------
# 진화
조건: 애정도, 먹이
애정도: 상호작용을 통해서만 얻을 수 있음
먹이: 기본적인 먹이는 지급하되, 특수 먹이는 산책을 통해서 얻을 수 있음

애정도, 먹이 수치가 어느 정도 만족되면 진화 가능


---
(본 콘텐츠 다 만들고 시간 남으면 하기)
미니게임 >
1. 코로나 잡기 / 두더지 잡기 (FPS)
2. 총알 피하기(캐릭터랑 같이 피하기) (닷지류)
-------
정기회의 날짜
화요일 오후 7:00, (일요일 저녁8:00)



3/16(수) 추가회의

역할 분담

발표: 최동호
대본: 임한결
PPT: 김명현
자료 정리: 여인수

PPT 목차

1. Motivation/background for your AR app (you can show some reference apps if something similar exists)
    동기: 펫과 상호작용하면서 힐링하는 게임을 만들고 싶었        다. 옛 추억을 되살리고 싶었다.
    레퍼런스: 다마고치, 닌텐독스, 세계수 키우기

2. Your idea shortly + key features
    주 콘텐츠, 캐릭터를 키우는 과정 (진화) << 미니게임 (먹이 등 수집 요소)
    
3. Motivation for using AR in the app
    펫과 상호작용 > 쓰다듬기, 샤워, 먹이 주기, 미니게임
    핸드 트래킹 

4. Schedule
     아이디어 기획 ~3/18
    자료 수집 및 프로그램 설계 ~ 3/20
    개발 시작~ 개발 완료 3/20 ~ 4/24
    최종 완성 ~4/24
    영상 제작 및 버그 픽스 등 수정 ~4/29
    매주 화요일 오후 7시 정기 회의

5. Work division between team members
    모델링 찾기 > 전부
    GUI 1명 총괄 - 최동호
    미니게임(FPS) 1명 - 여인수 
    미니게임(닷지) 1명 - 임한결
    주 콘텐츠 다마고치 2명 - 김명현 최동호

주 콘텐츠: 펫과 상호작용, 진화

다음 주 회의까지 각자 준비해야 할 것

---
### 03.22 회의
=> 모델 찾기, 에셋 준비 (후보군)
알 > 캐릭터
1. Cute Bird2 (유료) 10$ (주 모델)
2. Lowpoly 고양이
3. https://sketchfab.com/3d-models/bomberman-karabons-634a022bd09a4508903299d65a34ea6b (무료) 애니메이션 x
4. Egg
5. 고래 (애니메이션 4개)
6. 여우 (애니메이션 많음)
>> Cute Birds를 주 모델로 하고, (여우, 고래) 서브 모델
---

거품 애니메이션
https://assetstore.unity.com/packages/vfx/particles/environment/jiggly-bubble-free-61236
음식 에셋
https://assetstore.unity.com/packages/3d/food-pack-3d-microgames-add-ons-163295

---
=> 프로그램 설계 구체화
![](https://i.imgur.com/o9uVmYA.png)

1. 펫은 여러 마리 키울 수 있으나, 메인 화면에는 한 마리의 펫만 소환 가능 
2. 펫은 상태를 가지고 있음. 상태는 (애정도, 허기짐, 청결도)임
3. 애정도는 모든 상호작용을 통해 얻을 수 있는데, 각 상호작용마다 가중치가 다름. (핸드트래킹을 사용한 상호작용이 가중치가 제일 높게끔 > 15~20)
4. 청결도 >> 씻기기로 해소 가능
5. 허기짐 >> 먹이주기로 해소 가능
6. 만약 상태 중 하나라도 바닥이 나면 해당 상호작용만 가능하게 해야 함.
7. 청결도나 허기짐이 바닥 상태로 유지가 되면 애정도가 떨어짐.
8. 진화 버튼은 애정도가 다 찬 상태에서만 활성화 됨.
9. 그동안 먹은 먹이의 비율을 통해 진화가 결정됨. (먹이는 총 7개)
10. 일반 진화는 5종류(새) + 특별 진화 2종류 (여우, 고래)
11. 특별 진화는 특별 먹이 조합 or 하나의 먹이로만 먹여야 하는 걸로
12. 새로운 캐릭터 알은 아직 기획 X (한 마리로만 만들어보고 시간 남으면...)


[먹이]
체리, 바나나, 올리브, 치즈, 핫도그, 수박 6개
1. 먹이는 총 6개
2. 기본 먹이 1개, 나머지 5개는 산책을 통해 얻을 수 있다.


=> 깃 사용법 숙지
=> 구글 드라이브로 자료 공유

GUI, 먹이주기 : 최동호
메인 씬, 인사하기 : 여인수
산책하기 1 : 임한결
진화 시스템, 씻기기 : 김명현
필요한 기능: 세이브, 펫 상태 관리, 먹이 데이터, (옵션), 진화 조건

>> 다음 회의에서 GIT 맞춰보기, 나머지 상호작용 기능들 디테일하게 짜기, 공유 PPT에 각자 생각해놓은 기능 추가하기

---
### 03.29 회의

[진화]
일반
특별 진화1, 2는 특정 레시피 (먹이 조합)으로 나온 먹이만 먹였을 때 가능하다.

[인사하기]
핸드 트래킹으로 동작을 인식해서 펫이 특정 애니메이션을 취하도록 한다

[씻기기]
손 크기 인식해서 쥐었다 폈다 하면 씻기는 걸로...

[산책하기]

바닥이 감지되고, 바닥을 클릭하면 펫이 해당 위치로 이동.
https://www.youtube.com/watch?v=SMv-TNkZ_VA (고양이가 레이저 포인터로 이동하는 영상)

먹이를 바닥위에 랜덤하게 뿌려서 펫이 그 먹이에 닿으면 해당 먹이를 얻을 수 있음.

* 씬 전환으로 게임을 이루게 되면 딜레이가 발생하는데, 어떤 식으로 게임을 구성해야 성능 면에서 좋을 지? (교수님이나 TA 분께 여쭤보기)

[수치]
상태: 애정도(초기값: 0), 청결도(50), 배부름(50)은 0~100 값 (배부름이 가득 차면 먹이주기를 못하게 막기)

진화 조건: 애정도가 100이면 진화

애정도: 
- 증가 조건:
    1. 일반 먹이는 5, 조합 먹이를 먹이면 애정도 10 증가
    2. 인사하기 한 번에 5 증가
    3. 씻기기 한 번에 5 증가
    4. 산책하기도 한 번에 10 증가
- 감소 조건: 
    1. 청결도 20 이하, 배부름 20이하 상태가 1분 지속 될 때마다 5 감소

청결도: 
- 증가 조건:
    1. 씻기기를 한 번 완수하면 20 증가
- 감소 조건: 
    1. 게임 켜져있는 동안 3분마다 5씩 감소
    2. 산책하기를 한 번 완수하면 20 감소
    3. 먹이주기, 인사하기를 완수하면 10 감소

배부름: 
- 증가 조건:
    1. 일반,조합 먹이 하나에 20 증가
- 감소 조건: 
    1. 게임 켜져있는 동안 3분마다 5씩 감소
    2. 산책하기를 한 번 완수하면 20 감소
    3. 씻기기, 인사하기를 완수하면 10 

먹이:
- 기본 먹이(체리)는 처음에 5개만 주어짐.
- 특별 먹이1(핫도그) 특별 먹이2(햄버거)는 산책을 통해서만 얻을 수 있고, 

일반 진화:
- 애정도가 100이고
- 먹이를 준 총 횟수가 10번 이상이면
- 랜덤으로 기본 펫 중 하나로 진화됨

특별 진화:
- 애정도가 100이고
- 먹이를 준 총 횟수가 10번 이상이고 특별 먹이로만 먹였을 때

산책하기:
- 먹이 드랍 확률 > 특별 먹이1: 10%,  특별 먹이2: 10%, 기본 먹이(1~5) 하나당 16%
- 클리어 조건: 같은 먹이 10개가 필드에 떨어지고, 10개를 다 먹어면 산책하기가 끝나고 보상이 주어짐 (해당 먹이 1개)

먹이주기:
- 클리어 조건: 먹이를 한 번 주면 보상을 받는다.

씻기기:
- 클리어 조건: 씻기는 행위를 하면 클리어 게이지가 차고, 다 차면 종료

모든 상호작용은 중간에 취소, 종료할 수 있다.

다음 금 회의

업무 분담 디테일하게 짜기
전역으로 관리해야 하는 데이터 짜기
실질적인 개발

### 4.1 회의
씬은 메인 씬 하나만, 다른 스크립트나 오브젝트는 끄거나 켜서 관리

4.5 (화)까지 핸드 트래킹 관련 조사 해오기, 개발 중간 점검
4.8 (금)까지 목표

여인수: 메인씬 GUI, 펫 바닥 감지, 기본 애니메이션 적용
최동호: (먹이 인벤토리 기능)인벤토리 띄우고, 인벤토리에 먹이 넣을 수 있고, 빼는 기능까지
임한결: 산책하기 기능 전체적으로 구현
김명현: (클릭으로)거품 구현과 게이지 구현

### 4.5 회의

핸드 트래킹 조사:
    ManoMotion 사용 >> 한결님이 세팅해서 프로젝트에 올려주시기로 함
    
다음 회의: 다음 개발 일정 구체화, 서로 개발한 거 피드백하기

### 4.8 회의

1. 먹이주기: 제스처 인식 해서 펫에게 직접 갖다 대서 먹일 수 있음
- 실제로 펫에 닿아야 하기 때문에 사용자가 정면에서 바라볼 때 닿았는지 확인하기가 힘듦 -> 레이를 쏴서 어느 정도 범위에 들어가면 먹어지게끔..? (팀원들 모두 기능 사용해보고 피드백하기로)
2. 산책하기: 바닥 감지가 불안정해지면 먹이 스폰이 힘듦
- 바닥을 고정적으로 생성해서 그 위에서 산책하기 기능 적용
3. 씻기기: 기능 완성 but 펫 오브젝트를 불러올 방법 생각 중
- 태그를 이용해서 가져오기
4. 메인 화면: 펫 초기 소환 시 바라보는 방향이 고정적임
- 사용자 카메라를 바라보게 rotate
- UI 클릭하면 펫이 또 소환 됨

추가 내용: 
1. 로딩 시간이 너무 김
- 최적화 방법 찾아 보고, 로딩 화면 제작하기

다음주 개발 계획 
여인수: 메인화면: 펫 rotate 설정, plane 바꾸기, 펫 인벤토리 빼기 (exit 버튼 안쪽으로)
인사하기: 제스처 인식 > 애니메이션 > 애정도 업
최동호: 음식 먹으면 배부름 지수 올라가게 하기.
김명현: 씻기기(상태창 연결>클리어), 
진화(상태값 바탕으로 진화조건 구현)
임한결: 산책하기 처음 랜덤한 먹이 고르기, 클리어 후 변수 수정 및 메인화면 돌아가기, 로딩화면 구현하기

(4.12 화 회의에서prefab 짜기)
EGG prefab
먹이: 기본 먹이 5개, 특별 먹이 2개(햄버거, 핫도그)
기본 진화 prefab 5개 - 41, 31, 28, 35, 23
특별 진화 prefab - 고래 https://assetstore.unity.com/packages/3d/characters/animals/fish/cartoon-whale-low-poly-197919, 여우 : https://assetstore.unity.com/packages/3d/characters/animals/toon-fox-183005


다음 회의까지 각자 게임 bgm
다음주 회의에 발표,ppt, 영상 등 역할 분담


인사하기 종료 조건? SWIPE 몇 번에 애정도 증가 할 건지?

### 4.15 회의

임한결: 산책하기 기능 완료, 알에 애니메이션 추가
김명현: 씻기기 애니메이션 추가, 진화 시스템 손 보는 중, 특별 진화 조건
여인수: SWIPE 왼쪽, 오른쪽 상관 없이 총 3번 하면 완료되고 종료, 고래 인사할 땐 Attack 애니메이션 쓰기.
최동호: 먹이주기 완료, 배부름 꽉 차면 실행 안 되게 수정할 것.

<회의 내용>

메인 화면 및 다른 기능들: UI 클릭했을 때 isoverUI 체크하기.
ManoMotion을 어디서 실행할지?
상호작용 GUI 켜고 끄는 거
Pet이 없을 때 GUI 끄기
진화 후에 Status는 어떻게 관리될 건지? -Status가 초기화 된 후 작용은 똑같이 되는데, 진화 조건을 만족해도 딱히 아무 것도 없음
펫 이름 입력? -> 

펫 인벤토리는 일단 미뤄두고 시간 안되면 빼는 걸로..

특별 진화 애니메이션? - 고래: 걷기1, 걷기2, 어택, 죽음, 여우: 

개발 해야 하는 것
  
 김명현 - 터치하면 화면상에 표시(추가 기능)
 여인수 - UI 공통 디자인
 최동호 - Status 시간 마다 감소
 임한결 - Save,Load 기능
 + 각자 맡은 상호작용 수정
 
 화요일에 다 같이 플레이 하면서 피드백.
 
 발표 역할 분담
 4/29 - 발표 (Trailer Video (2분 미만))
 
 PPT - 김명현 (초안)~4.24, (최종본) ~ 
 발표자 - 최동호
 대본 - 임한결 ~4.27
 Trailer Video - 여인수 
 영상은 4.28까지 제작
 
 
 5/3 - 기술 보고서 제출
 각자 맡은 부분 기술 보고서 쓰고 취합하기.
양식 보고 정하기...

### 04.19 회의

수정 사항:
1. 애정도 감소하는 시간 수정 1초 -> 60초
2. Egg prefab 카메라 기준으로 rotate 안되는 거 수정
3. 각 상호작용에서 status 변화 시킬 때 청결도, 배부름 체크해서 0보다 작거나 100보다 클 때 체크하기 
4. 각 상호작용에서 뒤로가기 할 수 있는 기능 만들기 (패널티는 없음)
5. isOverUI 메인 씬에서만 작동 안됨.. 메일로 물어보기
6. GUI - 각 버튼에 아이콘 달고, 에셋 사용하기 (포인트: 노란색)

### 4.20 회의

수정 사항:
1. 인사하기에서 애정도가 한 번에 꽉 차는 걸 5 증가하게 수정하기
2. TapToPlace, 진화에서 새로 생겨나 펫이 겹치는 문제 해결
3. 진화하기에서 먹이가 10개 이상일 때 버튼 활성화되도록 설정
4. 한 번 진화했으면 버튼 활성화되지 않도록 설정
5. 씻기기 뒤로 가기 버튼 추가
6. 처음 접속했을 때 튕기는 거...
7. 상호작용 시작하고, 끝날 때 타이머 체크

### 4.22 회의
[수정된 거]
1. 효과음 추가
2. TapToPlace했을 때 펫 겹치는 거 해결
3. 씻기기 버튼 수정
4. 타이머 초기화


[수정할 거]
1. 진화하기 한 번만 할 지 계속 할 수 있게 할 지? -> 계속 할 수 있게 하기 (진화할 때 먹은 정보 초기화 하기)
2. 산책하기 끝나고 뜨는 알림창에 텍스트 수정
3. 세로 모드 고정
4. isOverUI

[PPT 초안]

0. 간략한 앱 소개
1. Implemented features (may be different than your original plan).
    - 구현한 기능들
    1. 마커리스 기반, AR Plane 사용
    2. 상호작용 기능들 - 핸드 트래킹
    3. 진화 시스템

2. Demonstration of the app (live demo or trailer).
    - 트레일러 비디오 (여인수)

3. Work division
    - Explain what features/parts each member did
        (optionally if there is time) what were the main
        
4. A brief overview of the architecture (e.g. show a diagram with the main parts and their connections).
    - 각자 맡은 기능에 대해 다이어그램 작성하고 한 명이 취합하기
    - 임한결: Start Scene, Loading Scene, Save Manager, 산책하기
    - 여인수: Main Scene, 인사하기, GUI
    - 최동호: GameManager, 먹이주기
    - 김명현: 씻기기, 진화하기, touchEffect
    기한: 4.24까지
 
5. (optionally if there is time)challenges you faced and how you overcame them.
    - isOverUI 드래그 때문에 발생한 문제
    - UI가 꺼지면 isOverUI가 안 먹히는 문제

    분량: 최소 10분

### 04.26
여인수: 트레일러 영상 완성됨
임한결: 대본 완성됨
김명현: 목요일 저녁까지는 PPT 완성

[기술 보고서 5.3까지]

여인수: 프로젝트 플랜 (5.1까지)
임한결: 대표로 제출
최동호: 기술 보고서 종합해서 정리
김명현: 에셋 URL 정리

기술 보고서 각자 맡은 부분 5.1(일)까지