게임 데이터 분석
[게임 데이터 분석 #3] chicken-dinner를 활용한 리플레이 애니메이션 출력하기
DongGoo
2023. 6. 14. 20:54
Python을 기반으로 개발을 진행하였습니다.
1. chicken-dinner 모듈을 사용해서 리플레이 애니메이션 출력하기
chicken-dinner 모듈에 대한 공식 문서는 아래의 링크를 참고하기길 바랍니다.
https://chicken-dinner.readthedocs.io/en/latest/index.html
Chicken Dinner — Chicken Dinner documentation
© Copyright 2018-2019, Christopher Flynn Revision 705f1dae.
chicken-dinner.readthedocs.io
우선 chicken-dinner 모듈을 사용하기 위해선 설치를 해야합니다.
pip install chicken-dinner
설치가 완료 되었다면 import를 해줍니다.
import chicken_dinner
이때 주의해야할 사항은 install할때는 '-'를 사용하기 때문에 install에 실패 하거나 import에 실패 할 수 도 있습니다.
위의 공식문서에 들어가게 되면 모듈 사용법의 간단한 예제 코드를 작성해 두었습니다.
from chicken_dinner.pubgapi import PUBG
api_key = "your_api_key"
pubg = PUBG(api_key, "platform_name") # "kakao", "steam", "pc-na" 등이 있다.
shroud = pubg.players_from_names("user_name")[0]
# 불러온 경기중 5번째 경기를 시각화 한다.
recent_match_id = shroud.match_ids[4]
recent_match = pubg.match(recent_match_id)
recent_match_telemetry = recent_match.get_telemetry()
# html형식의 파일이 반환 되고 해당 파일을 들어가면 리플레이가 재생된다.
recent_match_telemetry.playback_animation("recent_match.html")
2. 코드 실행
위의 코드에 user_name을 입력하게 되면 아래와 같이 html안에 리플레이 영상이 재생됩니다.
3. 문제점
- 위의 코드를 실행하게 되면 RuntimeError가 발생하게 되고 ffmepg가 설치 되있지 않다고 한다.
- 해당 오류를 해결하기 위해선 ffmepg를 설치 하면 되는데 이는 다음 글에서 소개 하도록 하겠습니다. - 플레이어들의 위치좌표와 맵 이미지 원 좌표등을 자동으로 가져오기 때문에 이미지로 경로를 출력하기 위한 팁을 구하기 어렵다.
(지극히 개인적인 문제점) - 영상하나를 출력하는 시간이 꽤나 오래 걸린다.
- 위의 코드는 에란겔 맵에서만 작동하는 코드로 다른 맵을 풀레이했다면 오류가 발생하는 문제가 있습니다.
4. 추가 개발 계획
매 판마다 이미지를 출력하고 맵 이미지 위에 이동한 경로를 그림으로 그려 출력한다.