わからないことが多すぎました
ごめんなさいすいませんもうしません許してください(つДと)
とりあえず今回の調査で分かったことをまとめておきます。
・射撃チップを踏んだフレームでは砲旋回は開始されない
ロックを変更したフレームではロック前の敵のほうへ砲旋回する
動作キャンセルしても砲旋回は残る
⇒前フレームの動作により砲旋回速度が決定される
⇒カウンタ指定発射のパラメータが反映されるのは次のフレームからになる
・砲旋回速度と順方向に角度修正を行うとき、
そのフレームでの砲旋回速度を初速とする砲旋回が開始される?
左右の敵を交互にロックすると一定範囲で振動する
⇒砲旋回速度は順方向のみベクトル加算、逆方向へは固定の速度にリセットされる
・1.0度より大きい方位修正が行われるとき、砲旋回時間+1の遅延が発生する
⇒砲旋回の初速1.0の可能性
⇒砲旋回が間に合わないとき、補正時間の修正が発生するのかもしれない
(補正時間については大犬太さんの2008/08/30あたりの記事参照のこと。
カウンタ指定発射は補正時間下限が2f続かないと発射されない。
そのため修正が発生したタイミングから最小でも2fの遅延時間となる)
・1.0度以下の方位修正による砲旋回は遅延を起こさないが
次のフレームではまだ射線がずれている
間に合ってないわけではなくむしろ通り過ぎてる。
⇒砲身が安定してないか、砲旋回分の誤差
(砲身が相手のほうを向いたあとで上半身が旋回してずれる)が生じている
・砲旋回による発射遅延時間に機動性の影響はない
⇒砲旋回速度は機動性の影響を受けない
・特殊動作などにより見かけの上では砲旋回が行われることがあるが無視される
・ループ型予測の角速度限界
前回の記事で対車両予測が対応できる角速度の限界について推論したものを
プログラム上で検証しました。
以下二つのループは弾丸が発射されます
1:A + 3 1:A + 6
2:カウンタ指定発射(A,B) 2:カウンタ指定発射(A,B)
3:STOP 3 3:STOP 4
以下二つのループは水平射角限界に達するまで弾丸が発射されません
1:A + 3.1 1:A + 6.1
2:カウンタ指定発射(A,B) 2:カウンタ指定発射(A,B)
3:STOP 3 3:STOP 4
境界について完全に一致。
また砲旋回はどの場合でも非連続的に行われていたので
砲旋回速度の最大値には達していません。
・砲旋回速度
前回の記事では発射の瞬間には砲旋回が行われないものとして
照準補正なるものを仮定しましたがそんなものはじめからなかったので改訂。
遅延時間はリロードや射撃準備モーションの間にも消化されますので
小さいほど気にならなくなります。
砲旋回量 旋回時間 最大速度 遅延時間
0.0~1.0 1f 1.0/f 0f
1.1~3.0 2f 2.0/f 1+1f
3.1~6.0 3f 3.0/f 2+1f
6.1~9.3 4f 3.35/f 3+1f
9.4~12.7 5f 3.35/f 4+1f
12.8~16.0 6f 3.35/f 5+1f
16.1~19.4 7f 3.35/f 6+1f
19.5~22.7 8f 3.35/f 7+1f
22.8~26.1 9f 3.35/f 8+1f
26.2~29.4 10f 3.35/f 9+1f
29.5~32.8 11f 3.35/f 10+1f
32.9~36.2 12f 3.35/f 11+1f
36.3~39.6 13f 3.35/f 12+1f
39.7~42.9 14f 3.35/f 13+1f
43.0~46.3 15f 3.35/f 14+1f
46.4~49.6 16f 3.35/f 15+1f
49.7~50.1 17f 3.35/f 16+1f
50.2~ 3.35/f 6f // 暴発
exp.1)6.1度旋回する場合
0f 0/f 0 カウンタ指定発射
1f 1.0/f 0+1.0=1.0
2f 2.0/f 1.0+2.0=3.0
3f 3.0/f 3.0+3.0=6.0
4f 0.1/f 6.0+0.1=6.1 補正時間下限
5f 0/f 6.1 弾丸発射
exp.2)exp.1の4f目にカウンタ指定発射を実行し、合計7.0度変更
0f 0/f 0 カウンタ指定発射
1f 1.0/f 0+1.0=1.0
2f 2.0/f 1.0+2.0=3.0
3f 3.0/f 3.0+3.0=6.0
4f 0.1/f 6.0+0.1=6.1 補正時間下限/カウンタ指定発射上書き
5f 0.9/f 6.1+0.9=7.0 弾丸発射
6f 0/f 7.0 砲身が安定
exp.3)exp.1の4f目にカウンタ指定発射を実行し、合計10度変更
0f 0/f 0 カウンタ指定発射
1f 1.0/f 0+1.0=1.0
2f 2.0/f 1.0+2.0=3.0
3f 3.0/f 3.0+3.0=6.0
4f 0.1/f 6.0+0.1=6.1 補正時間下限/カウンタ指定発射上書き
5f 1.0/f 6.1+1.0=7.1 発射抑制
6f 2.0/f 7.1+2.0=9.1
7f 0.9/f 9.1+0.9=10 補正時間下限
8f 0/f 10 弾丸発射
exp.4)exp.3のカウンタ指定発射のタイミングを1f早める
0f 0/f 0 カウンタ指定発射
1f 1.0/f 0+1.0=1.0
2f 2.0/f 1.0+2.0=3.0
3f 3.0/f 3.0+3.0=6.0 カウンタ指定発射上書き
4f 1.1/f 6.0+1.1=7.1
5f 2.1/f 7.1+2.0=9.2
6f 0.8/f 9.2+0.8=10 補正時間下限
7f 0/f 10 弾丸発射
※注
ここでの旋回時間は事前にカウンタ指定発射で砲旋回を実行、
射撃姿勢をとった後のモーション中におけるものです。
だいたい射撃開始8f目までに砲旋回が終わってしまうような場合、
8fで完了するようにこれより遅い速度で砲旋回が行われます。
わかっちゃいたけど何にもならなかったですよ(´д`)
楽しかったからいいけど。
まさに超時空妄想カルポ。
[0回]
PR