【解決済み】イベントの下にHPバー

spicesh
記事: 30
登録日時: 2017年1月21日(土) 09:32

【解決済み】イベントの下にHPバー

投稿記事by spicesh » 2017年2月07日(火) 20:10

お世話になっております。
ツクールMVでアクションRPGを作っている者です

フィールド戦闘中にボス(イベント)の下に
HPバーを表示したいと思っております。
どなたかお力を貸していただけないでしょうか。

こんなものを想定しています

HPバーの増減は変数で管理
ボス(イベント)ごとに対応する変数が違う


ーーーーーーーーーーーーーーー
※追記 (2月13日)

説明だけだと分かりにくいと思いますので
イメージ画像を添付しました。

↓エネミー(イベント)の近くにHPバーを出したいです
添付ファイル
ツクールMV.jpg
イメージ画像です
最後に編集したユーザー spicesh on 2017年2月15日(水) 08:51 [ 編集 1 回目 ]

アバター
マンカインド
記事: 56
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: イベントの下にHPバー

投稿記事by マンカインド » 2017年2月13日(月) 23:02

こんばんわ。
マップ上のイベントにゲージを表示させるプラグインを試作してみました。

 ダウンロード:
  https://raw.githubusercontent.com/mankindGames/RPGTkool/master/MKR_EventGauge.js

ゲージを表示させたいイベントのメモ欄に

 <gauge:vr[変数番号]>

と設定するだけで、指定した番号の変数に入っている数字(0より大きいこと)を最大値としたゲージが
イベントの足元に表示されます。

何か要望や問題点などありましたらお気軽にご相談くださいませ。


利用規約:
 ・このプラグインはMITライセンスのもとで公開されます。作者に無断でこのプラグインの改変、
  再配布が可能です。
 ・利用形態(フリーゲーム、商用ゲーム、R-18作品等)に制限はありません。
  ご自由にお使いください。

画像
画像
画像
画像
画像
画像
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--
spicesh
記事: 30
登録日時: 2017年1月21日(土) 09:32

Re: イベントの下にHPバー

投稿記事by spicesh » 2017年2月14日(火) 09:39

マンカインドさま おはようございます。

プラグインを作成していただきありがとうございます!
さっそくプラグインを導入してみたところ、
HPバーがちゃんと表示できました。


ただ、すこし原因不明の問題がありましたので、ご教授願います。

------------------------------------------------------------
問題の内容

・下の「」内のコマンドを実行してもHPバーが画面に描写されない
※プラグインコマンドで同じ内容を実行したときは正常に描写される


スクリプト:$gameMap.setGaugeMaxValue(1, 5);
スクリプト:$gameMap.showGaugeWindow(1);

------------------------------------------------------------

使い方を間違えておりましたら申し訳ありません……。

スナップショットを添付しました
添付ファイル
HPバーが正常に描写されない問題.jpg
アバター
マンカインド
記事: 56
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: イベントの下にHPバー

投稿記事by マンカインド » 2017年2月14日(火) 10:49

こんにちわ。
プラグインのご利用ありがとうございます。

申し訳ございません、スクリプトコマンドによる確認が漏れておりました。
プラグインを修正しました(ver 1.0.1)ので、お手数ですが再DLをお願いいたします。
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--
spicesh
記事: 30
登録日時: 2017年1月21日(土) 09:32

Re: イベントの下にHPバー

投稿記事by spicesh » 2017年2月14日(火) 12:11

マンカインドさま こんにちは!

迅速な対応ありがとうございます!
更新されたファイルをDLしたところ、スクリプトコマンドが正常に動きました!
とても便利なプラグインでとても助かっております!

ただちょっとしたことなのですが、
2点ほど実装していただきたいことがございます。

--------------------------------------------------------------------------------
1.スクリプトのイベントID選択で、このイベントを指定したい (0指定など)
(例)
$gameMap.setGaugeMaxValue(0, $gameVariables.value(466));
$gameMap.showGaugeWindow(0);

2.HPバーのデフォルトの透明度を指定したい
※HPバーによって表示したい要素が見えなくなるのを防ぎたい
--------------------------------------------------------------------------------

あとからの要望で、すみません……。
上記、可能であればよろしくお願いいたします。
アバター
マンカインド
記事: 56
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: イベントの下にHPバー

投稿記事by マンカインド » 2017年2月14日(火) 17:54

こんばんわ。
プラグインをバージョンアップ(ver 1.1.0)しましたので、お手数ですが再DLをお願い致します。

更新内容は以下のとおりです。

 ・ゲージの不透明度をプラグインパラメーターから指定可能に。

 ・プラグインコマンドの実行時の[イベントID]指定を無くし、
  実行したイベント自身を対象に。(既にイベントIDを指定している場合は修正が必要になります)

 ・スクリプトコマンドの[イベントID]指定に0(実行したイベント自身)を追加。

 ・プラグイン/スクリプトコマンドの[数字]指定部分に変数を指定可能に。


以上、よろしくお願い致します。
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--
spicesh
記事: 30
登録日時: 2017年1月21日(土) 09:32

Re: イベントの下にHPバー

投稿記事by spicesh » 2017年2月15日(水) 08:50

マンカインドさま おはようございます!

最新版のプラグインDLしましたところ、イメージ通りのHPバーを実装することができました!

マンカインドさまのブログの記事(アクションRPGの基礎 for MV) も拝見させていただきましたが、
とても参考になりました><

ありがとうございました!
添付ファイル
HPバー完成.jpg
アバター
マンカインド
記事: 56
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: 【解決済み】イベントの下にHPバー

投稿記事by マンカインド » 2017年2月15日(水) 09:20

おはようございます。

イメージ通りのものとなったようで良かったです。

ちなみに、私がツイートしていた「アクションRPGの基礎」についてのブログ記事は
私ではなく、フェルミウム湾 様のブログ「風の迷路」のものになります。

 http://blogs.yahoo.co.jp/fermiumbay2/41545381.html
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--
spicesh
記事: 30
登録日時: 2017年1月21日(土) 09:32

Re: 【解決済み】イベントの下にHPバー

投稿記事by spicesh » 2017年2月15日(水) 11:55

そうだったんですね><

大変失礼いたしました……orz
アバター
ビービー
記事: 292
登録日時: 2016年1月12日(火) 18:40

Re: 【解決済み】イベントの下にHPバー

投稿記事by ビービー » 2018年2月13日(火) 22:01

こんばんは。

こちらのプラグインを使用しようと思っているのですが
ゲージの最大値を変数に設定した場合の挙動でわからないことがあったので書き込ませていただきます。

使用しているプラグインのバージョンはおそらく最新の1.1.4です。
検証の際はパラメータは初期値からいじっていません。

イベントメモ欄に<Egauge:vr1>と書くと変数1がイベントの最大値に設定されますが
この変数1をゲージを表示しているイベントと同一マップ内から変更しても最大値が変わらないのですが、これは仕様でしょうか?

いちおう以下のように
◆場所移動:MAP001 (8,6) (フェード: なし)
◆変数の操作:#0001 ゲージ最大値指定変数 += 60
◆場所移動:MAP003 (10,6) (フェード: なし)
一度違うマップに移動して変更すれば変えられることが判明したのですが
ここでまたわからないことが

カウントアップするゲージを作りたいので最大値を変更後すぐに
◆スクリプト:$gameMap.setGaugeValue(4, 1);
とし残量を1に設定しました。そして一度適当なマップへ場所移動し戻ってくると
最大値と残量の両方が1になっていました。

このとき変数1の値も1になっていました。
おそらく$gameMap.setGaugeValue(m, n);としたとき
ゲージ残量がnになるのと同時に最大値に設定した変数の値もnになるようです。
なので同一マップ内にいる間は最大値が更新されない挙動もあり
一度場所移動して戻ってきたとき最大値に設定した変数、最大値、残量がnになったものだと思います。

場所移動で残量が最大になるのは残量への代入機能で対応できそうなんですが
最大値の変動はどうすればいいかわかりません。

これは不具合でしょうか?
不具合であれば解消していただけると助かります。


おそらく上記の問題が解決したらできるようになると思うのですが
私の使用方法は特殊であろうと思うのでいちおう目指す挙動を以下に書かせていただきます。

私はこのゲージをソシャゲなどでよくある放置した時間をカウントしゲージが増えていき
プレイヤーがアクセスした際にその溜まったゲージ分報酬が得られるという仕組みに利用したいと考えています。
(クラッシュオブクランやアズールレーンなどにある一定時間ごとにゲーム内通貨が得られるシステムです。)

そしてゲーム中にプレイヤーが任意のタイミングでその機能をグレードアップし
ゲージの最大値を増やせるようにしたいのです。

見づらいですがイベントのコピーを張っておきます。
(マップに入る前に変数144に60を代入してあります。)

【イベントメモ欄】
<Egauge:vr144 Ht6 Ys-66 Vs0 Fc20 Sc20 Bc15>
(イベントID11,12,13が時間経過で報酬をくれるイベントですがメモ欄は同一です。)

【並列処理でゲージを増やすイベント(場所移動後などにも呼びだします)】
◆ウェイト:10フレーム
◆注釈:経過時間に現在の分(ミリ秒 / 1000 / 60)を代入
◆変数の操作:#0136 現在時間E = (new Date()).getTime() / 1000 / 60
◆変数の操作:#0138 現在時間J = (new Date()).getTime() / 1000 / 60
◆変数の操作:#0140 現在時間S = (new Date()).getTime() / 1000 / 60
◆注釈:現在時間から計測開始時間を引いて経過時間を算出
◆変数の操作:#0136 現在時間E -= 時間測定開始E
◆変数の操作:#0138 現在時間J -= 時間測定開始J
◆変数の操作:#0140 現在時間S -= 時間測定開始S
◆注釈:それぞれの経過時間に代入
◆変数の操作:#0141 経過時間E = 現在時間E
◆変数の操作:#0142 経過時間J = 現在時間J
◆変数の操作:#0143 経過時間S = 現在時間S
◆注釈:イベントのゲージ残量に経過時間を代入
◆スクリプト:$gameMap.setGaugeValue([11], [$gameVariables.value(141)]);
:     :$gameMap.showGaugeWindow(11);
◆スクリプト:$gameMap.setGaugeValue([12], [$gameVariables.value(142)]);
:     :$gameMap.showGaugeWindow(12);
◆スクリプト:$gameMap.setGaugeValue([13], [$gameVariables.value(143)]);
:     :$gameMap.showGaugeWindow(13);

【イベント11内容】
◆注釈:<namePop:遠征E -10>
◆条件分岐:経過時間E > 0
◆注釈:ゲージ残量を変数に代入
◆変数の操作:#0145 経過時間ゲージ残量E = $gameMap.getGaugeValue(11);
◆注釈:経過分数 * (遠征E配置数 ^ 5 / 8)
◆変数の操作:#0145 経過時間ゲージ残量E *= Math.pow($gameVariables.value(86), 0.625)
◆注釈:エネルギーは10倍もらえる
◆変数の操作:#0145 経過時間ゲージ残量E *= 10
◆注釈:経過時間分の報酬を得る
◆条件分岐:経過時間ゲージ残量E > 0
◆SEの演奏:Computer (90, 80, 0)
◆所持金の増減:+ {経過時間ゲージ残量E}
◆プラグインコマンド:CommonPopup add text:\}\}\}\V[145]\C[20]E count:180 eventId:11 sx:140 sy:-18
◆注釈:新たに時間計測開始
◆注釈:まず測定開始時間のミリ秒を時間記録開始に代入
◆変数の操作:#0135 時間測定開始E = (new Date()).getTime()
◆注釈:ミリ秒を秒にするために1000で割って 分にするために60で割る
◆変数の操作:#0135 時間測定開始E /= 1000
◆変数の操作:#0135 時間測定開始E /= 60
◆注釈:経過時間に現在の分(ミリ秒 / 1000 / 60)を代入
◆変数の操作:#0136 現在時間E = (new Date()).getTime() / 1000 / 60
◆注釈:現在時間から計測開始時間を引いて経過時間を算出
◆変数の操作:#0136 現在時間E -= 時間測定開始E
◆注釈:それぞれの経過時間に代入
◆変数の操作:#0141 経過時間E = 現在時間E
◆注釈:経過時間をゲージに反映
◆スクリプト:$gameMap.setGaugeValue([11], [$gameVariables.value(141)])

:それ以外のとき
◆SEの演奏:Computer (90, 50, 0)
◆プラグインコマンド:CommonPopup add text:\}\}\}0\C[20]E count:180 eventId:11 sx:100 sy:-18

:分岐終了

:それ以外のとき
◆SEの演奏:Computer (90, 50, 0)
◆プラグインコマンド:CommonPopup add text:\}\}\}0\C[20]E count:180 eventId:11 sx:140 sy:-18

:分岐終了

(他のプラグインのコマンドや注釈もありますが、最初に書いた検証部分は新規プロジェクトでやっているので競合ではないと思います。)

以上になります。
長々と失礼しました。
よろしくお願いします。

※追記
イベントごとにゲージの透明度を設定できるようにすることは可能でしょうか?
できれば機能の追加を考えていただけると助かります。
よろしくお願いします。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/

“MV:プラグイン素材のリクエスト” へ戻る