添付画像を見た感じ、話者名をウィンドウ表示する(ネームプレート)スクリプトを使って、話者名を表示するのだと思うのですが、
スクリプトによっては、話者名以外表示できないものもあります。
使っているスクリプトは、メッセージウィンドウを表示するのと同様にテキストを表示できるのでしょうか?(一番最初の返信でスクリプト名を聞いていたのはこれが理由です。)
メッセージウィンドウと同様にテキスト表示(編集)できるものとして書きます。
奈々(なな)様の指示されたコードで、テキスト色を変数の値に応じて変更はできますが、
この場合、
テキスト色 = 変数の値 (Window.pngの右下にある32個の矩形部分の色)となってしまうので、
意図している色に自由には変更できません。
好感度の文字/アイコンを表示するスクリプトを作ってみたので使ってみてください。
(▼ 素材 の一番下に追加してください)
コード: 全て選択
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 制御文字の処理
# code : 制御文字の本体部分(「\C[1]」なら「C」)
#--------------------------------------------------------------------------
alias process_escape_character_origin process_escape_character
def process_escape_character(code, text, pos)
#-------------------------------------------------------------------------
# 好感度文字/アイコン描画用制御文字
# 2019/04/19
#
# 使い方(usage): \F[変数番号]
#
# 文字で描画がすることも、アイコンを使って描画することもできるように
# 作成してあります。
# アイコンを使って描画したい場合は、
# process_favorvility_icon(obtain_escape_param(text), pos)
# のコメントアウトを解除し、
# process_favorbility_text(obtain_escape_param(text), pos)
# をコメントアウトしてください。
#-------------------------------------------------------------------------
case code.upcase
when 'F'
#~ process_favorbility_icon(obtain_escape_param(text), pos)
process_favorbility_text(obtain_escape_param(text), pos)
end
process_escape_character_origin(code, text, pos)
end
#--------------------------------------------------------------------------
# ● 好感度文字の描画処理
#
# 引数 num に 指定された変数番号の値に応じて、アイコンの描画をする処理
# 好感度の判定(数値)等はご自分で調整してください。
#--------------------------------------------------------------------------
def process_favorbility_text(num, pos)
#文字色設定
#Color.new(赤の強さ,緑の強さ,青の強さ)で設定
color1 = Color.new(222,55,83) #好感度151以上
color2 = Color.new(222,111,129) #好感度101以上150以下
color3 = Color.new(222,166,176) #好感度50以上100以下
color4 = Color.new(255,255,255) #好感度0以上50以下
color5 = Color.new(0,0,0) #好感度マイナス値
pre_color = Color.new #好感度文字描画前の色(初期化)
#現在の文字色をセット
pre_color.set(contents.font.color)
#好感度文字設定(1文字で設定してください)
fav_text = '♥'
#テキストの幅を取得
text_width = text_size(fav_text).width
#---------------------------------------------------------------
# 好感度文字描画処理
# change_color( Colorオブジェクト名 )で色を変更
# draw_text で文字描画
# pos[:x] += text_width で次に書く文字の位置を変更
# change_color(pre_color)で、以前の文字描画色に戻す
# という処理をしている。
#---------------------------------------------------------------
favorbility = $game_variables[ num ]
# 好感度に応じて仕分ける部分
# 数値は適宜変更してください。
# いらない elsif は消してください。
if 150 < favorbility #好感度151以上
change_color(color1)
draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], fav_text)
pos[:x] += text_width
change_color(pre_color)
elsif 100 < favorbility #好感度101以上150以下
change_color(color2)
draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], fav_text)
pos[:x] += text_width
change_color(pre_color)
elsif 50 < favorbility #好感度50以上100以下
change_color(color3)
draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], fav_text)
pos[:x] += text_width
change_color(pre_color)
elsif 0 < favorbility #好感度0以上50以下
change_color(color4)
draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], fav_text)
pos[:x] += text_width
change_color(pre_color)
else #好感度マイナス
change_color(color5)
draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], fav_text)
pos[:x] += text_width
change_color(pre_color)
end
end
#--------------------------------------------------------------------------
# ● 好感度アイコンの描画処理
#
# 引数 num に 指定された変数番号の値に応じて、アイコンの描画をする処理
# process_draw_icon() の一番目に書きたいアイコンの番号を設定する。
# 好感度の判定(数値)等はご自分で調整してください。
#--------------------------------------------------------------------------
def process_favorbility_icon(num, pos)
favorbility = $game_variables[ num ]
if 150 < favorbility #好感度151以上
process_draw_icon(187, pos)
elsif 100 < favorbility #好感度101以上150以下
process_draw_icon(190, pos)
elsif 50 < favorbility #好感度50以上100以下
process_draw_icon(188, pos)
elsif 0 < favorbility #好感度0以上50以下
process_draw_icon(184, pos)
else #好感度マイナス
process_draw_icon(185, pos)
end
end
end
¥F[n] と書くことで、好感度をあらわす文字/アイコンを表示できます。
文字色等や、描き分けの条件分岐部分は、スクリプトを見て、適宜変更してください。
一応、メッセージウィンドウ内で描画する分には問題なかったのですが、
何か、不具合が生じましたらご連絡ください。
2019/09/20 20:23頃
(制御文字の処理部分、エイリアスで処理しないといけない部分をきちんと処理してなかったので修正しました。
差し替えて使うようお願いします。)