Ren'Py 的 Layeredimage 如何自动寻找图像文件

2026/09/19 | 2分钟阅读 | 更新于 2026/09/19

Ren'Py 的 Layeredimage 如何自动寻找图像文件

Ren’Py 的 layeredimage 是个很强大很方便的特性,但是它自动查找图像文件的逻辑,尤其涉及到 variant 和 prefix 看上去有点让人迷惑。我做了一些测试,然后总结在下文中。

基础用法

下面的代码定义了角色站立时的层叠式图像。

layeredimage hero stand:
  group hand:
    attribute up

上面这段代码中,hero stand 是这个 layeredimage 的 name, hand 是 group name, up 是其中一个 attribute.

在不设置 prefix 和 variant 的情况下,show "hero stand up" 或者 add "hero stand up" 会寻找任意文件夹下面的 hero_stand_hand_up.png 这个文件。当然,应该不局限于 png 后缀。

prefix 和 variant

如果在 group 中设置 prefix left, 那么使用图像的时候,必须写成 show "hero stand left_up" 的形式(注意 left_), 这会寻找 hero_stand_left_hand_up.png 这个文件。

如果在 group 中设置 variant behind, 并且不存在 prefix, 那么会通过 show "hero stand up", 寻找 hero_stand_hand_behind_up.png 这个文件。

总的来说,寻找的文件名的结构是 [layeredimage name][_prefix]_[group name][_variant]_[attribute].png, 并且不限制文件夹。

prefix 用于解决不同 group 共用相同 attribute 的问题,虽然它其实并没有解决这个问题。show image 的时候还是要带上 prefix, 这就和手动定义不同 group 和 attribute 一样,只是少写了几个字符。

variant 可以实现一个 group 有前后多个图层的情况,像是角色的一个发型可能有前发和后发两个图层改变,这样可以用一个 attribute 来切换多个图层。

另外有个很有用的特性,可以同时存在某个 group 和它的多个 variants, 这样默认的图层依然去按默认的文件名去找文件,而只在某些特殊的 attribute 上添加额外的文件。

image_format 和 format_function

image_format 的表现则是,指定在特定位置寻找文件,并且可以指定后缀名。image_format "my/dir/{image}.png". 值得注意的是,这里的 image 指的是前文提到的文件名的结构。

而 format_function 用于拦截加载文件的过程,返回可视化对象。可以用来批量增加滤镜之类的程序化特效。

© 2026 香蕉引擎故障报告

🌱 Powered by Hugo with theme Dream.

关于

要怎么介绍自己呢,🤔。

很早以前是作为 Web 前端在学习的,但是工作第一年就成为了全干工程师。喜欢尝试各种东西,什么都会一点。

一直很喜欢 Ebiten 游戏引擎 ,特别简洁,用它做过一些小东西,可以查看这个分类 。另外特别推荐这个木鱼 ,是一个相对完整的小玩意儿,包含手搓的一个简单的 UI 框架;支持鼠标和键盘操作;有多语言和主题切换功能;同时支持 Web 端和客户端。它的源代码在 bin16/wooden-fish

主题

网站基于 Hugo,当前使用的是 hugo-theme-dream 主题的修改版 ,根据我的需要,做了一些对 PaperMod 的兼容。

我自己也写过主题 ,但是没有别人写的好看。

正在从我的笔记中往外搬运内容

等待更新:

  • 从《锈湖》中学了些什么东西
  • 我拿 React 写解谜游戏的经过
  • 基于 Pocketbase 的 Pocket Memos
  • 数独!