【解決済み】星潟様の『新装備拡張&装備拡張画面』について

骨折骨男
記事: 13
登録日時: 2019年3月19日(火) 17:59

【解決済み】星潟様の『新装備拡張&装備拡張画面』について

投稿記事by 骨折骨男 » 2020年2月10日(月) 12:43

星潟様の『新装備拡張&装備拡張画面』を使用する予定なのですが、
自分のスクリプトと競合しているせいか、画像のとおり真ん中のステータスウィンドウが二重になってしまいます。
もちろん諦めて使うのをやめるか、該当するスクリプトを削除するなどをすれば解決はするのですが、
新装備拡張&装備拡張画面スクリプト内の『ステータスウィンドウの作成』の項目を弄れば無事に解決出来るのではと思い、質問させていただきました。
理想としましては表示されるウィンドウを完全に消去、もしくはそもそもウィンドウを表示させないという風に改変して装備変更前後の能力値変化の数字だけ表示されるという形にしたいです。
新装備拡張&装備拡張画面スクリプト単体ならば十分実現しているのですが、先程も言ったようにスクリプトが競合しているせいでt.opacity = 0が上手く機能しておらず、ウィンドウが透明にならないまま表示されるという事になっています。
調べてみたところ、Moghunter様のMOG - Wallpaper EXと競合している事が分かりました。
もしお答え下さる方がおりましたら是非とも宜しくお願い致します。
添付ファイル
画像.PNG
画像.PNG (133.71 KiB) 閲覧数: 2539 回
最後に編集したユーザー 骨折骨男 on 2020年2月17日(月) 18:02 [ 編集 4 回目 ]

u-kun
記事: 15
登録日時: 2018年4月11日(水) 01:40

Re: 星潟様の『新装備拡張&装備拡張画面』について

投稿記事by u-kun » 2020年2月12日(水) 03:10

新しいプロジェクトに新装備拡張&装備拡張画面とWallpaper EXを導入してみましたが、こちらでは問題を再現することができませんでした。
なので、根本的な原因は他のスクリプトにあるものと思われます。
opacityが機能していないとのことですが、問題のウィンドウが判明しているのであればvisibleをfalseにしてしまうのはどうでしょうか。
また、スクリプトの導入順を見直してみるのも有効かもしれません。
再定義のものは上に、エイリアスのものは下に配置すると競合を避けられる場合があります。
骨折骨男
記事: 13
登録日時: 2019年3月19日(火) 17:59

Re: 星潟様の『新装備拡張&装備拡張画面』について

投稿記事by 骨折骨男 » 2020年2月12日(水) 19:13

u-kun様
回答ありがとうございます。
私の環境元ですと新規プロジェクトでも同じような不具合が発生していました。
またvisibleをfalseにという事ですが、その項目らしきものが『表示行数の取得』という項目にしかなく、
visibleをfalseにできそうな部分も見当たりませんでした。
ただ、どの道私のゲームと相性が悪いのか、当不具合以外にもエラーなどが出た為、残念ですが諦める事にしました。
このような質問にお答えしていただき、誠にありがとうございました。
添付ファイル
不具合.PNG
不具合.PNG (53.94 KiB) 閲覧数: 2437 回
u-kun
記事: 15
登録日時: 2018年4月11日(水) 01:40

Re: 【自己解決】星潟様の『新装備拡張&装備拡張画面』について

投稿記事by u-kun » 2020年2月14日(金) 00:31

今更ながらスクリプトに目を通したところ問題の原因が判明したのでご報告します。

新装備拡張&装備拡張画面を導入した状態のステータス表示部分は
「現在のステータスを表示するウィンドウ」と「装備変更によって変化するステータスを表示するウィンドウ」
の2枚が重なった状態になっています。
新装備拡張&装備拡張画面を単体で運用していればt.opacityが0(差分ステータスウィンドウの透明度が0)なので
1枚のウィンドウのように見えていますが、
Wallpaper EXと併用すると両方のウィンドウにWINDOW_OPACITYで設定した値が適用されてしまい、
ステータス表示部分が網掛けのようになってしまう、というわけです。

そこで、以下のスクリプトをWallpaper EXの下に導入してください。

コード: 全て選択

# 新装備拡張&装備拡張画面のWindow_EquipStatusTempを透明度変更の対象から外す

class Scene_MenuBase < Scene_Base
  #--------------------------------------------------------------------------
  # ● Set Window OPACITY(再定義)
  #--------------------------------------------------------------------------           
  def set_window_opacity
    instance_variables.each do |varname|
    ivar = instance_variable_get(varname)
      if ivar != nil and ivar.is_a?(Window)
        if !ivar.is_a?(Window_EquipStatusTemp) && !ivar.disposed?
          ivar.opacity = $game_system.wallpaper_window_opacity
        end
      end
    end
  end   
end

これで差分ステータスのウィンドウの透明度が0のまま維持され、ステータス表示部分が正常に描画できるようになります。
新規プロジェクトで確認した際はWINDOW_OPACITYが32だったので2重に表示されていることに気付かず、そのまま思考停止してしまっていました。申し訳ありません。
骨折骨男
記事: 13
登録日時: 2019年3月19日(火) 17:59

Re: 【解決済み】星潟様の『新装備拡張&装備拡張画面』について

投稿記事by 骨折骨男 » 2020年2月14日(金) 18:37

u-kun様
該当スクリプトに目を通し、対応スクリプトを作っていただき誠にありがとうございます!
おかげで無事にウィンドウが二重にならず正常に表示されるようになりました!
こちらこそ質問している身でありながらu-kun様に対して失礼な態度を取ったり、
勝手に諦めたりして申し訳ございませんでした。
これにて解決済みとさせていただきます、この度は本当にありがとうございました!!
添付ファイル
正常.PNG
正常.PNG (152.06 KiB) 閲覧数: 2349 回
骨折骨男
記事: 13
登録日時: 2019年3月19日(火) 17:59

Re: 星潟様の『新装備拡張&装備拡張画面』について

投稿記事by 骨折骨男 » 2020年2月14日(金) 19:30

u-kun様へ
申し訳ございません。
てっきりこれで完璧に解決したかと思いきやまだだったようです…。
というのも、これは私自身がきちんと確認しなかったのが悪いのですが、
Moghunter様のWallpaper EXが既に2.1に更新されていたのを知らず、古いverの状態で質問してしまいました。
Wallpaper EXの最新版をDLし、
適用してみた結果u-kun様が製作して下さったスクリプト自体は何も問題なく正常に起動したのですが、
最新版のこのWallpaper EX2.1自身に問題があったのか、
セーブデータもといロード画面が一切表示されないという不具合が発生しました。
Wallpaper EX2.1単体でも同様のバグが発生したので間違いなさそうです。
そこで私が使っていた1.1verに使ってみようと思い、
ivar.opacity = $game_system.wallpaper_window_opacityの部分を
古いverに記載されているivar.opacity = WINDOW_OPACITYに書き換えたのですが、
残念ながらこの方法では二重ウィンドウは修正されませんでした。
非常に厚かましく申し訳ないのですが、このどちらか一方の問題を解決させる事は可能でしょうか?
ivar.opacityを書き換える方が手っ取り早そうですが、
1.1という古いverという事もありDlして確認するという方法が難しいかもしれません。

本当に何度もお手数おかけして非常に申し訳ないのですが、もし解決出来そうであれば是非ともその方法を教えて下さいませ、宜しくお願い致します。
u-kun
記事: 15
登録日時: 2018年4月11日(水) 01:40

Re: 星潟様の『新装備拡張&装備拡張画面』について

投稿記事by u-kun » 2020年2月16日(日) 02:13

こちらも最新バージョンのWallpaper EXを使用していますが、
Wallpaper EXではロード画面でデータの一覧を表示しているWindow_SaveFileには手を加えていないようで、
他のウィンドウとは透明度が異なっているものの一応正常に描画されています。
そこで、Wallpaper EXに設定した透明度をセーブやロードの画面にも適用するスクリプトを作成してみました。

コード: 全て選択

# セーブ/ロードの透明度をWallpaper EXと揃える
class Scene_File < Scene_MenuBase
  include MOG_WALLPAPER_EX
 
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  alias start_uniform_opacity start
  def start
    start_uniform_opacity
    uniform_savefile_opacity
  end
   
  #--------------------------------------------------------------------------
  # ● Wallpaper EXの透明度を適用する
  #--------------------------------------------------------------------------
  def uniform_savefile_opacity
    @savefile_windows.each {|window|
      window.opacity = WINDOW_OPACITY
    }
  end
end

上記のスクリプトを一番下(▼ メインの上)に導入すれば、少なくとも透明度が0になることはないはずなので、
もしかすると何も表示されないという問題も解決するかもしれません。
骨折骨男
記事: 13
登録日時: 2019年3月19日(火) 17:59

Re: 星潟様の『新装備拡張&装備拡張画面』について

投稿記事by 骨折骨男 » 2020年2月16日(日) 17:05

u-kun様
素早い対応ありがとうございます。
ただ、こちらのスクリプトを適応しても残念ながら特に変わりませんでした…。
window.opacity = WINDOW_OPACITYを$game_system.wallpaper_window_opacityに書き換えても同じでした。
何度も何度もお手数おかけして本当に申し訳ございません。
こちらの方でも何かミスを犯していないか、色々と試行錯誤してみます。
添付ファイル
画像2.PNG
画像2.PNG (14.4 KiB) 閲覧数: 2239 回
画像1.PNG
画像1.PNG (2.46 KiB) 閲覧数: 2239 回
u-kun
記事: 15
登録日時: 2018年4月11日(水) 01:40

Re: 星潟様の『新装備拡張&装備拡張画面』について

投稿記事by u-kun » 2020年2月17日(月) 00:02

opacityを変更しても表示されないということは、ウィンドウのvisibleがfalseになっているか、
ビューポートの設定が書き換わっているか…あたりが怪しい気がします。

コード: 全て選択

# コンソール画面にScene_Fileの情報を表示する

class Scene_File < Scene_MenuBase
  alias start_debug start
  def start
    start_debug
    debug("start")
  end

  alias terminate_debug terminate
  def terminate
    debug("terminate")
    terminate_debug
  end
   
  def debug(text)
    p [self.class, text]
    p ["viewport_visible", @savefile_viewport.visible, "rect",@savefile_viewport.rect]
    @savefile_windows.each {|window|
      p ["window_visible",window.visible, "opacity",window.opacity]
    }
  end
end

上記のスクリプトでセーブ/ロード画面を開いた時と閉じた時に
ウィンドウとビューポートの状態がコンソール画面に表示されますので、
原因特定のためにまずは実行結果を教えていただければと思います。
スクリプトの導入順はどこでも大丈夫です。
コンソール画面はツクール(エディタ側)の
「メニューバー>ゲーム>コンソールの表示」にチェックが入っていないと表示されないのでお気をつけください。
(初期設定ではどうだったか覚えていないので念の為)
ぽんぽこねるそん
記事: 53
登録日時: 2018年10月26日(金) 12:24

Re: 星潟様の『新装備拡張&装備拡張画面』について

投稿記事by ぽんぽこねるそん » 2020年2月17日(月) 03:37

横からで申し訳ないですけど
背景とパーティクルが
セーブファイルウィンドウに設定されているビューポートより手前に来ているだけだと思うので

コード: 全て選択

class Scene_File < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ● セーブファイルビューポートの作成
  #--------------------------------------------------------------------------
  alias org_create_savefile_viewport create_savefile_viewport
  def create_savefile_viewport
    org_create_savefile_viewport
    @savefile_viewport.z = 100
  end
end

こんな感じでビューポートのZ座標を大きくすればウィンドウが表示されると思います。

“VX / Ace:質問” へ戻る