플레이어가보고 한 데이터를 기반으로 히트 맵을 생성하려면 어떻게해야합니까?


17

내가 말하는 것에 대한 좋은 예를 보려면 Replica Island 개발자가 플레이어 사망을 기반으로 어떻게 작동하는지 확인하십시오. http://www.youtube.com/watch?v=7-62tRHLcHk&feature=player_embedded#t= 37 분

전달한 데이터를 기반으로 히트 맵을 쉽게 생성하려면 어떻게해야합니까?

Halo 3은 게임 데이터보고에서 히트 맵 사용의 또 다른 좋은 예입니다. http://www.bungie.net/Online/Heatmaps.aspx


답변:


9

이미 플롯하려는 데이터 세트와이를 플롯하려는 맵이 있다고 가정하면 강도 맵을 작성하여 시작할 수 있습니다. 최종 맵에 대한 경계에 비례하는 부동 소수점 값의 그리드 (맵이있는 경우) 충분히 작습니다. 1 : 1이 좋습니다. 전체 배열을 0으로 초기화하십시오.

그런 다음 플롯하려는 각 점을 살펴보고, 강도 맵의 좌표 공간 (일반적으로 간단한 축척 작업이어야 함)에 매핑 한 다음 해당 위치를 중심으로하는 강도 맵에서 "블립"을 플롯합니다.

기본 "블립"은 블립 포인트의 강도에 약간의 반경을 더한 값으로 증가시키는 것으로 구성 될 수 있습니다. 더 복잡한 구현은 기존 강도를 읽을 수 있으며, 이미 시작점보다 강도가 큰 감쇠 반경을 사용합니다. 블립 플로터로 실험하여 원하는 모양의 구현을 찾을 수 있습니다.

강도 맵이 있으면 각 개별 지점의 강도를 색상 그라디언트에 대한 1D 조회로 사용하여 원하는 시각적 효과를 얻을 수 있습니다. 가장 일반적으로 볼 수 있음). 강도 맵을 최종 플롯으로 전송할 때이 색상 조회를 수행해야합니다 (강도 맵과 최종 이미지의 크기 차이를 설명하기 위해 필요한 경우 크기 조정).

기본 구현에는 충분하지만 최적화 할 여지가 있습니다. 예를 들어, 강도 맵은 정규화되지 않으므로 각 블립을 플로팅 할 때이를 다시 정규화 (아마도 느리게)하거나 최대 강도를 추적해야 할 수 있으므로 개별 강도의 재 정규화를 동시에 수행 할 수 있습니다. 당신은 recolorization을하고 있습니다. 또한 값의 분포가 맵의 전체 좌표 공간을 저장하는 것이 메모리 효율적이지 않을 수 있으며 큰 메모리 덩어리를 미리 할당하지 않는 대체 솔루션을 사용할 수 있습니다 그것은 대부분 비어있을 것입니다.

데이터 세트에서 볼 수있는 최소 및 최대 강도를 쿼리하기에 충분한 데이터가 사전에있는 경우 기본적으로 (X, Y, Z) 사이의 숫자가 " 해당 시점에서 발생한 플롯 된 데이터의 적중 "- 데이터를 수집 하는 시스템에 빌드 할 수 있는 부분으로, 매핑 부분을 최적화하는 데 도움이됩니다.

강도 맵은 본질적으로 회색조 이미지이기 때문에 이러한 종류의 시스템을 프로토 타입하여 강도 맵 및 선택한 드로잉 API (예 : System.DrawingC #)에 비트 맵을 사용하여 부분적으로 투명한 원을 강도 맵을 생성합니다. 가장 잘 보이지는 않지만 기능적입니다.


3

Echo Chamber 는 게임을 위해 특별히 제작 된 무료 로깅 및 시각화 도구입니다.

c ++ 애플리케이션에서 생성 된 정보가 포함 된 SQL 기반 데이터 파일을 시각화하십시오. 정보는 로그 문, 함수 호출, 스크린 샷 또는 매개 변수 목록 일 수 있습니다.

사망 위치, 가장 자주 사용되는 무기 및 레벨의 다른 부분에 대한 메모리 사용량과 같은 2D 및 3D 게임 메트릭을 봅니다.

로깅 시스템에는 C ++ 인터페이스 (선택적으로 네트워크를 통해 SQL 데이터베이스로 출력하는 printf ()와 유사)가 있지만 Echo Chamber는 모든 SQL 데이터베이스를 시각화 할 수 있어야합니다 (또는 데이터베이스를 작성하는 것이 간단해야 함) Echo Chamber가 기대하는 형식). 웹 사이트 탐색은 약간 애매하다. 관련 Echo Chamber 설명서 및 관련 Raknet 로깅 기능 .

불행히도 실제로 작동하는 히트 맵의 스크린 샷은 없지만 Echo Chamber는 확실히 히트 맵을 지원합니다.

여기에 이미지 설명을 입력하십시오


2

예를 들어 게임에서 지정된 이벤트에 대한 좌표를 가져옵니다. 예를 들어 플레이어가 죽으면 장면 그래프에서 플레이어가 사망 한 좌표를 얻습니다.

따라서 데이터베이스에 필요한 값이 있으면 각 좌표가 목록 / 데이터베이스에 나타나는 횟수를 열거하십시오. 다음과 같은 목록이 있습니다.

  • 15 : 1,5
  • 10 : 6.15
  • 3 : 27,58

또는 당신의 가치가 무엇이든. 키-> 값 쌍과 같이 좌표와 쌍을 이루는 빈도가 있습니다. 그런 다음 키 스케일을 색상으로 수량화 할 수 있습니다. 예를 들어 0의 키는 검은 색이고 키-값 목록에있는 최대 키는 빨간색이며 그 사이의 모든 것은 검은 색, 중간 점 노란색 및 최대 점 빨간색 사이의 그라데이션입니다. 각 결과를 색상으로 수량화하면 그 결과를 얻을 수 있습니다.


1
3D 게임 또는 완전한 위치가없는 게임의 경우 일부 반경의 원 또는 구 그라디언트를 렌더링하여 더 확장 할 수 있습니다.
dash-tom-bang

2

당신이 어떤 종류의 응용 프로그램이나 이것에 대한 알고리즘을 찾고 있는지 확실하지 않습니다. 실제로 맞춤형 히트 맵 시각화 소프트웨어를 제작하는 것이 즐거웠으며 재미있었습니다.

빠른 Google 검색에서 HeatMap API 가 공개되었습니다. HeatMap API 는 롤백하지 않으려는 경우 적절한 솔루션이 될 수 있습니다.

찾고있는 내용 (애플리케이션 또는 프로그래밍)을 정확하게 설명하면 더 도움이 될 수 있습니까?


0

다른 방법으로는 관련 데이터를 CSV 파일로 출력 한 다음 통계 소프트웨어 (예 : Microsoft Excel, LibreOffice Calc, R 또는 GNUPlot)로 가져 와서 그래프를 추출하는 것입니다. 약간의 셸 스크립팅 (또는 Windows를 사용하는 경우 Batch)을 알고 있다면 전체를 자동화 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.