RGSS-制御文字で絵文字を表示

カテゴリ: 投稿日: 2013-08-10

«RGSS一覧


台詞に「♥(ハートマーク)」を入れたり絵文字でキャラクターの感情を表現したいけど
文字だと環境依存で?になって表示できないし…
と、


諦めたらそこで試合終了だよ(・ω・)


それなら自分で作っちゃえばいいのさ~♪


「でも絵文字の絵を作ってもメッセージに表示するやり方を知らない」
って方に、
今回は制御文字で絵文字を表示させるやり方を伝授します!




【今回の変更点】
・Window_Message

【用意するもの】
・絵文字画像

SilverHearts絵文字サンプルダウンロード

*絵文字サンプルの著作権はSilverHeartsにあります。公開作品に使用する場合はクレジット表記をお願いします。



【スクリーンショット】

こんな感じになります。
絵文字の種類を増やせば、メッセージをより豊かに彩る事ができます。
ビジュアル重視の作品にはもってこい?




■Window_Message

文字描画でいつもお世話になってる「def refresh」に注目。
text.gsub!だとかがつらつら並んでいる場所、
while ((c = text.slice!…の上あたりに
まずはひとつ、スクリプトを追加します。

text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "\006[#{$1}]" }

ここでは、文章の表示に書き込んだ「\E」を「\006」に変換させます。


で、次は。
wheile…の下に

  if c == "\006"
 text.sub!(/\[([0-9]+)\]/, "")
 emoji = $1.to_i
 case emoji
 when 0
  bitmap = RPG::Cache.picture("ハート")
 when 1
  bitmap = RPG::Cache.picture("キラキラ")
    :
    : 使う絵文字の分だけ上と同じように追加
    :
 end
 self.contents.blt(4 + x, 32 * y + 2, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
 x += bitmap.width
 next
end

というように追加します。
これで文章の表示で「\E[0]」と書き込むと
Picturesフォルダに入っているハートが、
「\E[1]」と書き込むとキラキラの絵文字が表示されます。
ね、簡単でしょ?



初期からある制御文字の応用なので、
執筆者の書き方がヒジョ~に分かりにくくても(笑)
どうすればいいかすぐ分かるかと思います。

スクリーンショットで使った絵文字4点は
上の「SilverHearts絵文字サンプル」のリンク先からセットでダウンロードできますので、指定フォルダに入れてテストしてみてください。