[硬核]如果我想給桌寵加入丟骰子比大小功能: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