ページ 11

【解決済】防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月22日(水) 04:24
by リバース儲
現在制作中のものでは、キャラのTPの量でダメージの倍率が変動するようになっているので、
TPが上下変動するようなものにしたいです。

ですので例えば、防御中や特定のステートの間だけTPチャージ率をマイナスにすることで、
結果的に被ダメ時にTPが減算されるような方法はないでしょうか?

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月22日(水) 09:22
by ムノクラ
リバース儲 さんが書きました:例えば、防御中や特定のステートの間だけTPチャージ率をマイナスにする


やりたいことがよく分かりませんが、TPチャージ率(TP再生率の間違いでした)をマイナスにするステートは標準機能で作れます。
SS01.png

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月22日(水) 11:07
by 剣崎 宗二
お疲れ様です。
残念ながら、TPチャージ率とTP再生率は違う物だと考えられます…
(前者は行動による増加値にかかる倍率で、特殊能力値であり、乗算計算で、マイナス設定不可。
後者は毎ターン自動で回復される量で、追加能力値であり、加算計算で、マイナス設定可です。)

私の方ではコード改造/新規プラグインしか思いつきませんが(Game_Battler.prototype.chargeTpByDamage周辺)プラグインなしで行けるならばそれがベストですね。

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月22日(水) 18:38
by ムノクラ
viewtopic.php?p=28808#p28808

剣崎 宗二 さんが書きました:お疲れ様です。
残念ながら、TPチャージ率とTP再生率は違う物だと考えられます…
(前者は行動による増加値にかかる倍率で、特殊能力値であり、乗算計算で、マイナス設定不可。
後者は毎ターン自動で回復される量で、追加能力値であり、加算計算で、マイナス設定可です。)

私の方ではコード改造/新規プラグインしか思いつきませんが(Game_Battler.prototype.chargeTpByDamage周辺)プラグインなしで行けるならばそれがベストですね。


なるほど、そういう分類なんですね。
勉強になります。

「TPが上下変動するようなものにしたい」
「防御中や特定のステートの間だけTPチャージ率をマイナスにする」
を自分は単純に考えて、厳密にチャージ率でなく、得TPを減少させたいという意味かと解釈しました。
一般的にはスキルを使用するくらいでしかTPを消費できないのを、違う形で消費したいという希望かな?と受け取りました。

防御は単純にSSのようにするだけで、TPが消費されます。
SS01.png

・消費TPを上げる。
・得TPを0にする。

プラグインで解決するなら、下記でしょうか。

▼YEP Special Param Formula プラグイン
https://fungamemake.com/archives/1708

下記は設定が、結構大変そうですけど…その分、細かく設定できるようです。

▼YEP Enhanced TP プラグイン
プレイヤーがTPモードを切り替えられるシステムを追加できるプラグイン
https://fungamemake.com/archives/1635

プレイヤーがTPモードを切り替えられないようにもできるようですし、1つのモードのルールを作者が決めて、様々な行動に対して、式で指定できるようです。

>リバース儲様
このように、どういうケースに、どのような動作をしたいというのを少しでも明確にして質問いただかないと、解釈が難しくなり、回答がつきにくくなります。
できれば、やりたいことを箇条書き・条件分岐などで整理していただけないでしょうか?

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月22日(水) 20:16
by 虚構の城跡
剣崎 宗二 様の仰る通り、マイナス設定は出来ませんが、近い表現なら可能だと思いますよ。

要は防御を使用した時にTPを消費させるのではなく、防御中に敵からの攻撃やスキル等でTPが減少させたいという事でしょう。

やな 様の条件付きシリーズの条件付き追加効果というプラグインを利用したら、
防御中(その間はステートが防御だから)だと、攻撃やスキルに追加効果として、TPが減少する。

という設定が出来るかもしれない・・・。

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月22日(水) 21:56
by リバース儲
皆さま様々な方法を教えていただきありがとうございます。
挙げられた方法でできるかどうかは今から試してみます。

その前に私の書き方ややりたいことが非常に分かりにくいものになってしまっていたようで、
できるだけ伝わるように書いてみます。文章が足らず申し訳ございませんでした。

まずATBの戦闘で、TPを必殺技ゲージのようなものとして扱わずに、
テンションゲージのようなものとして扱うというのが前提でした。

TPが100に近いほど与ダメ被ダメともに上昇し、TPが0に近いほど与ダメ被ダメともに下降する。
またTPが一定以上でないと使えないスキルや、TPが低いとHPの回復量が多くなる…など。
それぞれにおおまかな特徴があります。

戦闘の状況に応じてTPの増減を調整するようなシステムにしようとしています。

そして特定の行動によってTPは増減します。
攻撃時、被ダメ時にはTPが上昇する。
防御状態での被ダメ時、待機時にはTPが下降する。
ほかは増減が極端になるステートやTP値の調整ができるスキル・ステートなど…。

戦闘中の行動がTPの増減に関わってくるのであれば、
プレイヤー側が感覚的にTPの調整が行えるのではないか、ということです。


そしてTPチャージ率のマイナスに至ったわけは、普通は被ダメ時にはTPは増えてしまうけど、
防御時の被ダメは(TPチャージ率がマイナスなので)TPを減らすことができるのではないか…という思い付きです。

私のやりたいことは以上です。失礼いたしました。

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月22日(水) 22:27
by 虚構の城跡
なんか、そういうテンションに関する奴を見た事があります。
viewtopic.php?t=1654

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月23日(木) 09:27
by アリクイマン
被ダメージ時、とのことなので、
ムノクラさんの仰るようなコストや負の再生率による、
固定値の消費ではなく、ダメージ量によっても減少量が変わったり、
被ダメージしなければそもそも減少しない、という認識で良いでしょうか。

要件は把握できましたが、剣崎宗二さんと同様、
新規でプラグインを作るくらいしか解決策が思い浮かびませんでした。
戦闘計算式はevalで評価されていると記憶しているので、
計算式内に該当処理を埋め込むのも手だとは思いますが、冗長になってしまいそうです。
(そこまでするならプラグインを作成した方が早い気もしますが)

安易なものでよろしければ、プラグインを作成することはできますが、
ツクマテでアップロードしたことがないのと、
ちょっと今忙し目なので時間がかかりそうなのがネックです。

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月23日(木) 20:41
by ムノクラ
プラグインなら下記で設定できると思います。

▼YEP Special Param Formula プラグイン
https://fungamemake.com/archives/1708

TCRがTPチャージ率です。

* アクター、職業、敵、武器、防具、ステートのメモタグ
*
* <stat Plus: +x%>
* <stat Plus: -x%>
* <stat Plus: +x.y>
* <stat Plus: -x.y>
* 'stat'を'tgr'、'grd'、'rec'、'pha'、'mcr'、'tcr'、'pdr'、'mdr'、
* 'fdr'、'exr'に置き換えます。
* プラグインのデフォルトの式が使用されていると仮定して、
* rateとflatの値がパラメータの合計値になる前にベースパラメータに
* 追加される値です。
*
* <stat Rate: x%>
* <stat Rate: x.y>
* 'stat'を'tgr'、'grd'、'rec'、'pha'、'mcr'、'tcr'、'pdr'、'mdr'、
* 'fdr'、'exr'に置き換えます。
* プラグインのデフォルトの式が使用されていると仮定して、
* 基数とパラメータの値の合計にフラット値を加算する前に乗算された値です。
*
* <stat Flat: +x%>
* <stat Flat: -x%>
* <stat Flat: +x.y>
* <stat Flat: -x.y>
* 'stat'を'tgr'、'grd'、'rec'、'pha'、'mcr'、'tcr'、'pdr'、'mdr'、
* 'fdr'、'exr'に置き換えます。
* プラグインのデフォルトの式が使用されていると仮定して、
* 基本値とプラス値の合計に最後に加算された値です。

Re: 防御中のTPチャージ率をマイナスにしたい

Posted: 2019年5月24日(金) 00:00
by リバース儲
皆様方、お手数をおかけしております。問題が解決しました。

前提として書き忘れていました。
被ダメ時のTPの獲得量は3の固定値であること、
また防御中の被ダメ時のTP獲得量は-2の固定値であることを予定していました。

被ダメ時に関しては過去ログに載っていた
Game_Battler.prototype.chargeTpByDamage = function(damageRate) {
this.gainSilentTp(3);
};
の式をプラグインとして導入することでいったんの解決を得ていました。

しかしこれではムノクラ様の教えていただいたYEP_SpecialParamFormula.jsを導入したところで
防御中の被ダメ時のTP獲得量をマイナスに変更できないということに気が付きました。

なのでやや過剰な気もしますがYEP_EnhancedTP.jsも合わせて導入し、
Take HP DMGの式を(3 / user.tcr)とし、<tcr Flat x%>の値を-2/3にすることで
通常の被ダメ時のTP獲得量は3、防御時のTP獲得量は-2というようなことが可能になりました。

ともかく、YEPプラグインを導入することで現状の問題は解決しました。
今後なにか問題が出てきたら追加効果のプラグインの導入も検討してみます。
質問に答えていただいたムノクラ様、剣崎 宗二様、虚構の城跡様、アリクイマン様ありがとうございました。