[硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶


3楼猫 发布时间:2024-05-08 07:13:47 作者:RedstoneT Language

嗨,上一期内容我带大家简单介绍了Live2DViewerEX编辑器EX Studio的基础功能,这一期多讲一些实例~

如果我要实现【比大小】功能,应当如何实现呢?

我们从最简单的一种线性架构开始,点击两次得出两个结果~

[硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第0张

架构1

我们将流程图转化到EX Studio很容易就能得到如下构造:

[硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第1张

黄色底框为动作组、小椭圆是其中的动作,相信很好理解的

[硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第2张

运用软件中的“下一个动作”就可以连接,图中便是将下一动作连接到了抽第二次这个动作组~相信大家都能解决问题。

有没有办法只用同一个动作组完成上述操作呢?

很简单,我们需要做一个循环loop,满足指定条件就跳出循环,我们可以尝试引入Flag变量来解决跳出循环的问题~

[硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张

较为复杂的架构2

每次循环会让Flag+1,但循环过一次后Flag为2,就不会再抽,直接就会跳出循环。

这种办法可行,但是EX工作室还是比不上Python这种简洁高效的语言,我的建议是还是采用线性流程(架构1),因为软件可以使用If,但是没有办法使用Elif,会导致工作效率大大降低,关于如何实现if会在后面告诉大家。

但这种利用Flag的思路很不错,包括利用赋值0/1实现布尔变量的效果也是非常好的思路,之后会使用到。

    import random

    while True:

    count += 1

    num1 = random.random()

    num2 = random.random()

    if num1 > num2:

    print(f"第{count}次生成时,第一个数 {num1} 大于第二个数 {num2}")

    break

    elif num2 > num1:

    print(f"第{count}次生成时,第二个数 {num2} 大于第一个数 {num1}")

    break

    tips.附上Python语言中的实现办法

    说到这里就需要先说一下“上一个动作/前置指令/浮点变量条件”,

    "上一个动作/前置指令/浮点变量条件"的意思是 :

    “当轮到运行这个动作/满足条件的时候,进行判断,只有满足条件才能真正运行,否则动作会被忽略

    (如果有衔接【下一个动作】,会紧接着顺利的进行下一个动作,不管本动作是否运行))

    【浮点变量】中的【条件】可以用来判断浮点变量的值,但不能判断动作,按需选择就好了~各种处理和检测都很好理解。

    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张

    (值得一提的是要先自己命名一下这个变量的名字,然后再判断/操作,不然没法被选中,和上一篇我们提到的”触摸区域“一样,都必须要有名字才能被引用。)


    我们继续加入要素让架构更加鲜活,不妨加入一个开局文本来让玩家选择谁先投掷~

    先来看看我的解决办法,是上文提到的线性架构1,给每个可能性都添加了投掷动作组,但这显然不是最好的办法。

    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张

    不过有如下设想可以更好的解决这个问题,只需要建立一个”骰子程序“就可以

    当谁说完先丢之后直接转到骰子,记录下这个值A,并且让flag+1,

    第二次循环时flag=1,让第二次抽的值赋值给B

    第三次循环时flag=2,跳出循环,之后比较AB给出答案

    这种办法虽然很简略,但是实现并不简单,所以我更建议下面这种把两人投掷分开的思路,即让投掷完成后前往【下一个去哪】动作组。


    先给选择两种选项赋予不同的代号,比如我先丢就给【flag2】“赋值为1,她先就赋值为2

    接着直接转到所选的骰子程序,比如我说我先丢,那么就让说完直接转向我的骰子即可,丢完之后让flag+1。

    投掷完之后转到一个中转动作组,建立动作,根据“条件限制"来避免不满足条件的动作运行。比如我们当下的情况,我选择新建一个中转动作组,命名为【下一个去哪】,里面的动作和条件分别有

    ”转到主角投掷“ ,运行条件为flag2=2、flag=1

    ”转到许鸣雌投掷“,运行条件为flag2=1、flag=1

    ”投掷完成前往判断“,运行条件为flag=2

    这样满足条件的只有”转向许鸣雌投掷“,所以就一定会前往许鸣雌的骰子。

    运行后flag+1,再次判定发现只满足”投掷完成前往判断“,那么就会前往最终判定然后再得出答案~

    桌宠先丢同样道理,就不复述了,看图很好理解。

    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张

    到这里就很完善了,但是还可以加入一些自己的想法,比如:

    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张

    主角抽到5

    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张

    许鸣雌自己抽到6

    分开骰子还有一个好处,就是主角抽和桌宠抽会说不同的话,使其更加生动,以下就是我自己设计的一种流程示例:

    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张
    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张
    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张
    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张
    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张
    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张
    [硬核]如果我想给桌宠加入丢骰子比大小功能:Live2D思路进阶-第3张

    当然,这些文本填写因人而异,可以根据自己桌宠自己的特色来填写!

    那么本篇教程到这里就结束了~感谢观看~碍于自己的能力这应该是这个系列最后一期了,之后我自己研究的东西可能不会写文章发教程,不过有问题还是可以和我交流的~

    都看到这了点个赞吧~


    © 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com