システム詳細仕様のコメント欄です。
前に弾サイズについての検証記事を見つけて結構面白いことも書いてあったんですが、こちらのページでも検証及び記載をすることは可能ですか?読んだ記事のリンクについては貼って良いのかよくわからないです
リンクをコメント欄に貼るぐらいは自由でいいんじゃないですかね むしろソース元が無いと議論にならない気もする
https://mntone.hateblo.jp/entry/2022/10/05/210437 こちらのリンクです
これ、3の新仕様っぽい書かれ方してるけど少なくとも2の風呂にも同じ仕様があるっぽいんだよな(パラメータの名前とか数値が違うけど、初期レートが0.1倍で4or5Fかけて当たり判定が最大サイズになる、と解釈できるパラメータがある。弾の見た目も録画して1コマずつ見ればだんだん大きくなってるのが分かる) バケツヒッセンは確かめてないから知らんけど
弾の当たり判定(collision)の可変に関するパラメータは全武器に存在だけしてるんだけど、ほとんどの武器で無効な値になってる 有効な設定がされているのはスロッシャー全種、ローラーと筆の飛沫、カニタンクのカノン砲、ウルショ、かな?俺の確認漏れがなければ
ふと思ったんだけど、ボムが被弾側判定で、かつボムの細かい位置までは同期されていないのなら、1つのボムで2ヶ所の敵を倒すことも理論上は出来るのかな
高台上に居たA視点では、スプボを高台上に投げ込まれてそのまま被弾してデス 高台下に居たB視点では、スプボは高台上から転がり落ちてきて高台下で被弾してデス スプボを投擲したC視点では高台上と高台下の敵が1つのボムで両方デスして見えた
みたいな感じで
通信の仕組み上、可能ではあるけど現実的ではないね
判定ギリギリのキューインキやハンコでボムを消した場合に他の味方視点では消せてなくてやられるってのは発生させやすい
稀に起きることはあるんだろうけど、意図的にやるのは不可能かなってくらいの感じな気がする。
ナイスダマのアーマーをぎりぎりまで削った後、ドライブワイパー縦振りインク弾を当てるとアーマーもろとも撃墜できる現象どうなっているのか。横振りでも同じことが起こる。
ナイスダマの終わり際に対物性能の高い攻撃を当てるとアーマーの耐久値によらず倒せるのとは別の話
ギアパワー計算のサブ性ビーコンの説明で、仮想GPの表が載ってるけど、 これって海外の解析情報載せてるサイトの表のコピペだよね? あの表、中身を見てみたらratio=0.5となるGPの値を17.8として計算してて、最後に小数点以下を切り捨ててるっぽくて、 それが本当にゲーム内部の動きの通りかどうかは分からないよ (厳密には、ratio=0.5となるGPの値は17.72083513…のはずだし) ただ俺が数学全然分かんないから誰か分かる人計算してくれ
サイトで使われてる計算式はこれ↓ まずこの式の数学的な意味も俺には分かんない ※註 multiplier = [57,25,0] const v7 = ((multiplier[1] - multiplier[2]) / multiplier[0] - 17.8 / multiplier[0]) / ((17.8 / multiplier[0]) (17.8 / multiplier[0] + -1.0)) const v8 = (ap / multiplier[0]) ((ap / multiplier[0]) v7 + (1.0 - v7)) const v9 = Math.floor(multiplier[2] + (multiplier[0] - multiplier[2]) v8)
このコメント以前見かけて探してたわ。こんなとこにあったか 数学的な意味は自分もわからんがサブ性能をスパジャン短縮のギアパワーに換算する式だということは分かる
プログラミング言語(JavaScript)とか知らんから調べた事そのままだけど constはv7,v8,v9(v9は式中では使わない)をそれぞれ定数として使いますよっていう宣言 multiplier[0],[1],[2]はそれぞれ57,25,0を代入すれば良い apはアビリティポイントすなわちギアパワー(57表記)で任意の値 Math.floorは()内の小数点以下を切り捨てするための関数 計算してくと const v7 = -0.5881678514
apに18を代入した場合 const v8 = 0.4428728322
const v9 = Math.floor(0+(57+0)(0.4428728322)) =Math.floor(570.4428728322) =Math.floor(25.24375143) =25 となる 表の左の数値(AP)を入力すると色々こねくり回して右の数値が出てくるって感じね
中間値を17.8ではなくギアパワーの効き目(ratio)0.5とした17.72083513として計算すると表では22→29となる所が計算では22→30とズレたから小数点以下を切り捨てずスパジャン短縮のギアパワーとしてそのまま計上するかどうかでもズレが生じると思う。他に例がないので要検証
多分合ってるけど間違ってたらごめんね
ブレの計算式の項目で掲載されてる通り計算すると、どう考えても乱数x=0のとき正の無限大に発散してしまうし、x=1の時でさえまっすぐ0°に飛ぶことが確率的にあり得ないって計算結果になるんだけど、だれか詳しい人この式について教えてほしい
y=s*x^log[0.5]b の式のこと? x=0のときはy=0になるし、x=1のときはy=sになると思うけどどうでしょうか
それです。すみません、私が勘違いしていて、log[0.5]bをbと0.5の常用対数の積と解釈していました。 0.5の常用対数ではなくて0.5が底の対数だったんですね…… aを底とする対数の表記って普段log_a(b)としていたので、底の省略で常用対数だと思い込んでました。 ありがとうございました。
計算してみた感じですが、タンサンボム・トーピードの遠爆風とクイックボムの近爆風のslope値が0.5(1/2)から0.625(5/8)に変わってるように思います。
慣性キャンセルで即座に加速しイカロールすることができるが、その直後に同じ動作で再度イカロールを出そうとすると失敗する おそらくクールタイムが設定されていて、普通に連続イカロールをするのと同じくらいの頻度でしか発動できない?
ラグのせいでボムが爆発する前に塗りを発生させことがあるので塗りの同期への理解は重要で文章化しないといけないと思う、 塗りの発生は攻撃側と受ける側のどちらに依存するのか詳しい人がいたら教えてください
塗りについては単純に発生させた側の塗りを同期してる感じがします 例えばAがボムを投げたとき、敵Bの視点ではボムが爆発する前に塗りが発生してるように見えることがあります
よく見たら書いてありましたね、サブウェポンの同期のところに。やっぱりこれが共通認識ですよね。
DU(長さ)と塗りのp(ナワバリの面積)の関係は分かりますか? これがあると距離を視覚的に把握しやすくなると思うんです。 検証された方がいないならいないで、ローラーのコロコロでも使って検証しようと思うんですが。
“塗りポイント メートル 換算”とかで検索すると換算してくれるサイトが見付かりますね(最終更新の時期的にスプラトゥーン2でのデータ?)。そのサイトによれば、塗りポイント1=約3.306㎡(およそ(20/11)^2)だそうですが、検証の過程などはちょっと見当たらなかったです(追記:イカリング2の塗りポイントチャレンジを見てもだいたいそれくらいの数字のようです)。初代で調べたときのあやふやな記憶とも一致しているような気はします。情報が最新・正確でない可能性があるので、検証していただけるならそのほうがいいと思います。
ありがとう
メインのヒット判定が攻撃側ってことは まれによくある「ダメ合計100以上当ててる(音がしてる)のに死なない」は 全部回復してるってこと??? でも以前リッターで「絶対抜いたのに死ななかった」って時にメモリープレイヤーみたら 自分の弾が相手の脳天ぶち抜いてたんだけどあれはどういうこと?
攻撃側画面で判定する攻撃の命中音がしているのに倒せないのなら、回復しているか、ダメージが足りていない(減衰している、チャージが足りていないなど)か、アーマーか何かで防がれている可能性があります。 メモリープレーヤーは自分視点の完全な再現ではないので、試合中と異なる再現がされている場合があります。 また、リッターと言えど0F着弾ではないので、完璧に照準が合っていても弾が到達するまでの間に相手が移動してしまっている場合があります。
インク回復の項目もあったからみると回復が始まるまでに60Fだから 合計105ダメだとしたら64Fあくと倒せないのか… 短いといえば短いけどそんなあけてない時も多い気がするんだけどなあ
アーマーで防がれてるというのはこっちでは命中音してるのにアーマーで防がれてる場合があるんですか?
攻撃側画面で判定する攻撃の命中音がしているのに倒せないのなら
自分で検証したわけではなくて聞いた話なのでが、このゲーム「攻撃のヒット判定」と「命中音の判定」が別に行われているというのを聞きました。
それが本当なら、 「スシで音は3回分鳴ったが、実際には2発しか命中していない判定なので相手を倒せなかった」「スクスロで直撃+爆風を当てたが、実際には直撃音が鳴っただけで爆風を2回当てた判定だったので相手を倒せなかった」 みたいな挙動も有り得るのかなと。
記事中の同期のところで参考資料としてあげられてるブログ https://smssmooth.hatenablog.com/entry/2023/03/05/151247 にヒット音と命中判定で相違がある攻撃があげられてたけど 自分が使ってるジムはそこに載ってなかったから同一(両方攻撃側判定)だと思われる でもヨコ(35)3発とかタテヨコ(70+35)当てても死なない時、あるんだよなぁ…
自分が聞いたことあるのはその記事内で語られている事とは違くて、「メインウェポンは基本的に攻撃側で命中判定もしているし、攻撃側でヒット音の判定もしているが、そのふたつの判定が同期していない」という説ですね ちょっと自分は検証する方法が思い付かないので、あくまで"説"でしかないのですが、個人的にはそう考えると納得できるような場面に何度か遭遇しているのでそういう事もあるかもなぁと考えてます
なるほど、そういうことですか まだそっちの方が信じられますね 「攻撃側で当たってたら間違いなく当たってる、相手が死んでないのは自分が外してる」というのは 今まで経験したものとは違うと感じてしまう…
最初に自分があげたリッターの件も抜いた確信があったからメモリープレイヤーまで見たわけだし 少なくともメモリープレイヤーでははっきり相手の頭にヒットしてたので 着弾するまでに避けられてたというのもないはず (ちなみにその時はヒット音はしなかった)
まぁどっちにしてもラグが小さければささいな問題だと思うけど このゲームのラグは本当にひどいんだよなぁ…
この件だけどスパジャンしようとしてる敵にジムの直撃うって 当たった音したのに飛ばれて倒せなかったので 少なくとも音の判定についての記述は間違ってるものと思われます まあジムの直撃だけそうだと言われればそうなのかもしれないですが
>> 57 の方が新スペシャルについても研修してくれました
スペシャルウェポンの各攻撃のダメージ判定が攻撃側依存か、被弾側依存かを検証した動画 その3 pic.twitter.com/8eBbL7KOk3— スムス (@rougsmth) December 2, 2023
スペシャルウェポンの各攻撃のダメージ判定が攻撃側依存か、被弾側依存かを検証した動画 その3 pic.twitter.com/8eBbL7KOk3
ココでメインが攻撃側、サブが被弾側判定って記述されてるけど、結局通信が通常なのが前提条件なんですよね? 「コレで俺やられなかったんだ」ってボムもあるし、パブロでビタ付き6発でも倒せない挙げ句回線落ちとか居るし。
ボムで自分が死んでないのはシンプルにギリギリ確殺範囲外だっただけ。「デスしたこと」はデスした本人の画面で完結する事実なので、相手との通信状況は関係ない。 一方他人のデスは「デスした」という信号を自画面が受け取って初めて自画面内の敵が死ぬので、ラグい相手に確定数当ててから少し間を置いて相手が死ぬというのはよくある。死んでない場合は減衰とかたまたま近くにいた別の敵に当たってたとかが原因でダメージが足りてないだけ……理論上は。 多分だけどメインで攻撃を当てた際に自分が相手に送る情報は「〇〇ダメージ与えました」だけで、「あなたは死にました」じゃないんだよね。ダメージを受けた側はそれに基づいて「何ダメージ受けた」を累積していき、100を超えた瞬間に「自分は死にました」の情報を他プレイヤーに送信する。ただショクワンアーマーを1確ブキだけ貫通する仕様?不具合?を見るに1確持ちだけは「あなたは死にました」的シグナルを持ってる可能性もなくはない
返答ありがとうございます。 ボムに関しては完全に隣で破裂、記述しなかったけど至近距離でホコ割り負けても ヤられない事あったりで、コレは上位まで勝ち進んでで回線整った同士でやらないとストレスエグいゲームなんだろーなと思っちゃって。 ちょっと前に記述があった気がする、たまにクラブラがクマブラみたいな連射速度になるのを私も見たことがあって、コレはパケットロスで送れなかったデータが一気に再現されてるのかな?とか素人が考えたりもしたんですけど。 なんにしても、上手い人はコレで勝ち上がるんだから、言い訳しないでうまく立ち回るしかないんですけどね~。
ボムはちょっとわからないな……考えられるのは高度関係でギリギリ範囲外だったか、無意識にアーマーがつく操作をしていたか、遮蔽にならないと思ってたものが意外と遮蔽として機能したか、あたりかしら ホコ割りは爆発時に塗られる範囲であっても地形が爆風の陰にさえなってれば案外死なんものですよ。それを利用してホコ初期位置が台上のステージでは割り負けそうなときはあえて台の真下に潜伏して割られた直後に奇襲仕掛けたりも稀に
ガチホコの地形の陰について追記:ガチホコ指南のページにチラッと書かれてるんだけど、ホコバリア爆発時の爆風の起点はバリアの中央なんよね。 だからバリアが膨らんで台からはみ出ていて、さも爆風で死にそうな場所でも案外大丈夫だったりするのよ
ホコはザトウとかの初期位置のパターンですね、台に張り付いていれば大丈夫な所。 イラストまでありがとうございます。
もしかしてこれらを踏まえた上でなお不可解な挙動に出会ったってことだったんでしょか なんかちょっと申し訳ないです……
スクスロの渦をイカロールでダメージを防いだ後に直撃を喰らったら二度ヒット音がなって即死したことがある あれ?となったので録画とメモリープレイヤーで確認してみても、ダメージがない状態で即死していた。 当然、他の敵の動きも確認して攻撃されていないことも確認しています。
この件でこのゲームのダメージやデスの判定が一体どうやって発生しているのかわからなくなった
クライアント側の問題という可能性も……
メモリープレーヤーはメモリー主(といえばいいのかな?)の画面状態や操作入力を基準にして試合内容を大まかに再現するだけなので、相手の画面が実際にどうなっていたかを知ることはできないよ 同期ズレの起こり具合を正確に把握するには相手のプレイ画面を直接見るしかない
イカロールのアーマーは、このページにも記載があるけど「相手の画面でアーマーに防がれており」「自分の画面でアーマーで防げている」の両方が成立してないとアーマーとして機能しないので、 スクスロの件も相手の画面ではアーマー付与より前に当ってたんだと思います(これは前述の通りメモリープレーヤーでは確認できません) こちらの画面ではアーマーで防げたように見えているが実際には食らっている場合、ダメージの同期が取れたタイミングで一瞬で大ダメージを受け、その次のフレームでデスするような画面遷移をします(ノーダメージ状態から突然デスするのではなく、よくよく見るとデスの瞬間の1F前に謎の大ダメージを受ける)
またヒット判定の話なんだけど、さっき ジムのタテ70+クイボ(たぶん直撃なので60)+ヨコ35 当てても死ななかった敵がいてメモリープレイヤーみたけど 相手側の視点でも全部ヒットした音してたからやっぱ 「攻撃側で当てたら必ず当たる」は間違いじゃないかなあ? まわりに他の敵もいなかったし全部同じ相手に当たってると思うし 他にありえるとしたらチートぐらいだと思うけど その3発当てたあと直撃当てたらキルできたし普通にデスしてるからチートじゃない気がする
確かにそれは不思議だね それはそれとしてメモリーは別に相手側視点そのものではない
前もメモリープレイヤーは完全再現ではないって言われたな あと音とヒット判定は別の可能性があるって言われた それから100以上当てたはずなのにって時は覚えてればメモリープレイヤーチェックしてるんだけど 確かに他の敵に当たってたり回復の始まる60F以上空いてるっぽかったりするケースばかりだった
でも今回はさすがに絶対当たってるという確信があるし 合計165ダメ、低く見積もっても130ダメなので最低でも30回復、 となるとずっと自インクに潜ってたと仮定しても 60+30/1.4=81.4なので最低82F空いてないといけないけど絶対それはない
そのくらいの微妙なチートって存在しないのかなって思った。まあその辺は疑い出したらキリがないからいってもしょうがないけど。
イカロールアーマーの同期、要は「攻撃側判定の技は同期ズレの分だけアーマーで防ぐ猶予Fが減る」んだとして、 (床)イカロールアーマーの18Fから、同期ズレのF数を往復で2回分引いて、 「(アーマー18F) - (同期ズレF * 2)」が実質的な床ロールで防げる猶予Fになる訳じゃん
このゲームの同期ズレは最短4Fで、通信環境次第でこれより長くなるから、 同期ズレが最短ならアーマーで防ぐ猶予Fは10Fあるけど、 同期ズレが6Fに伸びるだけで6Fしか猶予がなくなる事になる いつでも相手との通信状況が最適になるかは分からないから、ブラスターやローラーの攻撃を狙って防ぐのはやっぱ難しいか・・・
当初同期ズレの最短は4Fでは無いことに言及しようと思ったがアーマーの時間から往路復路を引いてるのもよくわからなくなっちゃった 誰か解説してくれまいか
同期ズレの最短は、実測値として実際3Fか4Fぐらいには見える(プラベで敵味方両側の視点を録画して動画編集ソフトとかで並べて比較した場合)
被アーマー視点では、相手の攻撃がヒットしたように見える瞬間より4F前にアーマーをつけとかなきゃいけないので、これで実質-4Fなのはその通り 終わり際については相手目線から見たときに不自然な挙動になりうるって話で、被アーマー視点では見た目通りアーマー終了後を叩かれてるだけなので、そこは-4Fされるわけではない気がする
18Fの無敵判定がこのラインだとして、4F遅延すると ーーーーーーーーーーーーーーーーーー ____ーーーーーーーーーーーーーーーーーー と4Fだけ遅延するのでこうなる 前の判定は相手から見てアーマーが無いので叩かれるとアーマーが貫通するので14Fとなる 後半4Fはみだしてるようにみえるけど、こちらは相手から見た時間なので計算には入らないです。
このゲーム、被弾時に硬直または物理演算による衝突判定がある? ジャンプ中に敵の弾に当たって、飛べる距離の足場を飛べずに落ちるように見えることがしばしばあるんだけども
そう感じる時もよくよく思い返せばインク踏んでる事が多いような気もする
これはあるんじゃないかと思う バイト専業勢だけど、水上を飛び移ろうという時に背中から突き飛ばされる向きに殴られてるのに明らかに空中で減速して落水とか、最近だとバチコンでダイナモ転がしてる時に背中から落ちてきたコジャケに殴られた直後だけはスティックを最大倒しでも中シャケに追いつかれるようになったりとか。加速だけでは説明しがたい おそらく、ノックバックには強制移動のほかに、強制的な減速=硬直効果も存在する 完全に体感だけど、この状態の時は上半身がのけぞる感じになってるっぽく見え、上に乗れない障害物に乗り上げた時のずり落ちと共通の(ただし若干弱めで、多少のふんばり=能動的な移動による打ち消しが効く)処理のようにも見える
そういえばサーモンランでウキワ状態から蘇生を受けるとき、スティックがニュートラルだとたまにちょっと反動でキャラが動かされることがある 動くといってもイカちゃん0.5人分くらいで、ゲーム的には完全に無意味だけど
ブレの計算について質問です。 y=s*x^log[0.5]b において、実際に乱数を当てはめていくつかの平均(100万個以上)をとってみたところ、わかばシューター初弾(s=12,b=0.04,xは乱数)における平均は約2.1となりました。これはつまり、わかばシューターの拡散範囲が12であるのに対し、実際の初弾ブレはよっぽどのことがない限り2.1程度に収まるということでしょうか?
どなたか数式に詳しい方がいらっしゃればこの計算結果とそれに対する考え方の正誤を教えていただきたいです。
追記 中央値は0.48となりました。乱数について詳しくないのですが、平均よりも中央値を参考にしたほうがよろしいのでしょうか?
追記 よくよく考えてみました。 平均値...これぐらいはブレても不思議ではない値 中央値...ブレの増減の中心となる値 数値の捉え方の違いですかね。あくまでブレの目安な気がします
図にもしてみました。 黒いモヤは点の集合体、青線は平均、赤線は中央値。データ数は100万 モヤの濃度からして、中央値をブレのおおよそと考え、平均値はそんなに関係なさそうですね
合ってるよ 乱数xが0.5(つまりちょうど中央)のとき0.48°に飛ぶので、中央値は0.48になる
弾速について ブレーキ状態の減速割合は36%で合ってます。射程が合わないように思うのは銃口の位置やバルーン等の当たり判定を考慮していないため。 またブレーキ状態では鉛直下向きに0.07m/F^2の重力もかかっています。 またブレーキ状態終了条件はz速度とy速度両方ががそれぞれ0.2355、-0.15(m/F)を下回ると終了し、自由落下状態に移行する。自由落下状態の空気抵抗は.52ガロンに限らず全シューター、スピナー、マニューバー、シェルターで2%の割合減速が設定されています。 ちなみにブレーキ状態があるのはシューター種、ブラスター種、マニューバー種、スピナー種、シェルター種です。よってブラスターの弾も射程端ではかなり減速しており、かつわずかながら落下したあと爆発します。
意味のある情報かは分からないんですけどサーモンランのボムを浮き輪に直接当てた場合は投げ側の判定みたいです。その際同期ズレを起こすと救助された側の視点ではボムが消えずに爆風塗りが別に発生する不思議な現象が起こります。 またモグラに食べさせた場合も同様のようでモグラに食べさせたはずのボムが仲間視点だと残っていたのかモグラを倒しつつ浮き輪が救助された事がありました
そう言えば爆発してないボムに触れるだけで助かったことあるわ
116番さんの ""18Fの無敵判定がこのラインだとして、4F遅延すると ーーーーーーーーーーーーーーーーーー ____ーーーーーーーーーーーーーーーーーー と4Fだけ遅延するのでこうなる 前の判定は相手から見てアーマーが無いので叩かれるとアーマーが貫通するので14Fとなる 後半4Fはみだしてるようにみえるけど、こちらは相手から見た時間なので計算には入らないです。""
という理論を図式化しました
こちらの理論の方が今記載されてるやつより合理的だと思いますがどうでしょうか
3の音の聞こえ方の検証
Splatoon2から3での音響表現の変化についての検証結果を連投します!先日、ゲームサウンドとSplatoonを共に深く知る @gula_sound と一緒に、「なんか3の音はリバーブがかかっててリアルだけど聞き分けづらい気がする」という私の直感を確かめようと検証を行いました。結果、意外な事がわかりました。— じーくどらむす/岩本翔 (@geekdrums) February 1, 2025
Splatoon2から3での音響表現の変化についての検証結果を連投します!先日、ゲームサウンドとSplatoonを共に深く知る @gula_sound と一緒に、「なんか3の音はリバーブがかかっててリアルだけど聞き分けづらい気がする」という私の直感を確かめようと検証を行いました。結果、意外な事がわかりました。
ver.9.0.0のラグ改善に記載されてた「一般的な通信」と「相手にダメージを与えたり相手を倒したりしている状況の通信」って何が違うのですか?識者求
あ、なんで通信内容の種類で短縮具合が変わっているのか知りたいです
splatoonの細かいところは2が一瞬セキュリティ弱かった時の情報以外ないから何言っても類推にしかならん ただ実際にやったことが内部処理の最適化であることと各プレイヤーが起こしたことの時系列データを8つ並べてそこから正しい系を構築する方法で同期してることを考えれば予想はつくことでしょう
仕様のところに貼るか、バグのところに貼るか悩んだけど、リスポーンにかぎらないアーマーの仕様?バグ? 攻撃側では与えているのに、被弾側では受けていない状態であることがあって多段ヒットの攻撃で再現性ある状態で起きるよう。 アーマーの貫通で死ぬ死なないがある不可解な現象があるのこれが原因みたい? なのでショクワンアーマーでどうして貫通して死ぬか死なないかは現状このバグのせいで検証できない模様
よって、アーマーが付与された相手に対して多弾ヒットをすると、アーマーを破壊するのに必要な弾数以外のダメージを攻撃側では与えているにも関わらず、被弾側では受けていないという同期ズレ状態になっているバグと考えられます。— スムス (@rougsmth) February 17, 2025
よって、アーマーが付与された相手に対して多弾ヒットをすると、アーマーを破壊するのに必要な弾数以外のダメージを攻撃側では与えているにも関わらず、被弾側では受けていないという同期ズレ状態になっているバグと考えられます。
フルイドVのアーマー貫通キルのまとめフルイドVのフルチャージを5発命中させると、イカロール、イカノボリ、イカスポーン、ショクワンダー、ナイスダマのいずれのアーマーも貫通して倒せてしまう。 pic.twitter.com/IzlVFp2ldA— スムス (@rougsmth) February 18, 2025
フルイドVのアーマー貫通キルのまとめフルイドVのフルチャージを5発命中させると、イカロール、イカノボリ、イカスポーン、ショクワンダー、ナイスダマのいずれのアーマーも貫通して倒せてしまう。 pic.twitter.com/IzlVFp2ldA
的の当たり判定の半径をr1、弾の大きさの半径をr2、的までの距離をd、拡散をs、現在のブレ補正値をbとすると、命中率pは次の式で表される。 p=((arctan((r1+r2)/d))/s)^log[b]0.5
上記の式の内、arctan((r1+r2)/d)(下図の青の直線の偏角)は誤りです。 的に命中する最大の角度は、発射位置(下図の原点)を通り命中圏を示す円(下図の外側の赤の円)に接する直線(下図の緑の直線)の偏角に等しくなります。 正しい命中率の計算式は、p=((arctan(1/sqrt(d^2/(r1+r2)^2-1)))/s)^log[b]0.5 になります。
Excelで計算を行いたいのですが、Excelで計算をする場合の計算式の表記はどうなりますか?
=((ATAN(1/SQRT(d^2/(r1+r2)^2-1)))/RADIANS(s))^LOG(0.5,b) この式で命中率を算出できます。
計算できました!ありがとうございました!
こちらのグラフで算出できる座標をExcel等で再現できる式を作れる方はいらっしゃいませんでしょうか? グラフの再現ではなく、とある時間tでの座標を出せるようにしてほしいです。 よろしくお願いします。 ※グラフはつーさんが製作されたものです。
追記 初速部分は作ることができました。画像 ※ボールドマーカーの値を使用しています。
追記:アスタリスクが表示できなかったので、×に置き換えました。申し訳ございません。
Excel上で動作する、フレーム毎のx速度とy速度を求める式を作成しました。 「速度=1フレーム間に進む距離」であるため、1フレーム目からnフレーム目までの速度の合計を発射位置に加算すると、nフレーム目の座標に等しくなります。 文字数制限に引っかかったので、2コメントに分けて掲載します。
=HSTACK(初速×COS(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0),IF(SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))<FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))),減速下限X速度×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),1-FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1))),IF(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))<FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),減速下限X速度×(1-減速時空気抵抗)^(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1)))×(1-自由落下時空気抵抗)^SEQUENCE(1,50))
これらの式は、一つのセルに入力することでフレーム毎の速度一覧を1行にずらっと並べます。 これらの式を入力したセルの右1行に、空白でないセルが一つでもあると動作しません。 また、これらの式はこのままでは動作しないため、「初速」「減速時最大速度」「直進フレーム数」「発射角度」「減速下限X速度」「減速下限Y速度」「減速時空気抵抗」「減速時重力」「自由落下時空気抵抗」「自由落下時重力」をセル参照に書き換える必要があります。 地道に書き換えようとすると尋常ならざる労力が要りますが、「すべて置換」機能を使うことですぐに完了させることができます。 pc版ではCtrl+H、スマホ版では上の虫眼鏡アイコン→左上の歯車アイコン→「検索とすべて置換」を選択してください。上の欄に置き換えたい文字列、下の欄に置き換える文字列を入力することで簡単に書き換えられます。
=HSTACK(初速×SIN(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0),IF(SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))<IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0),(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),1-IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗),(IF(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))<IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0),(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗)+自由落下時重力/自由落下時空気抵抗)×(1-自由落下時空気抵抗)^SEQUENCE(1,50)-自由落下時重力/自由落下時空気抵抗)
製作ありがとうございます。 2つ質問させてください。 ①「減速下限X速度」や「自由落下時空気抵抗」はこの部分の値をそのまま使用していいのか。 ②「初速」や「直進フレーム数」は「A1」や「B3」などのセルの場所で置き換えていいのか。
①:「減速下限X速度」は0.2355、「自由落下時空気抵抗」は0.02であっています。 数値そのものを入れるのもアリですが、これらの値は全ブキで共通というわけではないので、別のセルに数値を入れて式にセルの場所を入れた方がメンテナンス性が上がります。 ②:大丈夫です。むしろ、その使い方を想定して作成しております。
自分のExcelはHSTACK関数を使用できないものだったので、スプレッドシートで行いましたが、動作しません… どこが間違っているでしょうか…?
おそらく、スプレッドシートとExcelの関数の書式・仕様が異なるのだと思われます。 スプレッドシートについては無知なので説明致せませんが、代わりにExcelでのHSTACK関数を使用しない式を考えました。
fbtofx、fbtofy、fbtofは速度の算出に必要なパラメータです。この内、fbtofは減速状態を維持するフレーム数に一致します。 文字数が圧倒的に少ないですね。前回の式がいかに無駄な計算を含んでいたかがよく分かります…
この方法ではx速度とy速度をそれぞれ3行ずつに配置することになるので、座標一覧を求める式が複雑になるかもしれません。 もしこの式も動作しなければ、さらに対策を考えます。
本当に申し訳ないです。SEQUENCE関数も使えないバージョン(2019)でした… どうにかなりませんでしょうか…(全て委ねてしまってすいません…)
いえいえ、自分は計算と理論値が大好物なのでとても楽しいです!
SEQUENCE関数の実態は、「1,2,...と続く配列を作成する」ものです。 これが使えないのなら、別の場所に1,2,...を記入することで代替できます。
まず、オートフィルを用いて1,2,...を入力します。 次に、以下の式を入力します。時刻には1,2,...の1が入力されたセル参照を入れます。それ以外のセル参照は絶対参照($A$1といった形式で入力。pc版ならF4でこの形式にできる)にしておきます。
最後に、これらの式をオートフィルすれば完成です!
とても雑ですが、こちらが例になります。
ありがとうございます!正常に動作しました! この件で1つ頼んでもよろしいですか? この画像のように、数値を並べれるようにすることは可能でしょうか? こうすることで、座標が出しやすくなり、直感的にわかりやすくなると思うためです。 ※画像は、ただ数値を直に入力しただけです。
ありがとうございました! 自分は1つの式にしたかったので、直進状態の0の部分(偽の場合の部分)に減速状態の式を突っ込んで、その式の0の部分に自由落下状態の式を突っ込んで…ってしてみました。 これで正常に動作しているので、これでやっていこうと思います。 改めて、対応してくださってありがとうございました!
シューター等の銃口の高さは、何ラインくらいでしょうか?
銃口の位置は上体に振り回されるため、上を向けば銃口が高くなり、下を向けば銃口が低くなります。 つーさんの検証動画によると、仰角が5°のときにおよそ0.9m、75°のときにおよそ1.3m。 この値から計算すると、回転の中心と銃口の距離はおよそ0.455182m、回転の中心の高さはおよそ0.860328m。 よって、回転の中心の高さを0.86m、中心と銃口の距離を0.46mと仮定すると、仰角がAのときの銃口の高さは 0.86+0.46×sin(A) (単位:m) になります。 試し撃ちライン単位で求めたい場合は、この値に0.2を乗算します。 ただ、ブキ種ごとに銃口のオフセットが異なる可能性は否定できません。
不適切なコンテンツとして通報するには以下の「送信」ボタンを押して下さい。 現在このグループでは通報を匿名で受け付けていません。 管理者グループにはあなたが誰であるかがわかります。
どのように不適切か説明したい場合、メッセージをご記入下さい。空白のままでも通報は送信されます。
通報履歴 で、あなたの通報と対応時のメッセージを確認できます。
トピックをWIKIWIKIに埋め込む
次のコードをWIKIWIKIのページに埋め込むと最新のコメントがその場に表示されます。
// generating...
プレビュー
ここまでがあなたのコンテンツ
ここからもあなたのコンテンツ
前に弾サイズについての検証記事を見つけて結構面白いことも書いてあったんですが、こちらのページでも検証及び記載をすることは可能ですか?読んだ記事のリンクについては貼って良いのかよくわからないです
リンクをコメント欄に貼るぐらいは自由でいいんじゃないですかね
むしろソース元が無いと議論にならない気もする
https://mntone.hateblo.jp/entry/2022/10/05/210437
こちらのリンクです
これ、3の新仕様っぽい書かれ方してるけど少なくとも2の風呂にも同じ仕様があるっぽいんだよな(パラメータの名前とか数値が違うけど、初期レートが0.1倍で4or5Fかけて当たり判定が最大サイズになる、と解釈できるパラメータがある。弾の見た目も録画して1コマずつ見ればだんだん大きくなってるのが分かる)
バケツヒッセンは確かめてないから知らんけど
弾の当たり判定(collision)の可変に関するパラメータは全武器に存在だけしてるんだけど、ほとんどの武器で無効な値になってる
有効な設定がされているのはスロッシャー全種、ローラーと筆の飛沫、カニタンクのカノン砲、ウルショ、かな?俺の確認漏れがなければ
ふと思ったんだけど、ボムが被弾側判定で、かつボムの細かい位置までは同期されていないのなら、1つのボムで2ヶ所の敵を倒すことも理論上は出来るのかな
高台上に居たA視点では、スプボを高台上に投げ込まれてそのまま被弾してデス
高台下に居たB視点では、スプボは高台上から転がり落ちてきて高台下で被弾してデス
スプボを投擲したC視点では高台上と高台下の敵が1つのボムで両方デスして見えた
みたいな感じで
通信の仕組み上、可能ではあるけど現実的ではないね
判定ギリギリのキューインキやハンコでボムを消した場合に他の味方視点では消せてなくてやられるってのは発生させやすい
稀に起きることはあるんだろうけど、意図的にやるのは不可能かなってくらいの感じな気がする。
ナイスダマのアーマーをぎりぎりまで削った後、ドライブワイパー縦振りインク弾を当てるとアーマーもろとも撃墜できる現象どうなっているのか。横振りでも同じことが起こる。
ナイスダマの終わり際に対物性能の高い攻撃を当てるとアーマーの耐久値によらず倒せるのとは別の話
ギアパワー計算のサブ性ビーコンの説明で、仮想GPの表が載ってるけど、
これって海外の解析情報載せてるサイトの表のコピペだよね?
あの表、中身を見てみたらratio=0.5となるGPの値を17.8として計算してて、最後に小数点以下を切り捨ててるっぽくて、
それが本当にゲーム内部の動きの通りかどうかは分からないよ
(厳密には、ratio=0.5となるGPの値は17.72083513…のはずだし)
ただ俺が数学全然分かんないから誰か分かる人計算してくれ
サイトで使われてる計算式はこれ↓ まずこの式の数学的な意味も俺には分かんない
※註 multiplier = [57,25,0]
const v7 =
((multiplier[1] - multiplier[2]) / multiplier[0] - 17.8 / multiplier[0]) /
((17.8 / multiplier[0]) (17.8 / multiplier[0] + -1.0))
const v8 =
(ap / multiplier[0]) ((ap / multiplier[0]) v7 + (1.0 - v7))
const v9 =
Math.floor(multiplier[2] + (multiplier[0] - multiplier[2]) v8)
このコメント以前見かけて探してたわ。こんなとこにあったか
数学的な意味は自分もわからんがサブ性能をスパジャン短縮のギアパワーに換算する式だということは分かる
プログラミング言語(JavaScript)とか知らんから調べた事そのままだけど
constはv7,v8,v9(v9は式中では使わない)をそれぞれ定数として使いますよっていう宣言
multiplier[0],[1],[2]はそれぞれ57,25,0を代入すれば良い
apはアビリティポイントすなわちギアパワー(57表記)で任意の値
Math.floorは()内の小数点以下を切り捨てするための関数
計算してくと
const v7 = -0.5881678514
apに18を代入した場合
const v8 = 0.4428728322
const v9 = Math.floor(0+(57+0)(0.4428728322))
=Math.floor(570.4428728322)
=Math.floor(25.24375143)
=25
となる
表の左の数値(AP)を入力すると色々こねくり回して右の数値が出てくるって感じね
中間値を17.8ではなくギアパワーの効き目(ratio)0.5とした17.72083513として計算すると表では22→29となる所が計算では22→30とズレたから小数点以下を切り捨てずスパジャン短縮のギアパワーとしてそのまま計上するかどうかでもズレが生じると思う。他に例がないので要検証
多分合ってるけど間違ってたらごめんね
ブレの計算式の項目で掲載されてる通り計算すると、どう考えても乱数x=0のとき正の無限大に発散してしまうし、x=1の時でさえまっすぐ0°に飛ぶことが確率的にあり得ないって計算結果になるんだけど、だれか詳しい人この式について教えてほしい
y=s*x^log[0.5]b の式のこと?
x=0のときはy=0になるし、x=1のときはy=sになると思うけどどうでしょうか
それです。すみません、私が勘違いしていて、log[0.5]bをbと0.5の常用対数の積と解釈していました。
0.5の常用対数ではなくて0.5が底の対数だったんですね……
aを底とする対数の表記って普段log_a(b)としていたので、底の省略で常用対数だと思い込んでました。
ありがとうございました。
計算してみた感じですが、タンサンボム・トーピードの遠爆風とクイックボムの近爆風のslope値が0.5(1/2)から0.625(5/8)に変わってるように思います。
慣性キャンセルで即座に加速しイカロールすることができるが、その直後に同じ動作で再度イカロールを出そうとすると失敗する
おそらくクールタイムが設定されていて、普通に連続イカロールをするのと同じくらいの頻度でしか発動できない?
ラグのせいでボムが爆発する前に塗りを発生させことがあるので塗りの同期への理解は重要で文章化しないといけないと思う、
塗りの発生は攻撃側と受ける側のどちらに依存するのか詳しい人がいたら教えてください
塗りについては単純に発生させた側の塗りを同期してる感じがします
例えばAがボムを投げたとき、敵Bの視点ではボムが爆発する前に塗りが発生してるように見えることがあります
よく見たら書いてありましたね、サブウェポンの同期のところに。やっぱりこれが共通認識ですよね。
DU(長さ)と塗りのp(ナワバリの面積)の関係は分かりますか?
これがあると距離を視覚的に把握しやすくなると思うんです。
検証された方がいないならいないで、ローラーのコロコロでも使って検証しようと思うんですが。
“塗りポイント メートル 換算”とかで検索すると換算してくれるサイトが見付かりますね(最終更新の時期的にスプラトゥーン2でのデータ?)。そのサイトによれば、塗りポイント1=約3.306㎡(およそ(20/11)^2)だそうですが、検証の過程などはちょっと見当たらなかったです(追記:イカリング2の塗りポイントチャレンジを見てもだいたいそれくらいの数字のようです)。初代で調べたときのあやふやな記憶とも一致しているような気はします。情報が最新・正確でない可能性があるので、検証していただけるならそのほうがいいと思います。
ありがとう
メインのヒット判定が攻撃側ってことは
まれによくある「ダメ合計100以上当ててる(音がしてる)のに死なない」は
全部回復してるってこと???
でも以前リッターで「絶対抜いたのに死ななかった」って時にメモリープレイヤーみたら
自分の弾が相手の脳天ぶち抜いてたんだけどあれはどういうこと?
攻撃側画面で判定する攻撃の命中音がしているのに倒せないのなら、回復しているか、ダメージが足りていない(減衰している、チャージが足りていないなど)か、アーマーか何かで防がれている可能性があります。
メモリープレーヤーは自分視点の完全な再現ではないので、試合中と異なる再現がされている場合があります。
また、リッターと言えど0F着弾ではないので、完璧に照準が合っていても弾が到達するまでの間に相手が移動してしまっている場合があります。
インク回復の項目もあったからみると回復が始まるまでに60Fだから
合計105ダメだとしたら64Fあくと倒せないのか…
短いといえば短いけどそんなあけてない時も多い気がするんだけどなあ
アーマーで防がれてるというのはこっちでは命中音してるのにアーマーで防がれてる場合があるんですか?
自分で検証したわけではなくて聞いた話なのでが、このゲーム「攻撃のヒット判定」と「命中音の判定」が別に行われているというのを聞きました。
それが本当なら、
「スシで音は3回分鳴ったが、実際には2発しか命中していない判定なので相手を倒せなかった」「スクスロで直撃+爆風を当てたが、実際には直撃音が鳴っただけで爆風を2回当てた判定だったので相手を倒せなかった」
みたいな挙動も有り得るのかなと。
記事中の同期のところで参考資料としてあげられてるブログ
https://smssmooth.hatenablog.com/entry/2023/03/05/151247
にヒット音と命中判定で相違がある攻撃があげられてたけど
自分が使ってるジムはそこに載ってなかったから同一(両方攻撃側判定)だと思われる
でもヨコ(35)3発とかタテヨコ(70+35)当てても死なない時、あるんだよなぁ…
自分が聞いたことあるのはその記事内で語られている事とは違くて、「メインウェポンは基本的に攻撃側で命中判定もしているし、攻撃側でヒット音の判定もしているが、そのふたつの判定が同期していない」という説ですね
ちょっと自分は検証する方法が思い付かないので、あくまで"説"でしかないのですが、個人的にはそう考えると納得できるような場面に何度か遭遇しているのでそういう事もあるかもなぁと考えてます
なるほど、そういうことですか
まだそっちの方が信じられますね
「攻撃側で当たってたら間違いなく当たってる、相手が死んでないのは自分が外してる」というのは
今まで経験したものとは違うと感じてしまう…
最初に自分があげたリッターの件も抜いた確信があったからメモリープレイヤーまで見たわけだし
少なくともメモリープレイヤーでははっきり相手の頭にヒットしてたので
着弾するまでに避けられてたというのもないはず
(ちなみにその時はヒット音はしなかった)
まぁどっちにしてもラグが小さければささいな問題だと思うけど
このゲームのラグは本当にひどいんだよなぁ…
この件だけどスパジャンしようとしてる敵にジムの直撃うって
当たった音したのに飛ばれて倒せなかったので
少なくとも音の判定についての記述は間違ってるものと思われます
まあジムの直撃だけそうだと言われればそうなのかもしれないですが
>> 57
の方が新スペシャルについても研修してくれました
ココでメインが攻撃側、サブが被弾側判定って記述されてるけど、結局通信が通常なのが前提条件なんですよね?
「コレで俺やられなかったんだ」ってボムもあるし、パブロでビタ付き6発でも倒せない挙げ句回線落ちとか居るし。
ボムで自分が死んでないのはシンプルにギリギリ確殺範囲外だっただけ。「デスしたこと」はデスした本人の画面で完結する事実なので、相手との通信状況は関係ない。
一方他人のデスは「デスした」という信号を自画面が受け取って初めて自画面内の敵が死ぬので、ラグい相手に確定数当ててから少し間を置いて相手が死ぬというのはよくある。死んでない場合は減衰とかたまたま近くにいた別の敵に当たってたとかが原因でダメージが足りてないだけ……理論上は。
多分だけどメインで攻撃を当てた際に自分が相手に送る情報は「〇〇ダメージ与えました」だけで、「あなたは死にました」じゃないんだよね。ダメージを受けた側はそれに基づいて「何ダメージ受けた」を累積していき、100を超えた瞬間に「自分は死にました」の情報を他プレイヤーに送信する。ただショクワンアーマーを1確ブキだけ貫通する仕様?不具合?を見るに1確持ちだけは「あなたは死にました」的シグナルを持ってる可能性もなくはない
返答ありがとうございます。
ボムに関しては完全に隣で破裂、記述しなかったけど至近距離でホコ割り負けても
ヤられない事あったりで、コレは上位まで勝ち進んでで回線整った同士でやらないとストレスエグいゲームなんだろーなと思っちゃって。
ちょっと前に記述があった気がする、たまにクラブラがクマブラみたいな連射速度になるのを私も見たことがあって、コレはパケットロスで送れなかったデータが一気に再現されてるのかな?とか素人が考えたりもしたんですけど。
なんにしても、上手い人はコレで勝ち上がるんだから、言い訳しないでうまく立ち回るしかないんですけどね~。
ボムはちょっとわからないな……考えられるのは高度関係でギリギリ範囲外だったか、無意識にアーマーがつく操作をしていたか、遮蔽にならないと思ってたものが意外と遮蔽として機能したか、あたりかしら
ホコ割りは爆発時に塗られる範囲であっても地形が爆風の陰にさえなってれば案外死なんものですよ。それを利用してホコ初期位置が台上のステージでは割り負けそうなときはあえて台の真下に潜伏して割られた直後に奇襲仕掛けたりも稀に
ガチホコの地形の陰について追記:ガチホコ指南のページにチラッと書かれてるんだけど、ホコバリア爆発時の爆風の起点はバリアの中央なんよね。

だからバリアが膨らんで台からはみ出ていて、さも爆風で死にそうな場所でも案外大丈夫だったりするのよ
ホコはザトウとかの初期位置のパターンですね、台に張り付いていれば大丈夫な所。
イラストまでありがとうございます。
もしかしてこれらを踏まえた上でなお不可解な挙動に出会ったってことだったんでしょか
なんかちょっと申し訳ないです……
スクスロの渦をイカロールでダメージを防いだ後に直撃を喰らったら二度ヒット音がなって即死したことがある
あれ?となったので録画とメモリープレイヤーで確認してみても、ダメージがない状態で即死していた。
当然、他の敵の動きも確認して攻撃されていないことも確認しています。
この件でこのゲームのダメージやデスの判定が一体どうやって発生しているのかわからなくなった
クライアント側の問題という可能性も……
メモリープレーヤーはメモリー主(といえばいいのかな?)の画面状態や操作入力を基準にして試合内容を大まかに再現するだけなので、相手の画面が実際にどうなっていたかを知ることはできないよ
同期ズレの起こり具合を正確に把握するには相手のプレイ画面を直接見るしかない
イカロールのアーマーは、このページにも記載があるけど「相手の画面でアーマーに防がれており」「自分の画面でアーマーで防げている」の両方が成立してないとアーマーとして機能しないので、
スクスロの件も相手の画面ではアーマー付与より前に当ってたんだと思います(これは前述の通りメモリープレーヤーでは確認できません)
こちらの画面ではアーマーで防げたように見えているが実際には食らっている場合、ダメージの同期が取れたタイミングで一瞬で大ダメージを受け、その次のフレームでデスするような画面遷移をします(ノーダメージ状態から突然デスするのではなく、よくよく見るとデスの瞬間の1F前に謎の大ダメージを受ける)
またヒット判定の話なんだけど、さっき
ジムのタテ70+クイボ(たぶん直撃なので60)+ヨコ35
当てても死ななかった敵がいてメモリープレイヤーみたけど
相手側の視点でも全部ヒットした音してたからやっぱ
「攻撃側で当てたら必ず当たる」は間違いじゃないかなあ?
まわりに他の敵もいなかったし全部同じ相手に当たってると思うし
他にありえるとしたらチートぐらいだと思うけど
その3発当てたあと直撃当てたらキルできたし普通にデスしてるからチートじゃない気がする
確かにそれは不思議だね
それはそれとしてメモリーは別に相手側視点そのものではない
前もメモリープレイヤーは完全再現ではないって言われたな
あと音とヒット判定は別の可能性があるって言われた
それから100以上当てたはずなのにって時は覚えてればメモリープレイヤーチェックしてるんだけど
確かに他の敵に当たってたり回復の始まる60F以上空いてるっぽかったりするケースばかりだった
でも今回はさすがに絶対当たってるという確信があるし
合計165ダメ、低く見積もっても130ダメなので最低でも30回復、
となるとずっと自インクに潜ってたと仮定しても
60+30/1.4=81.4なので最低82F空いてないといけないけど絶対それはない
そのくらいの微妙なチートって存在しないのかなって思った。まあその辺は疑い出したらキリがないからいってもしょうがないけど。
イカロールアーマーの同期、要は「攻撃側判定の技は同期ズレの分だけアーマーで防ぐ猶予Fが減る」んだとして、
(床)イカロールアーマーの18Fから、同期ズレのF数を往復で2回分引いて、
「(アーマー18F) - (同期ズレF * 2)」が実質的な床ロールで防げる猶予Fになる訳じゃん
このゲームの同期ズレは最短4Fで、通信環境次第でこれより長くなるから、
同期ズレが最短ならアーマーで防ぐ猶予Fは10Fあるけど、
同期ズレが6Fに伸びるだけで6Fしか猶予がなくなる事になる
いつでも相手との通信状況が最適になるかは分からないから、ブラスターやローラーの攻撃を狙って防ぐのはやっぱ難しいか・・・
当初同期ズレの最短は4Fでは無いことに言及しようと思ったがアーマーの時間から往路復路を引いてるのもよくわからなくなっちゃった
誰か解説してくれまいか
同期ズレの最短は、実測値として実際3Fか4Fぐらいには見える(プラベで敵味方両側の視点を録画して動画編集ソフトとかで並べて比較した場合)
被アーマー視点では、相手の攻撃がヒットしたように見える瞬間より4F前にアーマーをつけとかなきゃいけないので、これで実質-4Fなのはその通り
終わり際については相手目線から見たときに不自然な挙動になりうるって話で、被アーマー視点では見た目通りアーマー終了後を叩かれてるだけなので、そこは-4Fされるわけではない気がする
18Fの無敵判定がこのラインだとして、4F遅延すると
ーーーーーーーーーーーーーーーーーー
____ーーーーーーーーーーーーーーーーーー
と4Fだけ遅延するのでこうなる
前の判定は相手から見てアーマーが無いので叩かれるとアーマーが貫通するので14Fとなる
後半4Fはみだしてるようにみえるけど、こちらは相手から見た時間なので計算には入らないです。
このゲーム、被弾時に硬直または物理演算による衝突判定がある? ジャンプ中に敵の弾に当たって、飛べる距離の足場を飛べずに落ちるように見えることがしばしばあるんだけども
そう感じる時もよくよく思い返せばインク踏んでる事が多いような気もする
これはあるんじゃないかと思う
バイト専業勢だけど、水上を飛び移ろうという時に背中から突き飛ばされる向きに殴られてるのに明らかに空中で減速して落水とか、最近だとバチコンでダイナモ転がしてる時に背中から落ちてきたコジャケに殴られた直後だけはスティックを最大倒しでも中シャケに追いつかれるようになったりとか。加速だけでは説明しがたい
おそらく、ノックバックには強制移動のほかに、強制的な減速=硬直効果も存在する
完全に体感だけど、この状態の時は上半身がのけぞる感じになってるっぽく見え、上に乗れない障害物に乗り上げた時のずり落ちと共通の(ただし若干弱めで、多少のふんばり=能動的な移動による打ち消しが効く)処理のようにも見える
そういえばサーモンランでウキワ状態から蘇生を受けるとき、スティックがニュートラルだとたまにちょっと反動でキャラが動かされることがある
動くといってもイカちゃん0.5人分くらいで、ゲーム的には完全に無意味だけど
ブレの計算について質問です。
y=s*x^log[0.5]b において、実際に乱数を当てはめていくつかの平均(100万個以上)をとってみたところ、わかばシューター初弾(s=12,b=0.04,xは乱数)における平均は約2.1となりました。これはつまり、わかばシューターの拡散範囲が12であるのに対し、実際の初弾ブレはよっぽどのことがない限り2.1程度に収まるということでしょうか?
どなたか数式に詳しい方がいらっしゃればこの計算結果とそれに対する考え方の正誤を教えていただきたいです。
追記
中央値は0.48となりました。乱数について詳しくないのですが、平均よりも中央値を参考にしたほうがよろしいのでしょうか?
追記
よくよく考えてみました。
平均値...これぐらいはブレても不思議ではない値
中央値...ブレの増減の中心となる値
数値の捉え方の違いですかね。あくまでブレの目安な気がします
図にもしてみました。
黒いモヤは点の集合体、青線は平均、赤線は中央値。データ数は100万
モヤの濃度からして、中央値をブレのおおよそと考え、平均値はそんなに関係なさそうですね
合ってるよ
乱数xが0.5(つまりちょうど中央)のとき0.48°に飛ぶので、中央値は0.48になる
弾速について
ブレーキ状態の減速割合は36%で合ってます。射程が合わないように思うのは銃口の位置やバルーン等の当たり判定を考慮していないため。
またブレーキ状態では鉛直下向きに0.07m/F^2の重力もかかっています。
またブレーキ状態終了条件はz速度とy速度両方ががそれぞれ0.2355、-0.15(m/F)を下回ると終了し、自由落下状態に移行する。自由落下状態の空気抵抗は.52ガロンに限らず全シューター、スピナー、マニューバー、シェルターで2%の割合減速が設定されています。
ちなみにブレーキ状態があるのはシューター種、ブラスター種、マニューバー種、スピナー種、シェルター種です。よってブラスターの弾も射程端ではかなり減速しており、かつわずかながら落下したあと爆発します。
意味のある情報かは分からないんですけどサーモンランのボムを浮き輪に直接当てた場合は投げ側の判定みたいです。その際同期ズレを起こすと救助された側の視点ではボムが消えずに爆風塗りが別に発生する不思議な現象が起こります。
またモグラに食べさせた場合も同様のようでモグラに食べさせたはずのボムが仲間視点だと残っていたのかモグラを倒しつつ浮き輪が救助された事がありました
そう言えば爆発してないボムに触れるだけで助かったことあるわ
116番さんの
""18Fの無敵判定がこのラインだとして、4F遅延すると
ーーーーーーーーーーーーーーーーーー
____ーーーーーーーーーーーーーーーーーー
と4Fだけ遅延するのでこうなる
前の判定は相手から見てアーマーが無いので叩かれるとアーマーが貫通するので14Fとなる
後半4Fはみだしてるようにみえるけど、こちらは相手から見た時間なので計算には入らないです。""
という理論を図式化しました

こちらの理論の方が今記載されてるやつより合理的だと思いますがどうでしょうか
3の音の聞こえ方の検証
ver.9.0.0のラグ改善に記載されてた「一般的な通信」と「相手にダメージを与えたり相手を倒したりしている状況の通信」って何が違うのですか?識者求
あ、なんで通信内容の種類で短縮具合が変わっているのか知りたいです
splatoonの細かいところは2が一瞬セキュリティ弱かった時の情報以外ないから何言っても類推にしかならん
ただ実際にやったことが内部処理の最適化であることと各プレイヤーが起こしたことの時系列データを8つ並べてそこから正しい系を構築する方法で同期してることを考えれば予想はつくことでしょう
仕様のところに貼るか、バグのところに貼るか悩んだけど、リスポーンにかぎらないアーマーの仕様?バグ?
攻撃側では与えているのに、被弾側では受けていない状態であることがあって多段ヒットの攻撃で再現性ある状態で起きるよう。
アーマーの貫通で死ぬ死なないがある不可解な現象があるのこれが原因みたい?
なのでショクワンアーマーでどうして貫通して死ぬか死なないかは現状このバグのせいで検証できない模様
上記の式の内、arctan((r1+r2)/d)(下図の青の直線の偏角)は誤りです。

的に命中する最大の角度は、発射位置(下図の原点)を通り命中圏を示す円(下図の外側の赤の円)に接する直線(下図の緑の直線)の偏角に等しくなります。
正しい命中率の計算式は、p=((arctan(1/sqrt(d^2/(r1+r2)^2-1)))/s)^log[b]0.5 になります。
Excelで計算を行いたいのですが、Excelで計算をする場合の計算式の表記はどうなりますか?
=((ATAN(1/SQRT(d^2/(r1+r2)^2-1)))/RADIANS(s))^LOG(0.5,b)
この式で命中率を算出できます。
計算できました!ありがとうございました!
こちらのグラフで算出できる座標をExcel等で再現できる式を作れる方はいらっしゃいませんでしょうか?
グラフの再現ではなく、とある時間tでの座標を出せるようにしてほしいです。
よろしくお願いします。
※グラフはつーさんが製作されたものです。
追記
初速部分は作ることができました。画像
※ボールドマーカーの値を使用しています。
追記:アスタリスクが表示できなかったので、×に置き換えました。申し訳ございません。
Excel上で動作する、フレーム毎のx速度とy速度を求める式を作成しました。
「速度=1フレーム間に進む距離」であるため、1フレーム目からnフレーム目までの速度の合計を発射位置に加算すると、nフレーム目の座標に等しくなります。
文字数制限に引っかかったので、2コメントに分けて掲載します。
=HSTACK(初速×COS(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0),IF(SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))<FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))),減速下限X速度×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),1-FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1))),IF(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))<FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),減速下限X速度×(1-減速時空気抵抗)^(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1)))×(1-自由落下時空気抵抗)^SEQUENCE(1,50))
これらの式は、一つのセルに入力することでフレーム毎の速度一覧を1行にずらっと並べます。
これらの式を入力したセルの右1行に、空白でないセルが一つでもあると動作しません。
また、これらの式はこのままでは動作しないため、「初速」「減速時最大速度」「直進フレーム数」「発射角度」「減速下限X速度」「減速下限Y速度」「減速時空気抵抗」「減速時重力」「自由落下時空気抵抗」「自由落下時重力」をセル参照に書き換える必要があります。
地道に書き換えようとすると尋常ならざる労力が要りますが、「すべて置換」機能を使うことですぐに完了させることができます。
pc版ではCtrl+H、スマホ版では上の虫眼鏡アイコン→左上の歯車アイコン→「検索とすべて置換」を選択してください。上の欄に置き換えたい文字列、下の欄に置き換える文字列を入力することで簡単に書き換えられます。
=HSTACK(初速×SIN(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0),IF(SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))<IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0),(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)))-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)),1-IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗),(IF(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))<IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0),(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(MAX(FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1),IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0))-減速時重力/減速時空気抵抗)+自由落下時重力/自由落下時空気抵抗)×(1-自由落下時空気抵抗)^SEQUENCE(1,50)-自由落下時重力/自由落下時空気抵抗)
製作ありがとうございます。
2つ質問させてください。
①「減速下限X速度」や「自由落下時空気抵抗」はこの部分の値をそのまま使用していいのか。
②「初速」や「直進フレーム数」は「A1」や「B3」などのセルの場所で置き換えていいのか。
①:「減速下限X速度」は0.2355、「自由落下時空気抵抗」は0.02であっています。
数値そのものを入れるのもアリですが、これらの値は全ブキで共通というわけではないので、別のセルに数値を入れて式にセルの場所を入れた方がメンテナンス性が上がります。
②:大丈夫です。むしろ、その使い方を想定して作成しております。
自分のExcelはHSTACK関数を使用できないものだったので、スプレッドシートで行いましたが、動作しません…

どこが間違っているでしょうか…?
おそらく、スプレッドシートとExcelの関数の書式・仕様が異なるのだと思われます。
スプレッドシートについては無知なので説明致せませんが、代わりにExcelでのHSTACK関数を使用しない式を考えました。
=FLOOR.MATH(LOG(減速下限X速度/(MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))),1-減速時空気抵抗)+1)
=IF(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))>減速下限Y速度,FLOOR.MATH(LOG((減速下限Y速度+減速時重力/減速時空気抵抗)/(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗),1-減速時空気抵抗)+1),0)
=MAX(fbtofx,fbtofy)
=初速×COS(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0)
=IF(SEQUENCE(1,fbtof)<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^SEQUENCE(1,fbtof),減速下限X速度×(1-減速時空気抵抗)^SEQUENCE(1,fbtof,1-fbtofx))
=IF(fbtof<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^fbtof,減速下限X速度×(1-減速時空気抵抗)^(fbtof-fbtofx))×(1-自由落下時空気抵抗)^SEQUENCE(1,50)
=初速×SIN(RADIANS(発射角度))×SEQUENCE(1,直進フレーム数,,0)
=IF(SEQUENCE(1,fbtof)<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,fbtof)-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^SEQUENCE(1,fbtof,1-fbtofy)-減速時重力/減速時空気抵抗)
=(IF(fbtof<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^fbtof-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(fbtof-fbtofy)-減速時重力/減速時空気抵抗)+自由落下時重力/自由落下時空気抵抗)×(1-自由落下時空気抵抗)^SEQUENCE(1,50)-自由落下時重力/自由落下時空気抵抗
fbtofx、fbtofy、fbtofは速度の算出に必要なパラメータです。この内、fbtofは減速状態を維持するフレーム数に一致します。
文字数が圧倒的に少ないですね。前回の式がいかに無駄な計算を含んでいたかがよく分かります…
この方法ではx速度とy速度をそれぞれ3行ずつに配置することになるので、座標一覧を求める式が複雑になるかもしれません。
もしこの式も動作しなければ、さらに対策を考えます。
本当に申し訳ないです。SEQUENCE関数も使えないバージョン(2019)でした…
どうにかなりませんでしょうか…(全て委ねてしまってすいません…)
いえいえ、自分は計算と理論値が大好物なのでとても楽しいです!
SEQUENCE関数の実態は、「1,2,...と続く配列を作成する」ものです。
これが使えないのなら、別の場所に1,2,...を記入することで代替できます。
まず、オートフィルを用いて1,2,...を入力します。
次に、以下の式を入力します。時刻には1,2,...の1が入力されたセル参照を入れます。それ以外のセル参照は絶対参照($A$1といった形式で入力。pc版ならF4でこの形式にできる)にしておきます。
=IF(時刻<=直進フレーム数,初速×COS(RADIANS(発射角度)),0)
=IF(時刻<=fbtof,IF(時刻<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^時刻,減速下限X速度×(1-減速時空気抵抗)^(時刻-fbtofx)),0)
=IF(fbtof<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^fbtof,減速下限X速度×(1-減速時空気抵抗)^(fbtof-fbtofx))×(1-自由落下時空気抵抗)^時刻
=IF(時刻<=直進フレーム数,初速×SIN(RADIANS(発射角度)),0)
=IF(時刻<=fbtof,IF(時刻<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^時刻-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(時刻-fbtofy)-減速時重力/減速時空気抵抗),0)
=(IF(fbtof<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^fbtof-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(fbtof-fbtofy)-減速時重力/減速時空気抵抗)+自由落下時重力/自由落下時空気抵抗)×(1-自由落下時空気抵抗)^時刻-自由落下時重力/自由落下時空気抵抗
最後に、これらの式をオートフィルすれば完成です!
とても雑ですが、こちらが例になります。

ありがとうございます!正常に動作しました!
この件で1つ頼んでもよろしいですか?
この画像のように、数値を並べれるようにすることは可能でしょうか?
こうすることで、座標が出しやすくなり、直感的にわかりやすくなると思うためです。
※画像は、ただ数値を直に入力しただけです。
=IF(AND(時刻>直進フレーム数,時刻-直進フレーム数<=fbtof),IF(時刻-直進フレーム数<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^(時刻-直進フレーム数),減速下限X速度×(1-減速時空気抵抗)^(時刻-直進フレーム数-fbtofx)),0)
=IF(時刻>直進フレーム数+fbtof,IF(fbtof<fbtofx,MIN(初速,減速時最大速度)×COS(RADIANS(発射角度))×(1-減速時空気抵抗)^fbtof,減速下限X速度×(1-減速時空気抵抗)^(fbtof-fbtofx))×(1-自由落下時空気抵抗)^(時刻-直進フレーム数-fbtof),0)
=IF(AND(時刻>直進フレーム数,時刻-直進フレーム数<=fbtof),IF(時刻-直進フレーム数<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(時刻-直進フレーム数)-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(時刻-直進フレーム数-fbtofy)-減速時重力/減速時空気抵抗),0)
=IF(時刻>直進フレーム数+fbtof,(IF(fbtof<fbtofy,(MIN(初速,減速時最大速度)×SIN(RADIANS(発射角度))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^fbtof-減速時重力/減速時空気抵抗,(MIN(減速下限Y速度,初速×SIN(RADIANS(発射角度)))+減速時重力/減速時空気抵抗)×(1-減速時空気抵抗)^(fbtof-fbtofy)-減速時重力/減速時空気抵抗)+自由落下時重力/自由落下時空気抵抗)×(1-自由落下時空気抵抗)^(時刻-直進フレーム数-fbtof)-自由落下時重力/自由落下時空気抵抗,0)
ありがとうございました!
自分は1つの式にしたかったので、直進状態の0の部分(偽の場合の部分)に減速状態の式を突っ込んで、その式の0の部分に自由落下状態の式を突っ込んで…ってしてみました。
これで正常に動作しているので、これでやっていこうと思います。
改めて、対応してくださってありがとうございました!
シューター等の銃口の高さは、何ラインくらいでしょうか?
銃口の位置は上体に振り回されるため、上を向けば銃口が高くなり、下を向けば銃口が低くなります。
つーさんの検証動画によると、仰角が5°のときにおよそ0.9m、75°のときにおよそ1.3m。
この値から計算すると、回転の中心と銃口の距離はおよそ0.455182m、回転の中心の高さはおよそ0.860328m。
よって、回転の中心の高さを0.86m、中心と銃口の距離を0.46mと仮定すると、仰角がAのときの銃口の高さは 0.86+0.46×sin(A) (単位:m) になります。
試し撃ちライン単位で求めたい場合は、この値に0.2を乗算します。
ただ、ブキ種ごとに銃口のオフセットが異なる可能性は否定できません。