강화학습/ML-Agent Unity

Dodge 환경설정및 환경빌드

유니티런 2025. 4. 28. 18:33

Area 프리팹을 열고 DArea 스크립의 변수들을 연결해줍니다.

Area Prefab의자식 Agent를 선택하고 DAgent의 변수 MaxStep을 5000으로 설정합니다. 에피소드 종료조건이 만족하지 않아도 5000스템 이상일 경우 강제 종료됩니다 Area에는 Area프리팹의 부모 또는 스크립트를 끌어다 놓으면되고 DecisionWaitingTime은 0.01로 설정합니다.

Agent 인스펙터안에서 Space Size를 40(광선수)x3(각 레이에 포함된 정보의수) + 2 (에이전트의 x ,z 속도) = 122를 설정합니다.

행동은 이산적인 5가지이므로 Branches를1 Branch 0 Size를 5로 합니다.

프리팹에서 닷지씬으로 나와 DodgeScene 오브젝트의  스크립트 Area Obj에 Area 프리팹을 끌어다 놓습니다.

 

마지막으로 메인카메라의 위치를 조정해서 위에서 바라보는것 처럼 합니다.

플레이해서 공이 외곽에서 생성되어 에이전트와 충돌하면 재시작을 하는지 확인합니다.

프로젝트 빌드

File>BuildSettings를 열어 AddOpenScenes로 현재씬을 추가하고 

플래폼은 windows로 합니다.

좌측하단 PlayerSettings를 클릭하고

빌드 설정을 합니다.

Build를 선택하고 폴더를 지정합니다.

폴더는 알고리즘들을 작성할 폴더보다 하나 상위 경로 evvs/Dodge_Windows/로 하면 편합니다.

mlagents-learn 학습을 위한 yaml파일의 경로에 대한 예시는 다음과 같습니다.

Project
	agents
    	ppo_random_params.py
    envs
    	Dodge_Windows
        	Dodge.exe
   config
   		ppo
    		Dodge_randomize.yaml