[解決済み] 【rgss3】ピクチャを一部分だけ表示

アバター
HAL
記事: 12
登録日時: 2017年1月24日(火) 13:30

[解決済み] 【rgss3】ピクチャを一部分だけ表示

投稿記事by HAL » 2017年1月24日(火) 16:27

はじめまして。
自分でも探したり色々いじってみたりはしたのですが、頭不足で上手くいかず…こちらにお願いにまいりました。

標題にもあるように、ピクチャの範囲を指定して表示するスクリプトを探しています。
下画像を例にすると、画像の白枠内だけをマップ画面上に表示するという感じです。
pic_viewport.jpg
pic_viewport.jpg (24.05 KiB) 閲覧数: 4206 回


◆表示したい形状:矩形

◆メニュー画面後 / セーブ→ロード後などにも表示を継続させたい

◆表示範囲(W,H)や表示座標(X,Y)はイベントコマンド「スクリプト」を使う方法などで変更したい


お手数おかけいたしますが、どなたかスクリプトを制作していただける方、
または上記内容についてご教示いただける方がいらっしゃいましたら、何卒よろしくお願い申し上げます。
最後に編集したユーザー HAL on 2017年1月25日(水) 23:43 [ 編集 1 回目 ]

faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: 【rgss3】ピクチャを一部分だけ表示

投稿記事by faida » 2017年1月24日(火) 22:11

はじめまして。
とりあえず作ってみたのでお試しください。

※しょうもないミスにより修正。下の記事からどうぞ。

矩形じゃなきゃ作れんかった……。
最後に編集したユーザー faida on 2017年1月25日(水) 07:47 [ 編集 1 回目 ]
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
アバター
HAL
記事: 12
登録日時: 2017年1月24日(火) 13:30

Re: 【rgss3】ピクチャを一部分だけ表示

投稿記事by HAL » 2017年1月25日(水) 01:21

faidaさん、すばらしいスクリプトをありがとうございます…!!
使い方もとても分かりやすく、本当に嬉しいです!さっそく試してみたところ、範囲を指定して表示することができました。

一点だけ、追加でのお願いになってしまって申し訳ございませんが、
下記についてもご相談させていただいてもよろしいでしょうか…?

◆再表示について
ss01.jpg

上画像のように繰り返し動作をさせたいのですが、2回め以降が表示できないようでした。
繰り返しの間にメニューを開いたりするとできるようなのですが、自力では何が要因なのか分かりませんでした…。

助けていただいてばかりで恐縮なのですが、上記のように繰り返し動作をさせることは可能でしょうか?
お手数おかけしますが、よろしくお願いいたします。
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: 【rgss3】ピクチャを一部分だけ表示

投稿記事by faida » 2017年1月25日(水) 07:46

れっきとした不具合なので修正しました。

コード: 全て選択

=begin
◆概要
ピクチャの一部を表示します。

◆機能
・$game_system.picture_rect[ピクチャ番号] = [表示x, 表示y, 表示w, 表示h]
をイベントコマンドで行うことにより、そのピクチャ番号のピクチャを
矩形で区切って表示できます。
$game_system.picture_rect[ピクチャ番号] = nil
でそれを解除します。

◆仕様
・ピクチャを変えても継続するので注意。

◆使用上の注意
・★……エイリアス ○……新規定義

◆作者:faida @faida3983

=end

#==============================================================================
# ■ Game_System
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # ○ 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :picture_rect
  #--------------------------------------------------------------------------
  # ★ オブジェクト初期化
  #--------------------------------------------------------------------------
  alias fai_pr_initialize initialize
  def initialize
    fai_pr_initialize
    init_picture_rect
  end
  #--------------------------------------------------------------------------
  # ○ パラメータ初期化
  #--------------------------------------------------------------------------
  def init_picture_rect
    @picture_rect = {}
  end
end

#==============================================================================
# ■ Sprite_Picture
#==============================================================================

class Sprite_Picture < Sprite
  #--------------------------------------------------------------------------
  # ★ 転送元ビットマップの更新
  #--------------------------------------------------------------------------
  alias fai_pr_update_bitmap update_bitmap
  def update_bitmap
    $game_system.init_picture_rect if !$game_system.picture_rect
    if $game_system.picture_rect[@picture.number]
      return if @picture_rect == $game_system.picture_rect[@picture.number]
      @picture_rect = $game_system.picture_rect[@picture.number]
      x, y = @picture_rect[0], @picture_rect[1]
      width, height = @picture_rect[2], @picture_rect[3]
      return fai_pr_update_bitmap if !x || !y || !width || !height
      pb = Cache.picture(@picture.name)
      self.bitmap = Bitmap.new(width, height)
      src_rect = Rect.new(x, y, width, height)
      self.bitmap.blt(0, 0, pb, src_rect)
    else
      @picture_rect = nil
      fai_pr_update_bitmap
    end
  end
end
これで繰り返しても大丈夫なはずです。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
アバター
HAL
記事: 12
登録日時: 2017年1月24日(火) 13:30

Re: 【rgss3】ピクチャを一部分だけ表示

投稿記事by HAL » 2017年1月25日(水) 23:42

お返事遅くなりましてすみません…!
スクリプトのアップデートありがとうございました。確認したところ、繰り返し動作も含めて問題なく動作しました!

素材の利用条件についても確認しておりますので、こちらぜひ使わせて頂ければと思います。
すばらしいスクリプトを作っていただけて本当に助かりました!重ねて御礼申し上げます。

“VX / Ace:スクリプト素材のリクエスト” へ戻る