テキスト link
Ren'Py にはテキストを表示する方法がいくつかあります。ユーザーにテキストを表示する方法としてまず考えられるのは say や menu ステートメントです。スクリーン言語ステートメント text, textbutton, や label を使ってユーザーインタフェースにテキストを表示することもよくあります。これらやその他の関数は Text()
displayable を作成し、それをスクリーンに表示します。
テキスト displayable の役割はユーザーにテキストを表示する工程の管理です。テキスト displayable は次の順序にそって処理されます:
テキストを翻訳する。
データをテキストに置換する。
スタイルとテキストタグを使ってテキストの体裁を整える。
整えられたテキストをレイアウトする。
テキストをスクリーンに描画する。
この章では Ren'Py のテキスト表示に焦点を当てます。
エスケープ文字 link
Ren'Py のテキスト表示を制御する文字が 3 つあります。クリエータはこれらの文字がエンジンに誤解釈されないよう気をつける必要があります。
- \(バックスラッシュ)
バックスラッシュ文字は Ren'Py 、または Python の文字列を書くときの導入に使われます。よく使うエスケープコードは:
- \" (バックスラッシュ-ダブルクォート)
ダブルクオートで囲まれた文字列にダブルクオートを含めます。
- \' (バックスラッシュ-クォート)
シングルクオートで囲まれた文字列にシングルクオートを含めます。
- \ (バックスラッシュ-スペース)
Ren'Py の文字列にスペースを含めます。デフォルトの Ren'Py スクリプトのテキストでは、連続する空白は一つのスペース文字に折りたたまれます。
- \n (バックスラッシュ-n)
テキストに改行文字を含めます。
- \\ (バックスラッシュ-バックスラッシュ)
テキストにバックスラッシュ文字を含めます。
- \% (バックスラッシュ-パーセント)
テキストに保護されたパーセント文字を含めます。 %% としても書けます。 :どちらの保護でも、最終的に1つ % 文字が書かれます。
- [ (左角括弧)
左角括弧はテキストへ値の置換を導入するために使われます。テキストに左角括弧自体を含めるには二重にして、
[[
と書いてください。- { (左波括弧)
左波括弧はテキストタグを導入するために使われます。テキストに左波括弧自体を含めるには二重にして、
{{
と書いてください。- [ (左角括弧)
左角括弧を使用してルビ/ふりがなテキストを導入します。テキストに左角括弧自体を含めるには二重にして、
【【
と書いてください。
データの置換 link
Ren'Py ではテキスト文字列が表示される前にデータを置換できます。例えば、プレイヤー名が playername
変数に保存されているとすると、台詞をこのように書けます:
g "Welcome to the Nekomimi Institute, [playername]!"
Ren'Py では次の順で変数を検索します。 :
スクリーンで使用されるときはスクリーン変数
interpolate
名前空間で見つかる変数グローバル名前空間で見つかる変数
Ren'Py の置換は単なる変数に限りません。どのような妥当な python 式も置換できます。ですから、次のコードも書けます
g "My first name is [player.names[0]]."
数を表示するときにはフォーマット化コードを適用できます。次のコードは、浮動小数点数を小数第 2 位まで表示します
g "I like you [100.0 * points / max_points:.2] percent!"
Ren'Py の文字列フォーマットは PEP 3101 文字列フォーマット化構文を引き継いでいます。Ren'Py では { をテキストタグに使うので、文字列フォーマットには [ を使います。
Python でサポートされている !s
や !r
変換フラグに加え、 Ren'Py は他にもいくつかのフラグをサポートします。 !q
変換フラグはテキストタグが適切にクォートされていることを保証し、表示する文字列を望まない形式の構造にしません。例
g "Don't pull a fast one on me, [playername!q]."
!t
変換フラグは置換した文字列を翻訳します。
if points > 5:
$ mood = _("happy")
else:
$ mood = _("annoyed")
g "I'm [mood!t] to see you."
!i
変換フラグは置換された文字列をさらに置換します。
define earned_points_info = _("[points]{image=points.png} earned points")
g "I'm happy to see you you have [earned_points_info!ti]."
これは置換を含むテキストを置換するのに使用するべきです。スクリーン言語で役立つでしょう。 Const Text も参照してください。
!u
フラグはテキストを大文字に、 !l
フラグは小文字にします。 !c
フラグは最初の一文字にのみ作用し、大文字にします。これらのフラグは組み合わせ可能で、 !cl
は最初の文字を大文字、残りを小文字にします。
注意点として :
フラグの指定順は結果を変更しません。 :
!cl
は!lc
と同じく動作します。また、感嘆符は無視されるので前のルールを回避できません :
!l!c
は!c!l
や!cl
と同じです。
変換は次の順で実施されます。 :
r
/s
(repr または str)t
(translate)i
(recursive interpolation)q
(quoting)u
(uppercase)l
(lowercase)c
(capitalize)
英語以外の言語 link
Ren'Py のデフォルトフォントには、英語やその他多くの文字が含まれています。容量の都合から、中国語、日本語、韓国語などに必要な文字は含まれていません(訳注 付属の日本語フォントには常用漢字しか含まれません)。あるプロジェクトでこれらの言語をサポートするためには、まず使用するフォントを変更しなければなりません。
これだけの設定で、Ren'Py は世界の殆どの言語をサポートするでしょう。しかし、韓国語は分かち書きをするかしないかを選べます。Ren'Py には韓国語の分かち書きをサポートする特別なモードがあり、このコードで有効にできます
define gui.language = "korean-with-spaces"
これは gui.rpy の "unicode" のデフォルトから変更可能です。
日本語には複数の改行方法があります。「 japanese-normal 」から始めて、改行の機会を増やす、または減らすために、それぞれ 「 japanese-loose 」または「 japanese-strict 」への変更を勧めます。
define gui.language = "japanese-loose"
表意文字の言語には改行が多いです。高速だが不正確な改行アルゴリズムを有効にするには、このコードを使ってください
define gui.language = "greedy"
高速な改行アルゴリズムは、NVL モードのような莫大な量のテキストを表示するゲームでなければ必要有りません。
改行アルゴリズムは renpy.language_tailor()
関数を使用して更に設定出来ます。
縦書き link
vertical
スタイルが適切に設定されていると、Ren'Py は縦書きテキストを生成します。そのテキストは上から下。右から左に書かれます(訳注: 標準のsay, nvl スクリーンは縦書きをサポートしていません。 参照)。
縦書きテキストに作用する2つのテキストタグがあります。
- horiz link
縦書きテキスト内に横書きテキストを含めます。
- vert link
横書きテキスト内に縦書きテキストを含めます(これは縦向きの回転を行いません)。
注釈
フォントが縦書きテキストの情報を含んでいない場合、Ren'Py は横書きテキストの情報から縦書き用の情報を生成しようとします。行間隔は Ren'Py のリリースごとに異なる可能性があります。
ルビテキスト link
ルビテキスト (ふりがな表記とも言います) は、文字や単語の上に小さなテキストを配置する方法です。貴方のゲームでルビテキストをサポートするためには必要な手順があります。
まずは、ルビテキストのスタイルを設定します。次のスタイル変更が必要です:
ルビテキストに十分な垂直スペースを残すために、
line_leading
やruby_line_leading
プロパティーを使います。新しく名前をつけたスタイルを作ります。このスタイルの
size
などのプロパティーは、ルビテキストに合うように設定します。新しいスタイル
yoffse
を設定し、ルビテキストがベースラインの上に来るようにします。テキストスタイルの
ruby_style
フィールドは、 dialogue と history window text の両方で新しく作成されたスタイルに設定されるべきです。
例
style ruby_style is default:
size 12
yoffset -20
color None # Use the same color as the parent text.
style say_dialogue:
ruby_line_leading 12
ruby_style style.ruby_style
style history_text:
ruby_line_leading 12
ruby_style style.ruby_style
(style.style_name
を使用してこの目的でスタイルを参照します)
一旦 Ren'Py が設定されると、ルビテキストが 2 つの方法で組み込めるようになります。
隅付きかっこ ルビテキストはそれを2バイトの隅付き括弧 (【】) で囲み、1バイトまたは2バイトの縦線 (| または |) で上下のテキストを分けて書けます。例
e "Ruby can be used for furigana (【東|とう】 【京|きょう】)."
e "It's also used for translations (【東京|Tokyo】)."
ルビテキストは縦線があるときのみ実行されます。隅付き括弧自体は二重にして台詞に含められます。隅付き括弧のルビテキストは他のテキストタグを含みません。
{rt} と {rb} テキストタグ {rt} タグは、1文字以上の文字がルビテキストとして表示されるようにマークします。ルビテキストの前に {rb} タグで囲まれたテキストがあると、ルビはその上で中央寄せされます。そうでなければ、直前の一文字の上で中央寄せされます。
例
e "Ruby can be used for furigana (東{rt}とう{/rt} 京{rt}きょう{/rt})."
e "It's also used for translations ({rb}東京{/rb}{rt}Tokyo{/rt})."
クリエータは、ルビテキストがテキストの境界を超えないようにしなければなりません。そのようなエラーが起こらないように、そのテキストの先頭や左右に文字間のスペースを開ける必要があるかもしれません。
Ren'Py は代替テキストタグもサポートします。これは {rt} の代わりに {art} テキストタグで始まり、( ruby_style
の代わりに) altruby_style
プロパティーを使用します。
フォント link
Ren'Py は Truetype/OpenType フォントと画像ベースのフォントをサポートしています。
Truetype や OpenType フォントは、フォントファイルの名前を与えて指定できます。ファイルはゲームディレクトリーにあるか、アーカイブファイルのひとつでなければなりません。
Ren'Py は、複数のフォントを定義している Truetype コレクションもサポートしています。コレクションにアクセスするときは、0 ベースのフォントインデクス、アットマーク、そしてファイル名の順に使ってください。例えば、「 0@font.ttc 」がコレクションの最初のフォントなら、次は「 1@font.ttc 」、などとなります。
フォントファイルを探すときにそのファイルが見つからなければ Ren'Py は game/fonts
ディレクトリーで探します。例えば、 test.ttf を探すとき、 Ren'Py は game/test.ttf
を探し、次に game/fonts/test.ttf
を探します。
フォントの置き換え link
config.font_replacement_map
変数は、フォントを対応付けるのに使われます。フォントのファイル名、ボールド体、イタリック体の組合せをべつの同様の組合せと対応付けられます。これにより、自動的に生成されるイタリック体の代わりに適切なイタリック体を使用できます。
このようなマッピングによって Deja Vu Sans font のイタリック版を公式の斜体版に置き換えます (web で斜体版をダウンロードする必要があります)。
init python:
config.font_replacement_map["DejaVuSans.ttf", False, True] = ("DejaVuSans-Oblique.ttf", False, False)
このマッピングでイタリックテキストの見た目が向上します。
フォント名とエイリア link
config.font_name_map
変数を使用してフォントの名前やエイリアスを指定出来ます。これにより 2 つのことが可能になります : まず {font}
タグを使用した台詞をより短く、簡単に使用できるようにします。 : 第二にそれらのタグで フォントグループ が使用出来るようにします
define config.font_name_map["jap"] = "electroharmonix.ttf"
define config.font_name_map["tjap"] = FontGroup().add("OrthodoxHerbertarian.ttf", "A", "Z").add("electroharmonix.ttf", None, None)
label yamato:
e "Sorry, what does {font=jap}Black holes and revelations{/font} mean ?"
y "You pronounce it {font=tjap}Black Holes And Revelations{/font}." # the capital letters appear in OrthodoxHerbertarian
画像ベースのフォント link
画像ベースのフォントは、次の登録関数の何れかを呼び出いて登録できます。画像ベースのフォントの登録には、名前、大きさ、ボールド体、イタリック体、下線付きを指定する必要があります。これらすべてのプロパティーが登録されたフォントに合致すれば、その登録されたフォントが使われます。
- renpy.register_bmfont(name=None, size=None, bold=False, italics=False, underline=False, filename=None) link
これは、与えられた詳細の BMFont を登録します。なお、size, bold, italic, および underline はすべて (マッチングに使われる) 助言的なものであり、フォントの外見を変えるものではありません。
BMPFont を作成するツールは BMFont home page をご覧ください。Ren'Py は、filename パラメーターが BMFont テキストフォーマットのファイルであるとを想定しており、それは 32-bit フォントを記述するものです。アルファチャンネルにはフォント情報がなければならず、 Red, Green, および Blue チャンネルにはそれぞれの色が設定されているはず。画像ファイル、カーニング、その他の制御情報は BMPFont から読み取られます。
Ren'Py の全てのインタフェースが確実にレンダリングできるように、BMFont にはラテン文字と一般的な句読点を含めることを推奨します。
- name
登録するフォントの名前で、文字列です。
- size
登録するフォントのサイズで、整数です。
- bold
登録するフォントがボールド体であるかどうかの 真偽値です。
- italics
登録するフォントがイタリック体であるかどうかの 真偽値です。
- underline
このパラメーターは無視されます。
- filename
BMFont 制御情報を含むファイルです。
- renpy.register_mudgefont(name=None, size=None, bold=False, italics=False, underline=False, filename=None, xml=None, spacewidth=10, default_kern=0, kerns={}) link
これは、指定の書体で MudgeFont を登録します。なお、size, bold, italic, および underline はすべて (マッチングに使われる) 助言的なものであり、フォントの外見を変えるものではありません。
MudgeFonts を作成するツールについては、 MudgeFont home page をご覧ください。Ren'Py は、MudgeFont xml ファイルに見つかった文字コードが Unicode 文字番号であると想定しており、負の文字コードを無視します。
- name
登録するフォントの名前で、文字列です。
- size
登録するフォントのサイズで、整数です。
- bold
登録するフォントがボールド体であるかどうかの 真偽値です。
- italics
登録するフォントがイタリック体であるかどうかの 真偽値です。
- underline
このパラメーターは無視されます。
- filename
MudgeFont 画像を含むファイルの文字列です。この画像は通常 TGA ファイルですが、PNG その他の Ren'Py がサポートするフォーマットにもできます。
- xml
MudgeFont ツールによって生成された情報を含む xml ファイルです。
- spacewidth
空白文字の幅で、整数のピクセル数です。
- default_kern
文字間のデフォルトのカーニング間隔で、ピクセル数です。
- kerns
二文字の文字列から、その文字間に使われるカーニング間隔へのマップです。
- renpy.register_sfont(name=None, size=None, bold=False, italics=False, underline=False, filename=None, spacewidth=10, baseline=None, default_kern=0, kerns={}, charset='!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~') link
これは、指定の書体で SFont を登録します。なお、size, bold, italic, および underline はすべて (マッチングに使われる) 助言的なものであり、フォントの外見を変えるものではありません。
- name
登録するフォントの名前で、文字列です。
- size
登録するフォントのサイズで、整数です。
- bold
登録するフォントがボールド体であるかどうかの 真偽値です。
- italics
登録するフォントがイタリック体であるかどうかの 真偽値です。
- underline
このパラメーターは無視されます。
- filename
登録するフォントの名前で、文字列です。
- spacewidth
空白文字の幅で、整数のピクセル数です。
- baseline
フォントの上端からベースライン (文字を置く不可視のライン) までのピクセルの整数での距離です。このフォントが他のフォントと合成されるときには、ベースラインで合わせられます。負の値だと代わりにフォントの下端からの距離になり、
None
だとベースラインとの距離は高さと同じになります(つまりフォントの最下端になります)。- default_kern
文字間のデフォルトのカーニング間隔で、ピクセル数です。
- kerns
二文字の文字列から、その文字間に使われるカーニング間隔へのマップです。
- charset
フォントの文字セットです。画像で見つかる順に文字を含む文字列です。SFont用のデフォルトの文字セットは次の通りです。
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
BMFont は Ren'Py がサポートする三つの画像フォント中では最も完全なものなので、新しいプロジェクトでは推奨します。 BMFont の使用例は次の通りです
init python:
renpy.register_bmfont("bmfont", 22, filename="bmfont.fnt")
define ebf = Character('Eileen', what_font="bmfont", what_size=22)
label demo_bmfont:
ebf "Finally, Ren'Py supports BMFonts."
フォントグループ link
マルチ言語のゲームを作成するとき、制作者が意図した雰囲気を保ちつつ、一つのフォントですべてのゲームが使用するシステムをカバーすることは多分不可能です。これをサポートするために、 Ren'Py はフォントグループをサポートして二つ以上のフォントから文字を受け取って一つのフォントに合成出来るようにします。
フォントグループを作成するためには、 FontGroup
オブジェクトを作成し、その .add
メソッドを一回以上呼び出してください。フォントグループはフォント名が使用可能などこででも使用できます。 add メソッドはユニコードの文字コードの最初と最後を引数に受け取って範囲とし、ある文字コードに対してはそれをカバーする最初の範囲が使用されます。
例
style default:
font FontGroup().add("english.ttf", 0x0020, 0x007f).add("japanese.ttf", 0x0000, 0xffff)
- class FontGroup link
フォントグループは一つのフォントとして使用されます。
- add(font, start, end, target=None, target_increment=False) link
font と文字の範囲を関連づけます。
- start
範囲の始まりです。これは一文字の文字列か、ユニコードのコードポイントの整数です。
- end
範囲の終わりです。これは1文字の文字列か、ユニコードコードポイントの整数です。 start が None ならこれは無視されます。
- target
与えられれば、特定の範囲の文字を、 target_increment の設定に合わせて指定のフォントの特定の文字に割り当てます。これは1文字の文字列またはユニコードコードポイントの整数です。その文字が既に追加されていればこれは無視されます。
- target_increment
True なら、 [start, end] の範囲が [target, target+end-start] の範囲に対応付けられます。 False なら、その範囲の全ての文字がそのターゲット文字に関連づけられます。
複数回の .add() 呼び出しが同じ文字を含めるときは最初の呼び出しが優先されます。
これは FontGroup を返すので、何回も .add() を呼び出して数珠つなぎに出来ます。
- remap(cha, target) link
1つまたは複数の文字をある単一の文字にリマップします。
- cha
リマップする文字または文字群です。これは一文字の文字列か、ユニコードコードポイントの整数、またはそのどちらかのイテレータです。
- target
リマップ先の文字です。これは1文字の文字列又はユニコードコードポイントの整数です。
(add や remap により)既にリマップされているどの指定の文字も無視されますが、その FontGroup にデフォルトフォントが無ければ、どんな文字も先に追加されていなければなりません。
同じ理由で、このメソッドも FontGroup を返します。
FontGroup には config.font_name_map
を使用した名前は指定できますが、 フォントとしてファイルパスを受け取るのみで、変数を使用して定義された名前やエイリアスは認識しません。
Text Displayables link
テキストは displayable としても使えます。これによりテキストに transform を適用し、画像であるかのように transform して画面上を移動させられます。
- class ParameterizedText(style='default', **properties) link
これは追加の文字列パラメーターを表示可能な displayable で、文字列を画像のように表示出来ます。これは通常は予め定義された
text
画像の内部で使用されます。例
show text "Hello, World" at truecenter with dissolve pause 1 hide text with dissolve
ParameterizedText を直接使用して、別のスタイルプロパティーを持つ同じ画像を定義出来ます。例えば次のように書けます。
image top_text = ParameterizedText(xalign=0.5, yalign=0.0) label start: show top_text "This text is shown at the center-top of the screen"
- class Text(text, slow=None, scope=None, substitute=None, slow_done=None, *, tokenized=False, **properties) link
テキストを画面に表示する displayable です。
- text
画面に表示するテキストです。これは文字列か、文字列または displayable のリストにできます。
- slow
テキストの表示を低速にして一文字づつ打ち出されるようにするかを決定します。None であれば、低速テキストモードは
slow_cps
スタイルプロパティーによって決定されます。そうでなければ、低速テキストモードを使用するかはこのパラメーターの真偽値によって決定されます。- scope
None を設定するか、テキスト置換を行うための追加のスコープを提供する辞書を指定します。
- substitute
True なら、テキスト置換が行われます。 False なら行われません。None なら、
config.new_substitutions
で制御されます。- slow_done
None でなく、低速テキストモード (slow パラメーターを参照してください) が有効ならば、これはそのテキストの表示が完了したときに引数なしで呼び出される呼び出し可能オブジェクト、または関数です。
- tokenized
True なら、 text には文字列ではなくトークンのリスト期待されます。トークンについてはは カスタムテキストタグ を参照ください。
- **properties
他の Displayable のように、 Text も (とりわけ)
mipmap
プロパティーを含むスタイルプロパティーを受け取ります。
テキストユーソリティー関数 link
- renpy.filter_text_tags(s, allow=None, deny=None) link
テキストタグがフィルターされた s のコピーを返します。 allow と deny キーワード引数のどちらかが指定されなければなりません。
- allow
許可されたタグのセットです。タグがこのリストになければ、除去されます。
- deny
拒否されるタグのセットです。タグがこのリストになければ、文字列に保持されます。
- renpy.substitute(s, scope=None, translate=True) link
翻訳と新しいスタイルフォーマットを文字列 s に適用します。
- scope
None またはフォーマットに使用されるデフォルトの store に追加するスコープです。
- translate
翻訳するかを決定します。
翻訳とフォーマットが終了した文字列を返します。
- renpy.transform_text(s, function) link
テキストタグと置換部分はそのままに、 s を変換します。
- function
実行するテキストに対応する引数で呼び出される関数で、実行するテキストを置き換えた文字列を返すべきです。
init python: def upper(s): return s.upper() $ upper_string = renpy.transform_text("{b}Not Upper{/b}", upper)
低速テキストについて link
Ren'Py では、クリエータやユーザーがテキストの表示を低速にできます。この場合、Ren'Py はテキストをテクスチャにレンダリングし、そのテクスチャからスクリーンに長方形をレンダリングします。
残念ながらこれにより、文字が重複するときにレンダリングが乱れることがあります。このレンダリングの乱れを最小限にするためには、 line_leading
および line_spacing
を十分大きくとり、行が重複しないようにしてください。最初の行の文字の下部が切り捨てられている、特に line_spacing が負であるなら、 line_overlap_split
を増やすことも考えてください。
字詰めをしても水平方向の乱れは起こりえますが、この乱れはたった 1 フレームだけなのでそれほど深刻ではありません。
乱れはメニューやその他のユーザーインターフェースのテキストのような静的なテキストでは問題になりません。
テキストオーバーフローの記録 link
Ren'Py はテキストが許可されたエリアからあふれた場合に記録出来ます。テキストオーバーフローの記録を有効化するためには、次の手順が必要です。
config.debug_text_overflow
変数を True にしましょう。xmaximum
とymaximum
スタイルをテキストdisplayable かそれを囲むものに適切に設定しましょう。ゲームを起動します。
利用可能なエリアを超えてテキストが表示されると、 Ren'Py は text_overflow.txt
ファイルにエラーを記録します。
Variable フォント link
Ren'Py は OpenType の Variable フォントをサポートしています。これらのフォントは、太さや幅といった複数の軸をサポートしており、これらの軸の値に基づいてフォントの表示を変えられます。 Variable フォントは軸に対して異なる値を提供する名前付きインスタンスも持ちます。例えば、 "bold" という名前のインスタンスは、おそらくフォントの太字バージョンを提供し、 "regular" はより通常のバージョンになります。
Variable フォントは shaper
スタイルプロパティーで制御される harfbuzz テキストシェイパーの使用を必要とします。これが設定されると、 instance
プロパティーは指定されたインスタンスを選択し、 axis
プロパティーは1つ以上の軸の値を設定します。
これらは gui システムでも設定できます。例えば、次のように使えます
define gui.text_font = "nunito.ttf"
define gui.text_instance = "light"
define gui.text_axis = {"width" : 125}
これは light インスタンスを使用し、幅をワイドにします。
インスタンスが指定されなければ、 Ren'Py のデフォルトは、太字でないテキストには "regular", 太字のテキストには "bold" となります。
Variable フォントの使用をサポートするテキストタグが2つあります。
- instance link
インスタンスタグは使用されるインスタンスを変更します。例
"This is {instance=heavy}heavy{/instance} text."
インスタンスタグが使用されると、 axis プロパティーは上書きされます。
- axis link
axis タグは、1 つまたは複数の軸の値を変更します。例えば
"This is {axis:width=125}wide{/axis} text."
axis タグは複数回使用でき、その値は組み合わされます。
"This is {axis:width=125}{axis:weight=200}wide and bold{/axis}{/axis} text."
等号の右辺の値は浮動小数点数であることが期待されます。
フォントの利用可能なインスタンスと軸を取得するには、 renpy.variable_font_info()
関数を使用します。この関数はコンソールからの呼び出しを想定しています。この関数にアクセスするには、shift+Oを押してコンソールを開き、次のように入力します
renpy.variable_font_info("nunito.ttf")
これは nunito.ttf フォントの情報を表示します。
- renpy.variable_font_info(font) link
Variable フォントに関する情報を返し、そのフォントが利用不能なら None を返します。
- font
フォント名の文字列です。
返り値は次のフィールドを持つオブジェクトです。 :
- instance
キーがフォントの名前付きインスタンスの名前である辞書(例えば、 'light', 'regular', 'bold', 'heavy') です。値は無視できます。
- axis
フォントの軸の名前を、以下のフィールドを持つオブジェクトにマッピングする辞書です :
- minimum
軸の最小値です。
- default
軸のデフォルト値です。
- maximum
軸の最大値です。
この関数が返すオブジェクトとその中のデータを変更してはいけません。
この関数は、Ren Pyの表示が初期化された後にコンソールから呼び出されることのみを想定しており、人が読める形式で出力されます。