ノベルゲームエンジンRenpyでは、transformを定義して立ち絵に変化を加えることができます。
以下のsmooth transformは、立ち絵を滑らかに表示するtransformです
# show および hide 時に実行される transform を定義する
transform smooth:
on show:
alpha 0.0
linear 0.5 alpha 1.0
#0.5秒で立ち絵の透明度を、0.0から1.0に変化させる
on hide:
alpha 1.0
linear 0.5 alpha 0.0
label start:
scene bg washington
"「ここがワシントンD.C.か……」"
# eileen vhappy を smooth トランスフォームを使って表示する
show eileen vhappy at center, smooth
e "「こんにちは!」"
# 立ち絵をフェードつきで切り替えるために、show ステートメントを使用する
show eileen happy at center, smooth
e "「さようなら!」"
# イメージにはすでにトランスフォームが設定されているので、hide 時に指定する必要はない
hide eileen
"……"
"「え、何?」"
引用元(原文にコメントを付けた)
バグの事象
スキップすると、立ち絵が完全に表示されず、半透明のままになってしまう事象が発生しました。
原因
立ち絵の表情を変えると、on showのtransformがキャンセルされてしまうことが分かりました。
# show および hide 時に実行される transform を定義する
transform smooth:
on show:
alpha 0.0
linear 0.5 alpha 1.0
on hide:
alpha 1.0
linear 0.5 alpha 0.0
on replace:
linear 0.5 alpha 1.0
表情を置き換えた際に実行される、on replaceにも記述することで解決しました。