找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 92|回复: 2

[已解决] 如何在语音播放时切换立绘,且避免 dissolve 导致的立绘瞬移问题?

[复制链接]
发表于 2024-12-10 15:45:36 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 zhaomaoniu 于 2024-12-11 09:03 编辑

问题
在尝试在语音播放时切换立绘(同时保持文本连续输出)的时候,我选用了 https://www.renpy.cn/forum.php?mod=redirect&goto=findpost&ptid=1095&pid=4154这套 ATL 的方案。
然而,在加上"with dissolve"后,出现的结果令人不太满意。具体地讲,在 ATL 内部使用 dissolve 会使溶解期间出现立绘瞬移,而在外部使用溶解则表现正常。此外,经测试,如果切换前后两张立绘的分辨率相同,则不会出现瞬移的情况。


如何复现
附件传不了压缩包,这里使用百度网盘进行分享,只有 86KB。
链接: https://pan.baidu.com/s/1n_xdUjhy0BU7GtcuWD0moQ?pwd=iu5u 提取码: iu5u


下载后,新建一个Ren'Py项目,并将压缩包内的文件拷贝到 games 文件夹即可。


下面是 script.rpy 中的代码,方便懒得下载运行的大佬直接参考。
[RenPy] 纯文本查看 复制代码
image white = "#ffffff"

define b = Character('Block')


label main_menu:
    return


label start:

    scene white

    image change 01:
        "200_400_in_200_400.png"
        pause 0.5
        "400_200_in_400_200.png" with dissolve

    image change 02:
        "200_400_in_400_400.png"
        pause 0.5
        "400_200_in_400_400.png" with dissolve

    show change 01:
        xalign 0.5
        yalign 0.5

    voice "audio/00.ogg"

    b "200*400 -> 400*200 (变换前后的图片尺寸不同)"

    show change 02:
        xalign 0.5
        yalign 0.5

    voice "audio/01.ogg"

    b "200*400 -> 400*200 (变换前后的图片尺寸相同)"

    return



期望得到的效果
实现在语音播放时切换立绘,不出现立绘瞬移的情况,同时保持文本连续输出。
发表于 2024-12-10 19:54:18 | 显示全部楼层
本帖最后由 烈林凤 于 2024-12-11 19:06 编辑

emmmmm……为什么要在label start中定义image呢?定义image尽可能在label外,这能成功运行属于是离大谱了(我觉得你所贴出的那个帖子中的代码,并不全写在label中的吧)
说正题,使用特殊角色extend即可实现在一句对话/语音过程中,改变图片状态的效果,比如说——
[RenPy] 纯文本查看 复制代码
label start:
    show a xxxxx
    A "xxxxx"
    show b xxxxx
    extend "xxxxx"

不推荐在定义image时使用with进行转场变换,虽然是对单独的图片使用转场,但实际影响范围还是整个界面(看文档介绍和使用fade时就能明显看出来),当然,只是个人见解(狗头)
同时,建议使用ALT变换(transform)对图片进行变换(转场(transition)并不属于此类),比如说,想要实现一个图片消失又在变换后逐渐出现的效果——
[RenPy] 纯文本查看 复制代码
image test:
    alpha 1.0
    "default_box"
    easein 0.5 alpha 0.0
    "default_box"
    easeout 0.5 alpha 1.0

[RenPy] 纯文本查看 复制代码
label start:
    show "test"
    A "xxxxx"

最后再提一下,不用把整个game文件夹下的文件都打包发出来,很多情况下只要给出代码、报错截图和效果截图就可以看出问题所在了()


回复 支持 1 抱歉 0

使用道具 举报

 楼主| 发表于 2024-12-11 09:03:25 | 显示全部楼层
感谢解答与纠错!问题已解决
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 01:18 , Processed in 0.123532 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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