ページ 11

[解決済み]【RGSS3】文字グラデーション

Posted: 2017年1月19日(木) 19:32
by 落下星
文章などの文字にグラデーション加工したいのですが。
そういった類いのスクリプトが見当たりませんでした・・・
途中グラデーションの変更も出来るようにしたいです。
どうかお願いします。

Re: 【RGSS3】文字グラデーション

Posted: 2017年1月20日(金) 16:20
by faida
既存スクリプトであれば Kamesoft様 の「ビットマップ拡張」が使用可能です。
(XP/VX共用と書いていますが、VXAceでも動作することを確認しました。
ただし仕様上、使用するフォントが日本語に対応していないと描画されないようです。
デフォルトの "VL Gothic"ではダメでした……なんでやねん……)
グラデーションが縦しかないのでそこが気になるところですかね。
文章全体に徐々にグラデーションをかけていくことはできないので、別の方法を模索する必要があると思います。

※使い方ですが、
Font.gradation_color = Color.new(R, G, B, 透明度)
でグラデーションの下のほうの色が変わります。
上のほうはFont.color = Color.new(R, G, B, 透明度)とか、制御文字の\C[n]とかで変えられます。

Re: 【RGSS3】文字グラデーション

Posted: 2017年1月20日(金) 20:56
by 落下星
faida さん返信ありがとうございます
ビットマップ拡張を試したところ39行目を変更したら890行目でエラーが発生しました。
nilではスクリプトでエラーが発生します。

それと自分でもある程度思考錯誤したのですがBlueRedZone様の文字グラデーションの132行目をclass Window_Message < Window_Base
に書き換え動かす事に成功しましたが、変更のコマンドが対応してませんでした。

ビットマップ拡張のエラー改善、もしくは文字グラデーションのコマンド対応化をお願いします。

ワガママ言ってすみません・・・よろしくお願いします。

Re: 【RGSS3】文字グラデーション

Posted: 2017年1月20日(金) 21:47
by faida
>Kamesoft様の「ビットマップ拡張」でエラー
nilで動作を確認しました。まぁ競合だと思うので使わなくてもいいでしょう。

>BlueRedZone様の「文字グラデーション」
確認したらRGSS2でも変更できるかどうか怪しいシロモノだったので、RGSS3用に書き換えて正常に使用できるようにしました。
元スクリプトのWindow_Messageの部分を無効化して、これを下に入れれば多分動くはずです。
制御文字\B[n]を勝手に追加しました。文字がかぶってる場合は適当に変更してください。

コード: 全て選択

#==============================================================================
# ■ Font
#==============================================================================
class Font
  #--------------------------------------------------------------------------
  # ● 開始色の設定
  #--------------------------------------------------------------------------
  def set_gradcolor=(color1 = BMSP::TEXTGRADATION_COLOR)
    @@color1 = color1
  end
end

#==============================================================================
# ■ Window_Message
#==============================================================================

class Window_Message < Window_Base
  #--------------------------------------------------------------------------
  # ● 改ページ処理
  #--------------------------------------------------------------------------
  alias bmsp_new_page new_page
  def new_page(text, pos)
    bmsp_new_page(text, pos)
    contents.font.color = normal_color
  end
end
                  
class Window_Base
  #--------------------------------------------------------------------------
  # ● 制御文字の処理
  #     code : 制御文字の本体部分(「\C[1]」なら「C」)
  #--------------------------------------------------------------------------
  alias bmsp_process_escape_character process_escape_character
  def process_escape_character(code, text, pos)
    case code.upcase
    when 'B'
      contents.font.set_gradcolor = text_color(obtain_escape_param(text))
    else
      bmsp_process_escape_character(code, text, pos)
    end
  end
end

Re: 【RGSS3】文字グラデーション

Posted: 2017年1月20日(金) 22:13
by 落下星
動作のを確認しました。
ありがとうございます助かりました。
この問題は解決済みとさせて頂きます。

Re: [解決済み]【RGSS3】文字グラデーション

Posted: 2017年6月26日(月) 15:33
by くろくろ(・ω・)
横から失礼します。
私もRGSS3での文字グラデーションをずーっと探していました!

blueredzone様の元スクリプトの132行目から下をfaida様が今回提供されたスクリプトで上書きして、動作を確認しました。
恐らくこれでいいんですよね?

本当にありがとうございます!