Go to file
Lars Müller c48b282c0b
0.4.x support: Don't rely on undefined behavior
2022-07-24 10:12:16 +02:00
.luacheckrc Convert indentation to tabs 2022-05-13 12:19:27 +02:00
Readme.md Update Readme regarding compat & model format 2022-05-15 15:35:48 +02:00
depends.txt 0.4.x support: Don't rely on undefined behavior 2022-07-24 10:12:16 +02:00
init.lua Fix crash for invalid player object 2022-05-19 10:19:14 +02:00
mod.conf Redirect all animations through character_anim 2022-05-11 19:25:42 +02:00
schema.lua Convert indentation to tabs 2022-05-13 12:19:27 +02:00
screenshot.png Add screenshot 2020-09-20 17:22:26 +02:00
settingtypes.txt Regenerate settingtypes & readme 2022-05-13 12:18:44 +02:00

Readme.md

Character Animations (character_anim)

Animates the character. Resembles playeranim and headanim.

About

Depends on modlib. Code written by Lars Mueller aka LMD or appguru(eu) and licensed under the MIT license.

Screenshot

Image

  • GitHub - sources, issue tracking, contributing
  • Discord - discussion, chatting
  • Minetest Forum - (more organized) discussion
  • ContentDB - releases (cloning from GitHub is recommended)

Features

  • Animates head, right arm & body
  • Also provides support for arbitrary player models, as long as Head, Arm_Right & Body bones exist
  • Advantages over playeranim:
    • Extracts exact animations and bone positions from b3d models at runtime (no complex installation)
    • Also animates attached players (with restrictions on angles)
  • Advantages over headanim:
    • Provides compatibility back until Minetest 0.4.x (as opposed to headanim supporting only 5.3+)
    • Head angles are clamped, head can tilt sideways
    • Animates right arm & body as well

Configuration

default

arm_right

radius

Right arm spin radius

  • Type: number
  • Default: 10
  • >= -180
  • <= 180
speed

Right arm spin speed

  • Type: number
  • Default: 1000
  • > 0
  • <= 10000
yaw
max

Right arm yaw (max)

  • Type: number
  • Default: 160
  • >= -180
  • <= 180
min

Right arm yaw (min)

  • Type: number
  • Default: -30
  • >= -180
  • <= 180

body

turn_speed

Body turn speed

  • Type: number
  • Default: 0.2
  • > 0
  • <= 1000

head

pitch
max

Head pitch (max)

  • Type: number
  • Default: 80
  • >= -180
  • <= 180
min

Head pitch (min)

  • Type: number
  • Default: -60
  • >= -180
  • <= 180
yaw
max

Head yaw (max)

  • Type: number
  • Default: 90
  • >= -180
  • <= 180
min

Head yaw (min)

  • Type: number
  • Default: -90
  • >= -180
  • <= 180
yaw_restricted
max

Head yaw restricted (max)

  • Type: number
  • Default: 45
  • >= -180
  • <= 180
min

Head yaw restricted (min)

  • Type: number
  • Default: 0
  • >= -180
  • <= 180
yaw_restriction

Head yaw restriction

  • Type: number
  • Default: 60
  • >= -180
  • <= 180

models

Other models, same format as default model

API

Minetest's player:set_bone_position is overridden so that it still works as expected.

character_anim.set_bone_override(player, bonename, position, rotation)

The signature resembles that of set_bone_position. bonename must be a string. The following additional features are provided:

  • Using it like set_bone_position by setting rotation and position to non-nil values and using "" to set the root bone
  • Setting only the bone position by setting rotation to nil - bone rotation will then be model-animation-determined
  • Setting only the bone rotation by setting position to nil - bone position will then be model-animation-determined
  • Clearing the override by setting both rotation and position to nil ("unset_bone_position")