找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 138|回复: 4

[经验] “如何给对话添加阴影”的解决办法

[复制链接]
发表于 2026-1-30 20:26:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 烈林凤 于 2026-1-30 20:34 编辑

这个教程起因是我接过的很多甲方都不知道怎么给对话加阴影,为此我特意去试了试,一波三折后才终于成功做出来,希望能将这个简单且实用的东西教给大家
这里感谢@Aaron栩生阿龙 @Koji 提供的帮助,好久没认真写过renpy组件了,transform特性多少有点遗忘()



先写给出代码解决方法,这部分需要修改screen.rpy中的screen say里的相关代码:

[RenPy] 纯文本查看 复制代码
screen say(who, what):
    style_prefix "say"

    window:
        id "window"

        if who is not None:

            window:
                id "namebox"
                style "namebox"
                text who id "who"

        ## 给对话加阴影效果
        transform:
            blur 10
            alpha 0.5
            fixed:
                text what id "what":
                    ## 让阴影部分更大更明显
                    outlines [(1, "#000")]
                    ## 可以添加偏移值使阴影偏移,可以选择取消注释
                    # offset (1,1)
                    color '#000'

        ## 强制将对话文本改成白色,使阴影看起来更明显
        text what id "what":
            color '#fff'

        if not isinstance(SideImage(), Null):
            xoffset 200

renpy内添加对话阴影的本质是复制一份text what置于底层,然后将其轮廓扩大并模糊化。
有的同学可能尝试过在text组件内直接添加blur,结果发现报错了,那是因为blur是transform方法,而不能直接适用于text组件,像一般add出来的组件,本质上是默认套了一层transform(感谢龙叔的解释)。
因此我们首先需要写一层transform,并将text组件放进去,给这个transform添加blur效果。
[RenPy] 纯文本查看 复制代码
        transform:
            blur 10
            text what id "what":
                ## 让阴影部分更大更明显
                outlines [(1, "#000")]
                color '#000'

如果只是这样,那你会发现,阴影会在某个地方忽然被截断了,那是因为文档里写了:
blur 数值不超过可视组件的边长

而text组件的大小只有文字本身,加上阴影大概率会超过这个大小,因此,我们需要添加一个fixed组件,fixed组件如果不限制大小,默认与项目预设大小相等,因此添加一个fixed能扩大blur的生效范围
[RenPy] 纯文本查看 复制代码
        transform:
            blur 10
            fixed:
                text what id "what":
                    ## 让阴影部分更大更明显
                    outlines [(1, "#000")]
                    color '#000'

最后,如果你觉得阴影太黑太重了,那就再往transform填加一个alpha修改其透明度就好了。

希望能帮到大家。
PixPin_2026-01-30_20-34-01.png

评分

参与人数 1活力 +300 干货 +3 收起 理由
被诅咒的章鱼 + 300 + 3 感谢分享!

查看全部评分

发表于 2026-1-31 00:00:45 | 显示全部楼层
文档抄一百遍.rpy
回复 支持 抱歉

使用道具 举报

发表于 2026-1-31 10:39:28 | 显示全部楼层
?!强强!?
回复

使用道具 举报

 楼主| 发表于 2026-1-31 13:39:41 | 显示全部楼层

补药啊——
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2026-1-31 13:40:12 | 显示全部楼层

强!??!强
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2026-2-8 12:30 , Processed in 0.056263 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表