こんにちは。
アイテムウィンドウやスキルウィンドウなどでアイテムが使えないときや、スキルのMPコストがなくてスキルを選択不可時などで文字が暗くなるときの色をもう少し濃くする(透明度の変更?)にはコアスクリプトのどこをいじればいいでしょうか?
選択不可時の文字色をもう少し濃くしてわかりやすくしたいなと思ってるんですがどこをいじればいいのかわからず困っています。
よろしくお願いします!
{解決済}各ウィンドウのコマンドやスキル選択不可時の文字の暗さを変更したい
{解決済}各ウィンドウのコマンドやスキル選択不可時の文字の暗さを変更したい
最後に編集したユーザー godhand [ 2022年11月13日(日) 10:07 ], 累計 1 回
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: 各ウィンドウのコマンドやスキル選択不可時の文字の暗さを変更したい
選択ウィンドウにおける無効な要素をグレー表示にする、という挙動は、対象の文字列の不透明度を下げることによって実現されています。
不透明度の変更だけであれば、 Window_Base クラスの translucentOpacity メソッドを書き換えるようなプラグインを書けば良いですが、それでお望みの挙動を実現できるかどうかはわかりません。
デフォルトが160なので、この値を調整して目的が達成できるかどうか試してみてください。
不透明度の変更だけであれば、 Window_Base クラスの translucentOpacity メソッドを書き換えるようなプラグインを書けば良いですが、それでお望みの挙動を実現できるかどうかはわかりません。
コード: 全て選択
(() => {
'use strict';
Window_Base.prototype.translucentOpacity = function() {
return 160;
};
})();
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: 各ウィンドウのコマンドやスキル選択不可時の文字の暗さを変更したい
もし、不透明度の変更だけでは目的達成できず、色指定で試したい場合は、有効かどうかで不透明度を変える changePaintOpacity を書き換えることになるかと思います。
こんな風に。
(ただし、これでは消費MPの不透明度が通常通りになってしまうので、不透明度の変更処理は残しつつ、無効な場合のみ色を変えるほうが良いかもしれません)
こんな風に。
コード: 全て選択
(() => {
'use strict';
ColorManager.disableColor = function () {
return "#696969";
};
Window_Base.prototype.changePaintOpacity = function(enabled) {
if (enabled) {
this.resetTextColor();
} else {
this.changeTextColor(ColorManager.disableColor());
}
};
})();
Re: 各ウィンドウのコマンドやスキル選択不可時の文字の暗さを変更したい
Plasma Dark 様Plasma Dark さんが書きました:選択ウィンドウにおける無効な要素をグレー表示にする、という挙動は、対象の文字列の不透明度を下げることによって実現されています。
不透明度の変更だけであれば、 Window_Base クラスの translucentOpacity メソッドを書き換えるようなプラグインを書けば良いですが、それでお望みの挙動を実現できるかどうかはわかりません。
デフォルトが160なので、この値を調整して目的が達成できるかどうか試してみてください。コード: 全て選択
(() => { 'use strict'; Window_Base.prototype.translucentOpacity = function() { return 160; }; })();
ありがとうございます!
こちらで試しましたところ望み通りの不透明度に変更できました!
↑ちなみにこちらのほうを試すと、消費MPの不透明度だけでなくスキルの文字色も変わっていませんでした。Plasma Dark さんが書きました:もし、不透明度の変更だけでは目的達成できず、色指定で試したい場合は、有効かどうかで不透明度を変える changePaintOpacity を書き換えることになるかと思います。
こんな風に。
(ただし、これでは消費MPの不透明度が通常通りになってしまうので、不透明度の変更処理は残しつつ、無効な場合のみ色を変えるほうが良いかもしれません)コード: 全て選択
(() => { 'use strict'; ColorManager.disableColor = function () { return "#696969"; }; Window_Base.prototype.changePaintOpacity = function(enabled) { if (enabled) { this.resetTextColor(); } else { this.changeTextColor(ColorManager.disableColor()); } }; })();
ロード画面のセーブされてないスロットの色は変更されてたのですが^^;
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: 各ウィンドウのコマンドやスキル選択不可時の文字の暗さを変更したい
不透明度の変更でお望みの挙動が実現できたとのことで、何よりです。
スキル名やスキルコストの描画の際に色が決められているので、色を変えたい場合はそこをうまいこと書き換えてあげないといけません。
ちょっと複雑なことをしないといけない上、今回は必要ないもののようなので具体的なコードは書かないでおきますが、方針の一例だけ書いておきます。
- drawItemNameメソッド内で resetTextColor を一時的に差し替える
- isEnableで分岐して文字色を変える
- (スキルコストも対応するなら) ColorManager.mpCostColor, ColorManager.tpCostColor を適当に差し替えるか、isEnabledで分岐して別のメソッドを呼ぶ
確かにそうですね……。もうちょっとコードをよく読むべきでした。↑ちなみにこちらのほうを試すと、消費MPの不透明度だけでなくスキルの文字色も変わっていませんでした。
ロード画面のセーブされてないスロットの色は変更されてたのですが^^;
スキル名やスキルコストの描画の際に色が決められているので、色を変えたい場合はそこをうまいこと書き換えてあげないといけません。
ちょっと複雑なことをしないといけない上、今回は必要ないもののようなので具体的なコードは書かないでおきますが、方針の一例だけ書いておきます。
- drawItemNameメソッド内で resetTextColor を一時的に差し替える
- isEnableで分岐して文字色を変える
- (スキルコストも対応するなら) ColorManager.mpCostColor, ColorManager.tpCostColor を適当に差し替えるか、isEnabledで分岐して別のメソッドを呼ぶ
Re: 各ウィンドウのコマンドやスキル選択不可時の文字の暗さを変更したい
ありがとうございます!
すみません、教えていただいたとおりコードを書き換えてみたのですが、どうもうまくいかなかったのでもういちど気が向いたときにやってみようとおもいます。
ひとまずは不透明度を変更できたのでこれにていったん解決済みとさせていただきます。
ほんとうにありがとうございました!
すみません、教えていただいたとおりコードを書き換えてみたのですが、どうもうまくいかなかったのでもういちど気が向いたときにやってみようとおもいます。
ひとまずは不透明度を変更できたのでこれにていったん解決済みとさせていただきます。
ほんとうにありがとうございました!