promotional bannermobile promotional banner

Player Animation Library More Rotation

A library that extends Player Animation Library and bendable-cuboids with improved player animation rotation, bend deformation, and playback sync support.

PlayerAnimationLibraryMoreRotation

English

PlayerAnimationLibraryMoreRotation is an addon library for player animation creators and mod developers. It extends Player Animation Library and bendable-cuboids, mainly improving bend deformation and held-item animations with better multi-axis rotation support, making custom player actions more complete and flexible.

Main Features

  • Expands player body bend deformation with richer axis support instead of being limited to a single direction.
  • Allows bend bones to use position and scale through the bend.position and bend.scale channels.
  • Improves held-item animations so weapons, tools, and action poses can apply Y/Z axis rotations more accurately.
  • Improves rotation behavior for some player animation bones.
  • Keeps old Player Animation Library animations compatible.
  • Provides reusable player animation play, stop, and server sync support for other mods.

Animation Compatibility

Existing Player Animation Library animations should continue to work. Old bend formats are still supported, while newer array-style bend values can be used for more expressive movement.

Examples:

"bend": 35
"bend": [35, 0, 0]
"bend": {
  "0.0": { "post": [0, 0, 0] },
  "0.5": { "post": [35, 20, -15] },
  "1.0": { "post": [0, 0, 0] }
}

Bend bones can also use position and scale:

"left_arm": {
  "bend": {
    "rotation": {
      "0.0": { "post": [0, 0, 0] },
      "0.5": { "post": [35, 20, -15] },
      "1.0": { "post": [0, 0, 0] }
    },
    "position": {
      "0.0": { "post": [0, 0, 0] },
      "0.5": { "post": [2, 1, 0] },
      "1.0": { "post": [0, 0, 0] }
    },
    "scale": {
      "0.0": { "post": [1, 1, 1] },
      "0.5": { "post": [1.25, 0.8, 1] },
      "1.0": { "post": [1, 1, 1] }
    }
  }
}

scale uses multipliers, so 1 means original size.

Blockbench Plugin

For animation authoring, use the PAL Bend Player Tools Blockbench plugin.

Recommended workflow:

  1. Create a new project with PAL Bend Player Animation.
  2. Import an existing animation if needed. The plugin can import PAL original animation JSON, PAL emote JSON, DragonCore player-model animation JSON, and PlayerAnimationLibraryMoreRotation animation JSON.
  3. Animate the visible player bones in Blockbench. The *_bend helper bones are editing helpers only; they are converted back to real PAL bend data on export.
  4. Export with PAL: Export Player Animation.
  5. Put the exported JSON under assets/<namespace>/player_animations/ in your resource pack or mod.

Export behavior:

  • If the animation has no bend data, or only legacy X-axis bend, the plugin exports a normal Player Animation Library animation. It can also export PAL emote format when the animation is compatible with emote.
  • If any bend uses Y/Z rotation, bend-local position, or bend-local scale, the plugin exports the PlayerAnimationLibraryMoreRotation format using bend.rotation, bend.position, and/or bend.scale.
  • DragonCore player-model animations can be converted by creating a PAL Bend Player Animation - DragonCore Player Model project, importing the old animation, and exporting it again.

The exported file should not contain custom helper bones for runtime use. This library reads the extended bend data from the real PAL player bones such as torso, right_arm, left_arm, right_leg, and left_leg.


中文

PlayerAnimationLibraryMoreRotation 是一个面向玩家动画作者和模组开发者的附属库,用来扩展 Player Animation Library 和 bendable-cuboids 的玩家动画表现能力,重点补足 bend 弯曲和手持物品动画在更多轴向上的旋转支持,让自定义玩家动作更完整、更灵活。

主要功能

  • 让玩家身体部位的 bend 弯曲支持更丰富的轴向变化,不再只局限于单一方向。
  • 让 bend 骨骼通过 bend.positionbend.scale 通道使用位移和尺寸变化。
  • 改善手持物品动画,让武器、道具和动作姿势能更准确地应用 Y/Z 等轴向旋转。
  • 改善部分玩家骨骼动画的旋转表现。
  • 保持旧的 Player Animation Library 动画兼容。
  • 提供通用的玩家动画播放、停止和服务端同步能力,方便其他模组直接调用。

动画兼容性

已有的 Player Animation Library 动画应继续可用。旧的 bend 写法仍然支持,同时也可以使用新的数组形式来表达更复杂的弯曲动作。

示例:

"bend": 35
"bend": [35, 0, 0]
"bend": {
  "0.0": { "post": [0, 0, 0] },
  "0.5": { "post": [35, 20, -15] },
  "1.0": { "post": [0, 0, 0] }
}

bend 骨骼也可以使用位移和尺寸:

"left_arm": {
  "bend": {
    "rotation": {
      "0.0": { "post": [0, 0, 0] },
      "0.5": { "post": [35, 20, -15] },
      "1.0": { "post": [0, 0, 0] }
    },
    "position": {
      "0.0": { "post": [0, 0, 0] },
      "0.5": { "post": [2, 1, 0] },
      "1.0": { "post": [0, 0, 0] }
    },
    "scale": {
      "0.0": { "post": [1, 1, 1] },
      "0.5": { "post": [1.25, 0.8, 1] },
      "1.0": { "post": [1, 1, 1] }
    }
  }
}

scale 是倍率,1 表示原尺寸。

Blockbench 插件

制作动画时,推荐使用 我制作的PAL Bend Player Tools Blockbench 插件。

推荐流程:

  1. 使用 PAL Bend Player Animation 新建项目。
  2. 如果已有动画,可以直接导入。插件可以导入 PAL 原版动画 JSON、PAL emote JSON、龙核玩家模型动画 JSON,以及 PlayerAnimationLibraryMoreRotation 动画 JSON。
  3. 在 Blockbench 中正常制作玩家动画。*_bend 骨骼只是方便编辑用的 helper bone,导出时会转换回真实 PAL 骨骼上的 bend 数据。
  4. 使用 PAL:导出玩家动画 导出。
  5. 将导出的 JSON 放到资源包或模组的 assets/<namespace>/player_animations/ 下。

导出规则:

  • 如果动画没有 bend 数据,或只有旧版 X 轴 bend,插件会导出普通 Player Animation Library 动画。动画兼容时,也可以选择导出 PAL emote 格式。
  • 如果 bend 使用了 Y/Z 轴旋转、bend 局部位移或 bend 局部缩放,插件会自动导出 PlayerAnimationLibraryMoreRotation 支持的格式,也就是 bend.rotationbend.positionbend.scale
  • 如果要转换龙核玩家模型的旧动画,可以新建 PAL Bend Player Animation - 龙核玩家模型版 项目,导入旧动画后再导出。

最终放进游戏运行的文件不应该依赖自定义 helper 骨骼。本库会从真实 PAL 玩家骨骼读取扩展 bend 数据,例如 torsoright_armleft_armright_legleft_leg

The Player Animation Library More Rotation Team

profile avatar
Owner
  • 4
    Followers
  • 10
    Projects
  • 4.6M
    Downloads

More from kltytonView all