集合写真を作るスクリプトを書いた※ただしロジは除く
PvPerの皆さんzKillboardはチェックしてますか?当たり前だろ?分かる。というわけで皆が戦った証を残すため、集合写真を作るスクリプトを書いてみました。歴史とまではいきませんが、色々と思い出を残して逝きましょう!
まずは基本的なことから。zKillboardの個々のキルボードのページの右上には「そのシステムの前後1時間にあったキルとデスを列挙するページ(Related)のリンク」があります。
例えば、このキルメールのRelatedのリンクをクリックすると
こんな感じに適当にTeamAとTeamBに分けてくれます。これはこのページの全て or 特定の勢力やプレイヤーを抽出して並べて集合写真の画像を生成するスクリプトです。
This script makes a group photo of players listed in "related" · GitHub
処理系はPython 3.5.3です。適当に上記のリンクのソースコードをコピペするか右上にある"Download ZIP"からソースコードを落として解凍して適当な場所に置きます。コマンドプロンプトを開いて
pip install requests
pip install pillow
python zkillboard_related_image_generator.py
これで使い方の説明文が出ます。まずはzKillboardのAPIからRelatedのデータを引っ張ってきます。APIのURLは"ttps://zkillboard.com/api/related/~"という感じでURLにapiという文字列を足すだけです。上記のRelatedならば
https://zkillboard.com/api/related/30002540/201704220000/
上記のリンクでRelatedのJSONが返ってきます。このJSONを説明すると、まずはsummaryの中にteamAとteamBに分かれた配列が入っています。それぞれ summay->teamA->list, summay->teamB->list と辿っていきます。
- characterID
- characterName
- corporationID
- corporationName
- cticker
- allianceID
- allianceName
- aticker
- shipTypeID
- shipName
オプション名 | 説明(複数指定したい場合は":"で区切る) |
--portrait_size | 取得するポートレートのサイズ。今は32/64/128/256/512が対応している。単位はピクセル。デフォルトは512px |
--aspect_ratio | 生成する画像のアスペクト比。デフォルトだと16:9 |
--select_alliances | atickerを指定したアライアンスだけ抽出する。列挙した順にソートされる |
--priority_characters | FCとか特定のプレイヤーだけ先頭に表示する。 |
--ignore_characters | 表示したくないプレイヤーを並べる |
--reload_json |
試しに全てのオプションを使ってみると
python zkillboard_related_image_generator.py https://zkillboard.com/api/related/30002540/201704220000/ --portrait_size=128 --aspect_ratio=4:3 --select_alliances=SHDWC:JMP-N "--priority_characters=Omochin:Omochin Jp:Omochin Tv" "--ignore_characters=Omochin Com:Omochin Sale:Omochin Help" --reload_json=True
「https://zkillboard.com/api/related/30002540/201704220000/ から情報を取得し、ポートレートサイズは128。アスペクト比は4対3。SDHWC(Shadow Cartel)とJMP-N(Did he say Jump)だけを抽出して並べる。Omochin, Omochin Jp, Omochin Tvというプレイヤーを先頭に表示する。Omochin Com, Omochin Sale, Omochin Helpというプレイヤーを無視する。実行をする度にJSONを読み込む」
この例だとこのような内容の処理になります。とりあえず敵味方関係なくrelatedに載ってるプレイヤーを全部並べた画像を生成したい場合は
python zkillboard_related_image_generator.py <RELATED API URL>
これで動きます。
さぁフレンズとの思い出を残そう!