Как определить, есть ли у glTF данные анимации - PullRequest
0 голосов
/ 17 февраля 2020

У меня было несколько ошибок при переходе от отображения состояния c me sh, (отлично работает) к анимированному (смешанные результаты). Я подозреваю, что fbx, который я экспортировал в glTF, является ошибкой, но я просто хотел бы спросить:

Во-первых, как вы определяете, есть ли в файле glTF данные / клипы анимации? И если отображение модели не имеет анимации, это вызовет проблемы при вызове AnimationMixer?

Вот что у меня есть:

    // Mix and animate!
    mixer = new THREE.AnimationMixer( model );
    var clips = model.animations;

    // if there's no first animation; there's no animation
    if (mixer.clipAction( gltf.animations[ 0 ] ) == undefined)
    // if (clips == undefined) // doesn't seem to work
    {
        // console.log("-> clips " + clips);
        console.log("-> no anim for " + model.name);
    }
    else
    {
        mixer.clipAction( gltf.animations[ 0 ] ).play();
    }

только изредка на станции c me sh Я получаю ошибку TypeError: Cannot read property 'uuid' of undefined Что оставляет немного запутанным.

1 Ответ

0 голосов
/ 17 февраля 2020

gltfloader вызывает функцию завершения со структурой .. в этой структуре есть массив .animations []. Если это пусто, анимации не были найдены. Пока вы создаете свой микшер и не пытаетесь добавить неопределенную анимацию, она должна быть в порядке сама по себе, и вы можете добавить анимацию позже, когда найдете ее.

...