找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 962|回复: 3

[经验] 仿博德之门骰子动画效果

[复制链接]
发表于 2024-3-23 02:54:33 | 显示全部楼层 |阅读模式

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

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

×
前阵子在群里一时兴起模仿博德之门实现了一个随机掷骰子的效果

代码写的很烂,最后在ZYKsslm大佬的拯救下总算让代码正常跑起来没有太大bug了
(实际上还是会有个bug,就是有一瞬间结果帧会比动画帧提前出现,这就只能想办法让结果帧延迟显示了)

                               
登录/注册后可看大图


简单说一下思路吧,这个骰子的逻辑是点击掷骰子之后播放一段骰子动画,最终显示骰子最终的点数
如果逐帧观看的话,会发现骰子高速旋转产生动态模糊几乎看不到骰子的点数,只有到出结果的时候唐突静止显示出精确的数字
所以就可以把动画拆分成两端,一段是高速运动的骰子,一段是展示结果
如果变成代码的话,这段的逻辑就是:
点击掷骰子→随机出骰子点数→播放掷骰子动画→播放结果动画


实现环节
各位可以通过各种方式去制作这个骰子动画,可以是手绘也可以是3D,我就简单用blender制作了六面骰的动画

                               
登录/注册后可看大图


然后截取结束帧作为结果显示
中间代码如下
[RenPy] 纯文本查看 复制代码
# 定义骰子动画
image d0 = Solid("#00000000")
image d1 = Movie(play="images/1.webm", loop=False)
image d2 = Movie(play="images/2.webm", loop=False)
image d3 = Movie(play="images/3.webm", loop=False)
image d4 = Movie(play="images/4.webm", loop=False)
image d5 = Movie(play="images/5.webm", loop=False)
image d6 = Movie(play="images/6.webm", loop=False)
# 定义结果
image d0p = "1.png"
image d1p = "1.png"
image d2p = "2.png"
image d3p = "3.png"
image d4p = "4.png"
image d5p = "5.png"
image d6p = "6.png"

default index = 1
default c = 0

label start:
    call screen roll
    return

screen roll():
    $ mv = f"d{index}"
    $ img = f"d{index}p"
    showif c:
        add img zoom 0.5 align (0.5, 0.5) # 骰子结果
        add mv zoom 0.5 align (0.5, 0.5) # 骰子动画

    textbutton "roll!":#骰子按钮
        align (0.5, 0.85)
        action [SetScreenVariable("c", c+1), SetScreenVariable("index", renpy.random.randint(1, 6))]



这只是一个简单的骰子效果,主要还是跟各位介绍分析和实现一个效果的思路
同样的思路可以做很多其他的东西,想要交作业也欢迎在这个帖子下交作业
(话说这个掷骰子花了我两个小时去实现,半小时我就做完动画了,剩下一个半小时在写bug,最后还是ZYKsslm大佬出手十几分钟解决战斗,可能我确实不适合写代码
发表于 2024-3-25 10:20:09 | 显示全部楼层
我有个问题:为什么要把投掷过程和投掷结果分成两部分?既然都是预渲染素材了,直接6个视频更方便吧……
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2024-3-26 23:52:23 | 显示全部楼层
被诅咒的章鱼 发表于 2024-3-25 10:20
我有个问题:为什么要把投掷过程和投掷结果分成两部分?既然都是预渲染素材了,直接6个视频更方便吧…… ...

因为过程都是一样的,结果不同,过程和结果分开能节约那么点空间
当然,直接准备六段视频也是可以的
主要这是六面骰子,如果骰子面数更多,或许前期处理会更麻烦
回复 支持 抱歉

使用道具 举报

发表于 2024-3-27 10:26:21 | 显示全部楼层
这个效果好有趣!感谢分享,感觉很有实用性hhhh
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 19:13 , Processed in 0.112378 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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