ページ 11

【解決済み】制御文字で敵キャラの名前を表示することは出来ませんか?

Posted: 2019年7月11日(木) 13:33
by スヴェン
スキル発動時に「~はスライムに波動拳を放った!」といった風に敵キャラの名前を表示したいのですが制御文字の一覧を見てもエネミーの名前を呼び出すものが見当たりませんでした。
もしあるのでしたら教えて頂けないでしょうか?
制御文字では不可能な場合他に何か方法がありましたら是非ご教授ください。

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

Posted: 2019年7月11日(木) 13:59
by 剣崎 宗二
要件に物理的な難があるかと考えます。

例えば敵3体に全体攻撃スキルでその制御文字を入れたとします。
表示されるのはどの敵になるのでしょうか…

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

Posted: 2019年8月09日(金) 17:55
by スヴェン
返信ありがとうございます。
敵は一体しか登場しない設定ですのでその辺は大丈夫です。
よろしくお願いします。


剣崎 宗二 さんが書きました:要件に物理的な難があるかと考えます。

例えば敵3体に全体攻撃スキルでその制御文字を入れたとします。
表示されるのはどの敵になるのでしょうか…

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

Posted: 2019年8月14日(水) 12:17
by 剣崎 宗二
少し調べてみましたが、やるためにはやや大がかりな改造が必要になるかと。
…ここの表示を担当しているのはWindow_BattleLog.prototype.displayActionなのですが、そもそもアクションのtargetのデータを取得していないので、そこから改造を始める必要があるんですよねぇ…

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

Posted: 2019年8月15日(木) 17:37
by sally
テストはしていないのですが、やなさんの発動前コモンプラグインと、
viewtopic.php?t=1687
のyamachanさんが記載されているスクリプトの併用で、擬似的に再現が可能と思います。

ただし、こちらの方法ですと、エネミーの行動では再現ができません。

やり方は
1. やなさんのプラグインにて発動者と対象者IDを代入する変数を指定
2. yamachanさんのスクリプトの最下部
$gameVariables.setValue(20,skill.mpCost); //変数20番にセット

$gameVariables.setValue(20,skill.name); //変数20番にセット
に変更し、セットする変数を希望のものに変更する(変数3にしたいなら、20を3に変える)。
4. コモンイベントを設定する
■ イベントコマンド[スクリプト]にて3のスクリプトを作成
■ 文章の表示を編集する
 内容: \v[発動者]は\v[対象者]に\v[スキル]を唱えた!
      →[発動者][対象者][スキル]それぞれ2にて指定した変数IDを入れる。
※この方法の場合、スキルの使用メッセージは空白にする必要があります。
5. 各スキルのメモ欄にて呼び出すコモンイベントを指定する。

また、末尾の「唱えた!」は「放った!」など数パターンあるかと思いますが、
その場合は末尾に応じてコモンイベントを作ればよいかと思います。
一応、末尾も属性などを利用して変数化できますが、
条件分岐を使うと重くなるかもしれないのであまりおすすめしません。

文章の表示で表示方法を暗くするに指定すると4行分暗くなったりと違和感が残るので、
バトルログに直接文章を入れられればいいのですが、
その方法まではわかりませんでした…。ごめんなさい。

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

Posted: 2019年8月15日(木) 18:19
by sally
投稿後に気づきました。

上記ですと、発動者と対象者のIDは取得できても、
名前が指定できませんでした。

名前を入れるためには文章表示の前に

変数の操作:#発動者 = $gameParty.members()[$gameVariables.value(発動者)].name()
 ┗発動者には、発動者の変数IDを入れてください
  ※オペランドはスクリプトです。
変数の操作:#対象者-=1000
 ┗減算1000を行ってください。
変数の操作:#対象者 = $gameTroop.members()[$gameVariables.value(対象者)].originalName()
 ┗対象者には、対象者の変数IDを入れてください
  ※オペランドはスクリプトです。

の3つの変数の操作を行ってください。
これで名前が入るはずです。

Re: 制御文字で敵キャラの名前を表示することは出来ませんか?

Posted: 2019年11月03日(日) 10:10
by スヴェン
返信が遅れてしまいすみません。
試してみた所無事成功しました!ゲーム自体はもう名前表示を諦めて別の作りにしましたが次回作で使えそうなのでそちらで使わせて頂きたいと思います!
どうもありがとうございました!

また剣崎 宗二さんも返信ありがとうございました!



sally さんが書きました:投稿後に気づきました。

上記ですと、発動者と対象者のIDは取得できても、
名前が指定できませんでした。

名前を入れるためには文章表示の前に

変数の操作:#発動者 = $gameParty.members()[$gameVariables.value(発動者)].name()
 ┗発動者には、発動者の変数IDを入れてください
  ※オペランドはスクリプトです。
変数の操作:#対象者-=1000
 ┗減算1000を行ってください。
変数の操作:#対象者 = $gameTroop.members()[$gameVariables.value(対象者)].originalName()
 ┗対象者には、対象者の変数IDを入れてください
  ※オペランドはスクリプトです。

の3つの変数の操作を行ってください。
これで名前が入るはずです。