Skip to content

Вращение рук

Ванильные вращения

Вы можете задавать вращение руки для предмета, который игрок держит в руке! это делается "оборачиванием" вашей модели в модель rpt:arm_transform:

json
{
    "model": {
        "type": "rpt:arm_transform",
        "transform": "item",
        "model": {
            "type": "model",
            "model": "item/diamond_pickaxe"
        }
    }
}

В премере выше мы указали вращение руки, которе используется в ванильной игре, когда игрок держит предмет. Ниже список ванильных вращений:

  • empty - игрок ничего не держит
  • item - игрок держит предмет, не вызывающий вращений ниже
  • block - игрок поднимает щит
  • bow_and_arrow- игрок натягивает титьеву лука
  • throw_trident- игрок замахивается трезубцем
  • crossbow_charge- игрок заряжает арбалет
  • crossbow_hold - игрок держит заряженный арбалет
  • spyglass - игрок смотрит в подзорную трубу
  • toot_horn - игрок дует в козий рог
  • brush - игрок машет кисточкой.
  • spear - игрок использует копьё как кинетическое оружие (Для 1.21.11 и выше)

Помимо ванильных вращений, вы можете задавать свои собственные, либо изменять некоторые настройки ванильных:

Создание собвственного вращения

json
{
    "model": {
        "type": "rpt:arm_transform",
        "transform": {
            // вращение по осям
            "x": 0, 
            "y": 0,
            "z": 0,
            "bob": true, // применять ли анимацию "дыхания"
            "swing": true, // применять ли анимацию качания рук при ходьбе
            "type": "item" // тип анимаций из ванильных
        },
        "model": { ... }
    }
}

Примечание

Eсли вы в записе выше укажете type, то вращения по осям НЕ будет применяться!

Помимо чисел, оси поддерживают выражения (подробнее об этом в Математические Выражения):

json
{
    "model": {
        "type": "rpt:arm_transform",
        "transform": {
            "x": "sin(time*0.75) * 45 - 90", // Игрок будет качать рукой пере лицом
            "swing": false
        },
        "model": {
            "type": "model",
            "model": "item/bell"
        }
    }
}

RPT так же предоставляет некоторые переменные, которые можно использовать:

  • time - игровое время в тиках
  • hx/hy/hz - поворот головы по осям
  • arm - рука, которая держит предмет: 1 если правая, и -1 если левая

Обратите внимание

Перменные, о которых говорится в Математические Выражения не будут работать в rpt:arm_transform!


Простой пример:

rpt-demo-arm
json
{
    "model": {
        "type": "rpt:arm_transform",
        "transform": {
            "x": "hx - 90",
            "y": "hy",
            "swing": false
        },
        "model": {
            "type": "model",
            "model": "item/diamond_pickaxe"
        }
    }
}

Выпущено под лицензией MIT.