参考文献
https://www.reddit.com/r/RenPy/comments/kujd9q/keep_side_image_when_narrator_is_speaking/
設定変数 — Ren'Py Documentation
Python ステートメント — Ren'Py Documentation
https://twitter.com/krsm94/status/1117739210306273281
本編
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
https://t.co/r2McpBPbPl
— ケイ/拠点ネームユー (@nameA_you) 2023年5月31日
参考にさせて頂いたサイドイメージ表示方法について
自分はconfirmスクリーンをサイドイメージ用レイヤーより更に上層レイヤーに指定しました!(自分の場合、confirmが初期設定だったので画像3枚目のようにサイドイメージが浮いて出た)
もっといい方法があるかもしれない pic.twitter.com/3ryss7gDIb
こちらのツイートを見て確かに!!!と思ったので
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
そんな!?
— ケイ/拠点ネームユー (@nameA_you) 2023年6月1日
開発者メニューってもしかしてscreensレイヤーに映してるってこと?(そしてscreensレイヤーより上層の自作レイヤーに画像を全面ベタ貼りすると開発者メニューが見えなくなった) pic.twitter.com/8I3oCdmtxr
こちらのツイートを見て(略)
開発スクリーンに被っとる!!!!!!!!!!!!!!!!!
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で検索してそれぞれを読むといいと思います。いらないものもあるかも。