Blender export limit or user error?

Hello and Happy Halloween!

At the point of BLENDER EXPORTS at INDUSTRY SCALE, and actionable intelligence for you.

We are pushing limits of animation exports to .babylon.

It is working FANTASTIC!

Solved many USER-ERRORS. Till now.

POSSIBLY reached a limitation of exporter? - or hope … a user error on me.

.blender Ver is 5.6.2.

Would update fix issue below?


BRIEF-DESCRIPTION:

Adding a new object, with a new animation, to big (fully working) rig causes all previous animation key-frames to be mis-aligned in timeline after export…


SCENARIO-DESCRIPTION:

Adding ONE new OBJECT, ITEM, for HAND to MOVE in ANIMATION.

SUCCESSFULLY added ITEM. Animates correctly in Blender, export has following behaviors:


  1. LOC Key-Frame Object Animation:
  • Different animation is cut short. Another goes long. Nothing for the added forITEM ANIMATION.

  • more details below.

  1. BONE VERTEX POSE animation:
  • no movement (after export) default position at origin. Looks like a hard-limit.

Rolling back and forward, to isolate ISSUE.

limitation for number of Dope Sheet bones 43?

Grateful for any insight it brings. Thanks.


MORE DETAILS:

Things I’ve tried:

  • BOTH Object key-frames, AND BONE weighted POSE animation with Vertex Group.

      similar results, feels like a cut off. 
    
  • Looking into DopeSheet and EXPORT DATA


DOPESHEET…

EXPORT DATA COMPARISON…

WORK-AROUND available, but would like to get this process to work.


Thanks for any insight/assistance (on final push to production),

:eagle:

Not much info I can actually use, like log file. If you adding a new object with armature to scene. Would recommend its own .blend / .babylon file at least until it is working as expected. Throwing everything together is only good when everything works first or second time. Otherwise, you are just making a mess.

No hard limit on bones for export or running, but certain machines / browsers may start to complain / rollback to cpu skinning. Make sure you are checking your browsers console. On iOS, use chrome. I know there is a way. Search forum on how.

1 Like

No. Item Object was NOT imported from separate .blend.

It is a simple object created locally from Cylinder+ IcoSphere.

And animated just as other separate object are successfully exporting.

NOT a “mess”. But PRECISION STEPS.

MANY WORKING ANIMATIONS REACHING A LIMIT ON EXPORT.

I will provide:

  • LOG FILE COMPARISON (7 warnings not related).

  • .blender EXPORT REVIEW

  • Dope Sheet REVIEW.

No errors in console, or in BLENDER msgs.

Thanks for reviewing,

THANK YOU. I learn more by reading log file. Should have thought to include. But not much there.

The Item not animating is “lazerbox”:

Here it is:
Exporter version: 5.6.2, Blender version: 2.79 (sub 0)
========= Conversion from Blender to Babylon.js =========
Scene settings used:
selected layers only: true
inline textures: false
Positions Precision : 4
Normals Precision : 3
UVs Precision : 3
Vert Color Precision: 3
Mat Weight Precision: 2
texture directory: C:\PROJ\physicsPG0\cprghtnx\3d
Python World class constructor completed
processing begun of skeleton: Armaturerobot, id: 0
processing begun of bone: L_handIK, index: 0
processing begun of bone: R_handIK, index: 1
processing begun of bone: L_footIK, index: 2
processing begun of bone: R_footIK, index: 3
processing begun of bone: L_upperarmIK_PV, index: 4
processing begun of bone: R_upperarmIK_PV, index: 5
processing begun of bone: L_upperlegIK_PV, index: 6
processing begun of bone: L_upperlegIK, index: 7
processing begun of bone: L_lowerlegIK, index: 8
processing begun of bone: R_upperlegIK_PV, index: 9
processing begun of bone: R_upperlegIK, index: 10
processing begun of bone: R_lowerlegIK, index: 11
processing begun of bone: L_leg_IKFK, index: 12
processing begun of bone: R_leg_IKFK, index: 13
processing begun of bone: spine, index: 14
processing begun of bone: spine.001, index: 15
processing begun of bone: L_upperleg, index: 16
processing begun of bone: L_lowerleg, index: 17
processing begun of bone: L_foot, index: 18
processing begun of bone: R_upperleg, index: 19
processing begun of bone: R_lowerleg, index: 20
processing begun of bone: R_foot, index: 21
processing begun of bone: spine.002, index: 22
processing begun of bone: itemBone, index: 23
processing begun of bone: eye1, index: 24
processing begun of bone: irisbone, index: 25
processing begun of bone: L_upperarmIK, index: 26
processing begun of bone: L_lowerarmIK, index: 27
processing begun of bone: L_arm_IKFK, index: 28
processing begun of bone: L_upperarm, index: 29
processing begun of bone: L_lowerarm, index: 30
processing begun of bone: L_hand, index: 31
processing begun of bone: L_basepinky, index: 32
processing begun of bone: L_tippinky, index: 33
processing begun of bone: L_baseindex, index: 34
processing begun of bone: L_tipindex, index: 35
processing begun of bone: L_basethumb, index: 36
processing begun of bone: L_tipthumb, index: 37
processing begun of bone: R_upperarmIK, index: 38
processing begun of bone: R_lowerarmIK, index: 39
processing begun of bone: R_arm_IKFK, index: 40
processing begun of bone: R_upperarm, index: 41
processing begun of bone: R_lowerarm, index: 42
processing begun of bone: R_hand, index: 43
processing begun of bone: R_pinkybase, index: 44
processing begun of bone: R_pinkytip, index: 45
processing begun of bone: R_indexbase, index: 46
processing begun of bone: R_indextip, index: 47
processing begun of bone: R_basethumb, index: 48
processing begun of bone: R_thumbtip, index: 49
processing action Poserobot: in[0 - 170], out[0 - 170]
WARNING: The following camera not visible in scene thus ignored: Camera
processing begun of mesh: spacewaverider
processing begun of Standard material: microwave
processing begun of Standard material: spacewaverider
processing begun of multimaterial: robotorbot13.Multimaterial#0
num positions : 110
num normals : 110
num uvs : 0
num uvs2 : 0
num colors : 0
num indices : 612
Skeleton stats:
Total Influencers: 379
Avg # of influencers per vertex: 3.4455
Highest # of influencers observed: 4, num vertices with this: 49
exported as 4 influencers
num skeletonWeights and skeletonIndices: 440
WARNING: # of 0 area faces found: 24
processing begun of mesh: robotmesh
processing begun of Standard material: robotSkin
processing begun of Standard material: robotHands
processing begun of Standard material: robotArms
processing begun of Standard material: robotFeet
processing begun of Standard material: robotLegs
processing begun of Standard material: robotEye
processing begun of Standard material: robotIris10
processing begun of Standard material: robotIris9
processing begun of Standard material: robotIris8
processing begun of Standard material: robotIris7
processing begun of Standard material: robotIris6
processing begun of Standard material: robotIris5
processing begun of Standard material: robotIris4
processing begun of Standard material: robotIris3
processing begun of Standard material: robotIris2
processing begun of Standard material: robotIris1
processing begun of Standard material: robotMouthBlack
processing begun of multimaterial: robotorbot13.Multimaterial#1
num positions : 743
num normals : 743
num uvs : 0
num uvs2 : 0
num colors : 0
num indices : 4194
Skeleton stats:
Total Influencers: 1141
Avg # of influencers per vertex: 1.5357
Highest # of influencers observed: 4, num vertices with this: 23
exported as 4 influencers
num skeletonWeights and skeletonIndices: 2972
WARNING: # of 0 area faces found: 16
processing begun of mesh: lazerbox
processing begun of Standard material: dargoneye
processing begun of Standard material: spaceGem
processing begun of Standard material: dargonIris
processing begun of Standard material: offcolor
processing begun of multimaterial: robotorbot13.Multimaterial#2
num positions : 130
num normals : 130
num uvs : 0
num uvs2 : 0
num colors : 0
num indices : 672
processing begun of mesh: robotMouthCover
registered as also a user of material: robotSkin
registered as also a user of material: robotHands
registered as also a user of material: robotArms
registered as also a user of material: robotFeet
registered as also a user of material: robotLegs
registered as also a user of material: robotEye
registered as also a user of material: robotIris10
registered as also a user of material: robotIris9
registered as also a user of material: robotIris8
registered as also a user of material: robotIris7
registered as also a user of material: robotIris6
registered as also a user of material: robotIris5
registered as also a user of material: robotIris4
registered as also a user of material: robotIris3
registered as also a user of material: robotIris2
registered as also a user of material: robotIris1
processing begun of multimaterial: robotorbot13.Multimaterial#3
num positions : 20
num normals : 20
num uvs : 0
num uvs2 : 0
num colors : 0
num indices : 72
Skeleton stats:
Total Influencers: 20
Avg # of influencers per vertex: 1
Highest # of influencers observed: 1, num vertices with this: 20
exported as 1 influencers
num skeletonWeights and skeletonIndices: 80
processing begun of mesh: separatedEYE
registered as also a user of material: robotSkin
registered as also a user of material: robotHands
registered as also a user of material: robotArms
registered as also a user of material: robotFeet
registered as also a user of material: robotLegs
registered as also a user of material: robotEye
registered as also a user of material: robotIris10
registered as also a user of material: robotIris9
registered as also a user of material: robotIris8
registered as also a user of material: robotIris7
registered as also a user of material: robotIris6
registered as also a user of material: robotIris5
registered as also a user of material: robotIris4
registered as also a user of material: robotIris3
registered as also a user of material: robotIris2
registered as also a user of material: robotIris1
processing begun of multimaterial: robotorbot13.Multimaterial#4
num positions : 169
num normals : 169
num uvs : 0
num uvs2 : 0
num colors : 0
num indices : 936
Skeleton stats:
Total Influencers: 177
Avg # of influencers per vertex: 1.0473
Highest # of influencers observed: 2, num vertices with this: 8
exported as 2 influencers
num skeletonWeights and skeletonIndices: 676
Shape Keys:
processing begun of mesh: separatedIRIS
registered as also a user of material: robotSkin
registered as also a user of material: robotHands
registered as also a user of material: robotArms
registered as also a user of material: robotFeet
registered as also a user of material: robotLegs
registered as also a user of material: robotEye
registered as also a user of material: robotIris10
registered as also a user of material: robotIris9
registered as also a user of material: robotIris8
registered as also a user of material: robotIris7
registered as also a user of material: robotIris6
registered as also a user of material: robotIris5
registered as also a user of material: robotIris4
registered as also a user of material: robotIris3
registered as also a user of material: robotIris2
registered as also a user of material: robotIris1
processing begun of multimaterial: robotorbot13.Multimaterial#5
num positions : 313
num normals : 313
num uvs : 0
num uvs2 : 0
num colors : 0
num indices : 1116
Skeleton stats:
Total Influencers: 553
Avg # of influencers per vertex: 1.7668
Highest # of influencers observed: 2, num vertices with this: 240
exported as 2 influencers
num skeletonWeights and skeletonIndices: 1252
Shape Keys:
WARNING: The following lamp not visible in scene thus ignored: Point.002
WARNING: The following lamp not visible in scene thus ignored: Point.001
WARNING: The following lamp not visible in scene thus ignored: Point
WARNING: The following lamp not visible in scene thus ignored: Lamp
========= Writing of scene file started =========
========= Writing of scene file completed =========
========= end of processing =========
elapsed time: 0 min, 2.4347 secs

I COMPARED LOG FILES BEFORE/AFTER. Also .babylon files. Also Dope Sheets.

I do not see anything that would indicate error.

Yet exported animations are clearly broken.

I am not sure whether it is related or not, but my animations exported from Blender to Babylon are also corrupted and distorted (export into GLTF works well). Just simple mesh, several bones and simple walking animation. Legs are ok, but hands are somehow “cut off the body” during animation. Tried to recreate animation several times but result is always broken.

Probably not the same problem as you have, but there is apparently something wrong :frowning: I can upload blender file and exported files (babylon and gltf - gltf works as intended) if needed.

1 Like
  • Ok, you are using 2.79 with the legacy exporter
  • Your 50 bone armature has IK bones, but you are not using the ignore, which would remove about 14 bones.
  • You only have one action being exported PoseRobot.
  • Lazerbox is not showing not showing any Skeleton stats, so it probably has no armature modifier or no vertex weights.
1 Like

Awesome. Awesome, awesome, awesome… AWESOME. : )

Correct on every point. Points taken… thanks.

  • I see BLENDER is 2.8, I’m 2.79 (with 5.6.2) - what is best export version for 2.79?

Found this one: Exporters/Blender2Babylon-6.0.zip at 449b45aa853da8da66ecae7c61b87c0ff5801aa7 · BabylonJS/Exporters · GitHub

Is it best? UPDATE: yep it went boom. : )

I want to REMOVE IK. 100% out. Unnecessary.

  • YES, thank you - I WILL REMOVE THOSE 14 Bones.

  • Also ZERO-SIZE FACES (on radar) (cool).


THE ANIMATION~EXPORT PROBLEM:

Created LAZERBOX Item, not ANIMATE on EXPORT; cut short, or timeline mis-alignment.

“One Action” - I saw that too - in the .blender COMPARISON…

  • CONFIRM: ADDITIONAL Action is in log of second approach…

  • With BONE and VertexGroup - RESULTS in FULL-FREEZE of all ANMS.


EXCEPT:

  • PREFERENCE: is (child) OBJECT ANMS - with LOCROT ANM ONLY (no bones no VGs).

RESULT: that is the CUT-SHORT, and MISALIGNED TIMELINE.

That is the LOG above.

That is why.


So,

" no armature modifier or no vertex weights." TRUE. ( exists in log of second TEST)

HOPING for - Vanilla (child) Object - EXPORT SUCCESS. (if possible).

  • Because: MAXIMUM SIMPLIFIED ANIMATION WORKFLOW:

(keep it small,simple, PRECISE as possible). GOAL. No Mess! : )

If possible for ITEM~ANMS:

*No-BONES, no SKs, no VGs, or Actions, ETC

  • just 1 Object with LOCROT ANM - (successfully exporting). If possible.*

BOTH approaches break in export. (single object (cut-short), bones Vgs (freeze).

I upgrade LATEST. Hope for single object anm export.

:pray:

  • and dig into ACTIONS…

Thanks,

:eagle:

I’m about ready to SOLVE this.

OK. SOLVED IT. : )

Thank you for the ASSIST.

aFalcon is STILL a NOOB - was it creating a second armature??? IDK.

PROGRAMMATIC~SOLUTION:

nx.lazerbox = nx.scene.getMeshByName('lazerbox') ; //lazerbox
nx.lazerbox.attachToBone(nx.skeleton[0].bones[35], nx.robotMesh);

CONCLUSION: (attach Item to Bone) rather than ANM in BLENDER.

it never did export. Programmatic Solution is good.


  • SOME BLENDER ANIMATION-EXPORTS ARE ELUSIVE.

  • Often, ANIMATIONS work in BLENDER and DO NOT EXPORT THE SAME.

  • I AM BEHIND A VERSION (as usual) - because I do not have TIME to UPGRADE (both 3 10 things).

  • It would be NICE to prove that ANM8 methodology , it didnt work. Will try again.

  • Realized problem was ITEM IN HAND for BABYLON not animate Item BLENDER.

NICE to gain MASTERY along the way. There are many TRICKY things. Will help others.


Grateful for the ability to create in BLENDER and EXPORT to BABYLON.

Thank you @JCPalmer

USER ERROR - item in hand in BABYLON NOT BLENDER (never exported btw).

:eagle:

1 Like

For any BLENDONAUGHT to make their way through all of that…

HERE IS A GOOD LINK: Blender - Babylon.js Documentation