Add-On開發教學 #3 新增指令 & 自動執行指令

上一篇:

下一篇:


學會這篇的內容,只需要一條指令,就能自動執行10條指令。

並且還能夠不靠指令方塊,在背景按照設定好的條件自動執行指令。

如果能活用指令,就能做出動態光源或者快速砍樹這類的Add-On。

這個範本只需要用到行為包。


影片教學:

文字版教學:


    .mcfunction的用法

    .mcfunction可以儲存一系列指令,例如下面我寫了5個say

    say I
    say am
    say the
    say best
    say Youtuber
    


    將含有這些指令的檔案命名為myfunction.mcfunction

    放到行為包的/functions資料夾。

    載入到遊戲裡,用/function 指令+ 檔案名稱

    例如 /function myfunction

    就會執行指令。


    行為包mcfunction也可以用資料夾分類,語法就會變成

    /function /資料夾/函數名稱

    例如 /function /sub/function1


    自動執行指令

    這個範例我不靠指令方塊,讓玩家在跑步時會有火焰粒子效果。


    以玩家為主體,執行這個寫好的particles.mcfunction。

    particle minecraft:basic_flame_particle ~ ~ ~


    1. 從原版行為包複製player.json,插入動畫控制器"command"。

    如果你有自訂實體也可以這樣做,只是要執行指令時記得改用execute開頭。

    {
      "format_version": "1.16.0",
      "minecraft:entity": {
        "description": {
          "identifier": "minecraft:player",
          "is_spawnable": false,
          "is_summonable": false,
          "is_experimental": false,
          //插入動畫控制器
          "animations": {
            "command": "controller.animation.command"
          },
          "scripts": {
            "animate": [
              "command"
            ]
          }
        },
        "component_groups": {
        //(下略)


    2. 行為包新增animation_controllers資料夾,新增command_controller.json

    輸入:

    {
      "format_version": "1.10.0",
      "animation_controllers": {
        "controller.animation.command": {
          "states": {
            //default,預設的狀態
            "default": {
              "transitions": [
                //條件為跑步時切換到particles
                {
                  "particles": "query.is_sprinting"
                }
              ]
            },
            "particles": {
              //一進入這個狀態就執行指令,也可以直接把多條指令打在這邊,用逗號分隔,不用mcfunction
              "on_entry": [
                "/function particles"
              ],
              "transitions": [
                //填1.0,代表無條件返回default的狀態
                {
                  "default": "(1.0)"
                }
              ]
            }
          }
        }
      }
    }


    動畫控制器原本是用於控制動畫的,但是他也能執行指令。

    基本原理是,每個動畫控制器會在不同的狀態中切換

    例如我寫好的這個,他有二個狀態(state):

    一個是default,一個是particles,當條件符合時,會切換到另一個狀態。在每個狀態裡面,會有transition的區塊,寫明切換到其他狀態的條件,像是從default到particles的條件,就是偵測玩家跑步,所以切換到particles。


    製作指令延時器

    如果你有這方面的需求,參考這篇文章。


    範本下載

    這裡下載這篇教學的範本檔案,檔案皆含有註解。

    也可於Github檢視原始碼。

    留言

    此網誌的熱門文章

    Minecraft基岩版多人連線教學: 方法一覽

    【詳細解說】什麼是Minecraft基岩版,跟Java版有什麼差?

    Minecraft基岩版安裝模組(Add-On)&資源包&光影教學