Что ты именно имеешь ввиду? Ты хочешь, чтобы, например, моб одновременно бежал и махал руками, и при этом это были разные анимации?
Если что, в geckoLib управление анимациями происходит с помощью контроллеров анимаций.
В твоем случае тебе нужно зарегистрировать несколько контроллеров - собственно, именно так ты можешь комбинировать анимации, чтобы они проигрывались одновременно. Это вроде будет корректно работать, если не затрагивать в этих двух анимациях одни и те же "кости" моба(то есть рука двигается только в одной анимации и не затрагивается во второй). Так, например, делают взмахи мечом при атаке и нечто подобное.
@Override
public void registerControllers(AnimationData data) {
AnimationController controllerForRunning = new AnimationController(this, "YourMobAnimationControllerForRunning",
0, this::predicate);
data.addAnimationController(controllerForRunning );
AnimationController controllerForAttack = new AnimationController(this, "YourMobAnimationControllerForAttack",
0, this::predicate);
data.addAnimationController(controllerForAttack);
}
Ну если что predicate это вот это:
private <E extends IAnimatable> PlayState predicate(AnimationEvent<E> event) {
//твое проигрывание анимаций в зависимости от чего угодно(например, в зависимости от контроллера эвента)
}
Также geckolib за тебя может "дорисовать" переход между анимациями в пределах одного контроллера, если он вдруг слишком резкий - для этого в регистрации контроллера нужно вместо 0 подать число в тиках - это и будет время, отведенное на "дорисовку" перехода между анимациями.