2016年12月5日月曜日

次回更新予定その2

とりあえず変化球はこの形式に決まり。
表示する順は今は数値順ですが方向順でも並べられるようにするつもり。
旧式のものを残すかは未定。
プレイヤーが変化球を編集(ベースのスライダーやカットボールなどを編集or選手の能力を直接編集)できるようにするかは未定ですが、
もしそうなったときに旧式のものは邪魔なので。
成績は表示する量を増やしてみましたが、場所を変えたせいで視点を上下しなきゃいけなくなってちょっと見づらいかな~という気がしなくもない。

それとは別に、100段階にしたい特殊能力も多数。
例えば対左・右はミート・パワーを左右別に分けると現状より更にパラメータが増えすぎるので避けましたが、特殊能力を細かくするのはあり。
また死球避け系は3段階しかなく、暴投や与死球率に至ってはコントロール依存。
後者は制球を3つに分けて与四球・与死球・暴投から制球を表示みたいな感じにしようとも思いましたが最終的にはやめました。
この辺も細く設定できるようにはしたい。

それから、成長バランスもちょっと弄っていて、前はなんか面倒な式にしていて成長値についてもざっくりした説明しかできなかったのですが、今回からは経験値がたまったときに能力が上がる確率に変わりました。
プロスペクトのいわゆる素材型の選手を再現する際、成長値よりもピーク年齢に強く依存してしまう問題があり、以前からピーク年齢が早い選手ほど成長しやすく劣化を緩めるなど工夫はしていましたが、それもちょっと限界かなと思ったり。
OOTPの成長システムを調べたところ、PECOTAやZiPSで求めた成績予想を元にポテンシャルを割り出しそれに徐々に近づいていく・・・みたいなシステムらしく、すごく合理的なシステムだなあと改めて関心。

よくある画面の大きさの要望について。
だいぶ前に一回広げましたがやはり足りないと思う場面はあるのでいずれ広げたいです。
しかしその作業が糞面倒くさいのも事実。前やったときは何ヶ月かかけてやったので。
単純に解像度そのままでウィンドウ二倍とかならいつでもできますが。

2016年11月18日金曜日

次回の更新予定

Twitterでも言っていた通り、12月中には公開予定。
普通に引退選手追加しようとするとメモリ上限に引っかかるので難航。ていうかここを解決できたら常に悩みの種になりつつある選手データの上限もどうにかできます。
引退選手を実装するつもりでやってたのでコーチ・スカウトの入れ替えができずそれらの能力が空気化。
ドラフト指名選手履歴も引退選手と連動させたかったのですがやはり無理。
あと怪我絡みはもう一度練り直す必要がありそうですね。
ついでに、シーズンオフも0.01公開のときに短期間で作ったスパゲッティコードなんでいつか作り直したい。



それはそうと、変化球表示形式の改善案。
画像はイメージ。
実はこれ、某氏が最初に採用していて最終的にボツになったもののパク・・・オマージュ。
 これのメリットは100段階表示に対応してる点、球種が多くなってもしっとりとしていてそれでいてべたつかないすっきりとした見やすさが確保できる点、第二変化を二球種持つ投手(カーブ・スローカーブ・スライダー・スライダーなど)が作れる点などなど。
デメリットは市販の大手野球ゲームから離れたデザインになってしまいイメージをつかみにくくなる可能性が生まれる点、ミニ画面での表示が怪しい点など。
球種は上限8球種になりますが今までもそうだったので、方向の融通がきくようになった分むしろプラス。
ただしこれは今回のアプデに間に合うかは微妙。
まだ怪我人リストとかも作りたいので。
それと、最近のパワプロのように取得してない特殊能力は詰めて表示すべきかなあと。
選手能力画面の半分くらいは普段使わない無駄なスペースで埋め尽くされてることになるのはちょっと。
特殊能力自体、削除しても構わないものがほとんどなんですが、選手の個性付けに一役買ってる面もあるのでまあ。



今開発中のバージョンですが、各球団の詳細な成績データもある程度見られるようになったのでそれにあわせてちょっとだけバランスを弄りました。
具体的には二番打者の打力を下げました。
今まではOPS順だと4>3>5>1=2>6>7>8みたいな関係になっていました。
過去5年のNPBの打順別成績がこちら。


流石に打順を決めるときに2番打者より7番打者の打力を優先させるなんて、
現場ではそれが当たり前だったとしてもゲームでわざわざやらせたくはない。
なので結構難儀しました。

さて、打順は選手の能力・成績に応じて変えるため打順成績も采配如何で決まる部分が大きいのですが(そのため年度ごとで大きな差が出ない)、ポジション別の成績となると話は別です。
 強打の選手を一塁や外野に回したりするケースもありますが基本的には選手の能力次第なので、短期的なスパンで見れば遊撃の方が二塁手よりも平均成績が高かったり、捕手が高い打力を持つこともあります。
ゲーム内でも打てる捕手がたくさん出ることもあれば、打てない左翼手ばかりになることもあります。
そのあたりは長いスパンで見た調整をすべきではないかと。

2016年8月26日金曜日

先発の勝ち星が少ない

二軍戦のHRが少ない問題と並んで問題視している、先発の勝ち星が少ない問題。
とはいっても極端に少ないというわけではないですが。たまに最多勝が13勝とか12勝とかになってしまいます。
100年回してみたデータ。
saita.png

ちなみに過去20年の最多勝投手の勝ち星の数分布。
saita2.png

最多勝投手ごとではなく勝利数ごとにカウントしているので同時受賞は1回しかカウントしていません。
一応13勝で最多勝は40分の2回。ゲーム内での発生率はもうちょっと高いかな・・・
これよりサンプル範囲を広げると先発完投型の時代に寄ってしまうので限界。
ていうか20年前ですらリーグ完投数今の3倍とかですし。
MLBをサンプルに含めるのには起用・試合数の関係でもっと無理がある。

saita2.png
セパでも傾向に大きな違いは見受けられず。

・勝ち星を消される?
まず疑ったのは中継ぎが追いつかれまくって勝ち星を消されるパターン。
Kazmix Worldというサイトのデータによると、先発投手が勝ち投手の権利を持ったままマウンドを降りてその後追いつかれた割合は
NPB全体で2011年は0.146、2012年は0.164、2013年は0.182、2014年は0.185、2015年は0.144。
2011~2012は数字が低めに出ている可能性は否めないが、大体0.1台後半くらいのイメージ。
ゲーム内はというと同じく100年回してみた平均が1.78。うーん、そんなに高いとは言えない。
また、母数(勝ち投手の権利を持ってマウンドを降りた数)の方も年平均600↑で同じような数字に。
・先発が早く降りすぎ?
先発投手の平均投球回数は6回前後になるようにしているのでそんなに早くもないはず。
勝ちがついた試合の平均が7回超、負けがついた試合だと5前後という点も現実に近い。
しかし平均は平均でしかないので、最多勝を取りやすい投手は勝ちが付くまで投げ続けたりするのかもしれない。
完投が多いと勝ち星が付きやすいですし。
・継投の思考ルーチンに問題?
一番厄介なのが、中継ぎの継投がおかしいのが原因の場合。何せこれという解答がない上にデータも少ない。
とりあえず勝ちパターンの成績でも求めようと思い、
ここ何年かから先発に勝ちがついた試合・負けがついた試合の中継ぎの失点率を比較。
勝ち:1.77
負け:4.29
思いのほか明白に差がついた。そしてゲーム内で計算したところ大体同じような割合の数字に。
それもそのはずで、勝ちが付いた試合のデータは「勝っている局面で出てきて勝ちを消さなかった(抑えた)データ」なのに対して、
負けのデータは「負けている場面で登板して先発の負けが消えなかった(失点した割合が高い)データ」になってしまうため。
そうなるともはや起用法云々の話ではなくなってしまう。
しかし起用法や能力に左右されにくいということは、逆に言えば勝ちパターンで使う投手は
このくらいの成績を残せるのなら勝ち星を消されること無く安心して使えるというラインにもなりうる。
って失点率1点台のリリーフなんだから当たり前か。
逆に勝利を目指すという観点から見た場合失点率4.29より失点率の悪い投手を投げさせるのは意味がない。
サンプル範囲の全体の救援失点率が3.83なので1.12倍。リプレイスメント・レベルよりもややハードルは高め。
あくまで少ないサンプルからのデータで、それぞれの平均を割り出しただけですが。
今度は原始的なやり方で勝ちパターンの成績を求める。
各球団のリリーフの投球回数上位3人とそれ以外の中継ぎ成績の比較。
今回は面倒臭いのでデータは2014年のものだけ。
joui.png
この手の数字では当たり前になりつつありますが、上位3人は失点率<DIPSなのにそれ以外は失点率>DIPS、
被BABIPは上位3人<それ以外なんですね。
内容は良くても結果が伴わなければ重用されないということ。
実際にゲーム内で回したデータで計算してみたところ、やはりこのような比率となりました。
これだけで判断するのは早計ですが、AIが極端におかしな挙動をするということはなさそうです。


という、ここまでが先週までに下書きしてた内容。
しかし、年度ごとの投手データを見ているとなんとなくわかってきたような気がします。
おそらく理由は完投の減少。
2012年まで、1球団あたりの平均完投数はずっと10以上をマークしていてましたが、
2013年以降は7~8程度。今季も1球団あたり6.5完投なので、フルシーズンに換算すると8.07となります。
ゲーム内ではチームあたりの完投数が大体このへんの数字になるようにしているつもりです。
そして、記事の最初にサンプルをとった20年のうち17年は今より完投が多かった年のデータが含まれているのです。
試合数が130試合くらいの時代も含めてるんだからとんとんだろ、と思われるかもしれませんが、
10年前の2006年ですら15.75。今の倍です。
なお最近3年のNPBにおける完投数と勝利数の相関は0.691と結構高いものになっています(完投が多いピッチャーはすなわち長いイニングを投げる能力と失点を抑える能力を兼ね備えていることでもあるので、ちょっと詐欺っぽいですが)。
ちなみに防御率との相関はほぼ認められず、失点率とは-0.242でそれなり。対象を規定以上に限定しても同様の傾向。
つまり13勝前後の最多勝がたまに起こりうるのが現在のNPBであるという仮説が立てられ、ゲーム内でもそのようになっているのだと思われます。
根拠としては弱いですが、完投数が今の水準である2013~2015のうち2014年にも13勝の最多勝が生まれています。
ちなみに、ver0.301では全体的に完投数・投球回数を減らしているため、実験データより低めの数値が出る可能性があります。
ほとんどの試合で完投したり全然完投しなかったりと、スタミナ関係のバランスは時代ごとで変わるので、設定でそのあたりを変更できるようにするべき?

2016年7月1日金曜日

PennantSpirits ver0.30

セーブデータが巨大化しているため前よりダウンロードに時間がかかります。

追加したもの
・二軍戦および二軍オーダー設定・投手配置設定、二軍成績(左上の采配/○軍や○リーグ成績をクリックで切り替え)
・日別成績
・年度主要選手
数は少ないけどあれば嬉しい機能ではあるはず。

二軍戦を始め試合バランス調整は割りと投げてます。
次のアプデでミートやパワーの細分化を行うのでそれまで放置。データインポートや新人能力も同じ理由で次回以降へ。後回し。
投手の直球が弱い云々も後回しです。
あと二軍戦の成績編集できません、試合見れません。
二軍戦自体は現実の野球に近づけるためというよりは二軍戦成績などがあったほうが面白いだろうという認識で作ったものなので現実に即した形に拘るつもりはないです。
そのためオールスターやプレーオフもなし。
また、能力査定オフにしてテストプレイしたので推奨設定もオフです。これも次回システムを変えるつもりで放置してるため。
多分オンにすると二軍選手の能力が一軍選手の能力超えていくのであれなことになります。
二軍戦のおかげで全体的にやや重くなってます。
二軍戦のオンオフ切り替えは実装しない予定。二軍戦ありきのバランスにするため。

こっそり援護率、捕手別防御率、セーブ成功率なども追加。
色々復旧と追加をしたのでバグ多そう。報告お待ちしております。

2015年12月31日木曜日

PennantSpirits ver0.20

進捗をTwitterでぽろぽろこぼしていたのでそこそこ大きな要素だけ。

・変化球100段階化、直球系の変化レベル導入
今までに比べて抑えるのに必要な変化レベルのハードルがかなり高くなっているので、
恐らくそのままデータ使ったらかなり打高になります。
一応こちらで何十年か回したデータを用意していますが。

・投手評価値の見直し
上の仕様変更に伴って。今までは球種を見ずに変化レベルだけでざっくり評価していましたが、
今回は球種ごとに評価を変えています。まあ普通にプレイする分にはあんまり影響ないんですが。
野手の評価値はまたいずれ見直します。

・成績書き出し
これが欲しかった人にとってはあるのとないのとでは結構違うんではないかと。結構適当。
選手データ画面の右上の歯車から。保存先はtxtファイルになっています。

・全体的なUI改善
大体フォントの変更。
しかも半端なところで中断したので旧式のが残ってる部分がかなりあります。

・個人成績画面の設定
項目が増えてくると別に必要ない、興味のない指標が邪魔になってくる人が出てくると思ったので。
右上のスパナマークから設定画面を表示します。

・画像差し替え
所謂MOD的な。
picフォルダにデフォルト画像と同名のデータを入れておくと画像が変わります。
よくわからない人はダウンロードしてからpicフォルダ(pl_icon.pngやtitleback.pngが入ってるやつ)を別の場所に移してみてください。
共通オプションからON/OFF切り替え可能。

・シーズンオフのスキップ
Zキーを押すと日程ボタンが春キャンプ前までスキップのボタンに変わります。
スキップ中は設定でオンにしている場合のみCPUが補強を行います。

0.201での追加点
・シーズン中の新人エディット
マスターモードオンで新戦力→Zを押しながら新外国人選手獲得で新人選手。
春キャンプ後からドラフト指名までの間にエディットしてください。

・シーズンオフのシステム画面
ただしセーブは不可。

・打撃成績画面でポジション別表示
a_20160101000031d39.png
むしろなぜ今までなかった。

2015年11月23日月曜日

近況

・デザインの一新
 ごちゃごちゃしていて見辛い的な意見が前からちらほらあり、
 長年同じUIで使い続けている自分はさほどそう感じていなかったものの
 どうにか見やすい画面にできないかと考えた末にフラットデザインに行きつきました

 確かに見やすい。title.png

 そしておしゃれ。こうして見ると改めてフォントのダサさが浮き彫りに・・・・
mainmenu.png

 フラットデザインにおいては縁取りは思いっきり邪道なんですが、
 選手アイコンの区切りが判断しにくいからここは縁を付けるかも。
order.png

 課題は一番の難点である成績画面の表の表示。
 フラットデザインは別に複雑でデータ量の多い表を表示するのに向いているわけではないですし。
 まあいろいろ考えてみます。

・変化球まわり
 今まで特殊能力の直球が役割を担っていた投手の速球に球威を設定。
 同時に変化球のレベルを70段階から100段階に。
 やはり70段階はしっくりこないし、100段階化は前からやりたことではあったので。
 数字変えるだけなら簡単なのですがそれに伴うバランス調整と見た目を変えるのが大変。
 今はオプションで矢印(パワプロ風)と色分け(ちょっとプロスピ風)を選択できるようにしているのですが、
 矢印の方は最初期に作ったものなので拡張性や汎用性が皆無。コードも長いし。
 正直、矢印は廃止してもいいかなとは思ってます。
 スペースの問題で今回から導入する直球の球威が表示できないのは致命的で、
 7段階しか表示できないこともあって今後の展開の障害になること間違いなし。
 お気づきの方もいるかもしませんが自分はテストプレイ時にほとんど使っていません。
 とはいえ、パワプロ風の見た目でとっつきやすさを確保していた部分があるから悪いことばかりでもないんですが。

 実名選手の再現をしたい人はしばらく待った方がいいかもしれません。

2015年11月17日火曜日

いまやってること

成績書き出しはβ版のころから作ろうと思っててそのままだったので作りました。
a_201511171840355ea.png

二軍戦にとっかかってましたが二軍用のオーダー設定とかも作らなきゃいけないことに気がついたので今回は途中止め。

今は日程生成に取り組んでいますが、正直難航しています。
今まで日程ははめ込み式というか、あらかじめ日程のひな型を決めておいて順位で組み合わせを決定といった形にしていましたが
2015年仕様や全160試合仕様など日程のパターンを変えたいとき、もう一度全カードをこちらで組みなおしてやる必要があるわけです。
この作業が非常に面倒くさい。
ということである程度ランダムで日程を生成してくれるプログラムを組みたいのですがこれが難しいんです。
とりあえずリーグ戦を組むとして2チーム×3対戦×6カードで総当たり。同じ組み合わせでホームビジター入れ替えてもう1節。
これで全チーム2試合ずつ(2×5)、ホーム・ビジターでもそれぞれ1戦ずつになります。これを14回繰り返して140試合。
こう書くと簡単そうに見えるんですがその1節を生成するプログラムがスマートに組めないのです。
手を抜いてある程度パターン化してもいいんですが今後二軍戦用のカレンダーを組んだりチーム総数を変えられるようになったり
したときに汎用性が無いと困る。
なのでだれか代わりに組んでくれる人を募集します

以下スレとかコメントとかへの回答。

Q.年俸が高騰しまくって辛い
A.まだその辺は調整中なので・・・
とりあえず少し要求金額を落としてみます。
Q.外人投手弱すぎ
A.最低レベルを上げて対処します。
Q.打高すぎるor投高すぎる
使用球を多少細かく選択できるようにします。
Q.伊倉が強すぎ
A.能力自体はそうでもないような、と思ったらピンチ+系や対走者+系がちょっと壊れてるので要調整。
Q.引退選手を見たい
A.技術的に不可能ではないですが全部記録していくと100年もすればデータ量が大変なことになりそう。
現実的には保存する選手は選択とか最新1000人までとかになるかなあ
Q.守備能力を0にできない、投手の野手練習が無意味、2年目のCSがおかしい、などなど
A.バグです。次回までには直します。