ページ 1 / 1
[解決済み]スキル使用時のメッセージ1と2を同時に表示したい
Posted: 2021年8月07日(土) 23:10
by とんぼ
例えばスキルの設定でメッセージを
(使用者の名前)ファイア
燃え盛る炎
にした場合、バトルログでは「(使用者の名前)ファイア」が表示された後、一瞬間を置いて「燃え盛る炎」が表示されます。
これを間を置かずに同時に表示にするように変更したいです。
どなたかご存知の方がいましたら教えていただきたいです。
よろしくお願いします。
Re: スキル使用時のメッセージ1と2を同時に表示したい
Posted: 2021年8月12日(木) 18:54
by ムノクラ
とんぼ さんが書きました:例えばスキルの設定でメッセージを
(使用者の名前)ファイア
燃え盛る炎
にした場合、バトルログでは「(使用者の名前)ファイア」が表示された後、一瞬間を置いて「燃え盛る炎」が表示されます。
これを間を置かずに同時に表示にするように変更したいです。
どなたかご存知の方がいましたら教えていただきたいです。
よろしくお願いします。
順番に2行が表示されるのを、同時に2行表示したいということで合っているでしょうか?
(そんなニーズある?間が開くってほど?とか疑問が大きかったので…何か勘違いしているかと…)
簡単なプラグインを作りました。
試してください。
Re: スキル使用時のメッセージ1と2を同時に表示したい
Posted: 2021年8月13日(金) 00:14
by とんぼ
同時に2行表示であってます。
ニーズは確かにほぼ無いと思いますが、個人的に演出上同時でないと違和感を感じます。
そして、わざわざプラグインを作っていただいて有難いのですが、こちらの想定していたものとは少し違うので、可能なら修正をお願いしたいです。
自分でもwindow_BattleLogを中心に色々弄くって分かったのですが、バトルログ系のメッセージは配列に入れて要素を1つずつ出力しているように思います(素人なので間違ってるかもしれませんが)
なので、制作いただいたプラグインのような記述だと、1つの要素扱いなので2行目は黒帯が表示されません。
加えて2つ目の要素が出力される時には表示位置が被っているので「ダメージを与えた」等の記述でメッセージ2が消えてしまいます。
質問時にはこの辺の仕様が分かっていなかったので、再度質問するとしたら
1つ目と2つ目の要素を同時に出力したいとかでしょうか?
ですが「ダメージを与えた」とかも同じ配列っぽいので単純に1つ目と2つ目とはいかないかもです。
正直、思っていたよりは面倒な作業になりそうなので、無理して修正していただく必要は無いです。
そんなニーズある?と仰られる通り、通常仕様で気にならない人の方が大半だと思います。
一応下記に再現したいものをまとめておきます。
スキル使用
↓
---battlelog--- 1,2同時出力 or 人が認識できない速度で順次出力
1行目:(使用者の名前)ファイア(黒帯付)
2行目:燃え盛る炎(黒帯付)
↓
wait
↓
---battlelog--- 3追加出力
1行目:(使用者の名前)ファイア(黒帯付)
2行目:燃え盛る炎(黒帯付)
3行目:Xダメージを与えた(黒帯付)
↓
wait
clear
Re: スキル使用時のメッセージ1と2を同時に表示したい
Posted: 2021年8月13日(金) 00:59
by ムノクラ
少しいじってみたのですが、簡単には理想の状態にはなりそうもありませんでした。
ムノクラの技量では無理なようです。
(バトルログのpush自体を変えないとできない?pushの表示間隔を管理している場所が分かればあるいは…)
他の方が対応いただけるのを祈ります。
Re: スキル使用時のメッセージ1と2を同時に表示したい
Posted: 2021年8月13日(金) 01:53
by WTR
コレでどうですかね?
addText に wait があることが原因かと読み取れましたので wait なしの addTextWithoutWait を作ってみました
コード: 全て選択
(() => {
"use strict";
Window_BattleLog.prototype.addTextWithoutWait = function(text) {
this._lines.push(text);
this.refresh();
};
const _Window_BattleLog_displayAction = Window_BattleLog.prototype.displayAction;
Window_BattleLog.prototype.displayAction = function (subject, item) {
if (DataManager.isSkill(item)) {
if (item.message1 && item.message2) {
this.push('addTextWithoutWait', subject.name() + item.message1.format(item.name));
this.push('addText', item.message2.format(item.name));
} else {
_Window_BattleLog_displayAction.call(this, subject, item)
}
}
};
})();
Re: スキル使用時のメッセージ1と2を同時に表示したい
Posted: 2021年8月13日(金) 10:45
by ムノクラ
WTR さんが書きました:コレでどうですかね?
addText に wait があることが原因かと読み取れましたので wait なしの addTextWithoutWait を作ってみました
コード: 全て選択
(() => {
"use strict";
Window_BattleLog.prototype.addTextWithoutWait = function(text) {
this._lines.push(text);
this.refresh();
};
const _Window_BattleLog_displayAction = Window_BattleLog.prototype.displayAction;
Window_BattleLog.prototype.displayAction = function (subject, item) {
if (DataManager.isSkill(item)) {
if (item.message1 && item.message2) {
this.push('addTextWithoutWait', subject.name() + item.message1.format(item.name));
this.push('addText', item.message2.format(item.name));
} else {
_Window_BattleLog_displayAction.call(this, subject, item)
}
}
};
})();
addText を探せば良かったんですね!
勉強になりました。
Re: スキル使用時のメッセージ1と2を同時に表示したい
Posted: 2021年8月15日(日) 01:12
by とんぼ
理想通りの動きを確認できました。
あまり需要がない改善要望だったと思いますが、WTR様、 ムノクラ様、対応していただきありがとうございました。