본문 바로가기

유니티 ML Agents

(40)
3. 유니티 Roll A Ball 기본 객체 만들기 ○ 플레인(Plane) 만들기 플레인(Plane) 만들기 먼저 편평한 바닥 모양을 한 플레인 객체를 추가해 보자. 플레인 객체는 모양에서 알 수 있듯이 게임에서 바닥의 역할을 한다. 플레인을 만들어 놓고 바닥으로 활용해서 공이 튀기거나 자동차가 움직이는 기반이 되는 바닥으로 사용한다. 객체를 추가할 때는 보통 계층 뷰에서 시작한다. 계층 뷰에서 마우스 오른쪽 버튼을 클릭해서 3D Object를 선택하고 그 중에서 Plane을 클릭한다. 3D 객체는 3차원 이기 때문에 x, y, z로 좌표가 결정되지만 플레인은 편평하기 때문에 y 좌표가 존재하지 않고 x,z 만 가지고 표현한다. 플레인은 또한 10단위 길이로 표현 된다. 플레인 이름 바꾸기 플레인 객채의 이름을 바꿔보자. 유니티에서 일반적으로 계층 뷰나 ..
2. 유니티 기본 예제 Roll A Ball 개요 ○ Roll A Ball 이란 Roll A Ball 실행 화면 Roll A Boll 게임은 유니티에서 초보자에게 툴 사용법을 익힐 수 있도록 만든 단순한 3D 게임이다. 게이머는 바닥을 움직이며 공의 이동 방향을 조절해 공이 큐브에 부딪힐 수 있도록 해야 한다. 공이 큐브에 부딪히면 큐브는 사라지게 된다. 게임의 목적은 모든 큐브를 없애는 것이다. Roll A Ball은 만들기 간단하지만 유니티의 핵심 요소가 모두 들어있기 때문에 초보자를 위한 튜터리얼로 적합한 게임이다. 유니티 튜토리얼 화면 유니티 공식 홈페이지에서는 쉽고 다양한 튜토리얼을 제공한다. https://unity3d.com/kr/learn/tutorials/s/roll-ball-tutorial 사이트에 접속하면 Roll A Ball을 설명..
1. 유니티 설치 및 기본개념 ○ 유니티 다운로드 유니티는 https://unity3d.com/kr/get-unity/download 에서 쉽게 다운로드 받을 수 있다. Unity 선택 및 다운로드와 Unity 허브 다운로드가 있는데 Unity 허브란 다양한 버전의 Unity를 데스크탑에서 관리하기 쉽게 지원해주는 툴이다. 전문적인 유니티 개발자라면 유니티 허브를 사용하는 것이 좋겠지만 이 책에서는 유니티를 이용한 머신러닝에 관심이 있기 때문에 상대적으로 단순한 오프라인 설치 모델을 사용하기로 한다. 유니티 다운로드 다음 화면에서 Plus, Pro, Personal 버전 세 개 중 하나를 선택할 수 있는데 테스트를 위해 무료로 제공되는 Personal 버전을 선택한다. 그리고 Windows용 설치 프로그램 다운로드를 클릭하면 설치 파..
유니티 용어 설명 ○ 렌더링(Rendering) - 3D 그래픽 프로그램이 가상의 3차원 공간에 위치한 물체를 화면으로 그려내는 작업 ○ 매쉬(Mesh) - 3D 컴퓨터 그래픽에서 객체의 외관을 구성하기 위한 점, 선, 면의 집합 ○ 메쉬 필터(Mesh Filter) - 에셋으로부터 메쉬 정보를 가져 옮 ○ 메쉬 렌더러(Mesh Render) - 메쉬 정보를 가지고 화면에 표현 ○ 메쉬 콜라이더(Mesh Collider) - 메쉬에 의거한 콜라이더 생성 ○ 콜라이더(Collider) - 오브젝트의 물리 충돌 감지를 위한 형태를 정의한다. 콜라이더는 렌더링했을 때는 눈에 보이지 않는다. ○ 파티클(Particles) 시스템 - 파티클은 유동적인 객체를 표현하기 위한 작은 이미지를 말한다. - 고정된 외형을 갖춘 객체를 나타..
유니티(Unity) 충돌 처리 Trigger 와 Collision 유니티에서 충돌 처리하는 방식은 크게 두가지가 있다. 하나는 Trigger를 사용하는 것이다. 객체의 콜라이더(Collider) 컴포넌트에 있는 Trigger 속성이 활성화되어 있으면 물체가 충돌할 때 OnTriggerEnter 함수가 호출된다. 충돌이 계속되는 시점에는 OnTriggerStay 함수가 반복적으로 호출되며 충돌이 끝나면 OnTriggerExit 함수가 호출된다. 다른 하나는 Collision을 사용하는 것이다. 객체의 Collision 컴포넌트에 Trigger 속성이 비활성화되어 있을 경우 두 객체가 충돌하면 OnCollisionEnter 함수가 호출된다. 충돌이 계속되는 시점에는 OnCollisionStay 함수가 호출되며 충돌이 끝나면 OnCollisionExit함수가 호출된다.Tri..
콜라이더(Collider) 콜라이더 컴포넌트는 오브젝트 물리 충돌을 처리하는 역할을 한다. 콜라이더는 씬 뷰에서 초록색 선으로 표현된다. 만일 콜라이더의 크기가 객체의 크기 보다 크게 만들어 진다면 콜라이더는 객체 밖으로 나오게 된다. 만일 객체의 크기 보다 작다면 객체 안으로 콜라이더는 들어간다. 콜라이더는 객체의 모양과 동일하게 설정하는게 가장 좋다. # 정적 콜라이더(Static Collider) 정적 콜라이더는 콜라이더가 있지만 리지드바디가 없는 게임 오브젝트이다. 정적 콜라이더는 움직이지 않는 벽, 바닥과 같은 오브젝트에 사용된다. 물리 엔진은 정적 콜라이더가 움직이지 않는다고 가정하고 있다. 만일 정적 콜라이더가 이동하게 되면 물리 엔진 내부에서 지속적으로 연산이 이루어져야 하기 때문에 게임 성능 저하를 초래할 수 있다..
유니티 주요 링크 유니티는 홈페이지에 다양한 메뉴얼과 API를 제공하고 있다. 많은 부분이 한글화되어 있어 영문보다 훨씬 읽기가 편한다. 유니티 관련 서적이 많이 나와 있지만 유니티의 개념과 기능을 기본에 충실하게 설명해 놓은 것이 유니티 홈페이지가 가장 뛰어나다. 게임을 만들면서 또는 책을 참고하면서 이해가지 않는 부분은 유니티 홈페이지를 참조하는 것이 좋다. ○ 유니티 다운로드 사이트https://unity3d.com/kr/get-unity/download ○ 유니티 메뉴얼https://docs.unity3d.com/kr/530/Manual/UnityManual.html ○ 유니티 전문가 메뉴얼https://docs.unity3d.com/kr/current/Manual/ExpertGuides.html ○ 유니티 스크립..
Visual Studio 2017 로그인 오류 유니티에 연결된 Visual Studio 2017 Community 실행할 때 설치한 지 30일이 지나면 와 같은 오류 메시지가 나온다. 그럼 Microsoft 계정으로 로그인해야 하는데, 정상적으로 로그인 한 이후에 다음과 같은 오류가 발생하는 경우가 있다. "계정의 자격 증명을 새로 고칠 수 없습니다. 이 요청을 보내는 동안 오류가 발생했습니다." 오류 메시지 발생 시 조치 방법 인터넷에 다양한 조치 방법이 나와있는데, 본인은 모두 실패했다. stackoverflow.com에서 힌트를 얻어 login.microsoftonline.com으로 접속을 시도했다. 정상적으로 접속이되지 않았다. 이것저것 해보다가 결국 얻은 해답은 회사 보안장비에서 microsoftonline.com과 azure.com으로의 ..