RGSS-ダメージ文字・動作変更

カテゴリ: 投稿日: 2012-04-02
«RGSS一覧

ダメージのふち色や文字の色、書体を変えたい!
と思って、スクリプトエディタと睨めっこしても
ダメージ表示の詳細が見つからない…
そう思ってたら、ヘルプの中にありました!
読んでみるものです、ヘルプ(・ω・)
とりあえず、RPGツクールXPのヘルプを開いてみましょう。



【今回の変更点】
・RPG::Sprite(追加)



■RPG::Sprite

RGSS組み込みクラスなので、デフォルトのままでは
スクリプトエディタ上に「RPG::Sprite」はないので
ヘルプに記載されている定義をコピーしてエディタに持ってきます。

まずはRPGツクールXPのヘルプを開き
RGSSリファレンス>ゲームライブラリ>組み込みクラス>RPG::Sprite
を開きます。

RPG::Spriteの下の方にある「定義」
スクリプトがつらつら~っと記載されている部分をコピー。
スクリプトエディタの一番上に貼り付けます。
これでRPG::Spriteがエディタに貼り付けたものに
再定義される事になります。

注釈がないのでスクリプト始めたばかりだと
「わけわからん!!!」って思うかも知れませんが
そんな方は「def」部分に注目!

ダメージ文字の変更


disposeやらcollapseやらと書かれていますね?
丁度def collapseでくくられてるとこの下あたりに
def damage(value, critical)とあります。
ここがダメージ文字の描画部分です。

bitmap.font.name = "Arial Black"←書体
bitmap.font.size = 32←文字サイズ
bitmap.font.color.set(0, 0, 0)←文字縁取り色
bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
if value.is_a?(Numeric) and value < 0
 bitmap.font.color.set(176, 255, 144)←回復色
  else
 bitmap.font.color.set(255, 255, 255)←ダメージ色
end


上記にboldやitalicを追加して、
太字や斜体表示にする事もできます。

青色にした4つの項目は文字の縁取りの役目をしています。
縁が必要ない場合は、縁取り色のカラーセットと一緒に
消してしまっても大丈夫です(・ω・)

この下にある、クリティカル表示の設定も同じように記述してあるので
ついでにクリティカル表示の色などを変更してみるのもいいかもしれません。

"CRITICAL"表記を
"会心の一撃"や"痛恨の一撃"に変える事もできます。



ダメージポップ動作の変更


こっちは「def update」の中身です。

if @_damage_duration > 0
 @_damage_duration -= 1
 case @_damage_duration
when 38..39
 @_damage_sprite.y -= 4
when 36..37
 @_damage_sprite.y -= 2
when 34..35
 @_damage_sprite.y += 2
when 28..33
 @_damage_sprite.y += 4
end
@_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
if @_damage_duration == 0
 dispose_damage
 end
end

…という所を探してみてください。

主に変更するのはsprite.xとyです。
ここを調整すればダメージポップの動作が変わります。
when 数値..数値は
表示される時間(@_damage_duration)と関係しているので
ここの数値を変更したり、
whenを増やして動きを細かくする事もできます。



書体を変更する際は、遊ぶ側の事も考えて
MS明朝、MSゴシックなどの
初期から入っているような書体を選びましょう。
変わった書体を使用したい時は
自作か、再配布が可能な(配布に許可をもらっている)書体をゲーム配布時に同梱するといいかもしれません。

書式を変えるだけでも、雰囲気は大分違ったものになります。