润滑良好

润滑良好

为门、活板门、栅栏门和拉杆添加动画!

装饰

Well Greased

为门、活板门、栅栏门和拉杆添加动画!

门动画

活板门动画

栅栏门动画

拉杆动画

也支持红石!

兼容资源包!

对于门和活板门,一切都会自动处理。 对于拉杆和栅栏门,有两种可能:

  • 如果资源包不更改原版模型(仅更改纹理),则无需做任何操作。
  • 如果资源包更改了原版模型,则需要在以下目录下创建资源包(位于 assets/well_greased/models/block 下):
拉杆

基本上,你需要拆分模型,以便仅对拉杆的手柄播放动画,因为底座是静止的。因此,需要为底座创建一个模型,为手柄创建一个模型,以及为玩家点击后的手柄创建一个模型。

以下展示了原版拉杆的示例:

lever_base.json :

{
  "ambientocclusion": false,
  "textures": {
    "base": "minecraft:block/cobblestone",
    "particle": "#base"
  },
  "elements": [
    {   "from": [ 5, -0.02, 4 ],
      "to": [ 11, 2.98, 12 ],
      "faces": {
        "down":  { "uv": [ 5, 4, 11, 12 ], "texture": "#base", "cullface": "down" },
        "up":    { "uv": [ 5, 4, 11, 12 ], "texture": "#base" },
        "north": { "uv": [ 5, 0, 11,  3 ], "texture": "#base" },
        "south": { "uv": [ 5, 0, 11,  3 ], "texture": "#base" },
        "west":  { "uv": [ 4, 0, 12,  3 ], "texture": "#base" },
        "east":  { "uv": [ 4, 0, 12,  3 ], "texture": "#base" }
      }
    }
  ]
}

lever_handle.json :

{
  "ambientocclusion": false,
  "textures": {
    "lever": "minecraft:block/lever",
    "particle": "#lever"
  },
  "elements": [
    {   "from": [ 7, 1, 7 ],
      "to": [ 9, 11, 9 ],
      "rotation": { "origin": [ 8, 1, 8 ], "axis": "x", "angle": -45 },
      "faces": {
        "up":    { "uv": [ 7, 6, 9,  8 ], "texture": "#lever" },
        "north": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "south": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "west":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "east":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }
      }
    }
  ]
}

lever_handle_on.json :

{
  "ambientocclusion": false,
  "textures": {
    "lever": "minecraft:block/lever",
    "particle": "#lever"
  },
  "elements": [
    {   "from": [ 7, 1, 7 ],
      "to": [ 9, 11, 9 ],
      "rotation": { "origin": [ 8, 1, 8 ], "axis": "x", "angle": 45 },
      "faces": {
        "up":    { "uv": [ 7, 6, 9,  8 ], "texture": "#lever" },
        "north": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "south": { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "west":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" },
        "east":  { "uv": [ 7, 6, 9, 16 ], "texture": "#lever" }
      }
    }
  ]
}
栅栏门

基本上,你需要拆分模型,以便分别对栅栏门的左侧部分和右侧部分播放动画。因此,左侧部分需要 4 个模型(一个关闭,一个靠墙关闭,一个打开,一个靠墙打开),右侧部分也需要 4 个模型(一个关闭,一个靠墙关闭,一个打开,一个靠墙打开)。

以下展示了原版橡木栅栏门的示例(其他木材类型同理,只需将 oak 替换为你的木材类型):

oak_fence_gate_left.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 5, 7],
      "to": [2, 16, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [6, 6, 7],
      "to": [8, 15, 9],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 6, 7],
      "to": [6, 9, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 12, 7],
      "to": [6, 15, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_left_open.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 5, 7],
      "to": [2, 16, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [0, 6, 13],
      "to": [2, 15, 15],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "east": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [0, 6, 9],
      "to": [2, 9, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [0, 12, 9],
      "to": [2, 15, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_left_wall.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 2, 7],
      "to": [2, 13, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [6, 3, 7],
      "to": [8, 12, 9],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 3, 7],
      "to": [6, 6, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    },
    {
      "from": [2, 9, 7],
      "to": [6, 12, 9],
      "faces": {
        "north": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "south": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "texture": "#texture"},
        "down": {"uv": [10, 14, 14, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_left_wall_open.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [0, 2, 7],
      "to": [2, 13, 9],
      "faces": {
        "north": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "east": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "south": {"uv": [14, 2, 16, 13], "texture": "#texture"},
        "west": {"uv": [14, 2, 16, 13], "texture": "#texture", "cullface": "west"},
        "up": {"uv": [14, 0, 16, 2], "texture": "#texture"},
        "down": {"uv": [16, 13, 14, 15], "texture": "#texture"}
      }
    },
    {
      "from": [0, 3, 13],
      "to": [2, 12, 15],
      "faces": {
        "north": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "east": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "west": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [8, 1, 10, 3], "texture": "#texture"},
        "down": {"uv": [8, 14, 10, 12], "texture": "#texture"}
      }
    },
    {
      "from": [0, 3, 9],
      "to": [2, 6, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [0, 9, 9],
      "to": [2, 12, 13],
      "faces": {
        "east": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "west": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [2, 12, 6, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 5, 7],
      "to": [16, 16, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [8, 6, 7],
      "to": [10, 15, 9],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 6, 7],
      "to": [14, 9, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 12, 7],
      "to": [14, 15, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right_open.json :

{
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 5, 7],
      "to": [16, 16, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [14, 6, 13],
      "to": [16, 15, 15],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [14, 6, 9],
      "to": [16, 9, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [14, 12, 9],
      "to": [16, 15, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [14, 3, 10, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right_wall.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 2, 7],
      "to": [16, 13, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [8, 3, 7],
      "to": [10, 12, 9],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [8, 3, 10, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 3, 7],
      "to": [14, 6, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    },
    {
      "from": [10, 9, 7],
      "to": [14, 12, 9],
      "faces": {
        "north": {"uv": [2, 3, 6, 6], "texture": "#texture"},
        "south": {"uv": [2, 9, 6, 12], "texture": "#texture"},
        "up": {"uv": [2, 1, 6, 3], "texture": "#texture"},
        "down": {"uv": [2, 14, 6, 12], "texture": "#texture"}
      }
    }
  ]
}

oak_fence_gate_right_wall_open.json :

{
  "ambientocclusion": true,
  "textures": {
    "particle": "#texture"
  },
  "elements": [
    {
      "from": [14, 2, 7],
      "to": [16, 13, 9],
      "faces": {
        "north": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "east": {"uv": [0, 2, 2, 13], "texture": "#texture", "cullface": "east"},
        "south": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "west": {"uv": [0, 2, 2, 13], "texture": "#texture"},
        "up": {"uv": [0, 0, 2, 2], "texture": "#texture"},
        "down": {"uv": [2, 13, 0, 15], "texture": "#texture"}
      }
    },
    {
      "from": [14, 3, 13],
      "to": [16, 12, 15],
      "faces": {
        "north": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "east": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "south": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "west": {"uv": [6, 3, 8, 12], "texture": "#texture"},
        "up": {"uv": [6, 1, 8, 3], "texture": "#texture"},
        "down": {"uv": [6, 14, 8, 12], "texture": "#texture"}
      }
    },
    {
      "from": [14, 3, 9],
      "to": [16, 6, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [10, 3, 14, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    },
    {
      "from": [14, 9, 9],
      "to": [16, 12, 13],
      "faces": {
        "east": {"uv": [10, 9, 14, 12], "texture": "#texture"},
        "west": {"uv": [14, 3, 10, 6], "texture": "#texture"},
        "up": {"uv": [10, 1, 14, 3], "rotation": 270, "texture": "#texture"},
        "down": {"uv": [10, 12, 14, 14], "rotation": 270, "texture": "#texture"}
      }
    }
  ]
}
⚠️ 请确保你的文件名称一致 ⚠️