added corrupt-asset-animation detection

This commit is contained in:
Leon van Kammen 2023-10-31 13:00:29 +01:00
parent e368b74e4f
commit e52dd993dc
2 changed files with 218 additions and 1237 deletions

File diff suppressed because one or more lines are too long

View file

@ -39,14 +39,26 @@ xrf.frag.t.setupMixer = function(opts){
let {model,file,url} = opts
let mixer = model.mixer = new xrf.THREE.AnimationMixer(model.scene)
mixer.play = (play) => {
mixer.isPlaying = play
model.animations.map( (anim) => {
mixer.initClips = () => {
if( mixer.clipsInited ) return // fire only once
model.animations.map( (anim) => {
let zombies = anim.tracks.map( (t) => !model.scene.getObjectByName(t.name) ? {anim:anim.name,obj:t.name} : undefined )
if( !anim.action ){
anim.action = mixer.clipAction( anim )
anim.action.enabled = true
anim.action.setLoop(THREE.LoopOnce)
}
if( zombies.length > 0 ){
zombies.map( (z) => console.warn(`gltf: object '${z.obj}' not found (anim: '${z.anim}'`) )
console.warn(`TIP: remove dots in objectnames in blender (which adds dots when duplicating)`)
}
})
mixer.clipsInited = true
}
mixer.play = (play) => {
mixer.initClips()
mixer.isPlaying = play
model.animations.map( (anim) => {
if( mixer.isPlaying === false) anim.action.stop()
else{
anim.action.play()