Я пытаюсь имитировать мигающий свет на объекте, поэтому я анимирую цвет материала. Затем я экспортирую модель блендера в файл three.js через экспортер коллады.
Чтобы продемонстрировать проблему, я создал модель с одним кубом, на котором я меняю цвет с красного на зеленый и обратно на красный. Я также немного перемещаю куб.
В кадре 0 я делаю куб красным без смещения:
В кадре 12 я делаю его зеленым и немного смещаю:
Когда я запускаю анимацию в блендере, я вижу изменение цвета и смещение куба. Однако, когда я экспортирую его с помощью collada в three.js, куб перемещается, но остается одного цвета (цвет куба, который был активен в то время, когда я его экспортировал, например, он может быть либо красным, либо зеленым, но всегда один цвет). Я создал планкер, демонстрирующий проблему. Мой код коллады основан на примере three.js collada. Вот код, используемый для загрузки модели:
factory.loadColladaModel = function () {
console.log(`now in loadColladaModel`);
var loader = new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
var promise = new Promise( (resolve, reject) => {
loader.load( 'color_animation.dae', (collada) => {
console.log(`now in collada load closure`);
let model = collada.scene;
factory.scene.add(model);
factory.animations = collada.animations;
model.scale.x = model.scale.y = model.scale.z = 5.0;
for ( var i = 0; i < factory.animations.length; ++i ) {
var animation = factory.animations[ i ];
var kfAnimation = new THREE.KeyFrameAnimation( animation );
kfAnimation.timeScale = 1;
factory.kfAnimations.push( kfAnimation );
}
resolve('loaded');
})
})
return promise;
}
Что мне нужно сделать, чтобы заставить three.js анимировать изменения материала (цвета), а также движение? Я вижу записи цветов под тегом «анимация» файла collada, поэтому я предполагаю, что collada поддерживает его. Я видел этот предыдущий вопрос, где кто-то должен был установить morphTargets в чтобы получить материалы для работы. Мне тоже нужно сделать что-то подобное? Является ли morphTargets только для движения или для цвета тоже?
Блендер three.js r84 2.78b
Огромное спасибо.