게임 데이터 분석

[게임 데이터 분석 #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. 문제점

  1. 위의 코드를 실행하게 되면 RuntimeError가 발생하게 되고 ffmepg가 설치 되있지 않다고 한다.
    - 해당 오류를 해결하기 위해선 ffmepg를 설치 하면 되는데 이는 다음 글에서 소개 하도록 하겠습니다.
  2. 플레이어들의 위치좌표와 맵 이미지 원 좌표등을 자동으로 가져오기 때문에 이미지로 경로를 출력하기 위한 팁을 구하기 어렵다.(지극히 개인적인 문제점)
  3. 영상하나를 출력하는 시간이 꽤나 오래 걸린다.
  4.  위의 코드는 에란겔 맵에서만 작동하는 코드로 다른 맵을 풀레이했다면 오류가 발생하는 문제가 있습니다.

 

 

4. 추가 개발 계획

매 판마다 이미지를 출력하고 맵 이미지 위에 이동한 경로를 그림으로 그려 출력한다.