显示图像
本页属于 GenPy Ren'Py 学习路线。教程内容面向 Ren'Py 8.x,并在页面末尾连接到 GenPy 的对应工作流。
学习目标
- 了解“显示图像”在 Ren'Py 项目中的用途。
- 能在一个最小项目里验证本章相关语法或工作流。
- 知道发布前需要检查的常见风险,并能在 GenPy 中继续维护。
核心语法
imagesceneshowhideatwith
可运行示例
text
image eileen happy = "eileen/happy.png"
image eileen sad = "eileen/sad.png"
image bg room = "bg/room.png"教程正文
视觉小说的画面由背景和立绘构成。Ren'Py 用 scene / show / hide 管理图层上的图像。
1. 图像命名规则(标签 + 属性)
图像名由空格分隔的若干词组成,第一个词是标签(tag),其余是属性(attributes):
text
image eileen happy = "eileen/happy.png"
image eileen sad = "eileen/sad.png"
image bg room = "bg/room.png"- 同一 tag(如
eileen)在屏幕上只存在一个,show eileen sad会替换当前的 eileen。 - 文件名能直接当图像名时可省略
image定义:把eileen happy.png放进images/, 即可直接show eileen happy(自动图像定义)。
2. scene / show / hide
text
scene bg room # 清空画面并设置背景(清掉除该图外的所有图像)
show eileen happy # 显示立绘
show lucy mad # 再显示一个
hide lucy # 隐藏 lucyscene tag:先清空当前层所有图像,再显示指定图(常用于换背景/换场景)。show tag attrs:显示或更新某个 tag 的图像。hide tag:移除某个 tag。
只改属性,不重新指定整名
text
show eileen happy
show eileen sad # 只换表情,位置/层级保持
show eileen # 保留上次属性3. 位置 at(position / transform)
用 at 指定内置位置或自定义 transform:
text
show eileen happy at left
show lucy mad at right
show eileen happy at center内置位置:left、center、right、truecenter、offscreenleft、offscreenright 等。
也可应用自定义 transform(见第 11 章):
text
transform slight_left:
xalign 0.35
yalign 1.0
show eileen happy at slight_left可叠加多个 transform:show eileen at left, flip。
4. 层级 zorder 与 behind
text
show eileen happy zorder 2
show lucy mad zorder 1 # 数字大在上层
show eileen happy behind lucy # 放到 lucy 之后(下层)5. 内联 ATL(直接写动画)
show ... : 后缩进可直接写 ATL 动画(见第 11 章):
text
show eileen happy:
xalign 0.5 yalign 1.0
linear 1.0 xalign 0.2 # 1 秒内滑到左边6. 用转场显示(with)
text
scene bg room
with fade # 整屏淡入淡出
show eileen happy
with dissolve # 立绘溶解出现with 对“本句之前累计的画面改动”整体应用转场(详见第 12 章)。
7. show layer / 多图层
Ren'Py 默认图层有 master(角色背景)、screens、overlay。可对整层应用变换:
text
show layer master:
zoom 1.05 # 给整个 master 层做轻微放大也可自定义图层(config.layers)。
8. show expression(动态图像)
图像名在运行时算出时:
text
$ who = "eileen"
show expression who + " happy" as eileen注意:用 expression 时建议加 as tag 指定一个稳定 tag,便于后续 hide。
9. 图像类型(可显示物)
image 右侧不止是文件名,还能是各种可显示物(Displayable):
text
image logo = "logo.png" # 普通图片
image bg black = "#000" # 纯色
image eileen happy = im.Scale("e.png", 200, 400) # 缩放(旧式 image manipulator)
image complex = Composite((300, 400), # 合成多张图
(0, 0), "body.png",
(0, 0), "face_happy.png")
image eileen = LayeredImage(...) # 分层图像(见第 13 章)现代写法更推荐用 transform 的
zoom/crop而非旧的im.*操作器。
常见坑
- 同一 tag 只会有一个实例;想同时显示两个同源立绘,给不同 tag(或
as)。 scene会清屏,show不会;换背景但保留立绘时分别处理。with作用于“到此为止的所有画面变更”,注意把多条 show 放在同一个 with 之前可一起转场。- 文件名做自动图像名时,小写、用空格分隔属性、避免特殊字符。
官方参考
- 显示图像:https://www.renpy.org/doc/html/displaying_images.html
- 可显示物:https://www.renpy.org/doc/html/displayables.html
在 GenPy 里怎么做
- 在 GenPy 的代码模式中维护相关 .rpy 文件,先保持语法清晰,再逐步加入本章功能。
- 用故事图谱、变量、校验或演出编辑器把“能运行”提升到“可维护”。
- 导出前结合 Ren'Py Lint 和 GenPy 校验结果,确认脚本、素材和发布路径一致。
推荐继续阅读:
