Ren'Py memo

Ren'Pyの個人的なメモ

サイドイメージ表示いまやってるやり方

本編

images.rpy

    transform zoo4
        zoom 0.5
        xpos 100
        ypos 790

    layeredimage 0:
        at zoo
        always "0_base"

        group a:
            attribute a1 default
            attribute a2
            attribute a3
            attribute a4
            attribute a5
            attribute a6

transformで表示される位置を指定(原寸の場合はzoomの必要なし)

options.rpy

define config.layers = [ 'master', 'transient', 'screens', 'mcs', 'overlay']
define config.menu_clear_layers = ['mcs'](この指定いらないかも)
define config.context_clear_layers = [ 'screens', 'mcs' ]
define config.tag_layer["0"] = "mcs"

サイドイメージ置く用のスクリーン(mcsと書いてあるが名前は何でもいい)を追加
最後のconfig.tag_layer["ここのところ"]はlayeredimageの変数名を記入

script.rpy(本編)

show 0 with dissolve
hide 0 with dissolve

0はlayeredimageの名前
これでテキストボックスより上に表示される
onlayerの表記は必要なし

追記

extend前に0.5秒以上のトランジションを入れるとテキストが消えるので(参照:https://twitter.com/krsm94/status/1117739210306273281)
独自のトランジションをつくってmcsもメッセージ表示されたままトランジションが反映されるようによろしくおねがいする

define dis = { "master" : Dissolve(0.1), "mcs" : Dissolve(0.2) }

追記2


こちらのツイートを見て確かに!!!と思ったので

confirmにlayer追記

screen confirm(message, yes_action, no_action):
    layer "confirm"

confirmレイヤー追記

define config.layers = [ 'master', 'transient', 'screens','mcs', 'overlay', 'confirm']
define config.context_clear_layers = [ 'screens', 'mcs' ]
define config.tag_layer["0"] = "mcs"

これで確認ダイアログが出ても顔グラが浮きません。ありがとうございます。

追記3


こちらのツイートを見て(略)
開発スクリーンに被っとる!!!!!!!!!!!!!!!!!

define config.layers = [ 'master', 'transient', 'say', 'mcs', 'screens', 'overlay', 'confirm']
define config.say_attribute_transition_layer = ["mcs", 'say']
define config.menu_clear_layers = ["mcs", 'say']
define config.clear_layers = ["mcs", 'say']
define config.context_clear_layers = [ 'screens', 'say', 'mcs' ]
define config.tag_layer["0"] = "mcs"
define config.say_layer = "say"

というわけでsayスクリーン用のレイヤーを新たに作り、screensと分離して
screensや顔グラが消えそうなタイミングでは消えるようにしました。
私自身あてずっぽうで指定しているのでドキュメントの設定変数を
layerで検索してそれぞれを読むといいと思います。いらないものもあるかも。