セルフボイシング機能 link

Ren'Py は、音声合成機でテキストやその他のインターフェイス要素を読み上げる、セルフボイシング機能に対応しています。これは、Ren'Py のゲームで視覚障害者の操作性を向上を目的としています。

セルフボイシングモードは、v キーにより切り替えられます。

セルフボイシングモード中はキーボードナビゲーションが変更され、上下矢印キーにより、画面上のすべてのフォーカス可能な displayable を辿ることが可能となります。

displayable がフォーカスされると、Ren'Py は displayable に関連付けられたテキストを読み上げします。displayable がフォーカスされていない場合は、Ren'Py は画面上のフォーカス不可能なテキストを読み上げます。これは一般に、会話や、ゲームを構成するその他のテキストを含みます。

音声合成 link

Ren'Py はオペレーティングシステムが提供する音声合成サービスに依存しています。音声合成の速度や使われる声を調整するには、お使いのプラットフォームの読み上げ設定を調整してください。

Windows

Windows では、Ren'Py は Microsoft Speech API を使用します。音声合成の設定は、「音声認識」コントロールパネルの「音声合成」タブから変更できます。

Mac OS X

Mac OS X では、Ren'Py は say コマンドを使用します。音声合成の設定は、「音声入力と読み上げ」コントロールパネルの「テキスト読み上げ」タブから変更することができます。

Linux

Linux では、Ren'Py は espeak コマンドを使用します。セルフボイシング機能を動かす前に、パッケージマネージャーで espeak をインストールしておく必要があります。

Android, iOS, Chrome OS

Android, iOS, Chrome OS ではセルフボイシング機能に対応していません

config.tts_voice 変数を使用するとプラットフォームによってデフォルトのボイスが選択出来ます。

init python:

    if renpy.windows:
        config.tts_voice = "Mark"
    elif renpy.macintosh:
        config.tts_voice = "Alex"
    elif renpy.linux:
        config.tts_voice = "english_rp"

利用可能なボイスはプラットフォームにより異なります.

作者に求められること link

Ren'Py のセルフボイシング機能は、displayable からテキストを抽出し、プレイヤーに対して読み上げます。Ren'Py は2つの場所からテキストを抽出します。

Text displayables

Ren'Py は Text displayable からテキストを抽出し、プレイヤーに対して読み上げられるようにします。

代替テキスト

代替テキストは、displayable の alt スタイルプロパティー、および ActionBarValue クラスのインスタンスで与えられます。明示的に与えられた代替テキストは Action や BarValue から与えられされたテキストより優先され、 Action や BarValue のテキストはテキスト Displayable のテキストよりも優先されます。

代替テキストは Ren'Py の文字列翻訳システムを使用して翻訳されます。代替テキストは displayable やその子から取り出したテキストより優先されますが、そのような子のテキストでは "[text]" のような文字列置換が利用可能です。他の文字列置は許可されません。

screen information(message, planet, badness):
    text message:
        color color_from_badness(badness)
        alt "Information for you : [text]. Badness is " + str(badness)

    text "ORIGIN_OF_MESSAGE_{color=#f00}[planet!u]{/color}":
        alt "Origin of message is " + planet

上記の例では badnessplanet 変数は "[badness]" のように使用して直接は置換できません。手動での文字列結合をしてください。

who_altwhat_alt パラメーターを Character に与えると、それぞれそのキャラクター名と本文に alt スタイルプロパティーが設定されます。例えば通常はイタリックの使用で思考であることを示し、セルフボイシングではその内容で思考であることを明示するキャラクターを定義します。

define thought = Character(None, what_italic=True, what_alt="I think, [text]")

スクリーンの Displayable には group_alt プロパティーが指定されることがあります。これを使用して同じグループ接頭辞を持つ Displayable が最初にフォーカスされた時に話され、他のグループ接頭辞を持つ Displayable がフォーカスされるまで話されないるグループ接頭辞を指定します。

Displayable には extra_alt プロパティーも指定されることがあり、これはその Displayable がフォーカスされているときに '?' キーが押されると話されます。あるグループのより詳細な情報提示を意図しています。

叙述テキスト

叙述テキストはセルフボイシング有効時にナレーターによって表示される ( 話される ) テキストです。セルフボイシングが無効だとテキストは表示されません。セルフボイシングテキストはキャラクター同様に定義される sv 変数を使用します。

alt = ... link

セルフボイシング有効時にテキストをナレーターに読み上げさせる character ライクなオブジェクトです。

e "Hang on, this is gonna be a bumpy ride!"

alt "And then the sun exploded..."

# A complex and exciting cut scene.
show event sun_exploding
pause 10

叙述テキストを制御する変数もあります。

define config.descriptive_text_character = None link

ナレーターの代わりに叙述テキストを表示するキャラクターオブジェクトか、 None を指定するべきです。

config.tts_substitutions 変数により話されたテキストの単語を置き換えて、より良い発音制御ができます。 config.tts_voice 変数によりテキストを話すボイスをプラットフォームのボイスから選択できます。

Shif+alt+V でセルフボイシングデバッグモードになります。これは、読み上げるテキストをスクリーン上に表示する開発目的の機能です。

Python link

次の関数がセルフボイシングシステムから提供されています。

renpy.alt(s, translate=True, force=False) link

これは s の読み上げをキューします。。もし translate が true なら、文字列は翻訳されてから読み上げられます。 force が true の場合、セルフボイスが無効でも文字列は読み上げられます。

アクセサビリティーを意図しており、ゲームプレイ時の使用は意図していません。