データ測定のノウハウ

Last-modified: 2016-01-27 (水) 18:57:26

とりあえず後でうっかり忘れてしまったときの為に書き起こし。
深秘録でやってますが、他のゲームでも使えると思います。
大分いい加減な説明になっている所が散見されますがご了承ください。

補正の測定

最初の技

まずはシステムをしっかり理解しておく。
東方深秘録には特殊補正や根性値補正を掛けなくてもいいケースがあるため、なるべく計算が楽になる状況を作って数字を測定していくのが大事。
それぞれの技の補正にはいくつかの補正があるが、その中でも重要なのが初段補正減算補正
まず、当てやすい同じ技を何とかして2連続で当てる。東方深秘録は早口キャンセルによってこれがとても楽なので、大した苦労ではない。

00010.jpg

ここではこころの遠Aを当ててみる。ダメージは760、Rateは85となった。
この値から、ダメージとして”それっぽい”値を推定する。まず、現在のRate値は遠Aの初段補正と減算補正が両方掛かっていることになる。
すなわち、

(100-初段補正(%))+減算補正(-%)=15(%)

となるような値であるということ。
また、ダメージから、

760=単発ダメージ×(100+初段補正)(%)

ということが解る(なんか紛らわしい表現になってますがご了承ください)。
 

結果として、遠Aの単発ダメージは400、初段補正が90と推定できる。
その理由は以下。

  • 多くの場合、単発の通常技の初段補正は5刻み
      かつ、第一式より85よりも大きく、100よりも小さい値
      こんな多用する技で減算0や初段100はあり得ないため
  • 760/2=380に近く、それよりも大きい値
      初段補正により、380よりも必ず大きい値になる
  • 以上から”それっぽい値”を作ると、400×1.9=760 という式がしっくりくるため

初段補正90から、減算補正が5であることも確定する。
※これが間違ってると、他の技を測定する時に矛盾やしっくりこない数字が出てくるので解ります

以上により、遠Aは「ダメージ400、初段90、減算5」が解った。

次の技

こころの6Aを調べてみる。一つ目のデータが出たので、これが正しいと思って流用していく。
6A>>遠A、遠A>6Aを測定してみると、
 

00012.png

 

6A>>遠A…ダメージ1010、Rate85
遠A>6A…ダメージ985、Rate79
 

ここで重要なのは表示されるRateが間違っている場合があること。
具体的には下段のRateは計算の不具合により、1小さく表示されている。

そして、上段の式と遠Aの減算が5であることから、6Aの初段が90であることが解る。
初段が90と解れば、1010-400×90=650となるため、6Aのダメージは650と解る。
この流れから減算は両方の式から11ではないかと思えてしまうが、Rateが79になった場合は79.999…=実質80となっている可能性が非常に高い。
この後に何かしら技を繋げると解る(詳しくは走り書きの方に書いてあるので参照)。
 

以上により、6Aはダメージ650、初段90、減算10と解る。
後はこれを延々繰り返すだけ。

フレーム測定

準備

まず、60fpsで測定できる録画ソフトを探す必要がある。
有名な所ではカハマルカの瞳は録画が30fpsでしかできないため、
アマレコTVBandicamのフリー版あたりが無難所。私はAeroを切りたくないのでBandicamを使ってます。
 
#管理人注:ググったらロイロ ゲーム レコーダーというソフトもあるようです。こっちでもいいかも。
 
次に、動画再生ソフトでコマ送り出来るモノを探す。
WMPでもできますが、WMPはコマ戻しが上手くいかない事が多く非推奨。
私はGOM Playerでやってます(また韓国製か!)。
 
#管理人注:GOM Playerの評判がすこぶる悪い(というか、この記事執筆以降更に悪化した)ので、VLC Playerに乗り換えました。こちらでも可能です。
 

「今何F目か」が解るようなソフトがあるととても楽なのですが、今の所良いソフトに出会えてないような感じ(ぶっちゃけ探してないですが…)。
 

測定の前に

まず、システムと一般的な格闘ゲームのフレームに関する知識が必要。
「発生」「持続」「硬直」「硬直差」「全体」の対応は勿論、数字とタイムテーブルの対応がしっかり付けられるようになる位の知識が要る。
そのうえで、コマ送り測定をするにあたって、覚えておかなければならないことはマシンスペックにもよるとはいえ、「割と頻繁にコマは飛ぶ」ということ。
経験上、5秒(300F)測定したらどこかしら飛んでると思っていい。
そのため、コマ飛びによる誤計測をなるべく減らすよう、3回程度は測定する。
 
また、このゲームに限らず、2D対戦格闘ゲームは真空判定・詐欺判定・途中で攻撃判定消失が当たり前のようにあるためコマ送りで持続の計測はまずできないと思っていい。
測定する方法としては「それぞれのコマでそれっぽいところに飛び込み、喰らい判定を置いてみる」ことで可能だが、何の合図もないような状態での1F単位の操作が必要で、技術的に人間に出来る技ではない。
 

測定その1

先と同様、こころの遠Aを例に測定する。
まず、自分と相手をこころにする。

00013.png

そして、ダッシュ遠A最速ダッシュをマクロ機能でメモリーする。
ここで事前にダッシュするのは、「それぞれのモーションが基本的に立ち状態から連続的に見えるように作られているので、ダッシュから出すと明らかに不自然なモーションの不連続点が生まれ、1F目が解りやすくなるため」。
モーションの終わり際にダッシュを入れるのも同様の理由から(こころの遠Aは解りやすいですが…)。
一般的にはジャンプを入れるのが定石ですが、東方深秘録ではジャンプ1F目がとても判り辛いのであまりおすすめは出来ない感じ。
 

00001.png

 
左:こころの遠A-1F目、右:こころの遠A-最終F

測定その2(発生の計測)

相手のこころに同じ動作を繰り返させ、それに自分が当たり、硬直モーションからの最速ダッシュを繰り返し録画する。
こうするのは、後々に硬直差の計測にデータを流用するため。
その後、録画した動画ファイルをコマ送りで再生していく。
まずは発生をコマを送っていき、数える。
動作開始1F目を1と数え、相手に当たりエフェクトが出たフレームまでをカウント。
こころの遠Aの場合は12となる。そのため、こころ遠Aは発生12F。

00002.png

こころの遠A発生F(12F目)。

測定その3(硬直差の計測)

全体硬直はコマ送りで測定するとコマ飛び・測定ミスを乱発(コマの数え落としやプレーヤーのエラーによるコマ落としなどに由来。今F目か解るツールがあるとこういうミスは少なくなるんですが、特に菫子DAなどの全体硬直がとんでもなく長い技だとコマ飛びはどうしても無視できない事に…)するので、そのまま測定するのはとても危険。
そのため、硬直差を計算し、そこから逆算する方法を取る。
 
硬直差を測定するためには、ガード後最速ダッシュを行い、ダッシュ1F目の差分で測定する。
ダッシュの1Fは全キャラ特徴的なモーションなので、すぐに判るはず。

00003.png

こころのダッシュ1F目
マクロにより相手のこころも最速ダッシュするはずなので、1F目を0とし、相手(マクロで動かしている2Pこころ)もダッシュ1F目になった所までをカウントする。
こころ遠Aの場合は2までカウントした所で相手もダッシュを始めるはず。そのためこころ遠Aの硬直差は-2
 

測定その4(全体硬直と攻撃レベルなどの計測)

ガード硬直を調べる。
今回はガード硬直が解っている物とするが、これは全ての測定で使えるので予め測定しておく。
実はこれが一番大変。これがズレてると割とどうしようもない事態に陥るので、発生の解っている技をキャンセルで繋ぎ、「連ガになるor繋がるor繋がらない」を調べて絞っていき確定させる。
どうしてもうまくいかない場合、全体硬直を測定し、硬直差・発生との対応で測定する。
ガード硬直Fが何Fか解らないうちはヒットストップとガード硬直の区別がつかないので、フレームのコマ送りだけでの測定はできない!

攻撃レベルガード硬直(F)ヒット硬直(F)
01314
119(22)
2(23)(27)

こころの遠Aは攻撃Lv1なので(これはコマ送りでガード硬直フレームをざっくりと測るだけで解る)、ガード硬直が19Fと確定する。
 

そのため、全体硬直は

全体=発生+相手側硬直-硬直差

より、12+19-(-2)=33となる。