fc2ブログ

小話「fvar」

MUGENのfvarって値が大きいと狂うらしいので調べてみました。

長いので続きから
※すこし追記しました。
※小数でもやってみました。

KFMのdef -2に以下の記述を加える。

[State -2]
type = varset
trigger1 = !ishelper
fvar(31) = xxxxxxxxx
ignorehitpause = 1
[State -2]
type = Null
triggerall = !ishelper
trigger1 = fvar(31)
trigger1 = var(31) := floor(fvar(31))
trigger2 = 1
ignorehitpause = 1

そしてfvar(31)に整数を入れていく。
以下が実験結果です。見づらいので注意!!

fvar(31):var(31)
10000001:10000001
11000001:11000001
11111111:11111111
15111111:15111111
16000001:16000001
16500001:16500001
16700001:16700001
16750001:16750001
16755001:16755001
16759001:16759001
16759999:16759999
16775999:16775999
16776999:16776999
16777101:16777101
16777201:16777201
16777211:16777211
16777215:16777215
16777216:16777216
16777217:16777216
16777218:16777218
16777219:16777220

16777221:16777220
16777251:16777252
16777301:16777300
16777501:16777500
16777999:16778000
16778999:16779000
16769999:16769999
16779999:16780000
16790001:16790000
16800001:16800000
16900001:16900000
17000001:17000000
18000001:18000000
18999999:19000000
19000000:19000000
19000001:19000000
19111111:19111112
20000001:20000001
50000001:50000000
90000001:90000000
100000001:100000000
2140000000:2140000000
2140000001:2140000000
2140000010:2140000000
2140000100:2140000128
2140001000:2140001024
2140010000:2140009984
2140100000:2140099968
2140500000:2140499968
2141000000:2140999936
2141000001:2141000064
2141000005:2141000064
2141000010:2141000064
2141000020:2141000064
2141000050:2141000064
2141000100:2141000064
2141000200:2141000192
2141000300:2141000320
2141000400:2141000448
2141000500:2141000448
2141001000:2141000960
2141001100:2141001088
2141001500:2141001472
2141002000:2141001984
2141005000:2141005056
2141010000:2141010048
2141020000:2141020032
2141050000:2141049984
2141100000:2141100032
2145000000:2144999936
2147000000:2147000064
2147400000:2147399936
2147480000:2147480064
2147483000:2147483008
2147483600:-2147483648
2147483640:-2147483648
2147483647:-2147483648
-2147483648:-2147483648
-2147483640:-2147483648
-2141000000:-2140999936
-2140000000:-2140000000

16777216.555:16777216
16777216.99999999:16777216
16777217.1:1677218
16777217.00000001:16777218

どうやら「16777217」から値が狂い始めるようです。間違ってるかもしれませんが。
ですが「16777218」が狂ってないのがこれまたおもしろいw
負の数も試してみたところ同じように「-16777217」から狂うようです。「-16777218」も正の数と同じく。
この結果により信用できる値は
-16777217 < x < 16777217
となる。間違ってたらごめんね。
たまーにこう言う試行や実験をやるのは面白いですな。
しかしこれは恐ろしい仕様だ。ぐぬぬ...
スポンサーサイト



コメント

非公開コメント

No title

fvarの値が狂う理由とかはskeleton氏のブログに解説がありますよ~

あと少数は

[State -2]
type=varset
trigger1= !ishelper
fvar(31)=0.1
ignorehitpause=1
[State -2]
type=DisplayToClipboard
trigger1=!ishelper
text="fvar(31)=%.12f\n"
Params=fvar(31)
ignorehitpause=1

っていう感じで「%f → %.12f」にすると誤差が見えて面白いですよ

No title

> ZAF氏

情報ありがとうございます。
これは面白いですね。こんなにずれてるのか...

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

No title

> 上コメ

攻撃できなくなってしまう理由はステ抜けのしすぎでステートを戻されてしまうのが原因かと。5150ループは2500ループのことでいいのかな。2500ループはチェンステやセルステを確認してみてください。

もし、見た目を崩さずステ抜けをしたいのならアニメ式ステ抜けを使うのがいいでしょう。もしくは迷子センターを使うことを勧めます。どういうものかは拙作キャラの六丸都古が迷子センター+アニメ式ですので自分で調べてみてください。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

No title

> 上コメ

回数を減らすのは無理です。
相手によっては常時タゲステしてくるのもあるのでそこは諦めてください。

了解です!

ところでなのですが、迷子センターとはどういうものなのでしょうか?
もしよろしければ簡単にご説明をお願いします(記述は六丸都古を参考に自力でいけるとこまで頑張りますので

後、アニメ式ステ抜けとはanimの番号の差を感知するとステ抜けするというのであっていますか?

No title

> 上コメ

迷子センターは「特定のステートにステ抜けを行い、そのステートで本来居るべきステートに戻ること」を指します。
これを行うためにはアニメ式ステ抜けが必要となります。
アニメ式ステ抜けは
trigger1 = Anim = xxxx
value = Anim
でステ抜けを行うことです。これは常時ステ抜けですのでかなり強力です。しかしアニメに関する記述をしっかりしていないと正確に実行できないので注意が必要です。

>609氏
了解しました!

最後になのですが、今
ー3ステートに変数管理でgametimeを置いて、-2にで条件にgametimeである時を入れてvalueに変数を記述しているのですが、これがgametime式ステ抜けですよね?
動作は問題ないのですが

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

No title

> 上コメ

あー、すいません。返信するの忘れてました。
GameTime式ステ抜けは-3と-1の特徴であるステートが奪われてるときは読み込まれないことを利用したステ抜け方法です。
例として
[State -3]
type = VarSet
trigger1 = 1
sysvar(x) = GameTime
ignorehitpause = 1

[State -2]
type = SelfState
trigger1 = sysvar(x) != GameTime
value = aaaa
ignorehitpause = 1

GameTime式はsysvarで行うのが安全です。
valueはintになるものならなんでもOKです。

質問はわかる範囲ならいつでも受け付けますので大丈夫ですよ。
プロフィール

609z

Author:609z
やぁ、ようこそMUGEN空間構築所へ。


このサイトはリンクフリーです。
リンク報告してくれたら相互します。
ゆっくりしていってね!(*´ω`*)

http://は禁止ワードです。

最新記事
最新コメント
月別アーカイブ
カテゴリ
総訪問者数
現在閲覧者数
現在の閲覧者数:
検索フォーム
リンク
バナー
ブロとも申請フォーム

この人とブロともになる

QRコード
QR