Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

「カルチョビット」で選手のトレーニングメニューを最適化してみた

3,625 views

Published on

3DSのサッカークラブ育成ゲーム「カルチョビット」で、選手のトレーニングメニューを最適化してみました。
Optimization Night #01 でのライトニングトークの内容です。

Published in: Engineering
  • Be the first to comment

「カルチョビット」で選手のトレーニングメニューを最適化してみた

  1. 1. 「カルチョビット」で 選手のトレーニング メニューを最適化してみた Optimization Night #1 ライトニングトーク 2019/10/15 山本 政 (やまもと まさし) 12019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  2. 2. 自己紹介 発表者 山本 政 やまもと まさし 日鉄ソリューションズ株式会社 技術本部 システム研究開発センター 所属 主な 担当業務  「組合せ最適化」という数学的手法を、 「計画系システム」に応用する  生産計画、物流計画、要員配置計画など 主な 参画事例  Jリーグ・マッチスケジューラー「日程くん」  B.SCHEDULER(B.LEAGUE 試合日程自動立案システム)  日鐵住金溶接工業様 千葉工場 投入計画システム  ほか、製造業向け・鉄道事業者向けなど、事例多数 2 今日は個人の 趣味で来ています 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  3. 3. 「カルチョビット」とは • Nintendo 3DS の サッカークラブ育成ゲーム • 選手を集め、トレーニングし タイトル獲得を目指す • プレイヤーは監督 • 予算内で選手を獲得 • 選手をトレーニングする • 試合では戦術指示と選手交代のみ 引用元:https://www.nintendo.co.jp/3ds/ahbj/index.html 32019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  4. 4. 選手のトレーニング • 試合中に、「特訓メニューカード」を入手 • ランダムに 4~8枚/試合 くらい入手できる • 選手に「特訓メニューカード」を使うと、 メニューに応じて能力値が上昇する 4 引用元:https://www.nintendo.co.jp/titles/50010000010746 キ ッ ク ス ピ ー ド ス タ ミ ナ テ ク ニ ッ ク フ ィ ジ カ ル ジ ャ ン プ メ ン タ ル 疲 労 蓄 積 値 ドリブル +3 +2 +2 +100 ミーティ ング +1 +4 +10 「特訓メニューカード」の例(全32種) 引用元:https://calciobit.com/tokkun/nomal-menu/ 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  5. 5. スペシャルメニュー • 特定の「特訓メニューカード」の組合せで、 スペシャルメニューが発動 • 上手に使えば、能力値を効率よく上昇できる 5 カ ー ド 1 カ ー ド 2 カ ー ド 3 キ ッ ク ス ピ ー ド ス タ ミ ナ テ ク ニ ッ ク フ ィ ジ カ ル ジ ャ ン プ メ ン タ ル 疲 労 蓄 積 値 野人 ランニング ダッシュ エアロビク ス +20 +20 -2 +145 肉体改造 ウェイト ダッシュ ストレッチ +5 +10 +8 +10 +150 執念のクリ ア ヘディング ストレッチ 合気道 +6 +2 +4 +10 +10 +110 マルセイユ ルーレット ストレッチ アジリティ カルチョ ビット +12 +4 +4 +8 +4 +110 スペシャルメニューの例(全132種) 引用元:https://calciobit.com/tokkun/special-menu/ 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  6. 6. 6 特訓メニューカードを上手に組み合わせれば 能力値UPを最大化できる… こ、これは…!! 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  7. 7. こんなの作りました 7 手持ちのカード枚数を 入力して「求解」を押すと… 少々ダサいのはご勘弁を… 画面は tkinter/Python で実装 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  8. 8. こんなの作りました 8 手持ちのカードで 能力上昇が最大と なるメニューの 組合せを導出 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  9. 9. こんなの作りました 9 パラメータも設定可能 ・能力値ごとの考慮重み ・トレーニング回数上限 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  10. 10. 定式化 10 <制約条件> <目的関数> <定義> … メニュー を行う回数 (意思決定変数) … メニュー を行うときに 使用するカード を表す 0-1 のマトリクス … メニュー を行ったとき の能力 の上昇値 … 能力 の考慮重み … カード の手持ち枚数 メニューで使用するカードは 手持ちカード数以内 メニューによって上昇する能力値の 合計を最大化する(重みを考慮) 最適化処理は PuLP/Python で実装 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  11. 11. 成果 • メニュー選択に迷うことがなくなった • 自力でスペシャルメニューの組合せを考えるのは 大変で時間のかかる作業だった → 効果的なメニューを、短時間に組めるようになった • パラメータごとの重み設定機能が便利 • 狙ったパラメータを重点的に鍛えたいときに有用だった • ゲームをより快適に行えるようになった 112019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  12. 12. 成果 • やりこみは中途半端… • エンディングには到達(三冠獲得) • インターネット対戦ランキングで、最高 約700位 • メニューを最適化する以外のゲーム要素も必要 • 「選手寿命をいかに⾧持ちさせるか」が、 最強チームを作るうえで重要 • 選手の疲労をためすぎない • 日本代表に選出される(なぜか寿命が延びる) 122019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  13. 13. 感想 • 手持ちカードでメニューを最適化するだけでは 解決できない課題がいろいろ出てきた! • 使い勝手の良いカードはすぐ無くなり、うまく組み合わ せられないカードがどんどん溜まっていく → 不良在庫をどう捌くか、という課題が出てくる • 次の試合で入手できるカードが予測できないので、 どのカードを残すべきか分からない → 悩んでも仕方ないので、そのときの良いメニューで 先食いしてしまう(全体最適にならない) 132019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.
  14. 14. 感想 • 手持ちカードでメニューを最適化するだけでは 解決できない課題がいろいろ出てきた! • 使い勝手の良いカードはすぐ無くなり、うまく組み合わ せられないカードがどんどん溜まっていく → 不良在庫をどう捌くか、という課題が出てくる • 次の試合で入手できるカードが予測できないので、 どのカードを残すべきか分からない → 悩んでも仕方ないので、そのときの良いメニューで 先食いしてしまう(全体最適にならない) 14 現実の問題と同じだな… と思いました 2019/10/15 Copyright © 2019 Masashi Yamamoto All rights reserved.

×