【プリコネR】星6コッコロの回復量を上げすぎると全滅します【オーバーフロー】
HTML-код
- Опубликовано: 8 окт 2024
- イベントSP モード3で星6コッコロの回復量をひたすら上げてみたらヒールをした瞬間に全員のHPが0になってしまいました
追記:プログラムのint型の上限である約21億を超えてマイナスになった可能性があるみたいです
追記2:オーバーフローする状態よりさらに追加でバフをしたら(100億以上は回復するはず)全滅はしなくなりましたが自身の回復7395全体3081で固定されてしまいました。バフ量を増やしても数値は変わらず実際の回復量も表記程度の回復しかしなくなってます
42億以上になってマイナスはなくなったけど数値が固定された?
ゲーム時間残り29秒あたりから録画を開始しています
反転ヒールの所だけ見たい方は12:40まで飛んでください
回復量を上げ続けて回復8桁を超えると数値が減少したりなぜかTP回復表示になる(実際にはHP回復してる)→回復表示がなくなる→回復した瞬間に全員のHPがなくなるって感じになりました
オーバーフローにて回復が反転してるのかも??
コッコロの回復量はもうどのくらいかかってるのかわかりませんが10桁以上はいってるはずです
細胞の再生に限界があるリアルを忠実に再現するとかサイゲやりますね
変数型が実際のゲームに及ぼす影響を勉強できる教材だ
12:46 タイトルのネタまでが長すぎて草生えたので忙しい人用
あざっす
助かります
プログラマーではないので単なる推測ですが、
追記2の減少に原因ついて考察してみた。
原因その① 回復量が増加しすぎてintで収まらなくなった。
そもそもオーバーフローで回復量がマイナスになる原因は、回復量が2進数で32桁
(頭の桁は1)で、intでは最初の桁は 1 = 負数という仕組みなのでコンピューターが
何も考えずにそれを「負数」として処理すること。
但し回復量が100億以上になると、2進数で33桁以上になるのは確定(2^33-1 = 8,589,934,591)。
この場合、2進数で32桁をフルで使っても収まり切れず、32-bitがベースとなるintではプロセス
しけれなくなります。つまり、回復量が32-bitの限界である42億(4,294,967,295)を超えた時点では
プログラムが処理できなくなり、いくらさらにバフをかけても回復量は増加しません。
最終的の回復量のintで処理できる下32桁を見ると0...になるはずなのでその余剰分が
通常の正(+)の回復としてプロセスされパーティーメンバーのHPに加算されます。
原因その② 物攻のオーバーフロー
コッコロ★6 UB の回復量は物攻に依存しますので、今回のオーバーフローは物攻をバフしまくって
回復量を計算した結果intの限界値を超えるようのもの。ただ物攻は最終的に回復量と同じ「変数」
なので、同じくintで処理される可能性は高いです。
回復量が100億以上であれば物攻が83億以上あるという計算なので、そのはるか前に(回復量約25億の時点)
オーバーフローしている可能性が高いです。仕組や影響は回復量のオーバーフローと全く同じですが、
物防や魔防みたいに「0以下にはならない」という追加のストッパーがおそらくありますので、その時点で
異常が検知され、正の数に修正されたうえでバフをさらにかけてもこれ以上増加しないように処理されます。
その結果、最終的な物攻は「21億(正確には2,147,483,647)を超えた余剰分」として処理され、
回復量が普通の計算式で計算され、その分パーティーメンバーのHPに加算されます。
個人的には物攻の数字が「3618」であれば自身・全体回復の数字が合うので
おそらく何かしらの理由で物攻が一定の数値になっている⇒②が原因だと思います。
BLEACHの回復力が強すぎて体が腐る現象を思い出した
そんなのありましたっけ?
@@hyg5610 過回復でググれば多分出てくる
@@ootori2763 ありがとうございます!
四番隊長の卍解『みなずき』やけ(漢字忘れてもた)
それとも、マユリ隊長の助手?娘の肉体食ったクインシー(霊王の手)の末路?
@@斎藤潤-b6k 霊王級の麒麟寺の温泉でしたよ!
すごい…サポートだけじゃなく高威力全体攻撃までできるなんて…
これもうコッコロちゃんが最強キャラってことで良いのでは?
その攻撃全部味方に当たってますけどねw
@@tiffy_mpmf 『みなごろし』で草
いわゆる仕様バグ
特定の型(今回はおそらくintだろうと予想)の内部変数の上限値(intだと約21億)を超えるととたんに値がマイナスになるというオーバーフローという現象
まさに32-bit系の限界ですね。(他コメントによると使用メモリー上64-bit系にするのは難しい)
簡単説明すると、回復量を表すint型では、32桁の2進数を使って数字を表します。
最初の1桁は「正負」を表し(0なら正数、1なら負数)、残りの31桁は数字自体を表します。
なので int は最大 011...1 (1が31個)= +2,147,483,647 (2^31 -1) を表せますが、この限界を
超えようとするとほとんどの場合 int 表示が 1.... (後ろ31桁)になりマイナスの数字になります(※)。
コッコロの回復量があまりにもデカすぎて、その結果ゲーム上では扱いきれずマイナスになってしまい、
UBで全員を回復するどころかHPを全て奪い、パーティーを全滅してしまいます。
これがオーバーフローです。
※ int 型では、100...0 (0が31個)は-0ではなく-2,147,483,648を表し、後の31桁が大きくなるにつれて
徐々に-1に近づく仕様なので、限界回復量の2,147,483,647を少し超えたほうがダメージがデカく、逆に
大幅に超える(42億以上)と軽傷に済む。(回復量はマイナス(=ダメージ)であることは変わりませんが)
@@widiantothamrin 0000000000000000000000000000000みたいなのの一番最初の桁で+−決めて、残りの数字で数字決めてるけど数が大きかったから繰り上がっちゃったってことでしょうか?
@@檻姫澱 そうですね。もっと桁数が少ない型(4桁型)の例を見ると、
元の回復量は+7とし、4桁型では 0111で表示・保存されます。(0は+、111は2進数での7)
何かしらの理由で、回復量が1増えたとします。すると回復量は 7+1 = 8 = 1000 (2進数)に
なりますが、回復量が正負を表す最初桁までが繰り上げてしまったため、4桁型ではそのまま
-8 (1はー、000は8を表す(負数では数字の順番が逆になるため))として認識されて
結局回復量がマイナスになり、回復量が増えたのに全員がダメージを喰らうハメになる。
もちろんたった8の回復量でこの現象が起きると話にならないのでint型という32桁分を使いますが、
どんなに桁を使っても最初桁を+ー用にしてしまうと数字が大きければいずれこの問題が発生します。
つまり無限マホによる無限バフのせいで、コッコロのUBによる回復量がゲームの限界を突破(オーバーフロー)
してしまい、プログラムが正常に動けなくなり、本来やりたいことの逆が起きてしまうという現象でした。
なんで攻撃には上限設けて
回復には無いんや
回復がダメージになる状態異常でもあったんか?
@@presidio7116 想定してなかっただけだよ。
12:45 Overflow 🥲
オーバーフローでマイナスになるということは、signedで計算していると思われます。
しかし、ダメージ量はカンストで頭打ちするように処理されていることから、マホによる連続UBが全くの想定外だったことが伺えますね。
まあ『普通』にプレイしてたら起きませんからねw
全滅したって報告があったら連打ツール使用確定なのでBANでいいと思いますよw
@@おもらし侍ブルー 多分これ人力です
@@benitoite1248
他にも多数あったらって話では?
実機人力でやってる動画が出てる時点で他も何もないでしょ
これはもう実質尊死
まぁマトモに戦ってたら起きない現象だから無問題だな
残り時間29秒(13分越え)
オーバーヒールなんてFF9の裏ボス倒すときの裏技でしか見たことなかったw
回復量の限界を超えるのヤバw
今、LoAの中では29秒に13分が経っています
2:37 の残り22秒でのUB発動したときは回復値が表示されるのにそれ以降のUB発動しても回復値が表示されなくなるという…
これがプリコネ版閃華裂光拳か
マコトが使いそう
まさか味方にオーバーキルされる時代が来るとは…()
こっわ、体が再生スピードに耐えきれずに、細胞のコピーが上手くいかずに暴走して異形化してタヒぬやつやん。
回復量をオーバーフローできるプリコネという神ゲー
僕はヒールで全滅したこと以上に、たった30秒の対戦が13分の動画になってることに驚いたよ
前回はプリコロUBのHP継続回復量だから、今回はマホUBのTP継続回復量と思います
回復表記の色が途中からtp回復の表示ってことは1桁分tp回復かhp回復の表記判定に使ってるのか?(にわか)
マイクラでも回復ポーションLv19だったけ?そのポーションを生きてるモブ(プレイヤーも含む)にかけると死ぬからそれと同じやつだね
残り30秒なのに13分……
後日修正が入り回復量がlong型になったのであった…
そもそも25秒が13分ある事に気付こうな
本当の問題はオーバーフローじゃなくて、試技時間が長すぎることなんじゃ…?
30秒ちょっとに13分とかプリコネ頭おかしい
ff7のデスペナルティを思い出した
上の残り時間がマジで進まないw
バスケアニメの残り10秒がマジで長い現象w
Kokkoro: Let's heal
Everyone: *dies*
Kokkoro: O_o *dies too*
プリコネでオーバーフローを見る時代が来るとは…w
プリコネ‥‥いつの間にかオバーフロー起こすレベルにまで回復するようになったのか
10分もこれやり続けるとか頭おかしいよ…
これの修正とかメモリに負担かけるだけだからしない方が良い。
しなくてもいいじゃなくてしない方がいい
パズドラで見慣れた限界値が散見される。
まさか近年のゲームでオーバーフローを見ることになるとは...
フレンドリーファイアってレベルじゃねーぞこれ
舞い上がっちゃったかぁ
バフかけすぎて酸素の濃度が濃くなったようなもんか
この動画の何が恐ろしいって
1分半の戦闘時間が13分になってるところよな
しかも1分半の中の30秒時点からという
回復いっぱいすると全滅するのか知らなかった初めて知ったよ
こんな実害がまず無い動画でゲームの作りが甘いとか限界とか言ってる人がいる事に驚き
パーティ全滅という実害があるのですが…😅
@@藤田明日夢 普通にやってて13分ひたすら回復バフ盛る状況ってどれぐらいあるんですかね…
RPGで高難度に回復耐久パなんてメジャーだと思うけどね。回復に上限つけてるRPGも多いし運営が気付かなかっただけだろうし。こういう遊びだろうからみんな本気でゲームに文句言ってるわけじゃないでしょ
全然関係ないけど、自分がスマホでやってたとき、重すぎてゲーム内1秒が現実5秒くらいだったの思い出した。
???「おーばーふろぉ」
これはブッコロさんですわ
まあだいたいこういうゲームのパラメタってint型だもんな
オーバーフロー対策してないんか。アンダーフロー対策はそういうデバフが無いから要らんのかな。
ついにオーバーフロー出来るようになったんか....
なんでintとかいう環境に依存する変数使っているんだ??
環境によって違うっていうのはアンドロイドの人とiPhoneの人で扱える幅が違うってことですか!
体細胞の再生速度を暴走させて内側から破裂させたのか...( ゚д゚ )
バグというより仕様
やりすぎ注意ってこと
こりゃ回復量に上限つけた方がいいね...
手動連打でこれは強い
ダイ大の閃華裂光拳思い出した
変数を4byte(十進数で1~21億ほど)の型で宣言してるんですかね
21億も回復できるんでしょうか?
@@pchannel86 体力の方は最大体力を超えないようにしてると思いますけど、回復量の方が21億をオーバーフローしてマイナスになっちゃったんでしょうな。
-21億回復で体力が0に、って感じでしょう
@@Gent-Owl 説明ありがとうございます。ちなみに回復量21億=体力を21億回復、とは違うのでしょうか?
@@pchannel86 推測になりますが多分ゲーム内では回復を行うとき、下記の式を使うようにプログラムされています。
新HP = 現在HP + (回復量)
なので通常正 (+) の数字しかない回復量は、その分体力を回復することになります(但し最大HPまで)
ただ今回の問題(オーバーフロー)は、回復量が大きすぎてゲーム内の数字表示システムが扱いきれず、
その結果マイナスとして表示されてしまいます。その結果何もせず式に当てはめるとHPの減少(=ダメージ)
として処理されて、しかも処理後HPがマイナスになるのでパーティーが勝手に全滅してしまいます。
功さんの説明にもうちょい付け加えると、こういった体力の変動には以下のような処理が加えられます。
『新体力 = 現体力 + (回復力)』
『もし新体力がキャラの最大体力を越えていたら、新体力をキャラの最大体力に書き換える』
では、回復力がマイナスになった場合、新体力の計算式は以下のようになっちゃいます
『新体力 = 現体力 + (-回復力) = 現体力 - 回復力』
この辺は算数と一緒です。マイナス値を足したら減算される。
なので体力が減ってしまう。
最大体力を越えていたら、というプログラムもこれには対処できないんですね。
最後に、ではどうやって回避するか。
簡単な話で回復力の増加処理の方にも、最大値に設定する処理を入れてしまおうということですね。
回復力の増加も、以下のような計算になります。
『新回復力 = 現回復力 + 回復バフ量』
例えば、プラスの値を足した結果がマイナスになったらそれは最大値を超えてオーバーフローしてしまったということなのでメモリ最大値(約21億)を回復力に設定する。
別の方法だと、限界値が約21億とは言いますが、もう少し掘り下げると約21億4700万なんですね。なので21億を限界値として定義しておき、加算結果が21億を越えたら21億に設定する、という方法もあります。(ただしこちらは回復加算量がめっちゃ大きいと21億を超えてオーバーフローしちゃう可能性も秘めていますが……まぁそういったことを全部考えないといけないのがプログラマなんですよね)
コッコロたん、ヤバいですね
仕様って言ってる奴おるけどこんな回復量上げることが出来るようになってることがバグだと思うわ
閃華裂光拳と同じ原理か
とんでもないバグ見つけてますやんw
バグも何も普通はこんな事絶対ならないからバグじゃなくてシステム上の仕様なんだよなぁ…………
人の再生の限界を突破したのかな💧
時間切れのタイミングにあわせて技うって
ぽく見せるだけかな?って思ってたけど
マジでなんで?
同社のシャドバも近いことが起こってたから、同社の別ゲームも数値に関係するものは同じ型が使われている可能性があるのかな?
あと1ヒットでのダメージやアイテムの所持数などに上限があるように、上昇可能なステータスにも上限を設けたほうが今後を考えるといいのかな?
今回の回復量上昇は悪さするとは思いにくいけど
回復量の上限を単に入れてなかっただけ説
(攻撃のほうは例のヤバい猫耳さんの影響で手入れされてたんだろうけど)
@@NTKPSC
でもクランのあれって説明文的に減衰だからまだ悪さできる可能性があるのは怖い
これは普通にバグなのでは…?回復がいきすぎて攻撃になってしまうバグなのでは…?
最後 コッコロ?「もう、育児疲れました。」
ナニコレ…………
よくこんな事見つけますね、、、
Kokkoro:I am healing, Why everybody died OxO
She kill them XD
こんなこともあるんですね
自決するの面白すぎるw
ママは武神流を極めたのかな…………
マホイミかな?
主様方お初にお目にかかります。ぶっコロと申します。
これにはサイゲもビックリ
オーバーフロー! ヤベーイ!
回復強化、回復強化、回復強化、攻撃強化、腐り落ちろ
大学の講義で型ごとの上限値みたいなの習ったことあった気がしたけど、まさかプリコネで限界に達する瞬間を見るとは思ってなかったw
バグかと思ったけど仕様なの?
コレはヒドイ……
オーバーフローさせなければ
良いのかも知れないけど……
これは純粋にバグじゃ?
このバグ、修正すべきではww
最近で言えばマホイミ、昔ならエッグドラゴンにポーションって事だな。
両方分かる人居る?
int型は所詮雑魚よ・・・
閃華裂肛拳
翻訳で大爆笑したw
これってつまり攻撃でofを起こせば敵が回復するってことだよな…?
いや待てよ…そういえば攻撃はカンストあったわ(´・ω・)
作りが甘いとか限界だなとか言ってる人は往年のゲームのバグ技知って無さそう(
これバグなのかな?仕様なわけないよね?
仕様みたいなもんやで
ゲーム的にはバグ、プログラム的には仕様
即時再生かな?
なんかもうこのゲーム限界じゃね?w
TP関連といい同感です
システムの限界を映した動画だから当たり前っちゃ当たり前
오버플로우 ㅋㅋㅋㅋㅋ
そんなにデカい値回復できるのかな?でなければさすがに体力最大値低すぎだと思う
作りが甘いね〜
5周年はないね、これは