This page is out of date

You've reached a page on the Ren'Py wiki. Due to massive spam, the wiki hasn't been updated in over 5 years, and much of the information here is very out of date. We've kept it because some of it is of historic interest, but all the information relevant to modern versions of Ren'Py has been moved elsewhere.

Some places to look are:

Please do not create new links to this page.


縦書きで表示する

Ren'Py 6.15 以降では、日本語などにおける縦書き表示をサポートしています。

方法

部分的に縦書き表示を行う場合は vert タグを使用します。このタグを使用すると、横書きテキストの中に縦書きテキストが90度回転された状態で表示されます。

ゲーム全体にわたって縦書き表示を行う場合は、screens.rpy を修正して画面を縦書き用のレイアウトに変更する必要があります。縦書き表示の途中に英単語などを横書き表示する場合は horiz タグを使用します。この場合、テキストは-90度回転した状態で表示されます。

縦書き表示を行う場合、縦書き表示に対応したフォントを使用することをお勧めします。縦書きに対応したフォントは、縦書き用のグリフや縦書き用のメトリックを保持しているため、一般的なフォントに比べて適切に表示されることが期待できます。例えば日本語における句読点の位置や括弧の向きは、縦書き時と横書き時で異なります。

多くの日本語フォントが縦書きに対応しています。フリーのものでは、例えばIPAフォントY.OzFontなどがあります。

縦書き用レイアウト

縦書き表示に関係する主な設定項目を以下に示します。

以下に一例を示します。

会話画面

screen say:

    # Defaults for side_image and two_window
    default side_image = None
    default two_window = False

    # Decide if we want to use the one-window or two-window varaint.
    if not two_window:

        # The one window variant.        
        window:
            id "window"

            has hbox:
                style "say_hbox"
                box_reverse True
                xalign 1.0

            if who:
                text who id "who" vertical True

            text what id "what" vertical True

    else:

        # The two window variant.
        hbox:
            style "say_two_window_hbox"
            box_reverse True
            xalign 1.0

            if who:            
                window:
                    style "say_who_window"

                    text who:
                        id "who" vertical True
                        
            window:
                id "window"

                has hbox:
                    style "say_hbox"
                    box_reverse True
                    xalign 1.0

                text what id "what" vertical True
              
    # If there's a side image, display it above the text.
    if side_image:
        add side_image
    else:
        add SideImage() xalign 0.0 yalign 1.0

    # Use the quick menu.
    use quick_menu

選択肢

screen choice:

    window: 
        style "menu_window"        
        xalign 0.5
        yalign 0.5
        
        hbox:
            style "menu"
            spacing 2
            box_reverse True
            
            for caption, action, chosen in items:
                
                if action:  
                    
                    button:
                        action action
                        style "menu_choice_button"                        
                        xminimum None xmaximum None

                        text caption style "menu_choice" vertical True
                    
                else:
                    text caption style "menu_caption" vertical True

init -1 python:
    config.narrator_menu = True
    
    style.menu_window.set_parent(style.default)
    style.menu_choice.set_parent(style.button_text)
    style.menu_choice.clear()
    style.menu_choice_button.set_parent(style.button)
    style.menu_choice_button.yminimum = int(config.screen_height * 0.75)
    style.menu_choice_button.ymaximum = int(config.screen_height * 0.75)

NVL画面

screen nvl:

    window:
        style "nvl_window"
        xmaximum 800
        ymaximum 600

        has hbox:
            style "nvl_hbox"
            box_reverse True
            xalign 1.0

        # Display dialogue.
        for who, what, who_id, what_id, window_id in dialogue:
            window:
                id window_id

                has vbox:
                    spacing 10
                    xalign 1.0

                if who is not None:
                    text who id who_id vertical True xalign 1.0

                text what id what_id vertical True

        # Display a menu, if given.
        if items:
            hbox:
                box_reverse True
                id "menu"
                for caption, action, chosen in items:
                    if action:
                        button:
                            style "nvl_menu_choice_button"
                            action action
                            xfill False yfill True xmargin 0
                            text caption style "nvl_menu_choice" vertical True
                    else:
                        text caption style "nvl_dialogue" vertical True