LNS007a レーダーグラフ

LNS007 Bitmap拡張の拡張スクリプト。Bitmapクラス及びCacheモジュールに、数値の配列を渡して自動的にレーダーグラフを生成するメソッドを追加します。





基本情報

前提スクリプト


挿入位置



説明

概要

 レーダーグラフとは、上の画像のようなものです。適当な引数を渡すことにより、レーダーグラフの画像を生成することができます。

◆ メソッド

●Bitmap#draw_rader_graph(x, y, values[, option])

 座標(x, y)にレーダーグラフを描画します。このメソッドを含め、レーダーグラフ描画メソッドでは左上の座標を指定します。values には描画の基準となるパラメータを配列で指定します。option にはレーダーグラフの描画設定をハッシュで渡します。描画設定の一覧は下記をご覧ください。

●Window_Base#draw_rader_element_rate(actor, x, y[, radius])

 座標(x, y)にactor(アクターまたはエネミー)の属性有効度のレーダーグラフを描画します。radius にはグラフの半径を指定します。省略時は 48 になります(以下も同様)。

●Window_Base#draw_rader_state_rate(actor, x, y[, radius])

 座標(x, y)にactor(アクターまたはエネミー)のステート有効度のレーダーグラフを描画します。radius にはグラフの半径を指定します。

●Window_Base#draw_rader_element_atk(actor, x, y[, radius])

※要 LNS034 補正値拡張
 座標(x, y)にactor(アクターまたはエネミー)の属性攻撃力のレーダーグラフを描画します。radius にはグラフの半径を指定します。

●Cache.rader_graph(values, option[, radius])

 レーダーグラフのビットマップを生成して返します。キャッシュを用いているため、同じ大きさ、同じ数値、同じ描画設定のレーダーグラフであれば2回目以降は非常に高速に取得することができます。
 Bitmapクラスの draw_rader_graph メソッドはこのメソッドで生成した画像を利用しています。draw_rader_graph との違いは、描画座標の指定が無い点と、グラフ半径は別途指定することです(引数 option に含まれる :radius は無視されます)。


使用例

 Bitmap#draw_rader_graph に様々な値を渡して、どのように描画されるかの例を示します。
以下、values は
values = [100, 50, 120, 30, 60, 80]
とします。また見栄えを良くするためLNS003 Color拡張を併用しています。

draw_rader_graph(0, 0, values) # デフォルト
draw_rader_graph(0, 0, values, max:100, min:0) # 最大値と最小値を指定
draw_rader_graph(0, 0, values, max:100, min:0, mid:75) # 中間値を指定(max寄り)
draw_rader_graph(0, 0, values, max:100, min:0, mid:25) # 中間値を指定(min寄り)

以下、「max: 100, min: 0」は省略するが適用されている。
draw_rader_graph(0, 0, values) # 通常
draw_rader_graph(0, 0, values, draw_value: false) # 値を描画しない
 
ary = %w(炎 雷 闇 氷 風 光)
draw_rader_graph(0, 0, values, draw_value: false, captions: ary)  # 項目名を指定
 
ary2 = [Cache.icon(96), Cache.icon(98), Cache.icon(103), Cache.icon(97), Cache.icon(101), Cache.icon(102)]
draw_rader_graph(0, 0, values, draw_value: false, captions: ary2) # 項目名に画像を指定

draw_rader_graph(0, 0, values) # 通常
draw_rader_graph(0, 0, values, captions: ary) # 項目名と数値を両方描画
draw_rader_graph(0, 0, values, captions: ary, unit: "%")  # 数値に単位を付ける
draw_rader_graph(0, 0, values, captions: ary2, unit: "%") # 数値に単位を付け、項目名に画像を使う

以下、「captions: ary2」は省略するが適用されている。
draw_rader_graph(0, 0, values, unit: "%") # 通常
draw_rader_graph(0, 0, values, clockwise: false) # 反時計回り
draw_rader_graph(0, 0, values, angle: 0.5)  # 角度の変更1
draw_rader_graph(0, 0, values, angle: 0.12) # 角度の変更2

draw_rader_graph(0, 0, values, unit: "%") # 通常
draw_rader_graph(0, 0, values, step: 2) # 目盛りの分割数を 2 に
draw_rader_graph(0, 0, values, step: 6) # 目盛りの分割数を 6 に

draw_rader_graph(0, 0, values, fill: false)  # 塗りつぶしなし
draw_rader_graph(0, 0, values, opacity: 255) # 塗りつぶしの不透明度変更1
draw_rader_graph(0, 0, values, opacity: 48)  # 塗りつぶしの不透明度変更2
draw_rader_graph(0, 0, values, gradient: false) # グラデーションなし

draw_rader_graph(0, 0, values, unit: "%") # 通常
draw_rader_graph(0, 0, values, antialias: false) # アンチエイリアスなし
draw_rader_graph(0, 0, values, expand: true)     # 上下幅を増加
draw_rader_graph(0, 0, values, captions: ary, expand: true) # 上下幅を増加(文字)


描画設定の一覧

option

title<デフォルト:"">
グラフのタイトル(中央に描画される)。Bitmapを指定した場合、そのビットマップを表示する。
captions<デフォルト:[]>
各頂点に表示する項目名(キャプション)の配列。配列の要素にBitmapを入れた場合、そのビットマップを表示する。
draw_value<デフォルト:true>
数値を描画するかどうか。
unit<デフォルト:"">
数値に付加する単位(文字列)。例えば"%"などを指定する。
radius<デフォルト:48>
レーダーの半径。
font_size<デフォルト:radiusの1/3>
キャプション、数値、グラフタイトルなどの文字サイズ。
cap_width<デフォルト:radiusの2/3>
キャプションの最大幅。文字サイズと合わせて、デフォルトは全角2文字相当を想定している。

min<デフォルト:valuesの最小値>
レーダーの最小値(中心点での値)。実際の最小値より大きい場合(設定値は 0 だが values に -10 が含まれる、など)はその最小値に修正される。
max<デフォルト:valuesの最大値>
レーダーの最大値(各頂点での値)。実際の最大値より小さい場合(設定値は 100 だが values に 120 が含まれる、など)はグラフが最大値を突き抜けて描画される。あまりにも大きすぎる場合、グラフが正常に描画されない場合があるので注意。
mid<デフォルト:maxとminの平均>
レーダーグラフの色の基準値。不正な値(minとmaxの間にない)はデフォルトに修正される。詳細は後述。
step<デフォルト:4>
目盛線の分割数。

angle<デフォルト:0.25>
開始角度(単位は「回転数」)。0だと右端から始まり、数値が大きくなると反時計回りに回転する。0.25で上が開始点、0.5で左が開始点、0.75で下が開始点になる。
clockwise<デフォルト:true>
真の場合、values と captions の値は時計回りで配置される。
fill<デフォルト:true>
レーダーの内側を塗りつぶす。偽の場合枠線だけが描画され、処理は非常に軽くなる。
opacity<デフォルト:128>
塗りつぶしの不透明度。
gradient<デフォルト:true>
グラデーション描画を行う。偽の場合colors[:mid]の一色のみが使われ、処理は非常に軽くなる。
antialias<デフォルト:true>
レーダーグラフを描画する直線をアンチエイリアス描画する。偽にすると見た目が悪くなるが少し処理が軽くなる。
expand<デフォルト:false>
レーダーグラフの上下幅を拡張する。
colors<デフォルト:GRAPH_COLORS>
グラフ描画に使う色を定義したハッシュ。詳細は後述。

colors

レーダーグラフの描画に使う色を指定します。設定項目は下記のとおりです。
max
最大値(グラフの各頂点)での色。デフォルトでは赤。数値を描画する場合、数値の色もこれに合わせられる。
min
最小値(グラフの中心点)での色。デフォルトでは青。数値を描画する場合、数値の色もこれに合わせられる。
mid
基準値(options[:mid])での色。デフォルトでは緑。基準値は自由に設定できるが、数値が基準値よりも最大(:max)に近い場合は max と mid の中間の色になり、数値が基準値よりも最小(:min)に近い場合は min と mid の中間の色で描画される。
frame
グラフ外枠の色。デフォルトでは明るめの灰色。
shadow
グラフ枠の影の色。デフォルトでは黒。
scale
目盛線の色。デフォルトでは水色。
caption
項目名の色。デフォルトでは白。

描画される領域について

 描画領域の幅は (radius + cap_width)×2
 描画領域の高さは
  expandオプションが偽の場合:(radius + font_size)×2
  expandオプションが真の場合:(radius + font_size×2)×2
となります。radius, cap_width, font_size のいずれも設定せずデフォルトを利用する場合、expandが偽の場合は 160*128、真の場合は160*160になります。


備考

再定義されるメソッド

なし
※他サイトにおける同様の拡張スクリプトも併用する場合、メソッド名が重複する可能性があります。

設定項目

Vocab_ElementRate<初期値:"属性耐性">
Vocab_ElementAtk<初期値:"属性攻撃力">
Vocab_StateRate<初期値:"ステート耐性">
追加されるメソッドにおけるレーダーグラフのタイトルを指定する。表示しない場合は空文字列にする。
Rader_Elements<初期値:[3, 5, 7, 9, 4, 6, 8, 10]>
属性耐性グラフを描画する際の属性の並び順を、上から時計回りに属性IDで指定する。
Rader_States<初期値:[1, 2, 3, 4, 5, 6, 7, 8]>
ステート耐性グラフを描画する際の属性の並び順を、上から時計回りにステートIDで指定する。
Rader_Default<初期値:(スクリプトを参照)>
各種設定値を省略したときのデフォルト値。
GRAPH_COLORS<初期値:(スクリプトを参照)>
グラフの色設定を省略したときのデフォルト値。


コメント:

すべてのコメントを見る
最終更新:2019年04月07日 13:06