@dendead

Как правильно воспроизводить анимацию в sceneform (ArCore)?

Я создаю AR приложение с использованием https://github.com/ThomasGorisse/sceneform-android-sdk и с помощью такого кода добавляю модельку на сцену:

ModelRenderable.builder()
        .setSource(this, R.raw.olaf)
        .setIsFilamentGltf(true)
        .build()
        .thenAccept(modelRenderable ->
        {
        mainAnchorNode = new AnchorNode(startAnchor);
        arFragment.getArSceneView().getScene().addChild(mainAnchorNode);

        TransformableNode transformableNode = new TransformableNode(arFragment.getTransformationSystem());
        transformableNode.setLocalRotation(Quaternion.axisAngle(new Vector3(0, 1f, 0), 180f));

        transformableNode.setParent(mainAnchorNode);
        transformableNode.setRenderable(modelRenderable);
}


В блендер у модельки 5 анимаций:

yzw4t.png

Я пытаюсь воспроизвести анимацию так (где animationType название анимации из blender: "olaf_walk", "olaf_hello"):

private ObjectAnimator animator;

animator = ModelAnimator.ofAnimation(transformableNode.getRenderableInstance(), animationType);
animator.start();


Но когда я переключаю анимацию (с помощью кнопки) к следующей по очереди, предыдущая продолжает проигрываться, а новая не стартует.
Я пытался отменять (animator.cancel()), останавливать (animator.stop()) и создавать новый animator для каждой анимации, но никаких результатов это не принесло.

Как правильно переключаться между разными анимациями одной модельки в sceneform?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы