【解決済み】アイテム入手時、プレイヤーの頭上にポップアップを出したい

den
記事: 46
登録日時: 2023年1月10日(火) 10:50

【解決済み】アイテム入手時、プレイヤーの頭上にポップアップを出したい

投稿記事by den » 2023年2月12日(日) 12:22

お世話になっております。
今回質問させていただきたいのは、タイトルの通り、アイテム入手時にプレイヤーの頭上にポップアップを表示する方法についてです。

ゲーム内で採取イベントを作りたいのですが、何か採取するたびに「○○を手に入れた!」とメッセージを表示し、決定ボタンでメッセージを消し……とやっているといちいち動きが止まってしまって煩わしいので、ポップアップ表示にしたいと考えました。ただ、画面上部や下部の表示だといちいち何を手に入れたのかの確認のために視線を動かさないといけないので、プレイヤーの頭上にポップアップ表示をしたいです。

色々調べたところ、フォーラムでツミオ様のAllIsMine.jsというスクリプトを見つけ、サンプル動画を見ると理想の動きをしているのですが、フォーラムでのやり取りで他の方から「Interpreterのイベントコマンドを丸ごと上書きしているのは危ない」とコメントされていて、導入しても大丈夫なものなのか不安になり、ひとまず保留ということにしました。(プログラミングに関する知識があまりないので、正直よくわかっていません)

そこで、次にやな様のCommonPopupCore.jsを試してみたのですが、ポップアップ表示はできるもののプレイヤーが動いてもメッセージはその場に残り続けてしまい、上手くいきませんでした。

どうにかしてうまくやる方法はないでしょうか?アドバイスいただけますと幸いです。
よろしくお願いします。
最後に編集したユーザー den on 2023年3月14日(火) 22:55 [ 編集 1 回目 ]

アバター
Plasma Dark
記事: 668
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: アイテム入手時、プレイヤーの頭上にポップアップを出したい

投稿記事by Plasma Dark » 2023年2月12日(日) 13:47

「Interpreterのイベントコマンドを丸ごと上書きしているのは危ない」


一般的にはたしかに危ないと表現することもできますが、コードを読む限りでは使うこと自体が直ちに危険をもたらすというレベルではなさそうです。
他にお金やアイテム入手の処理に追加処理を行うプラグインを使う場合は順序に気をつける必要がありますが、それくらいですね。

メンテナが活動されていないこと、ところどころでカプセル化が無視されていることが不安材料と言えばそうかもしれません。
何か問題が起きたときに報告しても反応してもらえず、万一不具合があった際にその原因が少し特定しにくいという問題はありますが、試すだけなら試してみても良いのではないかと思います。
den
記事: 46
登録日時: 2023年1月10日(火) 10:50

Re: アイテム入手時、プレイヤーの頭上にポップアップを出したい

投稿記事by den » 2023年2月12日(日) 15:13

Plasma Darkさん、ありがとうございます。
とりあえず試しに入れてみたところ、特に問題なく動作しました。
しかし、実際に入れてみると、少し思っていたのと違う部分がありました……。
採取アイテムは特にアイテムアイコンを設定していないのですが、このプラグインだと設定してあることが前提らしく、吹き出しの左側にアイテムアイコン分の余白が発生してしまいました。
また、アイテム名の色設定は個別でなく一括設定のようなのですが、拾えるアイテムに色の名前がついているものがいくつかあるため、青いアイテムを拾ったのに文字は赤で表示される、というようなややこしい感じになってしまいます。

AllIsMine.jsについて事前にもう少しよく見ておくべきでした。吹き出しがプレイヤーの頭上に出て、プレイヤーが動いてもついてくるという部分ではこのプラグインが理想でしたが、アイテム名の色変更などに関しては理想と少し違っていたようです……。
せっかくアドバイスをしてくださったのに、申し訳ありません。
den
記事: 46
登録日時: 2023年1月10日(火) 10:50

Re: アイテム入手時、プレイヤーの頭上にポップアップを出したい

投稿記事by den » 2023年3月12日(日) 14:14

色々考えて、トリアコンタン様の動的文字列ピクチャ生成プラグインを使ってそれっぽいことができないかと考えたのですが、難しいでしょうか?
プレイヤーの頭上に「○○を手に入れた!」と表示し、数秒後に消える、というようなことができれば……と思ったのですが、自分でどうにか設定できないかとプレイヤーの位置情報取得などを使って試してみても、文字列が左上に表示されてしまい、上手くいきませんでした。
どなたかアドバイスいただけますと幸いです。よろしくお願いします。
アバター
リクドウ
記事: 84
登録日時: 2019年9月03日(火) 23:21
連絡を取る:

Re: アイテム入手時、プレイヤーの頭上にポップアップを出したい

投稿記事by リクドウ » 2023年3月13日(月) 03:35

動的文字列ピクチャ生成プラグインを使った方法に対する回答ではないのですが、
ご希望の動作が実現できていないとのことですので、2つご提案させていただきたいと思います。

1.
ご希望に一番近いと思われるプラグインはこちらかなと思いました。
海外のツクールフォーラムで配布されているプラグインです。
英語ですが別段難しいということもなく、規約的にも利用しやすいものかなと思います。

Chau_Simple Popups.js
https://forums.rpgmakerweb.com/index.ph ... -1.107011/

ただ1点、通行設定を★にしているタイルの下に文字が隠れてしまうのがネックかなと…
プレイヤーの動きにテキストが追従してくれるのですが、★のタイルが密集しているエリアを移動すると
テキストがチラチラして読みづらく、バグっぽく見えてしまう場合もあるかなと感じました。
マップの作り方にもよると思うので、一度お試しになってみていただければと思います。


2.
若干力技な感じの実装にはなってしまいますが、動的文字列ピクチャ生成プラグインよりは
取得したアイテム名を自動で表示してくれるプラグインを使う方が手間もミスも少なくなるので、
下記のような方法はどうかなと思いました。

やな様の「CommonPopupCore.js」はすでにお試し済みかと思いますが、
同じくやな様の「GetInformation.js」もセットで導入して、
画面の指定の座標にポップアップが出せるようにします。

下の画像のように設定をいじって、プレイヤーが画面の中央にいるときに、
ちょうど頭上のあたりに表示されるように調整します。
入手時のメッセージも変更可能なので、アイコンを省略してアイテム名のみの表示もできるようです。

そしてトリアコンタン様の、強制中央スクロールプラグイン「ScrollForceCenter.js」も導入します。
そうすると、プレイヤーが常に画面の中央に固定されるので、
まるでポップアップがプレイヤーに追従してくれているかのように、疑似的に表現可能になります。

この方法の場合のデメリットは、外観マップの切れ目が画面に映り込んでしまうことですね…
それが嫌であればマップを広く作る必要が出てくるかと思います。
ベストな方法ではないかもしれませんが、ご検討いただければ…


CommonPopupCore.js
https://plugin.fungamemake.com/archives/2041

GetInformation.js
https://plugin.fungamemake.com/archives/2042

ScrollForceCenter.js
https://plugin.fungamemake.com/archives/1154


▼GetInformation.jsのプラグインパラメータ
param.png


▼ちょうど頭上あたりに表示されるように調整する
map.png



ご参考になれば幸いです。
------------------------------------------------------------------------------
リクドウ[Rikudou]
Twitter: https://twitter.com/Rikudou_gdv

下記サイトにて、
制作中の作品紹介や、自作素材の配布などを行っています。
https://kai-rikudou.com/
------------------------------------------------------------------------------
den
記事: 46
登録日時: 2023年1月10日(火) 10:50

Re: アイテム入手時、プレイヤーの頭上にポップアップを出したい

投稿記事by den » 2023年3月14日(火) 22:54

リクドウさん、ありがとうございます。
お返事が遅くなってしまい、申し訳ありません。

採取マップを多層レイヤー一枚絵マッププラグインを使って作っていたので、リクドウさんが提案してくださった2つ目の方法で上手くいくかを試すのに少し時間がかかり、返事が遅くなってしまいました。

マップを大きめに作り直して試してみたところ、2つ目の方法で無事に想像通りのことができるようになりました。
そういうわけですので、これにて解決とさせていただきます。本当にありがとうございました!

“MV:質問” へ戻る