2033年4月3日日曜日

PennantSpirits

PennantSpiritsホームページ
pennant.webcrow.jp
最終更新:ver0.40

公式Twitter
https://twitter.com/PennantSpirits

2018年1月8日月曜日

PennantSpirits ver0.411

実名選手と同時に不具合などを修正したものを公開しました。
査定については言い訳したい部分がまだたくさんあるのですが今のところは多くは語りません。

不具合の報告の際は、初期データから特定の操作で必ず再現できるものを除き、セーブデータをアップロードしてもらえると助かります。

2017年12月21日木曜日

実名選手査定について

最近はまたあまりできてませんでしたがもうじき公開します。バグを修正した0.411と同時になりそう。
公開前にあらかじめ査定の解説というか言い訳をしておきます。

査定をはじめた段階ではパワプロの最新版はver1.10だったので1.11以降とは違いがある点に注意。

パワー系・ミート系・変化量(奪三振力)・制球などは過去3年の成績をそれぞれ加重し自動査定。
球種はパワプロのものをデータで楽しむで補完する形。
機械による判定なので、縦スラがフォーク判定されてたりシンカーとチェンジアップがごちゃまぜだったりみたいなのはスルーしてますが、
抜け玉らしきチェンジアップやフォーク、実戦でほぼ投げてない球は追加していません。

走力は前は既存の査定を流用していましたが今回はSpeedScoreを当てはめることにしました。
SpeedScoreは特に妥当性が証明されているわけではなく実際の貢献度を測ることのできないお遊びのような数字ですが、
少ないデータから計算できますし結果も「まあこんなもんだな」と納得できる感じがあります。小松式みたいなもの。
過去10年のSpeedScoreシーズンランキング(50試合以上限定)。
ボックススコアから算出した数字でしかないため、ミートやパワーと同じように扱うことができるのが利点。
例えば今年のヤクルト・山田のミートの査定が大幅に下がっていますが(仮に本人の持つ打撃能力は去年と大して変わってないと思っていても)大抵の人は「これだけ打率が下がってるなら仕方ない」と納得するのではないかと思います。
それを走力でも同じように捉えられるということです。
また、同じ理由で出場数の少ない選手は抑えめの数字になっています。

肩力はパワプロからの流用だとあまりに高すぎるため全体の数字を抑えて最低をFにしています。
その関係でゲームではDくらいあったのにめっちゃ弱くなってる…って選手もいるかと思います(そもそもDって下から数えたほうが早いです)

守備は主力選手の場合はRngRなどで修正をかけている場合もありますが大半の選手はノータッチです。

恐らくパワプロの一発・逃げ球・軽い球などは被本塁打率に合わせて設定されていると思うのですが、
このゲームでそのまま付けるとグラウンドボールとの二重評価になりかねないため反映させていません。

回復、スタミナは出場試合や打席数などから算出。怪我などで出場数が少ない選手の問題があったりします。
全体的にかなり手抜きです…

指名順は全選手ドラ1になってますがこれはデータ元になかったため。
気になる人は手入力で直してください。

入力ミスとかでまるっきり違うものもあるかもしれないので、そういうのを見つけたら教えてください。

成長値は大体自動ですが一部のプロスペクトと呼ばれる選手たちは
deltaのランキングや二軍成績を元に独自で作ったプロスペクトポイントを見ながら成長値を底上げさせています。
というかそのままだと二軍選手=一軍で活躍できなかった選手=一軍で活躍できる見込みのない選手=雑魚となってしまい、一軍と二軍で大きな差が生まれてしまっています(特に野手)。
架空新人が次々スタメンを勝ち取る中既存の若手はみんなさっさと引退してしまう一方で既存の一流選手は現役で残り続ける現象が起きていたため、基礎の能力もやや底上げしています。
二軍成績の扱いが結構面倒だったので来年以降もやるなら二軍データもぶっこ抜けるようにしときたいです。

巨人・阿部、阪神・原口はコンバート済みであるにもかかわらず普通にやると正捕手として起用されてしまうので捕手能力を削除。

開始年は2018になっていますが2017の要素と2018の要素が混じっているため結構悩んだところ。
とりあえずデフォを2018からにしとけば各自で2017からに変更できるのでそちらにしています。
2017からはじめるデメリットは実際の2017の成績が反映されない(自動査定にも)点と2017年途中加入の選手が開幕からいる点。
2018からはじめるデメリットは2017年シーズン終了後に加入した選手がいない(丸一年新人のいない空白の期間が生まれる)点と年俸が2016終了時点のものになっているためずれがある点。


こんな感じです。年内には公開する予定です。

2017年10月25日水曜日

生存報告と開発休止

生存報告。
とりあえずここで一度、無期限開発休止(終了ではなく)宣言をします。

作る意欲がわかなくなるのは過去にも何度かありました。そのたびにこのゲームをぼんやりとプレイして選手の成績などを見ていると勝手に製作のモチベーションが上がってきていたものですが、今回はそれが希薄です。

ずっと期待してプレイしてくれていたプレイヤーの方や今は亡きライアル君には申し訳ないですが、思わせぶりな状態で放置して期待を持たせ続けるのはもっと申し訳ないので。
バグへの対応や選手成績データの更新は行おうと思っていますが、やる気が起きるまでは新たな機能を実装したり仕様を大幅に作り変えたりはしないつもりです。
モチベーションが戻ったら作ろうと思っているもの。
  • トレード
    一度実装はしていたのですが難点が多く、AIを組み直して実装するつもりでしたが未だそこに至らず。
  • ドラフトモード
    今はなんJでやってるのかは知りませんが、ドラフトで実在選手を1チーム分指名してパワプロなどを使って編成しオートペナントを回すあれ。
    指名表を作ったりくじの手間を省いたりするだけでなく、「総年俸○万以下」「1球団○人まで・1リーグ○人まで」「5歳ごとにグループ分けしてそれぞれ人数制限」など、
    特殊なオプションを付けて指名選手を選ぶのが簡単になる利点があったり。
    これは結構前から構想があって、タイトルの未定のところから飛べるようにするつもりでした。

  • 過去の年代再現
    要はOOTPのヒストリカルモードのNPB版。
    ただし、OOTPがいずれNPBやKBOなどにも対応するつもりらしいので、このゲームでわざわざ実装する必要あるのか?と思ったり。
  • 守備関係の作り変え
    UZRを実装してWARを表示できるようにしたい。

この数年の間で何度も製作の手を止めたり空白期間があったりした中でよく作り続けられたなと我ながら驚き。
始めたての頃はプログラミングなんて初心者同然でコードも無茶苦茶でした(その辺りに書いたスパゲティコードが後々にまで悪影響を及ぼし続けてますが)。


製作に対する意欲が落ちてしまった理由はいくつかあります。

このゲームを作り始めて学ぶことは多かったのですが、創作欲求が湧いてもペナスピにつきっきりなため他のものに手を出しにくい状況が続いていて、今回これから少し離れて別のものに触っているうちにこちらを作る気力が失われていきました。 *1

また、このゲームの機能を拡張していってもお金が貰えるわけではなく、コネクションが広がるわけでもなく、かと言って今後に活かせる新たな経験が積めるわけではない、惰性による創作がメインになってしまうため、生産活動をしているはずが実質的には消費活動に向いてしまっているのが辛い。
「ゲーム制作初心者は大作を一つ作るのではなく小さいものをたくさん作れ」という言葉はこのゲームを作り始めてだいぶ経ってから知ったのですが、本当にその通りだと思います。

それから2年くらい前にあったデータ消失も痛かった。定期的に開発中のネタをTwitter で投下していけばプレイヤーの反応も見られるしRTなどでこのゲームを知りプレイしてくれる人が増えるのではみたいな淡い期待を持ちつつ、
実際モチベは最高潮に達していましたが、登録して2ヶ月ほどでアレが起きたので一気に色んな面で萎えてしまいました。
そこからどうにか元の形に戻しましたが、ver0.40は最後の力を振り絞ってやりきった感が強いです。


最後に、結構前からよく言われてた「キャッチャーが弱い」について。
これはいろんな仕様が合わさった結果のものです。
☆システムは以前ツイッターで説明した通り野手の場合「攻撃による得点生産力+守備による失点抑止力」の合計となっています。

ところで、NPBにおける捕手の平均OPSをご存知でしょうか。
過去10年で見た場合、大体リーグ平均マイナス.110くらいになるようです。リーグ平均OPSが.700なら捕手は.590。全体的にかなり低く、規定打席数に達する選手もごくわずかです。

ゲーム内の初期選手で言うとこれくらいです。思っていたよりずっと低い打撃能力だったのではないでしょうか。
そのためドラフトなどの初期能力は低めであり、他のポジションと同じように成長させてしまうと打ちすぎてしまうのでそれもかなり抑えてあります。
正捕手のOPSが安定して.800を越えようものならそのチームは常に優勝争いを繰り広げられるほどのすさまじいアドバンテージを稼ぎ出します。

もちろん打撃だけでなく守備も大事だろうという見方もあるでしょうし、実際ゲームでも守備型捕手を獲得するよりそこそこ打てる選手は捕手にコンバートしたほうがずっとプラスだったため、
最低レベルの捕手能力の選手を正捕手に据えると大幅に失点が増えるようにはしました。
ですが「打てるけど守備が残念な捕手」と「打てないけど守備に定評がある捕手」とでは守備貢献度において(打撃ほど)大きな差が生まれません。
この辺も盗塁阻止の捕手の影響力に疑問がある点やリード力の判別が難しい点などのセイバーメトリクスの研究結果に反して差が出やすくしたつもりですが、それでも守備の影響力はたかが知れています。

それらの仕様が合わさり、打力は全体的に低めで安定しており、守備の影響もさほど大きくないために突出した選手が生まれにくいという結果になっているのではないかと思います。

*1:ちなみに今触っているのは野球とは全く関係の無いジャンルです。当ブログなどでもいずれ扱うようになるかもしれません。このゲームを作る過程でセイバーメトリクスなど統計的な視点における野球の見方やデータの扱い方についてたくさん勉強しましたが、その反動で野球関係のゲームはもう良いだろうと…
あと、ゲームに関係なく野球関係の記事は書きたいと思っています。どうしてもゲームを作りながらだとそういう記事が書きにくかったり。

2017年8月3日木曜日

PennantSpirits ver0.41

更新。
来週中には公開しますといいながら全然時間がとれずかなり時間が経ってしまいました。
オフの挙動がおかしかった部分など不具合の修正がメイン。
忙しいのは相変わらずなのでしばらくは同じような状況が続きそう。
アップデートは0.40以降を使用中ならpennant.exeを上書き、それ以前なら 0.40を介してアップデートしてください。

2017年6月18日日曜日

投手のHR/FBについて

以前2軍戦のHR云々の頃に日本語で投手のHR/FB(HR/OF)について調べてましたが、
その時は全然出てこなかったので仕方なく英語の記事を探しました。
するとあっさりFanGraphsで出てきました。

http://www.fangraphs.com/fantasy/pitcher-batted-ball-distance-correlation/
http://www.fangraphs.com/blogs/comparing-fips-and-xfips-using-batted-ball-distance/

Google翻訳にぶち込むだけの簡単なお仕事。

結論から言うと、「フライボールの飛距離は投手が関与できる」。
DIPSの理論で言えば、HR/FBは年度ごとの相関が少ないので外野フライから一定の本塁打数を見込んだxFIPこそ投手の実力とされてきましたが、
100%そうとは限らないということです。
感覚的にも、守備の影響をもろに受けるBABIPと違って球以外には打者と風くらいしか影響を受けないので投手の力がある程度反映されてもおかしくはないと感じたり。
ただしNPBでこの理屈が使えるかどうかは不明。
個人的にはMLBの0.308という相関より高い数値になるのではと予想しているのですが、投手ごとの全外野フライの飛距離データなんて持ってないので…

もし投手の力で飛距離が変わるとしたら、そういったパラメータを追加することで
二軍戦の本塁打数が少ない問題や投手のHR%の年度相関が低い問題などが解決する可能性があります。

2017年6月11日日曜日

PennantSpirits ver0.40

更新方法

過去のものと同様、ver0.313のdatフォルダの入っているフォルダに0.40converter.exeファイルを放り込んで実行すれば変換されます。
不具合が起きるかもしれないので大事なデータの場合は要バックアップ。
後はpennant.exeとpic.penaファイル、それからpast_filesフォルダを上書きコピーするだけ。


セーブデータが肥大化した関係で配布データからdat1、dat2フォルダをカットしました。
起動時にそれらがない場合defoフォルダをコピーするようになっているので、初回の起動は通常より時間がかかります。

実在選手の顔ファイルはface_inportファイルで配布しています。
使い方はホームページ参照。

追加したもの

多すぎて書ききれませんがとりあえず全体的なUIの改修、試合ログ追加などを行いました。
一部機能は削ったり一時的に削除してたりします。

追記

0.401を公開しました。
0.40のデータを使っている場合は該当フォルダのrecord.datとrecord_2.datを削除してください。