LNS025 ルビ表示

LNS020 Window_Base拡張の拡張スクリプト。ルビ(漢字の読みなどを示す小さな字)描画の機能を追加します。





参考資料

スクリーンショット

  
  

イベントコマンド例


メモにルビを設定する例




基本情報

前提スクリプト

LNS000 追加機能
LNS020 Window_Base拡張
上記のスクリプトが全て必要です。

挿入位置


必要素材

なし


説明

概要

 メッセージウィンドウ、アイテムなどの説明文、アイテムなどの名前にルビを表示します。
 ルビを表示するかどうかは、String のクラス変数 @@draw_ruby で設定します。LNS022a 拡張オプションを導入するとゲーム中に変更できるようになります。
 ルビの大きさは Font#ruby_size で定義されます。ルビ付き文字を描画する場合、テキストの描画 y座標が 2~4 ピクセル下がります。
 ルビの幅が対象の文字の幅より大きくなった場合、左右に隙間が作られます。

使い方

 ルビを表示するには、以下に示す直接設定個別設定共通設定のいずれかの方法を使います。

◆直接設定

 次の制御文字を利用します。
  • \R[字/読み]
    • 「字」に指定された文字列の上に、「読み」で指定された文字列を小さく描画します。
    • 他2つの方法も、最終的にはこの形式に変換されます。
    • [文章の表示] においては、\R[]で囲まれた文字列全体を1文字ぶんとして扱います。
    • 直接設定する場合に限り \R[字,読み] という形でもルビに変換されます。
    • その場で設定した文字のみにルビが振られます。
      • 例)「\R[愛/あい]、愛ってなんだ」と記述した場合、最初の「愛」にはルビが振られますが、後ろの「愛」には付きません。

◆個別設定

 アイテムなどの名前であればメモ、[文章の表示]であればその前の[注釈]に、所定の書式で書くことであらかじめルビを設定しておくことができます。
  • 「ruby:(ルビ指定)」という形式で記述します。メモに書く場合は、さらに < と > で囲みます。
  • [注釈]の場合は、次に別の[注釈]でルビが設定されるまで有効になります。
  • 個別設定によるルビは、同じ文字列であれば常に適用されます。
    • 例) 「ruby:火/ひ」と書いておくと、文中に出てくる「火」という文字全てに対して「ひ」というルビが振られます。
  • ルビ指定部分について
    • 基本的には、「字/読み」をカンマ(,)で区切って好きなだけ書きます。(スクリーンショットを参照)
    • 「読み」部分にセミコロン(;)が入っている場合、「字」を1文字ずつに分解し、それぞれにルビを当てます。読み仮名の必要ない部分がある場合、何も書かないことでルビを振らない字として扱えます。
      • 例)「ruby:火炎の弾/か;えん;;たま」と書いておくと、「火」と「炎」と「弾」に対してそれぞれ「か」「えん」「たま」というルビが振られます。
      • この形式では、字として指定された部分に完全一致する場合のみルビが振られます。従って上記の例では、文中に「火炎を放つ」と書かれていた場合、「火炎」にはルビが付きません。
    • メモ欄に書く場合は、スラッシュ(/)までを省略することで、ルビの対象をアイテム名そのものにできます。この場合、説明文に対するルビ指定としては(アイテム名がそのまま出てくる場合を除き)使えません。
      • 例)「癒やしの草」という名前のアイテムのメモ欄に「<ruby:いや;;;くさ>」と書いた場合、「癒」と「草」にそれぞれ「いや」「くさ」というルビが振られます。
    • ルビ対象の文字数に対してセミコロンの分割数が足りない場合、足りないぶんはルビ無しになります。多すぎる場合、超過分のルビは単に無視されます。
  • ルビ対象の字は長いものほど優先されます。
    • 例)「ruby:火炎弾/か;えん;だん,炎/ほのお」と書いておくと、「火炎弾」という文字列に対しては前者のルビ(かえんだん)が適用され、「火炎弾」以外(「炎を放つ」など)の「炎」という文字に対しては「ほのお」のルビが振られることになります。

◆共通設定

 スクリプト上で、定数LNS::Setting::Rubyに値を設定することで、ルビが使用可能な全ての場面で常にその文字列にルビを付けるようにできます。例えば
LNS::Setting::Ruby["十六夜"] = "いざよい"
といった形で設定します。頻出する難読単語などはスクリプト上で設定してしまうと楽です。

個別設定と同様に、セミコロン(;)で区切って1文字ずつルビを振ることも可能です。
Ruby["絶対に表記されない文字列"] = "ぜっ;たい;;ひょう;き;;;;;も;じ;れつ"

 ルビ表示のための変換処理を行う際の優先度は直接設定 > 個別設定 > 共通設定の順です。

おまけ

 次の制御文字を追加します。
  • \D[文字列]
    • 文字列の上に1文字ずつ点(・)を打ちます。特定の語句を強調したいときなどに使います。
      • 例) \D[あいう]と書くと、\R[あ/・]\R[い/・]\R[う/・]に変換されます。
    • ルビの代わりに点を打つため、読み仮名を表すルビとの併用はできません。


備考

再定義されるメソッド

  • Window_Base#text_size
描画に必要な領域を計算する際、ルビの分は除いて計算します。
  • Window_Base#draw_actor_name
  • Window_Base#draw_item_name
  • Window_Help#refresh
  • Game_Interpreter#command_101
  • Game_Interpreter#command_105
ルビ表示に対応します。

設定項目

Ruby<初期値:{}>
ルビの共通設定のためのハッシュです。設定方法は◆共通設定の項目を参照してください。


コメント:

すべてのコメントを見る
最終更新:2019年04月14日 12:27