プレイヤーが報告したデータに基づいてヒートマップを作成するにはどうすればよいですか?


17

私が話していることの非常に良い例については、レプリカ島の開発者がプレイヤーの死亡に基づいてどのようにそれを行うかを参照してくださいhttp : //www.youtube.com/watch? v=7-62tRHLcHk&feature=player_embedded#t = 37m

渡すデータに基づいてヒートマップを簡単に作成するにはどうすればよいですか?

Halo 3は、ゲームデータレポートでのヒートマップ使用のもう1つの良い例です:http ://www.bungie.net/Online/Heatmaps.aspx


回答:


9

既にプロットするデータセットと、それをプロットするマップがあると仮定すると、強度マップを作成することから開始できます。十分に小さく、1:1で十分でしょう)。配列全体を0に初期化します。

次に、プロットする各ポイントを歩いて、強度マップの座標空間にマッピングし(通常は単純なスケール操作である必要があります)、その位置を中心に強度マップに「ブリップ」をプロットします。

基本的な「ブリップ」は、ブリップポイントの強度と若干の半径を少し増やすだけで構成できます。より複雑な実装では、既存の強度を読み取ることができ、ブリップポイントが既に強いほど大きな減衰半径を使用できます。ブリッププロッターを試して、好みの実装を見つけることができます。

強度マップを作成したら、個々のポイントの強度をカラーグラデーションの1Dルックアップとして使用できます。これにより、目的の視覚的インパクトを得ることができます(これにより、マルチカラーの結果を得ることができます)最も一般的に見られる)。強度マップを最終プロットに転送するときに、このカラールックアップを実行する必要があります(強度マップと最終画像のサイズの違いを考慮して、必要に応じて再スケーリングします)。

基本的な実装にはこれで十分ですが、最適化の余地があります。たとえば、強度マップは正規化されないため、個々の強度の繰り込みを同時に実行できるように、各ブリップをプロットするときに、強度マップを再正規化する(おそらく遅い)か、最大強度を追跡する必要がある場合がありますあなたは色変更を行っています。さらに、マップの座標空間全体を保存することはメモリ効率が悪いため、値の分布が大きくなる可能性があります。また、大量のメモリを事前に割り当てる必要のない代替ソリューションを使用することもできます。それはほとんど空になります。

データセットに表示されると予想される最小および最大強​​度を照会するのに十分なデータが事前にある場合、基本的に(X、Y、Z)の数とその時点で発生したプロットされたデータのヒット」- これは、マッピング部分の最適化に役立つデータを収集するシステムに組み込むことができるものです。

強度マップは本質的にはグレースケール画像であるため、強度マップにビットマップを使用してこの種のシステムをプロトタイプ化し、System.Drawing部分的に透明な円をプロットするために選択した描画API(C#など)を使用する非常に簡単な方法です強度マップを作成します。見た目は良くありませんが、機能的です。


3

Echo Chamberは、ゲーム専用に作成された無料のロギングおよび視覚化ツールです。

C ++アプリケーションによって生成された情報を含むSQLベースのデータファイルを視覚化します。情報は、ログステートメント、関数呼び出し、スクリーンショット、またはパラメーターリストです。

死亡位置、最も頻繁に使用される武器、レベルのさまざまな部分でのメモリ使用量など、2Dおよび3Dゲームのメトリックを表示します。

ロギングシステムにはC ++インターフェイス(オプションでネットワーク経由でSQLデータベースに出力するprintf()のようなもの)がありますが、Echo ChamberはSQLデータベースを視覚化できるはずです(または、データベースを簡単に作成できるはずです) Echo Chamberが期待する形式)。Webサイトのナビゲーションは少し鈍いです。関連するEcho Chamberマニュアルおよび関連するRaknetロギング機能

残念ながら、動作中のヒートマップのスクリーンショットはありませんが、Echo Chamberは間違いなくヒートマップをサポートしています。

ここに画像の説明を入力してください


2

たとえば、ゲーム内の指定されたイベントの座標を取得します。たとえば、プレイヤーが死亡した場合、プレイヤーが死亡したシーングラフの座標を取得します。

そのため、データベースに必要な値を取得したら、各座標がリスト/データベースに表示される回数を列挙します。次のようなリストがあります。

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

またはあなたの価値は何でも。キーと値のペアのような座標とペアになった周波数があります。次に、キースケールを色に定量化できます。たとえば、0のキーは黒で、キーと値のリストにある最大キーは赤で、その間のすべては黒、中点の黄色、最大点の赤の間のグラデーションです。各結果を色に定量化し、そこにあなたはそれを持っています。


1
3Dゲームの場合、または位置が統合されていないゲームの場合でも、これはある半径の円または球体のグラデーションをレンダリングすることでさらに拡張できます。
ダッシュトムバン

2

何らかのアプリを探しているのか、このアプリのアルゴリズムを探しているのかはわかりません。実際に、カスタムヒートマップビジュアライゼーションソフトウェアを構築する喜びがあり、とても楽しいです。

Googleで簡単に検索したところ、HeatMap APIが明らかになりました。

探しているもの(アプリケーションまたはプログラミング)を正確に説明していただければ、より良いお手伝いができるでしょうか?


0

他にできることは、関連データをCSVファイルなどに出力し、統計ソフトウェア(Microsoft Excel、LibreOffice Calc、R、またはGNUPlotなど)でインポートして、グラフを出力することです。シェルスクリプト(Windowsを使用している場合はバッチ)について少し知っている場合は、おそらくすべてを自動化できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.