NetworkXでロックマン2の8体ロボ攻略順序を図化
NetworkXの本を紹介しましたので実践してみます。今回は分析とかは抜きで、図化することに特化してみました。3冊のうち、単純なネットワークであれば、秀和システム『Python実践データ分析100本ノック』が一番わかりやすいと思います。
図化するデータ
単純な点であれば、A、B、Cと適当にやればいいのですが、それでは面白くないので。ふとYoutubeでテレビゲームのロックマン2の動画を見ていたのですが、この8体のロボを倒す順序って違うものだなあと思い立ったわけです。
そもそもロックマン2を30年前に現役でプレイした者としては、未だに動画(TASも含む)の新作があるのは凄いなあと思う次第です。まあ、発売当初のファミコンカセット以外にも、リメイク版とか移植版のようなものがあるようなので。
カプコンのサイトを見ると、未だに発売されているんですね。パッケージ版とかダウンロード版とか、最近ゲームをやっていない私にはついていけません。通販のサイトではプレイステーション4の取扱いがあるようです。昔はメーカー自体がマーケティングをするとか考えられませんでしたよね。
それで、結果を言うと30サンプル集めました。分析までいかなくても、比較とか傾向とか見られるのかと思ったのですが、イマイチな結果となりました。まあ図化を目標としていますので、これでも大丈夫かと。
データの収集は以下のような条件で行っています。
- 動画はYouTubeのみ。
- オープニングからエンディングまでプレイしているものが対象(分割されてアップロードされているものも含む)
- 視聴して8体ロボと、ワイリーステージのボスラッシュそれぞれの攻略順序を控える。
これらのデータから以下のCSVファイルを作成。もうわかる人にしかわからない世界です。
集計した上で、まずはExcelでグラフ化しました。最初に倒すやつの傾向とかは分かるのですが、それぞれの順序はわかりません。これを図化しようというわけです。
NetworkXで図化
早速やってみます。初心者なので、コードはぐちゃぐちゃです。機会があれば公開します。
まず、ロボットをノードとして、選択画面と一緒の座標に配置します。その後倒した順序にエッジを作成します。
2つ飛ばしているところがわかりにくい・・・。ネットで検索したら、こちらにエッジを曲線にする方法がありましたので参考にさせてもらいました。
だいぶわかりやすくなりました。スタートとゴールもわかりやすくします。ここで役に立ったのが、技術評論社『PythonユーザーのためのJupyter[実践]入門』です。中盤に図形描画の項目がありますので、そちらを参照して円を描画します。
これでわかりやすくなりました。では30サンプルを以下に表示します。
続いてワイリーステージの8体ロボです。こちらはあのカプセル?みたいなやつの配置に合わせてあります。
いかがでしょうか。文字が小さいですが、画像サイズに限界がありますのでご勘弁を。
まとめ
NetworkXでの作図ネタとしては十分だったのではないでしょうか。予想ではだいたい同じ傾向になるかと思っていたのですが、そうでもありませんでした。
要因しては、「ロックマン2をやってみた」といった動画が多く、初めてプレイする方もいました。そのため効率的な攻略順序、つまりボスの弱点の武器やアイテム1号等の入手に重きをおいていないプレイによるものだと思います。
せっかく作ったので、引き続きネタにしてみようかと思います。