【解決済み】戦闘画面で画像・文字などを表示

SIB
記事: 14
登録日時: 2016年12月10日(土) 20:09

【解決済み】戦闘画面で画像・文字などを表示

投稿記事by SIB » 2016年12月14日(水) 15:53

こんにちは

タイトルの通りの質問なのですが分かりやすく例を挙げると

戦闘中に雨の場合、水属性や雷属性・炎属性のスキルに良い・悪い変化があったりと天候のシステムを実装するとして、
現在の天候をスイッチや変数でこのスイッチがオンなら晴れ・雨のようにしてそれが戦闘中に戦闘画面の上部などに表示され続ける・リアルタイムに更新されるといったシステムを実装しようと思っています。
例えばスイッチ1がオンなら「天候:雨」と文字を表示し、ピクチャーやアニメーション・又はアイコンを表示するというシンプルなものでかまいません。
応用すれば今はこのフィールドで戦っている(草原・海など)のような地形効果なども色々実装できそうかなと思っています。

要点をまとめると

戦闘画面左上や真上・右上に
X・Y座標を指定し、スイッチ1がオンなら~これを表示という条件で、この文章とこの画像を表示し続ける。戦闘中に変更があれば更新される。
のようなものを実装する方法を教えて頂けると幸いです。
最後に編集したユーザー SIB on 2016年12月15日(木) 20:36 [ 編集 1 回目 ]

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: 戦闘画面で画像・文字などを表示

投稿記事by トリアコンタン » 2016年12月14日(水) 22:29

お疲れさまです。
以前に作成した「動的文字列ピクチャ生成プラグイン」はいかがでしょうか?
制御文字を含めた文字列のピクチャを生成、画面に表示できます。

https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/DTextPicture.js

スイッチと直接連動させることはできないので、ピクチャの不透明度を変更するなど工夫は必要ですが……
どうしても足りない機能があれば可能な範囲で対応します。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
RUFIERU
記事: 32
登録日時: 2016年11月11日(金) 01:11

Re: 戦闘画面で画像・文字などを表示

投稿記事by RUFIERU » 2016年12月15日(木) 02:00

こんにちは。
トリアコンタン様の「動的ピクチャ作成プラグイン」を導入すること前提で作ってみました。
まず、バトルイベントで「条件」を「ターン0」、「スパン」を「バトル」にしてください。
次に、プラグインコマンドで「D_TEXT_SETTING REAL_TIME ON」と入れてください。
次のプラグインコマンドは、「D_TEXT 天候:\V[(任意の変数IDを入れる)] (好きな文字の大きさを入れる)」
としてください。
次に、ピクチャの表示で、番号は任意の数字にして、画像はいれないようにして作ります。
そのつぎに、「スイッチの操作」で任意のスイッチをONにします。
例:
◆プラグインコマンド:D_TEXT_SETTING REAL_TIME_ON
◆プラグインコマンド:D_TEXT 天候:\V[1] 32
◆スイッチの操作:#0001 = ON

この時に背景色の変更を好みで入れてください。
次にコモンイベントを作ります。
変数に文字を格納します。
「変数の操作」でオペランドを「スクリプト」にして天候名を入力してください。
この時の変数は、先ほど入力したプラグインコマンドの\V[]で指定した変数を使ってください。
天候名は必ず ’ ’ で囲ってください。
これを各天候ごとに作ってください。
例:
◆変数の操作:#0001 = ’雨’

このコモンイベントを各天候変化スキルの効果欄に設置します。
そして、コモンイベントをもう一つ作ります。
これは、フィールドで天候を表示しないようにするためのものです。
ですので、フィールドでも表示したい場合、作らなくても大丈夫です。
その場合、バトルイベントのスイッチの操作もいりません。
この内容は簡単です。
トリガーを並列処理もしくは自動実行にして、スイッチをバトルイベントでONにしたものにしてください。
そして、なかに「ピクチャの消去」でバトルイベントで表示したピクチャの番号を消去するようにして、
「スイッチの操作」でバトルイベントでONにしたスイッチをOFFにします。
例:
◆ピクチャの消去:#1
◆スイッチの操作:#0001 =OFF
これで完成です。
バトルイベントは、準公式プラグインのYEP_BaseTroopEvents.jsを使うことをお勧めします。
SIB
記事: 14
登録日時: 2016年12月10日(土) 20:09

Re: 戦闘画面で画像・文字などを表示

投稿記事by SIB » 2016年12月15日(木) 20:25

トリアコンタンさん RUFIERUさん
ありがとうございます。

トリアコンタンさんのプラグインを使用し、RUFIERUさんのやり方でやったところうまくできました。
作りたかったものを応用して制作していったところ、バトルイベントで直接変数をいじることができない・バトル中は自動・並列のコモンイベントを使えないといったツクール側の仕様やらでうまくいけないところがあったものの、
試行錯誤した結果、それぞれ前者はバトルコマンドで通常のコモンイベントを呼び出し変数を操作する。後者は並列のコモンイベントをバトル中も発生させられる既存のプラグインで適用することで上手くいくことができました。

要望というほどのことでもないのですが、
変数を表示する場合は「変数%」とした場合、変数が入力されていない場合「0%」になるのに対し、変数に文字列を入れる場合、例えば変数に天候名を入れる場合「天候:雨」となっているのが変数が入力されていない基本の状態になると「天候:0」となってしまい違和感があるかな?と思いましたが、その変数の部分を基本の状態に戻す場合0にする代わりに「--」などと変数に入力すれば「天候:--」とできるようなので文字列を変数に使う場合その方法で何とかなるようです。

お二人のプラグイン・アドバイスで上手く戦闘画面に文字や変数などを表示することがうまくできました。
ありがとうございました。

“MV:質問” へ戻る