流れる時の中で

主にmugenの凶悪キャラを制作しております

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

11月24日コメント返信分 

2012/11/24
Sat. 13:11

非公開コメントでの質問でしたが、他にも似たようなこと思ってる方もいるかもしれませんので、記事にしておきまする。


まず始めに、親変更に対する耐性の回答から。

まず、親変更自体は前回説明した通り、孫ヘルパーの親を敵ヘルパーに変えてしまう技術でしかありません。
質問は恐らくその後の変数弄りの部分なのでしょうが、一応親変更自体の対策も不可能ではありません。

というのも、前回説明した通り通常の親変更はIDが特定値でなければ成立しません。
なので、こちらのヘルパーが親変更不可能なIDに調整してあげれば防ぐ事ができます。
もっとも、ここまでやっているキャラは私は知りませんが…
全領域親変更の場合は諦めましょう。

で、本題の変数弄りの対策の話。

最初に結論を述べると、こちらは恐らく防ぐ手段はありません。

が、それに対する対策はいくつか存在します。

1つ目に、親変更で弄れる変数は通常のvar,fvar変数だけなので、重要なものはsysvar,sysfvarを使う方法。
一番いいのはヘルパー変数使わない事ですが、耐性だけならまだしも演出殺傷力を求めるとどうしてもそういう訳にはいきません。
なので、弄られる心配のないシステム変数に弄られたくないものを代入しましょう。

2つ目に、ヘルパーの変数を弄られたのを感知する方法。
毎フレーム決められた値を代入し続け、その値が変化していたら弄られていると判断する。

この後の対策は人によりけりですが、変数を信用しなくしたり、あまりお勧めしませんが論外化したり。
対策という意味では微妙な部類な気もしますが。

3つ目に、変数を毎フレーム最初に初期化する方法。
ただし、値を持続的に保持しておくことはできないので、そういう値はやっぱりシステム変数に頼るしかありません。

と、思い付く限りの対策をのせてみました。

私のキャラの例を上げると、ヘルパーの通常変数で使用しているのは基本的には何かしらの記憶用です。
即死返し用のステートだったり、GameTime式ステート抜け貫通用の値だったり。
勿論弄られると困る値ではありますが、親変更持ちにそれらが通用するかと言われたら…な部分もありますしね。

注意点としては、ヘルパーの変数を弄られるとmugenが停止したり落ちたりしないように心掛けることでしょうか。
勿論、弄る方が悪いわけではありますが。



続いて、本体親変更に関して。

親変更と名前が付いていますが、こちらは親捏造を利用した技術になります。
上の通常親変更との違いは、親とする対象を敵のヘルパーとするか敵本体とするか、だったような気がします。

これにより、敵の子ヘルパーを奪うことなく敵本体の通常変数を弄る事が可能です。



こちらは恐らく、防ぐ手段はありません。
ヘルパーと違って、本体のIDは固定ですので親変更のようにはいきません。


対策としては、通常の親変更と同じことが言えますので省略。

ただ、やはりヘルパーと違って本体の通常変数はそれなりに重要な値を代入する事が多くなるのも事実です。

システム変数も通常変数と比べると数がかなり少なくなりますし、この辺の対策は1つの腕の見せ所でもあるのではないでしょうか。




さて、簡単ではありますがいかがだったでしょうか。
まだ解りにくかったり不明な点がありましたら、お気軽にどうぞ。

スポンサーサイト

[edit]

CM: 0
TB: 0

page top

コメント

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://awmm.blog3.fc2.com/tb.php/574-197ffa3d
この記事にトラックバックする(FC2ブログユーザー)

page top

2017-07

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。