機械学習周りのプログラミング中心。 ポケモンバトルAI本通販中(4/5まで)

コミックマーケット97 振り返り(出展側)

当ブログのサークル「ヤマブキ計算所」は2019年12月31日にコミックマーケット97(コミケ)にてポケモンバトルAI本「PokéAI」シリーズを頒布いたしました。

まずは会場でお買い上げくださった方に感謝申し上げます。会場に来られなかった方にも電子版(PDFダウンロード)については以下のサイトにて有料配布しておりますのでご利用ください。

select766.booth.pm

以下では今回出展の感想・制作過程などを述べます。事前手続きがすべてオンライン化されている技術書典とは手続きに差異があり不安な部分も多かったので、出展のためのテクニカルな部分は感想とは分けて別の記事にまとめたいと思います。

出展の経緯

私は今まで技術書典に2回サークル参加しておりましたが、コミケは初のサークル参加です。 コミケへの一般参加は10年ほど前が初めてで、知人が出展していたこともあり、いつかは出展してみたい同人誌界のトップカンファレンスという認識でした。 ITエンジニアに親和性の高い技術書典で同人誌即売会の最低限のノウハウを得られたと考え、敷居は高いものの以前より出展してみたかったコミケへ参加申込し、抽選に通りました。

研究開発・執筆

今回のテーマはポケモン金銀のルールに対応したAIの開発で、オープンソースのシミュレータの仕様を読み解くところから始まりました。 既存のコードの多くが使えず、一部使える部分を切り取って新システムに用いるという形になりました。 生活が忙しく時間が取れたのが10月以降で、仕様を読み解いてランダムな行動をするAIを作るところまでで11月に入ってしまいました。 本来想定していた制作過程は、新たな機能が実装できるたびにブログ記事を書き、それを再構成して出版するというものだったのですが、ブログ向けに情報を整理する時間が無くなってしまいました。 システムは主にパーティ生成パートとバトル中の行動選択パートに分かれるのですが、金銀の新要素である持ち物を考慮したパーティ生成の実装が12月にずれこみ、いよいよ時間がないという状況になりました。 これが動作することを確認したうえでバトル中の行動選択のための強化学習を実装し始め、デスマーチ状態になりながら実装を終え、なんとか本シリーズの流れである「提案手法→評価」という流れを作れたという感じです。 次回はもっと余裕のあるスケジュールにしたいですね。。。

利用していた強化学習ライブラリChainerRLが開発終了の宣言がなされてしまうという不測の事態はありましたが、考え方や実装方針自体は汎用的だと思われるので予定通りコードの解説を掲載しました。

入稿

今回新たなチャレンジとして、表紙をカラーにしました。きれいなイラストが描けるわけでもないので必要性は薄いのですが、イベント会場で本が並べてあるのを見るとモノクロは見劣りするという印象があったのでコストはかかる&デザインセンスが問われるものの頑張りました。表紙のデータはWordで作っていて、表表紙と裏表紙それぞれをB5サイズのPDFとして入稿しています。本来印刷で必要になるCMYKカラーではなくRGBカラーではありましたが、期待通りの印刷になっていました。また、この方法だと塗り足しがつけられないので紙の端の部分まで色がついているようなデザインは作れません。次回はその部分にもチャレンジしてみたいと思っています。

2020年3月の技術書典8への出展が決まっていたこともあり、200冊の印刷としました。ページ数が従来より多く、カラー表紙にしたこともあり1冊の単価が270円となりました。過去作は1冊500円で頒布しており、在庫を抱える期間があり厳しいのは確かですが価格は据え置きました。700円のように端数を出すと現金の扱いが面倒ですし、神絵師の作品ではなく仕事に役立つ本でもないので、買う側の立場だとこの分厚さで1000円は高いという意識です。

出展準備

入稿後は広報を含めた出展準備です。

コミケのオンラインカタログはcircle.msというサイトで管理されており、頒布内容や関連サイト(pixivなど)を掲載することができます。掲載できる情報が多くて大変ですが、できるだけ埋めるようにしました。 また、pixivに新刊の試し読み版を上げてみました。pixivでは連番の画像ファイルを上げることができるので、https://smallpdf.com/を使ってPDFファイルを連番画像に変換し、イントロダクションの全文とその後の部分の4ページごとに1ページを上げるという形をとりました。この宣伝にどの程度効果があったかはわかりません。

出展の前日にサークルスペースを下見すると、建物の入り口から見える場所であることがわかりました。そのため当サークルや近隣に興味がある人でなくても目に留まる可能性があるため、急遽ポスターを作成することとしました。上部に「ポケモンバトルAI」と大きく書いて残りを新刊の表紙画像で埋めました。コンビニで印刷できた最大サイズのA3で用意しましたが、当日周囲を見るともっと大きいほうが良かったと感じました。

ワンオペは厳しいため売り子を募集しました。過去のイベントでやってくれていた人は都合がつかず、同人誌即売会参加経験のない別の知人(有名大卒高給取り)に依頼することとなりました。 万一自分が急病などで欠席した場合、印刷会社から搬入された本が放置されて迷惑をかけてしまうため、サークルチケットと非常時対応文書を作って知人に送付しました。こんな感じです。

f:id:select766:20200108221600p:plain
売り子非常時対応

自分が音信不通レベルの急病になったことを想定したときに搬入済みのものがどうなるのかネット検索しても分からなかったので、慎重すぎる印象はありますが対策を打っておきました。

当日

初めてのサークルチケットでの入場を経験して設営を行いました。

建物の入り口が見える場所だったので、開場とともに行列が入ってくる様子は壮観でした。

時間ごとの頒布冊数を示します。

f:id:select766:20200108203704p:plain
頒布冊数時系列

最初の1時間は人が入ってくる割にはほとんど売れないという状況でした。この時間に入ってくる参加者は始発組レベルで、何時間も待って得た数十分のアドバンテージを当サークルの訪問に費やすのはもったいないので予想通りです。その後建物が満員状態になりどんどん売れました。全巻まとめて買うという方も多く、新たな場で頒布した甲斐がありました。

技術書典には「かんたん後払い」というスマホアプリによる電子決済システムがあるのですが、コミケにはないためpixiv pay を導入しました。現金決済におけるレジ機能も担ってログを取ってくれるため、それを取り出して上記の時間帯ごとのグラフを作成しています。しかし残念ながらpixiv payによる決済は0件でした。手数料はかかるものの原価割れはしないので、1冊でも多く売れるならぜひ使ってもらいたかったのですが。苦言を申し上げると、twitterが開店休業状態だったり、お金を扱うアプリなのにまともなマニュアルが見つからないなど広報に難があるように思います。

ともあれ、大したトラブルも起こらず多数の参加者に来ていただくことができ、満足いくサークル参加となりました。

FAQ

内容に関して現場で聞かれた質問について。

  • Q ポケモンの最新世代ではやらないのか?(現在だとサン・ムーンやソード・シールド)
    • A (ダブルバトル以外の)ポケモンバトルのルールの本質的な部分は金銀世代で十分と考えており、アルゴリズムの探求に興味があるため、技やポケモンの種類が増えて計算量が増加する新しい世代では当分研究するつもりはありません。アルゴリズムが十分確立し、計算コストさえかければより新しい世代でも良い結果が得られる見通しが立てば実験するかもしれません。
  • Q 実機ではやらないのか?
    • A ルール上構築可能なパーティを大量に自動生成できる前提で最適解を求めることに興味があるため、まっとうなプレイではポケモンの育成という段階が必要な実機での実験は困難です。セーブデータの改造を行えばシミュレータを実機に置き換えられる可能性がありますが、オープンソースのシミュレータがある状況で採用するメリットは小さいです。またネット対戦のあるゲームなのでチート行為を行っていると誤解されると無用なトラブルを招くためやっていません。

おわりに

コミケへ念願のサークル参加を実現し、貴重な経験ができました。次回は3月1日に技術書典8にてよろしくお願いいたします。