【終了】スクリプトでステータス画面表示後、顔画像が更新されません。

kuriyama_d
記事: 3
登録日時: 2021年4月12日(月) 13:19

【終了】スクリプトでステータス画面表示後、顔画像が更新されません。

投稿記事by kuriyama_d » 2021年4月12日(月) 15:23

はじめまして、kuriyama_dと申します。
キャラメイクゲームを表現したいと奮闘している者です。
以下の質問失礼いたします。

キャラメイク状況を画面で確認できるようにするために、
イベントコマンド→スクリプトからステータス画面を呼び出したところ、
初回呼び出し時はアクターの顔画像が正しく出るのですが、
その後画像の変更をかけても前回(初回)の画像のまま、変わりません。

一度ゲームを終了して、再起動すると最新の画像になっています。
対処方法がございましたら、お知恵をお貸しいただければと思います。
以下この現象が起きるまでの詳細です。

▼▼▼
①キャラメイク開始(自動実行処理のため、スイッチ操作で開始&終了)

②容姿選択の項目を選ぶと、対応した画像が出現
 (パーツ画像を重ねて一つの絵として表現しているため、この時点では具体的なface画像はなし)

③画像キャプチャ管理プラグイン(トリアコンタン様)を使い、
 画面に出ている画像をimg\faceに保存
 ファイル名は"actor●●" ●●は対象アクターIDに対応

④キャラメイクの対象アクターを、スクリプトで加入させる。
 $gameParty.addActor($gameVariables.value(40)); //v[40]には事前にアクターIDを代入

⑤対象アクターの顔画像の変更
 $gameActors.actor($gameVariables.value(40)).setFaceImage("actor●●", 6)
  //6に顔が位置するように画像パーツを並べています。
  //顔画像は1キャラにつき1ファイル利用。
$gamePlayer.refresh();
//変更を反映
  //イベントコマンドから顔画像を変更しても状況は同じでした。

⑥ステータス画面を呼び出す。
 var actor = $gameActors.actor($gameVariables.value(40));
 $gameParty.setMenuActor(actor);
 SceneManager.push(Scene_Status);

⑦この時点(初回時)は正しく顔画像が出る

⑧一旦ステータス画面を閉じ(自動実行のため再びキャラメイクに戻る)、
 もう一度『容姿選択』から③~⑥の手順を踏んで再度ステータス画面を開いても、
 初回の画像のまま、顔画像に変更がかかりません。
▲▲▲

以上です。
 なお、フォルダ"img/faces"内を確認したところ、二回目以降の画像は正しく上書きされていました。また、画像キャプチャ管理プラグインを使わず、別ファイルを顔画像として指定しても同じ現象がおきているため、プラグインは関係ないかな……とは思っております。

 アクターに使用する画像ファイルを固定し、それを上書きするだけで顔画像が楽に変更できる=キャラメイクの顔差分を用意しなくてよい。……というズボラな考えでいたのですが。それ以前の確認画面で四苦八苦しております。

 初質問で不慣れなため、長々と失礼致しました。
 どうかよろしくお願いいたします。
最後に編集したユーザー kuriyama_d on 2021年4月15日(木) 12:49 [ 編集 1 回目 ]

アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: スクリプトでステータス画面表示後、顔画像が更新されません。

投稿記事by ムノクラ » 2021年4月12日(月) 16:52

kuriyama_d さんが書きました:はじめまして、kuriyama_dと申します。
キャラメイクゲームを表現したいと奮闘している者です。
以下の質問失礼いたします。

キャラメイク状況を画面で確認できるようにするために、
イベントコマンド→スクリプトからステータス画面を呼び出したところ、
初回呼び出し時はアクターの顔画像が正しく出るのですが、
その後画像の変更をかけても前回(初回)の画像のまま、変わりません。

一度ゲームを終了して、再起動すると最新の画像になっています。
対処方法がございましたら、お知恵をお貸しいただければと思います。
以下この現象が起きるまでの詳細です。

▼▼▼
①キャラメイク開始(自動実行処理のため、スイッチ操作で開始&終了)

②容姿選択の項目を選ぶと、対応した画像が出現
 (パーツ画像を重ねて一つの絵として表現しているため、この時点では具体的なface画像はなし)

③画像キャプチャ管理プラグイン(トリアコンタン様)を使い、
 画面に出ている画像をimg\faceに保存
 ファイル名は"actor●●" ●●は対象アクターIDに対応

④キャラメイクの対象アクターを、スクリプトで加入させる。
 $gameParty.addActor($gameVariables.value(40)); //v[40]には事前にアクターIDを代入

⑤対象アクターの顔画像の変更
 $gameActors.actor($gameVariables.value(40)).setFaceImage("actor●●", 6)
  //6に顔が位置するように画像パーツを並べています。
  //顔画像は1キャラにつき1ファイル利用。
$gamePlayer.refresh();
//変更を反映
  //イベントコマンドから顔画像を変更しても状況は同じでした。

⑥ステータス画面を呼び出す。
 var actor = $gameActors.actor($gameVariables.value(40));
 $gameParty.setMenuActor(actor);
 SceneManager.push(Scene_Status);

⑦この時点(初回時)は正しく顔画像が出る

⑧一旦ステータス画面を閉じ(自動実行のため再びキャラメイクに戻る)、
 もう一度『容姿選択』から③~⑥の手順を踏んで再度ステータス画面を開いても、
 初回の画像のまま、顔画像に変更がかかりません。
▲▲▲

以上です。
 なお、フォルダ"img/faces"内を確認したところ、二回目以降の画像は正しく上書きされていました。また、画像キャプチャ管理プラグインを使わず、別ファイルを顔画像として指定しても同じ現象がおきているため、プラグインは関係ないかな……とは思っております。

 アクターに使用する画像ファイルを固定し、それを上書きするだけで顔画像が楽に変更できる=キャラメイクの顔差分を用意しなくてよい。……というズボラな考えでいたのですが。それ以前の確認画面で四苦八苦しております。

 初質問で不慣れなため、長々と失礼致しました。
 どうかよろしくお願いいたします。


コアが同じファイルをゲーム中に差し替えることを想定していないと予想します。
キャッシュの問題かと思います。

2回目以後の
⑤対象アクターの顔画像の変更
の前に
ImageManager.clear();
を実行してもだめでしょうか?

参考ページ
https://katai5plate.github.io/RPGMV-Cor ... nager.html


少しだけ心配なこと
ヘルプの引用です。
* 注意!
* キャプチャを出力する機能はローカル環境でのみ有効です。
* ブラウザやスマホ上では動作しません。

ローカル用のゲームにデプロイメントするなら、動作するのかもしれません。
もしも、上手く動いたら、一応、確認したほうがよろしいかと思います。


追伸
何をどうやっているのか、複雑なところもあるので、できればサンプルプロジェクト(マップにイベントを配置して実験できるデータ)があると、とても回答しやすいです。
複雑な質問なので…
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
kuriyama_d
記事: 3
登録日時: 2021年4月12日(月) 13:19

Re: スクリプトでステータス画面表示後、顔画像が更新されません。

投稿記事by kuriyama_d » 2021年4月12日(月) 19:18

コアが同じファイルをゲーム中に差し替えることを想定していないと予想します。
キャッシュの問題かと思います。

2回目以後の
⑤対象アクターの顔画像の変更
の前に
ImageManager.clear();
を実行してもだめでしょうか?

参考ページ
https://katai5plate.github.io/RPGMV-Cor ... nager.html


少しだけ心配なこと
ヘルプの引用です。
* 注意!
* キャプチャを出力する機能はローカル環境でのみ有効です。
* ブラウザやスマホ上では動作しません。

ローカル用のゲームにデプロイメントするなら、動作するのかもしれません。
もしも、上手く動いたら、一応、確認したほうがよろしいかと思います。


追伸
何をどうやっているのか、複雑なところもあるので、できればサンプルプロジェクト(マップにイベントを配置して実験できるデータ)があると、とても回答しやすいです。
複雑な質問なので…


ムノクラ様
ご回答ありがとうございます。

ご指摘いただきました⑤の前に
ImageManager.clear();
を実行しても状況には変化はありませんでした。

また『少しだけ心配なこと』ですが、
作業はローカル(個人用PC)で行っており、また仮にブラウザで公開する場合は画像キャプチャ管理プラグインはお借りせず、画像を別途用意する予定でおります。
気に掛けていただきありがとうございます。

サンプルプロジェクトの件は、準備にお時間を頂戴いたします。
サンプルを載せる場所(?)や方法なども調べないと分からないもので。
説明不足な質問にも関わらず、ご丁寧な回答をいただいたのにすぐに対応できなくて申し訳ありません。
kuriyama_d
記事: 3
登録日時: 2021年4月12日(月) 13:19

Re: スクリプトでステータス画面表示後、顔画像が更新されません。

投稿記事by kuriyama_d » 2021年4月15日(木) 12:48

質問の件ですが
プログラムの知識に乏しい私には手に余る問題だと感じたため、
解決を断念いたします。

今後は他の方法で理想に近い表現を探してまいります。

ご助言いただきましたムノクラ様、
ならびにこのトピックを閲覧くださった皆様には感謝申し上げます。
貴重なお時間をいただき有難うございました。

“MV:質問” へ戻る