ページ 11

KAMESOFT様の「パラメータ振り分け」スクリプトの軽量化

Posted: 2018年8月29日(水) 16:44
by utako
KAMESOFT様の「パラメータ振り分け」スクリプトを改変して、自作ゲームに使わせていただいています。
http://ytomy.sakura.ne.jp/tkool/rpgtech ... _parameter

パラメータがインフレするゲームで使用しており、
 ゲーム内変数に沿った10~倍振り分け。
 RPの表示桁を多くする。
 振り分け時にパーティーキャラを回復。
 閉じる確認ウィンドウの省略。
などの改変を行っています。
parameter.txt
(58.2 KiB) ダウンロード数: 20 回


とても良いスクリプトなのですが、振り分けるパラメータが増えてくると、計算に時間がかかるのか、一つの処理にかかる時間が、どんどん重くなってきてしまいます。

screenshot.jpg

この画像くらいまで強化すると、大体ウィンドウを開くのに5分、パラメータ振り分けに10分、カーソル移動にも10分かかります。
さすがにここまでパラメータがインフレするという状況は、作者様も想定されていないでしょうが、
このスクリーンショット、実際にここまでプレイしてくださった方のもので、不便をかけてしまっているので、なんとか処理を軽量化したいと思っています。
どうかお知恵をお貸しください。

KAMESOFTスクリプト利用規約
http://ytomy.sakura.ne.jp/tkool/rpgtech/rules.html

Re: KAMESOFT様の「パラメータ振り分け」スクリプトの軽量化

Posted: 2018年9月04日(火) 00:39
by 奈々(なな)
念のため、原因について書いておきますと
単にパラメータが凄い数値になっているからではなく(この程度の桁で重くはならないので)
パラメータ上昇量の算出を積算で行っているため、回数を増やしただけループしているからですね。
※calc_distribution_valuesメソッド


なので解決方法は、このメソッドのループ処理をループしない形で計算すればOKですね。
そして積算で処理しているのは補正値を正確に適用するためですが
回数をiとすると、コスト・パラメータ共に

「上昇値 * i + 上昇値補正 * (i + i ** 2) / 2」

で非ループで求めることができるはずです。(三角数の公式より)

Re: KAMESOFT様の「パラメータ振り分け」スクリプトの軽量化

Posted: 2018年10月08日(月) 19:05
by utako
解答くださりありがとうございます!返信が遅れてしまってすみません。
RGSSはまだあまり読めないのですが、
問題箇所を教えていただけたので、がんばって直してみます。

三角数の公式も、他にも応用できそうで便利ですね。