e503b04040
Clean implementation by hooking PlayerRef methods |
||
---|---|---|
models | ||
Readme.md | ||
importer.lua | ||
init.lua | ||
main.lua | ||
mod.conf | ||
modeldata.lua | ||
schema.lua | ||
screenshot.png | ||
settingtypes.txt |
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. Media (player model) was created by MTG contributors (MirceaKitsune, stujones11 and An0n3m0us) and is licensed under the CC BY-SA 3.0 license, as must be its derivatives (skinsdb
and 3d_armor
variants).
Screenshot
Links
- 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
- Advantages over
playeranim
:- Extracts exact animations and bone positions from glTF models
- Also animates attached players (with restrictions on angles)
- Advantages over
headanim
:- Provides compatibility for Minetest 5.2.0 and lower
- Head angles are clamped, head can tilt sideways
- Animates right arm & body as well
Instructions
- If you want to use a custom model, install
binarystream
from LuaRocks:sudo luarocks install binarystream
on many UNIX-systemssudo luarocks install luabitop
if you're not using LuaJIT- Disable mod security. Make sure you trust all your mods! Ideally import models with all other mods disabled.
- Export the model as
glTF
and save it undermodels/modelname.extension.gltf
- Do
/ca_import modelname.extension
- Install and use
character_anim
like any other mod
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 settingrotation
andposition
to non-nil
values and using""
to set the root bone - Setting only the bone position by setting
rotation
tonil
- bone rotation will then be model-animation-determined - Setting only the bone rotation by setting
position
tonil
- bone position will then be model-animation-determined - Clearing the override by setting both
rotation
andposition
tonil
("unset_bone_position")