つくポケを振り返って
俺がつくばポケモン大好きクラブ、通称つくポケの存在を初めて知ったのは大学2年の6月、TLにこのツイートが流れてきたとき。
最初に思ったのは「なんでくら寿司?」ということだったが、とにかく、こんなものいつの間にできていたんだろうという感想だった。気にならなかったわけではないが、文面に「顔合わせ」と入っているのもあって、メンバーはもう確定していて、新たに募集しているわけではないのかと思ったのであまり深追いはしなかった。
ツイートの日付を見てもらうと分かるが、実はこの時期はBW2の発売と重なっていて、俺のポケモン熱は5歳からのポケモン人生の中で一番の盛り上がりを見せていた。
それでいて、大学2年の6月。適度に暇である。【つくばポケモン大好きクラブ】とやらの存在をそのまま見過ごせるわけはなかった。ということで、とりあえずそのツイートの主であるハイタカはフォローしておいた。
それなら早く連絡をとって加入すればよかったわけだが、いかんせん実態が分からない。T-ACTで活動していることは分かったが、T-ACTがよく分からないので少し気が引ける(当時は意識高い系のわけのわからないセミナーの後援組織かなんかかと思ってた)。
そうこうしているうちに夏休みが始まり、終わる。大学生の長い夏休み中はもちろん、ポケモンに明け暮れていた(と思ったが、Twilogによると実際はPSPの「那由多の軌跡」に明け暮れていたらしい。思い出は美化されるもの)。思い出したようにT-ACTのつくばポケモン大好きクラブのページを見ると、9月8日に初(?)ミーティングをやるようである。
さすがにもう覚悟を決めようと思った。初ミーティングというキリの良いタイミングは逃したくなかったからだ。
結局当日の朝まで悩んだのだが、朝の8時にわざわざ起きだしてTwitterを開いているところからして答えは決まっているわけで、
最高に分かりづらいが、これがつくポケ入りを決心した瞬間のツイートである。
「つくポケに入る」とは一言も言ってないあたりが俺の人間性を伺えるところであるが、とにかくこの後正式にT-ACTに登録し、その日のMTに参加して、晴れてつくポケ入りを果たすこととなった。
普通に考えて悩みすぎなのだが、俺は1個100円の栗どら焼きとチョコどら焼きのどちらを買うかで5分程度思考するレベルの優柔不断なので仕方ない。ちなみにチョコどら焼きはマズかった。
そこからつくポケ公認までは、ひたすらGoogleの素晴らしさを宣伝するおじさんと化していた。つまりひとたびGoogleアカウントを取得すれば、メーリングリスト・ブログ・ファイル共有・Wikiが全て1つのアカウントで、無料で実現できること、その素晴らしさを説いた。結局つくポケは創立から今までこの形態で問題なく運営を続けているわけで、これはがりゅうさんの素晴らしき功績として誇りたいところだが、たぶん元々ハイタカも同じことを考えていたと思うので、あまり関係ない。あとは、クイタラン人形を並べてブログのヘッダー画像を撮った。
2013年3月22日に、つくばポケモン大好きクラブが次年度から一般学生団体として公認されるとの連絡が来た(ハイタカ宛)。つくばポケモン大好きクラブ Epsode: 0 終了である。
----------------------------------------------------------------------------------------------------------------
2013年度。新歓で1年生が入ってきてようやく普通のサークルらしくなった。KKK(関東国公立交流会)などもあって他大学のポケサーを意識するようになり、その界隈のフォロワーも増えた。ツイート数も増えた。そしてこの頃から変なbotを作り始める。
個人的には、12月に行われたポサミ(全国ポケサーサミット)が印象に残っている。批判的な勢力も含めて、全国のポケモンサークルの注意を惹きつけたイベントだったからだ。素直に、ポケモンサークルってこんなにあるのかと感心した記憶がある。あとマスダが見れた。
ポケモンへの興味はというと、ポケサー員として対戦イベントに参加する機会も増えたので、前半は対戦に時間を注いだ。XY発売前後からは個体値の生成過程やセーブデータ解析の可能性など、内部のゲームメカニクスの方に関心を向けるようになり、海外フォーラムも覗き始めた。
----------------------------------------------------------------------------------------------------------------
2014年度は役職も引退し、一応だが研究室というしがらみもできたので意図的に活動に参加する回数を減らした。というか元々兼サーしていたもう1つの方の活動にちゃんと参加するようになった。すると不思議なもので、ポケモンモチベもどんどん落ちてくる。残念ながら社会的にはそれで全く問題ないのだが、対戦以外のイベントにも参加しなかったり、段々と出不精になっていったのは良くなかったかもしれない。忘年会にはきちんと参加してデカイ枕をプレゼント交換できたのでよかった。
ポケモンモチベが落ちたと言っても、アプローチの方法を変えただけでそれなりにポケモンのことは考えていた。自分の頭だけで考えて対戦をすると良い成績が残せないことは大体分かってきたので、多少は上がったプログラミング能力を活かして、ポケモン対戦に計算機の力を取り入れる方法を模索していた。とはいえそれはそれで難しいわけで、今のところはタイプ相性の良いPTの自動生成くらいしか実現できていないが…
----------------------------------------------------------------------------------------------------------------
何の技術も身につかない、何の経歴にもならないサークルだが、だからこそ面白さは世界一だった。ポケモンサークルと名乗っておきながら、ポケモン以外でも多彩な活動範囲を持つサークルだった。男11人でスイーツを食べに行ったり、何かを決めるたびにすぐビンゴを始めたりするサークルに入るつもりはなかったのだが、どういうわけか楽しんでしまった。
汗も涙も特になかった気はするが、結局大学生活で一番の思い出になった。
大学2年の夏から2年半、つくポケに居られて本当に楽しかった。
……………………。
あと2年あるやないかーいwwww (大学院進学)
数値計算でポケモンのパーティを作る
※2021/07/07 追記 ブログの移行にミスって画像が消えてます。リクエストあれば書き直します。
ポケモン(シングルバトルを想定)のパーティを数値計算で自動生成してしまおうというお話
PTの強さを数値化できるモデルを用意し、その値が最大になるようなポケモンの組み合わせを探す。
計算は単純なダメージレースだけで、特性や補助技は一切考慮していないので実用性はないが、これから発展させていくとしてまずは現段階での結果報告。
Pokemonクラス
最終的に「全てのポケモンの組み合わせについてPTの強さを計算」という形になるので、ポケモン1匹を表すオブジェクトを用意する。
つまりこのようなクラスを作成して、そのインスタンスで特定のステータスを持つポケモン一匹を表す。
さて、問題になるのがこの中身。700匹以上いるポケモンのタイプ・種族値などの情報をどこから取得するかということ。さすがに手動はアレなのだが
いいものがあった。一応説明すると画像はPokemon Showdown (http://pokemonshowdown.com/)というポケモンバトルシミュレーターのソースコード(GitHubで公開されている)。
Pokemon Showdownは非公式とは思えないほどゲームシステムの再現性が極めて高く、本家の新バージョンが出たときなどの更新も速い。ということでこれのポケモンデータベースを拝借すれば信頼できるポケモン情報が手に入る。
pokedex.jsをダウンロードすれば後はテキストファイルとして煮るなり焼くなり好きに処理できるはず。個人的な趣味だが今回は内容を自前のデータベースに保存し直した。
このデータベースから情報を取得し、前述のポケモンオブジェクトを作成していく。
性格・努力値振り推定
ポケモンクラスの各メンバーは基本的にデータベースから取得すればいいのだが、性格・努力値はいわゆる"育て方"によって異なるパラメータであり、データベースに載っているようなあらかじめ決まりきった設定値ではない。そのため、自分で設定してやる必要がある。
今回は以下のような基準で決定した。
性格
上昇箇所:種族値の最大箇所
下降箇所:種族値のA・Cを比べてどちらか低い方
ただし、
・S100以上の場合無条件でS特化(性格もS上昇のものにする)
・B、DよりはHPを優先させる(例えばABはHAに、CDはHCに変更する)
標準ダメージ比
ポケモン同士の1:1の相性(どちらがどれくらい有利か)を定量的に評価する方法。これを発展させてPTの強さ計算へと結びつける。今回は標準ダメージ比という指標を設定した。
まず標準ダメージの説明
標準ダメージの定義:自分の攻撃タイプのうち相手に対してより有効な方を用いて、威力90の技で攻撃したときのダメージ割合
例えばドリュウズ対ファイヤーだとすると、
ドリュウズのファイヤーに対する標準ダメージD1は、ドリュウズが威力90の鋼タイプの技でファイヤーを攻撃したときのダメージ割合
ファイヤーのドリュウズに対する標準ダメージD2は、ファイヤーが威力90の炎タイプの技でドリュウズを攻撃したときのダメージ割合
これの比をとったものを相性値とする。つまり
ドリュウズのファイヤーに対する標準ダメージ比:D1/D2
ファイヤーのドリュウズに対する標準ダメージ比:D2/D1
であり、おそらく後者の方が大きな値となる。
定義から分かるように、標準ダメージ比は正の値をとり、1より大きければそのポケモンに対して有利で、1より小さければそのポケモンに対して不利である。
素早さの考慮
上の定義だけだと6つの能力値のうち素早さだけが全く考慮されない計算となってしまうので、補正をかけ、先手をとって攻撃することの優位性を組み込む。
A,BのうちAの素早さの方が高かったとする。A、Bがそれぞれ相手の攻撃によってNa, Nb回で倒れるとして、
Na >= NbならばAの標準ダメージ比にNb / (Nb - 1) を、Bの標準ダメージ比にその逆数をかける。
どういうことかというと、先攻で(そのターンの相手の返しの攻撃を食らわずに)相手を倒したときには攻撃回数が実質的に1回増えているという考え。
ちなみに、一発で倒した場合にはこの補正項は無限大になってしまうので、最終的な標準ダメージ比の値の方で適当に上限を設けている。
相性ベクトルの生成
PTの強さ計算の下準備。高度な線形代数を使うわけではないが、情報を二次元的に格納するためにベクトルを使う。
1つのポケモンについて以下のような相性ベクトルを用意する。これはあらゆるポケモンに対する標準ダメージ比の値を各成分にもつベクトルである。
(例)ハッサムの相性ベクトル
実際には、このベクトルの次元は考慮するポケモンの総数になるので、数百を超えるのが普通である。
PTの強さ
一番重要な部分なのでどう計算するか試行錯誤を繰り返したが、計算時間の制約もあり今のところは以下のような単純な方法に落ち着いている。おそらく最適ではない。
ある組み合わせのPTについて、各ポケモンの相性ベクトルを用意する。
各成分の最大値を集めたベクトルを作る。
ノルムを求めてPTの強さとする。
というわけで、PT(ポケモン1~ポケモン6)の組み合わせを総当りして、最大値ベクトルのノルムが一番大きい組み合わせを一番強いPTとして出力すれば目的が達成される。
感覚的には、どのポケモンにも対抗できる手段をもつPTの探索。ただし、ポケモン一種類についての対策度合いを最大値でのみ判断するため、対策の"厚み"とでもいう部分の評価に欠けており、実戦に応用しようとするとPTの一匹が過労死するようなことがあるかもしれない。
計算結果
何はともあれ結果です。
まず、考慮したポケモン集団はデジポケ(http://degipoke.pro.tok2.com/)の「XY環境KP集計」から取得した上位100匹(からミュウツーを除いたもの)
ガルーラ |
ポリゴン2 |
||||||||
サンダー |
|||||||||
エーフィ |
|||||||||
エルレイド |
|||||||||
ラッキー |
サンダース |
||||||||
ヌオー |
|||||||||
組み合わせるポケモンは全てこの中から選び出し、PTの強さはこの集団に対して計算するということ。
結果(生成されたPT)の評価方法について
1つの指標として、ポケモン徹底攻略(http://yakkun.com/)のタイプバランスチェッカーでの評価結果を載せる。
もちろんタイプ相性だけでPTの強さを計算しているわけではないのだが、それでも相性計算に支配的な要素ではあるため。あとポケモンのアイコンをちょうどいい感じに並べてくれる。
さて、組み合わせを総当りして~と書いたが、計算時間の都合上6匹の組み合わせ全て(= 100C6 = 1,192,052,400通り)は厳しかったので、最初にPTの一部のポケモンを指定し、残りのポケモン枠に対して組み合わせ計算を行った。
前3匹を固定(その選び方自体はランダム)して、最適な後ろ3匹の組み合わせを探索した結果を羅列。
ポケモン力が低くて気の利いたコメントが書けないのでただ羅列するだけ。
というわけで、どの場合でも結局のところ似たようなポケモンが出現していることがわかる。
強いポケモンを3匹組み合わせればそれだけで見た目上のバランスはとれるということか。
最後に、前2匹を固定して後ろの4匹を出力した結果。
タイトルを「タイプバランスチェッカーで高得点をとれるPTの自動生成手法の開発」に変えた方がいいかもしれない
nasneを買いました
カテゴリ:自慢
世界一便利なネットワークレコーダー兼メディアストレージであるnasneを買ったら世界一便利な地デジ録画環境が整ったのでレビューっぽいものを書いてみる
nasneとは
nasne公式HP:
http://www.jp.playstation.com/nasne/
ネットワークレコーダー・メディアストレージと聞いてよく分からない人もいると思うが、簡単に言うなら
「テレビを録画して、それを有線LANか無線LAN経由で家のPCとかから見れるようにするやつ」
である。
BDレコーダーと何が違うかと言うと、こいつ本体にはあくまでも撮ったものを保存するHDDしかついていないので、それを視聴するための端末(クライアント)がないと使えない。
BDレコーダーはディスプレイさえ繋げばリモコンで全部操作できるよね。
メディアストレージっていうのはそういうふうに、クライアントがアクセスできるファイルを保持しておく機能のことをいう。
設置
というわけで買いました。
箱から出すとこんな感じ。結構小さい
設置と配線
PS3用地デジチューナーとその接続は必須ではないが一応。nasneと一緒に使えるらしいです。
一応我ががりゅう城のネットワーク構成を図示しておくとこんな感じ
最終的に無線ルーターにぶら下がっている全ての端末(3DSは無理だが)からテレビを視聴できるようになる
LANケーブルを挿した状態で電源が入ると自動的にnasneがネットワークに認識されるので、初期設定はネットワーク内にある端末のどれかから行う。
ここに詳しく書いてあるのだが、一番上に書いてあることもあって今回はPS3からやった。
http://manuals.playstation.net/document/jp/nasne/nasnehome/index.html
実際は、nasneを繋いだ瞬間に初期設定をするよう指示するダイアログが勝手に出てくるので、それに従うだけ。
ちなみに、PS3にtorneがインストールされてない場合は最初にそのインストールが必要になるかも(確か箱の中にシリアルコードが入ってたはず)
torneを起動して、
nasne/「レコ×トルネ」設定を押すだけ。
よく覚えてないが、記憶に残らないくらい簡単な設定しかしなかったと思う。
たぶんこれで初期設定は終了。
PS3から使う
テレビの視聴・録画は先ほども出てきたtorneを使う。
特徴としては、動作がめちゃくちゃ速い。BDレコーダーやTV付属の録画機能とかだともっさり感は否めなくて、番組表を1ページスクロールするだけで2秒ぐらいかかったりするがこちらは全くそんなことはない。
まあゲーム機としての高性能プロセッサを積んであるわけだし多少はね
ただ、録画本数が増えてくると起動が少しもたついてメニュー画面で5秒程度固まる
また、nasneはメディアサーバーとしてもPS3に認識されているため、XMBバーからも色々操作できたりする。
これはビデオからnasneを選んだ画面。実はtorneを起動しなくてもここから地デジを再生できる
PCから使う
本体をひっくり返すと、こんな感じでMACアドレスとファイルサーバー名が書いてある。
このファイルサーバー名をエクスプローラに打ち込むとnasneのディスク領域にアクセスできる。
デフォルトでshere1となっているのがnasneの内蔵HDDなので、その中に入れたファイルはnasneのメディアサーバー機能を使ってネットワーク内に配信できる。
例えば次のようにPHOTOフォルダに写真を入れてみると、
nasneを通じてPS3からも見れるようになる。
さて問題のテレビ視聴機能だが、クライアントアプリケーションとなるのがこちら
PC TV with nasne: \3,240
http://store.sony.jp/Special/Game/Nasne/Pcnasne-dl/
ワンランク上のお値段なのはさておき、PC用に最適化された情報量の多いUIである
こいつの使い勝手より何よりも伝えたいことは、PCでテレビが見れることの素晴らしさ。
まあPT3なんていう有名なTVチューナーはあるが、あれは本格的にPCを録画サーバーにする人向けで、ノートPCや低スペックPCで軽く地デジを視聴したいという用途にはあまりにも大掛かりだろう。
縮小表示や最小化とかもできるので、1日中PCに貼り付いてるような人にとっては作業環境から1.14514秒で地デジ視聴体勢に移行できる神アプリである
それと
キャプチャができる
(ちなみに、普通のPrintScreenキーの機能はアプリ側で封じられてるので別途スクショを撮るフリーソフトかなんかを用意しないとダメです)
スマホから使う
歴史的にいくつかのアプリがあったみたいだが、今はたぶんiOS/Android共にこいつをインストールすればいい
TV SideView: \500
http://info.tvsideview.sony.net/
個人的にnasneの中で一番すごい機能だと思うのだが、このアプリについてはnasneの所属しているネットワーク外からでも利用できる。
事前に同じネットワーク内で機器登録を行い、SENアカウント・Twitterアカウント・Yahooアカウントのどれかでログインしておけば外出先からnasneにアクセスできる。
これはリアルタイムで地デジを視聴している画面。自宅のwifiネットワークではなく4G回線に繋がっているのがお分かりいただけるだろうか
まあさすがに移動中の電車内や、3G回線だとちょっとキツイ。都内なら無料wifiとか4G回線すぐ捕まるし普通にイケるかも
もちろん撮りためてある番組も見られる。録画予約もできる。個人的にはスマホでできる=ほぼいつでもできる なのでとても便利。
まとめ
以上世界一便利なネットワークレコーダー兼メディアストレージであるnasneの紹介でした
こんな記事書くぐらいなんで当たり前ですが個人的には買って正解です。
PC画面から目線を変えずにスムーズに深夜アニメの視聴に移れるのが快適すぎるし、深夜帯でなくても普通にテレビを見る時間が増えたと思う。
あとは、これも自分で使っていて思ったことだけど、年末や長期休暇中に帰省する下宿生には便利かなと思う。
帰省中暇なときに録りためた番組を見て過ごすという選択肢が生まれるし、テレビが家族に占領されているときにも下宿先のnasneを使って自分だけ別番組を見られる。
はて、ぼくはSONYの回し者でもSONY信者でもありませんがこのnasneというやつAmazonでは2万円ほどで買えるそうですね
最後に、本研究を進めるにあたり心の支えとなって下さった椎名心美さんに深く感謝申し上げます。