일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 공부
- 448일선
- 1일차
- 주식단테
- 224일선
- 이득우의 언리얼 프로그래밍1
- shader
- 리팩터링 4장
- 작계훈련
- 2023 구글 클라우드
- 2023 Gaming
- 스포일러 주의
- 산토리 하이볼
- 2023 게이밍 인 구글 클라우드
- 언리얼5
- 스즈메의 문단속
- 언리얼 5
- 리팩터링 3장
- 주식
- unity
- 2023 게이밍
- 상계9동
- 구글 컨퍼런스
- 이득우의 언리얼 프로그래밍 1
- GenAI
- 전주비빔 라이스 버거
- JavaScript
- URP
- 112일선
- 리팩터링
- Today
- Total
개발 이야기 안하는 개발자
UNITY MARS 본문
주소 - https://learn.unity.com/project/get-started-with-unity-mars?language=en
Unity Mars
AR어플리케이션을 제작하기 위한 툴킷
MARS 적용 방법 Unity Mars는 Unity pro, enterprise, industrial collection에서 사용할 수 있다.
그 외에는 유료로 구매해야 한다.
AR Foundation기반으로 제작된다. (AR Core, AR Kit, HoloLens 디바이스에서 사용될 수 있다.)
(https://unity.com/products/mars/get-started) 에서 다운로드
Import Package로 받는다.
사용 가능한 목록
목록은 Window -> Mars 에서 볼 수 있다.
물론 이는 AR Foundation 기반이기 때문에 AR Foundation을 설치 해야 한다.
본 프로젝트는 안드로이드 프로젝트로 빠른 예제와 테스트를 진행할 예정이다.
홀로렌즈로 제작 하고자 한다면 해당 링크를 참고해야 한다.
링크에 따르면 MRTK와 같이 사용하는 것으로 보여지며, MRTK에서 사용했던 방식에 추가하는 느낌으로 Mars를 사용하면 될 것 같다.
Mars panel
윈도우
-> Content Manager
-> 뜬 창에 Basic Simulation Environment Pack 선택
-> Import 진행
-> Simulation View 활성화
아래 그림같이 적용된 것을 볼 수 있음.
환경을 바꿔줄 수 있다.
Simulation view에 패널에서 LivingRoom으로 수정하면
아래와 같이 LivingRoom이 보이는 것을 볼 수 있다.
테스트하기에 굉장한 도움이 된다.
Simulation View를 오른쪽 키를 눌러서 보면
Device View를 볼 수 있다.
Mars Panel 에서 Point Cloud Visualizer 를 추가한다.
그럼 하이어라키에 추가가 된다.
Device View에서 안움직이는데, 내부에 실행 버튼을 누르면 WASD로 이동할 수 있게 된다.
이때, 시뮬레이션으로 벽을 읽으면 벽을 Point 형식으로 익어지는 것을 보여준다.
이건 Planes Visualizer도 추가한 내용.
중복으로 들어가도 된다.
이번엔 Editor의 실행버튼.
차이는 잘 모르겠지만 Editor의 실행버튼이 좀 더 오래걸린다.
Mars의 가장 큰 장점이라고 본다.
가장의 공간을 만들어서 빠르게 테스트를 해볼 수 있다.
빌드 해보기
File -> New Scene 눌러서 Basic으로 제작
Horizontal Plane 으로 바닥 앵커를 제작
Plane Visualizer도 추가한다.
Horizontal Plane하위 오브젝트로 구를 추가한다.
빌드하기
AR과 동일하게
- Auto Graphics API 끄기
- Vulkan 지우기
- 최소 API는 Android 7.1
- IL2CPP
추가로
Target Architectures 는 ARM64로 지정할것.
실행해서 화면을 흔들어 바닥을 인식하게 한다.
바닥을 인식하면 바닥이라고 판단되는 곳에 점들이 찍힌다.
그리고 찍힌곳을 하나로 할때, 중앙에 구슬이 놓여진다.
해당 구슬은 바닥이라고 인식되는 곳의 중앙에 놓여지기 때문에 계속해서 이동한다.
Proxy Rule
AR 기능을 사용하면서 추가할 규칙이다.
예를 들면, 특정 크기 이상일 때만 실행한다 같은 내용들이 들어갈 곳이다.
Window -> Mars -> Proxy Rule Set 을 누르면 창이 뜬다.
Add Rule을 눌러서 규칙을 추가할 수 있다.
기본으론 Horizontal Surface가 뜨고, 오른쪽에 마우스를 가져다 대면 +모양이 나오고, 여기서 추가해 줄 수 있다.
아래 그림과 같이 Horizontal Surface라고 판단되는 곳에 사과를 배치하도록 했다.
쓰여진 Every는 모든 Plane에 적용한다는 내용이고, 수정이 가능하다.
MARS 컴포넌트 종류 : Condition , Action , Forces
- Condition 컴포넌트를 사용하여 Proxy가 실제 객체와 일치하기 위해 충족해야 하는 요건을 정의할 수 있음
- Action 컴포넌트를 사용하여 Proxy의 조건이 일치하거나 조건에 대한 Mars 데이터가 변경될 때 발생하는 반응을 정의할 수 있음
- Forces 컴포넌트를 사용하여 Proxy Game Object를 최종 위치로 끌어당기거나 밀거나 유지하는 유연한 스프링 같은 힘의 웹을 표현할 수 있음. 하나의 GameObject에 작용하는 힘을 조합하여 다른 개체의 배치에 영향을 줄 수 있음.
Proxy Rule set에서 지정되어 있는 horizontal Surface를 더블클릭하면 인스펙터에 수정할 수 있다.
여기서 맨 아래에 Add Mars Component를 누르면
Action과 Condition, Forces를 볼수 있다.
Plane Size를 선택하면 컴포넌트가 생성되는데, 이때 Condition을 수정해서 사과가 나오는 조건을 지정할 수있다.
이번 예시같은 경우는 Plane의 크기(측정된 Plane)이 0.3 x 0.3 이상인 경우에만 사과가 나오게 된다.
Sample Game templete
Mars에서 지원하는 Sample game 제작
Import 받은 템플릿 선택해서 활성화 하기.
아래와 같은 팝업이 뜬다.
Simple로 제작함.
그림과 같이 Mars는 Hierachy를 거의 사용하지 않는다. (안쓰는것은 아님)
대신 Mars Panel아래에 Content hierarchy를 사용해서 본다.
눌러서 보면 Place crystals 를 부모로 Horizontal 이라고 쓰인 오브젝트들이 보인다.
여기서 Horizontal은 같은 평면에 놓여진 크리스탈들의 모음이다.
즉, 각각의 평면에 생성가능한 만큼의 크리스탈이 놓여져 있다는 뜻이다.
Horizontal이 7개가 있으니, 스캔한 해당 공간에선 같은 평면이 총 7개가 있다는 뜻이다.
여기선 평면 자체에 Collider를 넣었고, 그것을 오브젝트 형식으로 보여주는 것이다.
그중 하나의 Horizontal을 눌러서 codition Component를 수정해서 어느쪽으로 정렬할지 정해줄 수 있다.
게임 실행 녹화 화면
- 클릭과 드래그로 게임을 진행한다.
- 다른 평면은 점프를 한다.
- 짧은 클릭도 점프한다.
- 드래그로 크리스탈을 먹는다.
마무리
AR Foundation 기반으로 제작이 되었기 때문에 해당 Mars가 없어도 충분히 제작이 가능하다.
하지만 Mars를 쓰면서 느낀점은
AR Foundation에서 하면서 오랜 시간이 걸렸던 기능들이 굉장히 빠르고 간단하다는 것이였다.
그래서 가능하다면 AR Foundation작업을 해야할 때는 Mars를 쓰는 편이 좋다고 느꼈다.
'Unity > Unity_Knowledge' 카테고리의 다른 글
Unity Profile(추가 작업할것) (0) | 2023.04.11 |
---|---|
투명앱 만들어보기 (0) | 2023.04.11 |
추가 공부중...JOB(공부 끝나면 수정할 것) (0) | 2023.04.11 |
PAD (0) | 2023.04.11 |