Ren’Pyでダブルクオーテーションで囲まずに台詞を表示する方法

Ren’Pyでは基本的にダブルクォーテーションやシングルクォーテーションで囲んだものを台詞と認識します。

narrator "これは台詞です。"
 "これも台詞です。"

英語の場合こうしないと命令と台詞がぱっと見区別しにくいのでしょうが、日本語なら英語かそうでないかで区別できるでしょう。もうダブルクオーテーションを打つのは嫌だという方は以下のコードを使用してください。

python early hide:

    def parse_smartline(lex):
        who = lex.simple_expression()
        what = lex.rest()
        if not what:
            what = who
            who = None
        return (who, what)

    def execute_smartline(o):
        who, what = o
        if who is None:
            who = narrator
        renpy.say(who, what)

    def lint_smartline(o):
        who, what = o
        try:
            eval(who)
        except:
            renpy.error("Character not defined: %s" % who)

        tte = renpy.check_text_tags(what)
        if tte:
            renpy.error(tte)

    renpy.register_statement("", parse=parse_smartline, execute=execute_smartline, lint=lint_smartline)

注意点としてこのスクリプトは最初に読み込まれなければいけません。なので00multibyte.rpyというファイルを作って保存しましょう。デフォルトステートメントを上書きして以下のコードを台詞として解釈するようになります。

This is dialogue.
これは台詞です。
narrator これも台詞です。
eileen happy これは期待通りに動作しないでしょう。

このように、Ren’Pyではユーザー定義ステートメントを使用してあるていど文法を変更出来ます。しかし基本的にはこういうのはエディター側の機能でなんとかするべきでしょう。


コメントを残す

メールアドレスが公開されることはありません。