Custom Menu Canvas

■ 概  要

  • ・ Custom Menu Base 内に含まれる描画処理です。

■ 使用準備

■ 立ち絵

メニューステータス :bust で使用されます。
画像は、Graphics/Pictures フォルダに保存してください。
ファイル名・サイズに制限はありません。

■ 画像

メニューステータス :pict で使用されます。
画像は、Graphics/Pictures フォルダに保存してください。
ファイル名・サイズに制限はありません。

■ 数字画像

メニューステータス :num で使用されます。
画像は、Graphics/Pictures フォルダに保存してください。
ファイル名・サイズに制限はありません。

■ 設定項目

■ 残りHPで顔グラを変化させる

EXPRESSIVE_RATE = [50, 25, 0]

最大3要素の配列で設定します。空配列 [] にすると変化させません。

画像のように 100 以下、第1要素(A)以下、第2要素(B)以下、第3要素(C)以下の
最大4つの画像が使用できます。その場合、顔グラの編集が必要です。
HPが100%の場合のみの画像を設定する場合は、第1要素に99を入れます。
戦闘不能の場合のみの画像を設定する場合は、最後の要素に0を入れてください。
※ メニューのみで使用するため、アクターに設定された顔グラは変更されません。

■ 顔グラをまとめる

COLLECT_FACE = false
true
アクターの顔グラに設定された行を表情グラとして使用します。
false
アクターの顔グラに設定された画像の1段目が表情グラに固定されます。
メニュー以外で使う顔グラなどは、2段目以降に配置してください。
ヘルプによると、4x2の8枚が1ファイルとされていますが、
実際には制限はなく、横4以下×縦おそらく無制限の画像を使用できます。

■ 立ち絵のファイル名

PORTRAIT_NAME = "MActor%d"

個別にファイル名が設定されていない場合に使用される共通のファイル名です。
次の文字は、それぞれの値に置換されます。%1$d アクターID、%2$d 表情番号
表情番号は、EXPRESSIVE_RATE の設定によって、0~3 までの数値に変化します。

アクターごとにファイル名を設定する場合は、次のスクリプトを実行してください。

$game_actors[アクターID].portrait_name = "ファイル名"

この設定を解除して共通の設定に戻す場合は、次のスクリプトを実行してください。

$game_actors[アクターID].portrait_name = nil

■ 使用方法

■ 立ち絵の変更

$game_actors[n].portrait_name
ファイル名を文字列で代入してください。
n には、変更するアクターのIDが入ります。
例)$game_actors[1].portrait_name = "MActor1-1"

■ メニューステータスの設定

[識別子, x, y, パラメータ = デフォルト値] のように = が書かれたパラメータは
省略できます。複数ある場合は、間を飛ばして設定することはできません。
スクリプト中では、actorで描画中のアクターの情報が取得できます。

[:name, x, y, width = 124]
アクターの名前を表示します。
[:class, x, y, width = 124]
アクターのクラスを表示します。
[:nick, x, y, width = 124]
アクターの二つ名を表示します。
[:level, x, y, width = 64]
アクターのレベルを表示します。
[:lv_g, x, y, width = 64]
アクターのレベルをゲージ付きで表示します。
[:face, x, y, size = 96]
アクターの顔グラを表示します。
size を数値または配列で設定した場合、次のようになります。
数値
表示サイズが size になるように四方の縁を切り取ります。
[size]
画像を拡大縮小します。
[w, h]
[横幅, 縦幅]になるように拡大縮小します。
[x, y, w, h]
[x, y] の位置から [w, h] のサイズになるように縁を切り取ります。
※ 待機メンバーの顔グラも半透明にはなりません。
例)ITEM_PARAMS << [:face, 0, 0, [32,0,48,96]]
[:chara, x, y]
アクターの歩行グラを表示します。
[:icon, x, y]
アクターのアイコン(24x24)を表示します。
[:bust, x, y]
アクターの立ち絵を表示します。
[:state, x, y, width = 96, align = 0]
アクターのステートアイコンを表示します。
align が 0 なら左寄せ、1 なら中央寄せ、2 なら右寄せで表示します。
[:hp, x, y, width = 124]
アクターのHPゲージを表示します。
[:mp, x, y, width = 124]
アクターのMPゲージを表示します。
[:tp, x, y, width = 124]
アクターのTPゲージを表示します。
[:exp, x, y, width = 124]
アクターの経験値ゲージを表示します。
[:param, x, y, param_id, width = 124]
アクターのパラメータを表示します。
param_id
  0 : 最大HP    1 : 最大MP    2 : 攻撃力    3 : 防御力
  4 : 魔法力      5 : 魔法防御    6 : 敏捷性    7 : 運
[:fill, x, y, width, height, color, script = nil]
矩形で塗り潰します。
color は、「カラーの設定」のカラー番号以外での設定ができます。
script を設定した場合は、結果が真のときのみ描画します。
[:pict, x, y, file, script = nil]
ピクチャフォルダにある画像を表示します。
file
表示する画像のファイル名です。
文字列 "" か配列 [file1, file2] で設定します。
nil の場合は、script を実行した結果が使用されます。
script
実際に描画する画像を判定するためのスクリプトです。
file が文字列の場合:
評価した結果が真偽値の場合、真のときのみ描画します。
script を省略した場合は、評価をせずに画像を描画します。
真偽値以外の場合は、file を書式文字列とみなし、
script の結果を引数として sprintf します。
file が配列の場合:
評価した結果が真偽値の場合、真のとき file1 を、偽のとき file2 を描画します。
script を省略した場合は、戦闘メンバーなら file1
それ以外なら file2 の画像を描画します。
評価した結果が数値の場合は、その値の要素の画像を描画します。
例)[:pict, 0, 0, "file"]
 画像 "file" を表示します。
例)[:pict, 0, 0, "file", "script"]
 "script" が真のとき、画像 "file" を表示します。
例)[:pict, 0, 0, "MActor%d", "actor.id"]
 "script" で書式文字列に従って書き込む値を指定し表示します。
例)[:pict, 0, 0, ["file"]]
 アクターが戦闘メンバーなら画像 "file" を表示します。
例)[:pict, 0, 0, ["file1","file2"]]
 アクターが戦闘メンバーなら "file1" を控えメンバーなら "file2" を表示します。
例)[:pict, 0, 0, ["file1","file2"], "script"]
 "script" が真のとき "file1" を偽のとき "file2" を表示します。
 もしくは、0 のとき "file1" を 1 のとき "file2" を表示します。
例)[:pict, 0, 0, nil, "'MActor%d'%actor.id"]
 "script" でファイル名を指定し表示します。
 この場合アクターのIDで "MActor1" "MActor2" というファイル名を指定します。
[:text, x, y, text]
文字を表示します。
ここでは特別な制御文字\{アクターのプロパティ}が使えます。
例)ID\{id}, Level\{level}, 名前\{name}, 現在HP\{hp}, 最大HP\{maxhp}
[:num, x, y, num, file]
数値を画像に置き換えて表示します。
num
数値か文字列(スクリプト)
file
文字列(ファイル名) 0-9+-αの13種

数字と + と - と半角スペース以外の文字では、13番目の画像が使われます。
そのため 12/23 としたい場合は / の画像にし 120% としたい場合は % の画像にしてください。
例)[:name, 0, 0, "'%04d'%actor.hp", "num"]

■ 制御文字

『スクリプト素材の使い方』で文字列の設定方法について確認してください。

\n
改行されます。
\\
バックスラッシュに置き換えられます。
\V[n]
変数 n 番の値に置き換えられます。
\S[n,on,off]
スイッチ n 番の値によって、その後の文字に置き換えられます。
例)\S[1,ON時,OFF時]
\N[n]
アクター n 番の名前に置き換えられます。
\P[n]
パーティメンバー n 番の名前に置き換えられます。
\I[n]
アイコン n 番を描画します。
\C[n]
以降の文字を n 番の色で表示します。
\{
文字サイズを1段階大きくします。(デフォルトの半分の大きさ)
\{{ や \{{{ と記述すると、それぞれ \{\{ や \{\{\{ に置き換えられます。
\}
文字サイズを1段階小さくします。(デフォルトの半分の大きさ)
\}} や \}}} と記述すると、それぞれ \}\} や \}\}\} に置き換えられます。
\$
所持金に置き換えられます。
\G
通貨単位に置き換えられます。
\T
\T[format]
プレイ時間に置き換えられます。
format を省略した場合は、'%3d:%02d:%02d' となります。
%1$d 時間, %2$d 分, %3$d 秒, %4$d 経過分, %5$d 経過秒
例)\T[%4$3d分%3$02d秒]
\W
歩行数に置き換えられます。
\X[n]
文字の描画位置(x座標)を設定します。
n が符号付きだった場合は、位置をずらします。
\Y[n]
文字の描画位置(y座標)を設定します。
n が符号付きだった場合は、位置をずらします。
\L[width, size, opt]
ラインの描画を行います。
描画色は、現在の文字色と同じものになります。
width で長さ、size で太さ、opt でオプションを設定します。

オプションは、設定するオプションのアルファベットを並べて設定します。
AFH 長さ(width)を文字数で設定します。未設定時は、ピクセル単位です。
A 自動で文字幅を調節します。
F 全角文字での幅
H 半角文字での幅
TMB ラインの描画位置を設定します。
T 行の上に描画します。
M 行の中央に描画します。
B 行の下に描画します。(デフォルト)
X ラインの幅だけx座標を進めます。
S ラインの下に影を描画します。
例)\L[100,1], \L[5,2,AS]
\L[x, y, width, height, color]
矩形の描画を行います。
color を省略した場合は、描画色で塗りつぶされます。
color は、「カラーの設定」の文字列でのみ設定ができます。
ただし、先頭の 0x は省略できず、" や ' はいりません。
例)\L[0,0,100,1,0x08]
\I[filename, x, y]
\P[filename, x, y]
ピクチャフォルダにある画像を描画します。
例)\I[Actor1,0,0]
\F[actor_id, x, y]
\F[filename, face_index, x, y]
フェイスフォルダにある画像を描画します。
例)\I[1,0,0]
<%script%>
script を実行した結果に置き換えられます。

■ カラーの設定

カラー番号
ウィンドウスキンにあるカラーテーブルの番号です。
文章の表示などで使用する制御文字と同じ番号です。
数値
0xRRGGBBAA
※ 数値での指定では、一切の省略ができません。
0 は黒ではなく透明ですので注意してください。
アルファチャンネルの値が必要になるので黒は 255 になります。
※ よくわからない方は「カラーコード」や「色 16進数」などで検索してください。
シンボル、文字列
0 ~ 9 、A ~ F の文字でカラーを設定します。
0xX        -> 0xXXXXXXFF (0x0        -> 0x000000FF)
0xXA       -> 0xXXXXXXAA (0x08       -> 0x00000088)
0xRGB      -> 0xRRGGBBFF (0xF84      -> 0xFF8844FF)
0xRGBA     -> 0xRRGGBBAA (0xF848     -> 0xFF884488)
0xRRGGBB   -> 0xRRGGBBFF (0xFF2345   -> 0xFF2345FF)
0xRRGGBBAA -> 0xRRGGBBAA (0xFF234580 -> 0xFF234580)
※ 上記パターン以外は、数値として処理されます。
※ 先頭の 0 もしくは、0x は省略できます。
クラス
Color.new(red, green, blue[, alpha])
配列
[red, green, blue[, alpha]]