いい加減な弾速測定法 for PS2AC
LAST UPDATE 2005/05/04
●はじめに
そんなわけで、PS2ACの弾速の測り方を説明します。まとめようと思ったけど、もうど〜でも良くなってきてしばらく放置していた奴をさっさと形にしたんでかなり手抜きな部分があったり、ゴッチャゴチャな文章で非常に読み辛いとは思いますがとりあえずこれだけでも大体の武器の弾速を測ることが出来るようになると思います。この方法は3やSLに限らず、AC2やAAでも使用することが出来ます。NX、NBでも使えるし、多分FFでも使えそうだし(死ぬほど面倒だろうけど)、恐らくハード変わるまでずっと使えそう。
ここで言う弾速とはAC2やAAの攻略本に載っていた弾速と同じ定義で
弾速=弾が100フレーム間に進む距離
を表しています。ただ、内部のパラを解析するんじゃなくてあくまで実測値からの推測ということで実際は弾が10フレーム間に飛んだ距離の10倍を弾速としてます。
●測定法
・概算値の測定(省略可)
開幕時にお互い真正面で向き合っているアリーナで開幕後前進し、100刻みのキリの良い距離(なるべく武器のレンジが許す限り距離をおくようにする。って別にどの距離でも大して関係無いかも)で射撃をして弾が当たるまでのところをキャプチャ(キャプチャの上限の秒間30フレームでキャプチャする。秒間60で取れる方法無い?)。弾数表示が減ったフレームから、相手のAPが減るまでのフレーム数を測定する。
距離/当たるまでのフレーム/2=A(1フレーム辺りに進む距離)
これでまず弾が1フレーム辺りに進む推定値が出てくる。計算式で最後に2で割っているのはキャプチャで撮ったムービーは秒間30フレームだけど実際のゲームはその倍の秒間60フレームで処理されているため(最近のキャプチャはど〜なのか知らんけど、もし60で撮れるんだったら割る必要無し)。面倒な方法を取れば無理矢理60フレームでキャプチャすることも出来るんだけど、時間がかかりすぎるので今回も使わず(秒間60フレームのムービー1個作るのに何十分かかることやら…)。
弾速は100フレームの間に弾が飛ぶ距離なので、これで求めた1フレーム辺りに進む距離Aを100倍したものが弾速の概算値となる。
A×100=B(おおまかな弾速)
ただし、弾速が遅い武器でもそれなりにスピードが出ているために処理の都合上(1フレームごとに弾速の1/100の距離ずつ進むため)、目標に対して必ずしも弾が弾の先端で当たるというわけではなく、細長くなっている弾のどこかが当たっているということが起きてしまい(弾の判定が一点だと少しズレただけで当たらなくなっちまうので、ある程度弾を大きくして弾が当たらずに通り過ぎるのを防止している。弾速が速い実スナやスラッグなんかの弾が特に長いのは多分このためかも。…多分、箱判定もこのせい?)、その状態で弾速を求めようとすると誤差が出るということになってしまう(AC3で最初に測った時に2つとも1300と間違えた実スナはこれをしっかり確認するのを怠ったため)。
分かりにくく簡単な図で説明すると
弾:―――(進行方向は→)
機体:〇
99フレーム目で
――― 〇
の状態になって100フレーム目で
―――〇
の状態で弾の先端がギリギリ当たっているのが正確な100フレームで飛んだ距離となるので、それより距離が近い状態だと
――Θ(分かりにくいだろ〜けど串刺し状態と思ってくれぃ)
―Θ―
Θ――
〇―――
と、こんな状況で弾が当たっていることになり、その距離を元に弾速を算出すると実際の数値と違う値が出てしまう。この当たり方は、理論上だと100フレームではなく、99.XX…の小数点以下のフレームで当たっていることになってるけど、実際のゲーム上ではそんなフレームはありえないからその次の同じ100フレームで当たってるように見えちゃうため。これをしっかり調整してやらないと10や20の誤差じゃ済まないくらいのデカい誤差が出ちまう。
余談だけど、盾構えててしっかり防御範囲内で弾を捉えたはずなのにガード出来てないという貫通効果はコレが関係してるんだろね(上手い具合に盾の判定を乗り越えて弾の尾っぽの方だけが機体に当たってるとか)。
まぁ、これはあくまで正確な弾速を求める前段階のための概算値を求めるだけなんでここまで厳密にやらんでも良いだろ〜けど、逆にこの方法で測ったものはかなりの誤差が出ている可能性があるんでここで終わらせないようにお願いします。
ちなみにこの方法なんだけど、今回(SL)はAC3の時点で測ったデータがあるんで今回はこの方法で概算値を求めず前作の値から厳密な測定を行うようにしたし、新パーツも山勘でテキト〜な値から厳密に測りだしたんでこの方法は使う必要無いかも(滅)。3シリーズのパーツが出てくるっぽいネクサスも多分、3やSLの値から厳密な測定を行うようにした方が楽だし良いんじゃないかな?
とりあえず、弾の先端で当たってるかど〜か、という点だけは後々重要になるので軽視しないよ〜に。
・厳密な測定
弾速は10刻みの値であるため、10の倍数フレームでは必ず整数の距離を飛ぶことになる(仮に弾速10だとすると10フレーム間に距離1進む)。
このことを利用して上記した方法で求めた弾速の概算値を弾速の推定値(今回はAC3の時に測った弾速と山勘を使ったけど)として、推定値を0.1〜1.0倍(以後”倍率”と表記。0.1刻みで調整する)した値の距離を取って射撃から着弾するところまでをキャプチャする。
キャプチャしたムービーを1フレーム単位で編集出来るツール(フリーで色々あるはず)を使い、弾が減ったフレームから相手のAPが減った瞬間までのフレーム数(以後”実測フレーム数”と表記)を数える。やはりキャプチャの性能の都合上、秒間30フレームで撮っていることを忘れないこと。
あと、これに使うムービーは秒間30フレームで撮る都合上、”…→弾数が減る前→弾数が減り弾が表示される→…”ってムービーと”…→弾数が減る前→弾数が減るが弾は表示されない→…”ってムービーの2種類のムービーが撮れるけど、測定には”…→弾数が減る前→弾数が減り弾が表示される→…”ってムービーを使い、”弾数が減る前”ってフレームを0フレーム目として数えること。ってこんな説明じゃワケ分からんかもしれないけど、詳しく説明すると長くなるのでこのことについてはやっぱり後述しときます。
ちなみに”…→弾数が減る前→弾数が減るが弾は表示されない→…”ってムービーを使うと奇数フレームの測定に使えるので5フレーム目で当たる距離や15フレームで当たる距離の測定に使えます。この場合、”弾数が減るが弾は表示されない→…”ってフレームを1フレーム目と数えること(5フレーム目を測るなら次の次のフレームに注目)。通常は偶数フレームだけで良いんだけど、弾道が変な武器なんかは近距離で測る必要も出てくるので念のため。
実測フレーム数が
倍率×100/2
になるかどうかをチェック(最後に2で割っているのは本来秒間60フレームであるものの半分の秒間30フレームで撮っているから)。
・実測フレーム数=倍率×100/2:推定値が正しい値である可能性がある(これが正しい弾速値とは限らない)。
・実測フレーム数>倍率×100/2:間違い。推定値が高い。距離を縮めて再測定。
・実測フレーム数<倍率×100/2:間違い。推定値が低い。距離を離して再測定。
ちなみに実測フレーム数≠倍率×100/2の時に調整する距離は倍率の10倍の値ずつ調整する。…普段なら暗算であっさり次に測定するべき距離が出せるのに、延々測ってると電卓使った方が早いくらい疲れてきたり(滅)。
実測フレーム数=倍率×100/2になってもまだその値が正しいと決まったわけではなく、上記した通り弾の先端で当たっていない可能性があるため、さらに距離を倍率の10倍だけ離して再測定する。これを繰り返してギリギリで当たる距離になる推定値が恐らく正しい弾速に近い値となります。これでも正しい弾速ではなく、誤差が出ている可能性があるため、すぐ下の”2点の差から正確な値を求める”を参照して下さい。ということで、最低でも2回×2回で4回以上測定する必要があります。
で、正しいと思う弾速が出たら、念のために倍率を変えて違う距離で再度測定してホントにその値が合っているか確認を行うとよりその値が信頼出来るものになる。…我輩は面倒だったんで、一部の測りにくかった武器しかちゃんと確認しなかったりして(滅)。
ちなみにこの方法だけでは正確な値が出せないのでさらに下記で説明してるように最低でももう1回距離を変えて測定する必要があります。
・2点の差から正確な値を求める
とりあえず上記の方法で弾速が求められたように思えましたが、実はこの測り方だと倍率(距離)を変えて測るたびに誤差が出るという結果が出ます。で、その原因が恐らくは弾が相手との距離0の地点から発射されているのではなく銃口の先、つまり相手との距離0より僅かに前にズレた位置から発射されているにも関わらず、この測定法は距離0の位置で発射されたものとして値を求めているため。
ってことでその僅かなズレの分を除外するため、それぞれ倍率が異なる10の倍数フレームで当たる距離、例えば10フレーム目と20フレーム目で当たる地点で測定を行ってその2点の距離の差を求めると、ちょうど純粋に弾が10フレーム間に進んだ距離を求めることが出来るのであとはその値を10倍すれば100フレーム間に弾が飛ぶ距離を求めることが出来ます。
ちなみに相手との距離0の地点と実際に弾が出る地点のズレの距離ですが、まだ全部とは言えないし、右手武器に関してだけの話ですが6だけズレているようなので
(10フレーム目で当たった距離−6)×10
で簡単に弾速を出せるかもしれません。ただ、6以外の場所から発射される右手武器があるかもしれないし、他の武器はどうなのかは不明なのでちゃんと10の倍数の2点の距離の差から求めるようにしといた方が無難じゃないかと思われます。
多分、ここまでやればほぼ正確な弾速が求められるんじゃないかと思います。…でもSLで幾つかの武器を軽く再測定してみたら求められた値がイマイチ安定しなかった物もあったんだけどね(滅)。
あと、単純に銃口の位置云々以前にこの方法は射撃ボタン押して弾数表示が減ってから100フレーム間に弾が飛ぶ距離を求めることになるんで(要するに弾が100フレーム間に飛ぶ距離じゃなくて99フレーム間に飛ぶ距離を求めることになっちゃう)、あくまで100フレーム間に飛ぶ距離を求めるためには2点間から求める必要がある。…ってここまで書いた時点で気付いたけど、あくまで100フレーム間に飛んだ距離を求めるんだったら”…→弾数が減る前→弾数が減るが弾は表示されない→…”ってな奇数フレーム側のムービーを撮って弾数が減って弾が表示されないフレームを0フレーム目として測定するって手があったのかもしれないね。今頃気付いたヨ…(滅)。まぁ、銃口の位置によるズレがやっぱり気になるんで結局2回測った方が良いんだろうけどね。
●測定時の注意点
今回測定に使った機体
射撃用機体:28a2avWW0GG003dW43 | 的用機体:68u2avZWCGW0chdW41 |
![]() |
![]() |
まぁ、ど〜でも良いだろ〜けどこんな感じ。メモカにまだ測定用のデータ残ってたんでそれをそのままキャプったんで射撃用機体にゃ武器積んでないけど、実際には測定したい武器と左手実盾のKSS-SS/WALLを装備。武器腕の場合はインサイドにMWI-DD/10を装備。実盾と10デコイは機体を何も操作をせず放置しっぱなしにした時の待機モード防止のため、時々盾を構えては解除したり、武器チェンジで切り替える(武器腕の場合はモードチェンジの確認のためにも使える)。
OPは2機とも防御UP2種・安定性UP・ロック速度UP・サイト拡大・ブレーキ性能UP・旋回性UP・放熱量UP。ブレーキ性能UPを付けたのは、距離の微調整をやりやすくするため…というより単にスロットが余ったからか(滅)。
●射撃側機体について
キャノンを使う場合は射撃用機体の足を重4脚のMLF-RE/007に変更(別に007じゃなくても問題無し)。その他、状況に応じてチマチマと各部を変更。
・距離の微調整は前進ではなく、必ず後退を使う
ロック中に表示される距離だけど、実際には表示されていない小数点以下の距離もあるようなので前進して距離の微調整を行うより、後退して微調整を行った方が表示されている距離とほぼ等しい距離になるので、必ず距離の微調整を行う際には後退を使うこと。…コレ怠って誤差が出たんで馬鹿に出来ない。
・難易度はノーマルにしておく
垂直系を測る際はノーマル+WSのFCS+サイト拡大にすると測りやすい。他は基本的に真正面から撃つんでノーマルだろうがハードだろうが別に関係無いかも。
・待機モード防止策
ACは何の操作もしないでほったらかしにしとくと待機モード(?)に移行してウィーンガチャ、ウィーンガチャ、ってな感じで上半身回す体操始めてしまい、サイトが消えてロックオンも外しちゃうんで、コレを防止するために双方の機体に盾を持たせて構え→解除をさせて待機モードに移行させない、または解除させるようにする。
盾を構えていても多分食らい判定は変わってないように見えたけど、とりあえず的になる機体は念のために盾を構えてない状態で弾を食らわせるようにしといた。
武器腕の場合はインサイドにデコイなんかを持たせて武器チェンジで代用。
●的機体について
・的機体の熱対策
発熱量の高い武器を当てて、的機体がヒートを起こしてるとAPが常に減ってて弾が当たったタイミングが分かり辛くなるから熱が下がるまで待たなきゃならなくなるんで、少しでも待ち時間を減らすために高性能のラジを積んどくのと、EXラジを装備しておいてヒート起こしたら使わせると便利。
・的機体で距離確認
的機体は最長ロックの実スナ(CWG-SRF-80)と最長ロックのFCS(VREX-ND-2)を持たせといて、ロック表示で距離を確認する。
垂直のように射撃機体を上に乗せて至近距離で測定する場合はWSの武器とWSのFCSとサイト拡大を装備させておく。
・コア
クレスト製のコアはミサイル迎撃機能が付いているんで使わないこと。
・垂直を測る場合の的機体
なるべく滞空時間を稼ぐため、軽2にOP−INTENSIFYを付け、HBを装備させて後はなるべくE消費を抑えた機体にしておくと良い。
●偶数フレームと奇数フレーム(何回か「後述する」って書いた部分の詳細な説明)
本来秒間60フレームであるものをキャプチャの都合上秒間30フレームで撮ることになるため、秒間60フレームの偶数部分と奇数部分のどちらが撮れるかということは完全に運任せになります。
これをしっかり判別しておかないと、例えば100フレーム間に弾が進む距離を測ったつもりが99フレーム間や101フレーム間に弾が進む距離を測ってしまうことになります。
これを判別するには射撃時に弾数が減るのと、弾グラフィックが出るのに実は1フレームのズレがあるため、実際の流れとしては
…→弾数が減る前→弾数が減る(弾は表示されない)→弾が表示される→…
となっているものが、半分しか撮れないために
A:…→弾数が減る前→弾数が減り弾が表示される→…
B:…→弾数が減る前→弾数が減るが弾は表示されない→…
という形式の2種類のムービーが撮れてしまうことを利用する。
この流れを分かりにくく表にするとこんな感じ。
流れ | …→弾数が減る前→ | 弾数が減る前→ | 弾数が減る→ (弾、表示されず) |
弾が表示される→ | 3フレーム | … | 99フレーム | 100フレーム | 101フレーム |
フレーム | -1 |
0 |
1 |
2 |
3 |
… | 99 |
100 |
101 |
A | - |
弾数が減る前→ | - |
弾数が減り弾が 表示される→ |
- |
… | - |
50フレーム | - |
フレーム | (-0.5) |
0 |
(0.5) |
1 |
(1.5) |
… | (49.5) |
50 |
(50.5) |
B | …弾数が減る前→ | - |
弾数が減る→ (弾、表示されず) |
- |
2フレーム |
… | 50フレーム | - |
51フレーム |
フレーム | 0 |
(0.5) |
1 |
(1.5) |
2 |
… | 50 |
(50.5) |
51 |
うっわ、分かり辛ぇ…。これで見ると分かる通り、Aのムービーなら本来の流れの100フレーム目のムービーがちゃんと撮れてるのに対してBのムービーだと丁度その100フレーム目が抜けちゃってることになる。当然、そんなムービーで測定をすると誤差が出たり、正確な値が出せなかったりすることが起きるんで(どう距離を調整しても100×倍率のフレームで弾が当たってくれないことがあったのはこれが原因だった)、秒間30フレームでしかキャプチャ出来ないのなら、手を抜かないでちゃんとAのムービーが撮れるまでやり直すこと。
…上の方でも書いたけど、別にBのムービーだったら1発で100フレーム間に弾が飛ぶ距離求められたのかもしれないね(この場合だとAの方で求めたい値が出る距離になってるんでBで求めたい値が出るように距離を調整する必要があるけど)。結局、銃口の位置によるズレを省くためには2点間で測る必要があるんだろうけど。とりあえず、2点間のそれぞれのムービーを偶数側か奇数側か、ちゃんと統一した上で測れば特に問題無いと思います。
●特殊な測定法
・投擲系
投擲系は距離をなるべく縮めて測る。距離が離れれば離れるほど当てにくくなるし、放物線状に飛んで真っ直ぐに飛んでないことによる誤差も出てしまうので、とにかく近距離で測る。
・設置系インサイド
とにかく至近距離で測るしかなく、適当な距離で測定して近似値を幾つも求めてそれらしい値を探すしかないかも。
・垂直
垂直は最初に真上に飛んでいってそれから相手に向かっていくため、上昇後は測定不可能。ただし、上昇中の速度に関しては的になる機体を軽2にHBを付けた機体にして、射撃側の機体の真上でHBを使い滞空させた所に発射することで測定は可能。
射撃側がいっぱいまで上を向いた状態で立ち、的側が一杯まで下を向いた状態でその上に乗り、どちらかの機体を動かして射撃側がサイト上端ギリギリで、的側がサイト下端ギリギリでロックさせる。
的側が垂直ジャンプをして測定したい距離+1の距離でHBを発動し(+2の距離でもOKかな?それ以上はジェネが持たない)、ポーズ→ポーズ解除を繰り返して測定したい距離になったところでポーズをして、射撃側は射撃ボタンを押した状態でポーズを解除をして射撃して当たるまでをキャプチャする。
これだと測定したい距離に表示されない小数点以下の微妙な距離が足された状態で測定することになっちゃうからホントはさらにその状態から少し待ってから撃った方が良いかもしれない。まぁ、さすがにそこまで気にしてられなかったし、射撃して当たるまでの間にも少しずつ的機体も落下しているんでホントに正確な距離を取るのは我慢するしかないかも。
ただし、武器腕のCAW-DVG36-01の垂直は射出位置が後ろすぎるため、ノーマル+WS−1+サイト拡大でギリギリでロックさせても当たらないんで測定出来なかった。
・魚雷
まず魚雷が分裂する距離を求め、魚雷自身の弾速を求める。次に魚雷が分裂する以上の距離を取り、通常の弾速の測定に使う距離の代わりに”距離−魚雷の分裂に必要な距離”を使い、通常の射撃から命中までのフレーム数の代わりに”魚雷が分裂してから命中するまでのフレーム数”を使って計算をするとOK。
・オービット
ビットが撃つビームに関してはビットと的との距離を調整出来ない限り厳密な値の測定は無理。ただし、ビット本体は撃つたびにどの方向に飛ぶか決まっていて、そのパターンのうち真正面に飛ぶパターンを使い、射撃から壁に当たるまでをキャプチャすることで測定可能。
…ってそれでど〜やってちゃんと値が出るように計算出来たのか忘れました(滅)。ど〜やったんだっけ…?
・両肩ビット
垂直のように的機体にHBを使わせてまずは上昇中の速度を測る。ただし、ビットはビームを発射する直前に大きく上昇するのでその上昇をする前の速度しか測れない。
●誤差を出さないために
・本当に弾が最先端で当たっているかのチェック(最優先事項。経験上、これが一番誤差出したんで…)
・正確な距離の調節(前進じゃなくて後退で距離を調節)
・偶数フレームと奇数フレームの厳密な判別(秒間30フレームで撮る場合)
・1点では無く、2点の距離の差から弾速を求める(1点だと誤差を出してしまうため)
・可能な限り、四捨五入を使うような測り方はしない(インサイドでは止むを得ず使ったけど…)
最低限、これだけは厳しく厳し〜くチェックするようにしといて下さい。マジで誤差出るんで。あとは余裕があるなら可能な限り何度かチェック(全く同じ状況で調べるのではなく、距離を変えてチェックする)すればそれだけ信頼性が上がると思います。
最後は根気の問題サ!!(笑)
なんかゴッチャゴチャ。弾数表示が減ってから100フレーム間に弾が進む距離を求めていたSLまでと、2点間の差を求めようとしたNX以降の測定方法が混ざっちゃってるせいでワケ分からん内容になっちゃってるね。弾数表示が減るのと、実際に弾が表示されるのに1フレームのズレがある辺りで説明した上で、単純に弾が100フレーム間に飛ぶ距離を測る、って感じで説明すりゃもっと簡潔に出来るっぽいけど、今更直すのも面倒だしなぁ。レポート作成の癖で簡単に書けるようなとこに余計な肉付けして分量増やすって癖がいまだに抜けねぇ…。
参考までにSLの場合、全武器の弾速を測るのにキャプチャ失敗も含めて計1524個のムービーをキャプチャし、大体10日前後の時間を要した(大体20〜30時間ってとこ)。NX、NBはキャプ環境が変わって色々とおかしくなってキャプチャ失敗が増えたし、数え忘れたり途中で飽きたんで何個撮ったか、何時間かかったか覚えてない。分業すればかなり楽になるとは思うんだけどなぁ…。
…とりあえず手順が分かる程度には中身作ったとは思うんだけど、今のところ他に誰一人としてこの方法使ってくれない、というかこの方法に限らず弾速測ってくれないね。3やSLの時はこの方法と違う方法で他の人が測った値があって、そっちの結果を元に再測定して精度の高い、と思われる値を出せたこともあったんだけどなぁ。ちょ〜っと悲しいヨ…。あんまし需要無いのかなぁ。
FFは測ってないけど多分パーツのパラがNBから一切いじられてないとこ見ると弾速も変わってないんじゃないかなぁ?(全く根拠無し)今のところFFの弾速を測ってないのは新パーツには武装が無いってのと何よりも対戦モードで動かすことが出来ないため。もしFFの弾速を測ろうとする場合、ジャンプの出来ない足にデッドレッグス使って的機体作ってアクションテストで測る羽目になるんでさすがにやってられねぇ…。ホントに需要があるなら測ってみても良いかもしれないけど、FFはそれなりに楽しめてるんでダレる作業やってやる気無くしたくないしなぁ。あとは気が向いたら、友人に貸したNBを返して貰った時にでもNBの残りの弾速測ろうかなぁ?