ETRI 동계연구연수 일기 (2)
에트리 연구연수를 받기 시작한지 3주차가 시작되었다. 벌써 시간이 이렇게 되었지 하고놀고만 있었다면 방학을 정말 허투로 보냈을 것이리라, 더 열심히 해야지 하고 생각했다.
어제 서울에서 내려와 대전 신성동에 있는 집까지 내려오는데 3시간+@ 로 시간이 걸리다 보니 많이 피곤했던 것 같다. 잠을 잘 자서 오늘은 7시 15분에 일어나서 준비를 했다.
오늘은 ML-Agent의 Dodge-Ball이라는 예제를 뜯어보기로 하였다. 안에는 코드가 굉장히 깔끔하게 정리되어있어서 진행하는 프로젝트 외에도 게임 개발 자체에도 큰 도움이 될 것 같아서 뜯어보는데 굉장히 도움이 되었던 것 같았다.
https://blog.unity.com/engine-platform/ml-agents-plays-dodgeball
ML-Agents plays DodgeBall | Unity Blog
And here are the agents learning how to play Capture the Flag: Early in the training, at 14 million steps, the agents learn to shoot each other, without actually capturing the flag. At 30 million, the agents learn how to pick up the enemy flag and return t
blog.unity.com
움직이기, 대쉬, 실드, 공 던지기 등 상황판단에 대한 강화학습과 적을 발견하기 목표(깃발)을 쟁탈하기 위해 움직이기 등 최적의 움직임에 대한 강화학습 등 프로젝트를 제작하기에 안성맞춤이었다고 생각했고 이를 가지고 있는 모델에 적용하면 큰 도움이 될 것 같았다.
나의 아이디어는 이러했다. 해당 코드에서 공을 던지는 것을 총으로 바꾸고 행동에서 대쉬, 실드 등을 엄폐와 정찰 등으로 바꾸면 다양한 학습모델을 만들 수 있을것이다. 이후 대쉬가 아니라 달리기 같이 부분적으로 움직임이 연결되는 행동을 취하도록 하면 더 자연스러운 움직임이 될 것이다. 사격이나 달리기에는 소리가 나고 이를 감지할 수도 있게 만들면 좋겠다고 생각했다. 이는 FPS게임 AI 적용에도 큰 도움이 될 수 있을 것이라 생각해 열심히 코드를 분석하였다.
노션에 각 변수들과 함수의 의미를 적어가며 공부했다. 코드 자체가 그리 길지 않고 복잡하지 않아서 분석하는데 오랜 시간이 걸리진 않았으나 문제는 이것을 뜯어서 다시 새로운 프로젝트로 만드는것이었다.
분명 유니티와 강화학습에 대해 충분히 이해를 했다 생각했으나 이를 합해 ML-Agent를 사용하여 새로운 프로젝트로 만드는건 전혀 다른 수준의 난이도였다. 아무래도 이 부분에 대해선 시간이 더 오래 걸릴 것 같다.
또한 MAK ONE 사의 VR-Force를 프로젝트의 연동으로 공부해보았다. 많은 군사 훈련 모델들과 애니메이션이 들어있어서 서 유니티와 비슷한 모델링 툴을 공부하는데 도움이 될 것이라 생각했다.
VR-Force는 DI-Guy라는 SDK에서 모델과 애니메이션을 모델링하여 가져온 뒤 시나리오를 작성하여 실제 상황을 제작할 수있는 군사훈련툴이다.
https://www.mak.com/docs/api/vrforces5.0.3/classref/index.html
VR-Forces 5.0.3 Developer's Guide: Product Design and API Documentation
www.mak.com
C++을 사용해서 코딩을 하는 모양인지라 조금 더 자세한 공부가 필요 할 것 같다. 아무래도 VR-Force에서 돌아가는 대부분의 기능을 코드로 제공하는 것 같지만 원하는 기능을 전부 구현하기엔 자세히 뜯어봐야 할 것 같다.
앞으로 더 정진할 부분이 많다. 열심히 하자!