본문 바로가기

전체 글

(90)
4. ML Agents 설치 - ML-agents ML 에이전트 설치 파일 다운로드 ML Agent 사용에 필요한 다른 페키지를 다운로드 받아보자. 파일은 https://github.com/Unity-Technologies/ml-agents/archive/master.zip 에서 쉽게 다운로드 받을 수 있다. 다운로드 받은 파일의 압축을 풀어 파일 위치를 변경한다. 설치된 후에도 관련 파일은 자주 사용해야 하기 때문에 C:\ml-agents-matser 디렉토리에 파일을 모아 놓도록 하자. ml-agents 환경에서 디렉토리를 C:\ml-agents-matser\ml-agents 로 이동해 관련 패키지 설치를 시작한다. ML 에이전트 설치 ML agent 설치는 해당 디렉토리(C:\ml-agents-matser\ml-agents)로 이동 후 [pytho..
3. ML Agents 설치 - 텐서플로우 텐서플로우 설치 텐서플로우를 설치해보자. 파이썬에서 지원하는 pip 모듈을 활용하면 프로그램을 쉽게 다운로드 받고 설치할 수 있다. 먼저 pip을 최신 버전으로 유지하는 것이 좋다. (1) python -m pip install --upgrade pip 명령어를 사용해서 pip을 업그레이드 하자. 다음으로 텐서플로우를 설치하는데 ML Agent에서 권장하는 버전을 설치하는 것이 좋다. 현재(2018년 10월 30일) ML Agent 홈페이지에서는 1.7.1 버전 설치를 권장한다. (2) python -m pip install tensorflow==1.7.1 명령어를 사용해서 텐서플로우를 설치하자. 명령어가 실행되고 마지막에 (3) Successfully installed 메시지를 확인하면 설치가 정상적으..
2. ML Agents 설치 - 아나콘다 아나콘다 다운로드 및 설치 아나콘다는 데이터 사이언스와 머신러닝에 필요한 다양한 파이썬과 R 관련 모듈을 모아 놓은 무료 배포 패키지이다. 파이썬을 사용해서 머신러닝을 할 때 pandas, numpy, tensorflow 등 다양한 패키지가 필요하다. 하지만 아나콘다만 설치하면 이 모든 패키지들이 기본적으로 설치되어 있기 때문이 다른 프로그램을 추가로 설치할 필요가 없다. 아나콘다 리파지토리 페이지에 가면 다양한 아나콘다 버전을 다운로드할 수 있다. ML 에이전트를 실행하기 위해서는 호환되는 버전을 설치해야 하는데 ML 에이전트 0.5 버전과는 아니콘다 3 5.1 버전이 적합하다. 다음 사이트에서 https://repo.anaconda.com/archive/ 윈도우 64bits용 아나콘다 5.1 버전을 ..
1. ML Agents 개념 ○ ML 에이전트 개념 ML 에이전트의 학습 환경(Learning Environment)은 아카데미, 브레인 그리고 에이전트로 구성된다. 학습 환경이란 유니티 씬과 씬을 구성하고 있는 게임 캐릭터를 말한다. ML 에이전트 개념도 에이전트는 강화학습에 참여하는 게임 캐릭터를 말한다. 에이전트는 브레인 정책에 따라 행동(Action)을 하고 자신의 관점에서 환경을 이해(Observation)하고 그것을 숫자 또는 이미지로 변환해서 관찰 값으로 저장한다. 에이전트는 브레인에게 행동에 따른 보상 값을 계산해서 관찰 값과 같이 전달한다. 브레인은 관찰 값을 기반으로 정책에 따라 에이전트가 최적의 행동을 취할 수 있도록 정책 실행 결과 값을 반환한다. 학습을 통해 최적의 정책을 찾는 것이 강화학습의 목적이다. 최적..
8. 유니티 화면에 텍스트 표현하기 ○ 텍스트 객체 생성 텍스트 객체 생성 점수와 시간을 화면에 표시하기 위해서는 유니티에서 제공하는 UI(User Interface)를 사용해야 한다. UI에서 Text 객체를 사용하면 스크립트에서 점수와 시간을 구해 쉽게 화면에 표시할 수 있다. Text 객체를 생성하기 위해 계층 뷰에서 마우스 오른쪽 버튼을 클릭해 UI 항목에서 Text를 선택하자. Text 객체는 Canvas 객체의 하위 객체로 생성되며 아래에 EventSystem 객체가 함께 생성된다. Canvas와 EventSystem 객체에 대한 설명은 이 책에서는 생략하겠다. 이제 Text 객체의 이름은 Score라 변경한 다음 인스펙터 뷰에서 톱니바퀴 버튼을 클릭해 Reset 메뉴를 통해 텍스트 객체 위치를 초기화 하자. Game 뷰에서 확..
7. 유니티 물리 충돌 처리 ○ 물리 충돌 처리 개념 물리 충돌 처리 객체 종류 콜라이더(Collider) 컴포넌트는 오브젝트의 물리 충돌을 처리하는 역할을 한다. 물리 충돌 처리 관점에서 게임 오브젝트는 4가지 종류로 나눌 수 있다. 정적 콜라이더(Static Collider)는 콜라이더가 있지만 리지드바디가 없는 게임 오브젝트이다. 정적 콜라이더는 움직이지 않는 벽, 바닥과 같은 오브젝트에 사용되며 물리 엔진은 정적 콜라이더가 움직이지 않는다고 가정하고 있다. 만일 정적 콜라이더가 이동하게 되면 물리 엔진 내부에서 지속적으로 연산이 이루어져야 하기 때문에 게임 성능 저하를 초래할 수 있다. 리지드바디 콜라이더(Rigidbody Collider)는 콜라이더와 리지드바디 컴포넌트가 함께 있는 게임 오브젝트이다. 물리 엔진에 의해 완..
6. 유니티 객체 회전 및 프리펩 사용 ○ 벽과 타겟 객체 만들기 벽(Cube) 객체 만들기 가장 자리에 공이 빠져 나가지 못하도록 벽을 세워 보자. 벽은 직사각형 객체 4개로 이루어 진다. 벽을 이루는 직사각형 객체는 모두 비슷한 특성을 가지고 있기 때문에 빈 객체(Empty Object)를 생성해서 하나로 묶어주는 것이 관리하기 편리하다. 빈 객체는 transform 컴포넌트로만 이루어진 객체인데 독립적으로 씬에 존재할 수 없는 스크립트나 객체를 모아 놓거나 동일 객체를 하나로 묶어 놓는 부로 객체로 주로 사용된다. Create Object > Create Empty 메뉴를 사용해서 빈 객체를 만들 후 이름을 Wall로 변경하자. 벽 4개 만들기 앞에서 만든 큐브 객체 이름을 East Wall로 변경하고 Transform 컴포넌트의 속성을..
5. 유니티 카메라 제어 ○ 카메라 위치 변경 카메라 위치 제어 게임을 실행했을 때 화면이 너무 옆으로 누워 있다는 것을 느낄 수 있었을 것이다. 그리고 일반적인 게임에서는 플레이어가 움직임에 따라 카메라가 플레이어를 따라 가지만 이 게임에서는 카메라가 고정되어 있다. 먼저 카메라 위치를 보기 좋게 바꾼 다음에 카메라가 공의 움직임을 따라 가도록 변경해 보자. 카메라 위치를 변경하는 방법은 두 가지인데 먼저 씬 뷰에서 카메라를 선택하고 움직이면서 위치를 설정할 수 있다. 두 번째로 카메라 객체 인스펙터 뷰에서 Transform 컴포넌트의 Position 속성을 변경하면서 카메라 위치를 바꿀 수 있다. 카메라 객체를 선택하면 씬 뷰 우측 하단에 게임 뷰 미니 화면이 나오는데 그 화면을 참고해서 카메라를 적절하게 조절해 보자. ○ ..