Exporting keyed blend shape anims for SceneKit with FBX_DAE fails

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
We're using Maya to produce some characters for use in Apple's SceneKit. Our workflow is to export as .dae (COLLADA) files with Maya 2018.2's built-in DAE_FBX exporter, then load into SceneKit in Xcode (9.3). Our basic models and blend shapes are exported correctly for the most part and are directly usable in SceneKit. -- this part is great. However, any keyed blend shape animations do not load. All the animations on the transform that I've tested work fine.
I created a new project and isolated this down to the simplest possible scenario. I created a very simplistic Maya project with 1 blend shape. Then I did a simple animation on that blend shape. Then exported to dae. Then FAIL.
My software versions are:
- Maya 2018.2 (Cut ID: 201711281015-8e846c9074)
- Xcode 9.3 (9E145)
- macOS High Sierra 10.13.4
- iOS 11.3.1
On the Maya side of things, I've tried several variations on the creation/export process:
- Tried "remove single key" checkbox (with and without)
- Tried "bake animation" setting in export window
- Tried checking and unchecking "Deformed models" and "blend shapes"
- Under the DAE_FBX export window, I've tried with and without "Single Matrix" checked. Regardless of this setting, the transform animations work either way, but the blend shape animations do not.
I eventually thought this would probably be a SceneKit bug on Apple's side, so I filed a bug report and a case for developer tech support. After some back and forth, they came back stating that it is a bug in Maya's exporter. After reading through their response as well as the COLLADA spec and doing numerous other tests, I'm inclined to agree.
They wrote:
cube-blend.dae contains a blend shape animation but the target syntax is incorrect: pCube2-lib-morph-weights(Weight_0_0). This is an exporter issue (we tried to import this file in Modo [can’t open it] and Cinema4D [loads correctly but with no animation]).
The COLLADA spec seems to indicate that the target name having parenthesis for any purpose other than array/range index is invalid.
At this point I'm really hoping for a workaround. Or a full fix. Or any sort of workflow that actually works.
I tried importing into Cinema4D and had the same result as the Apple tester. I also tried Khronos group's OpenCOLLADA COLLADAMaya exporter with Maya 2017, but that has other issues. I've tried with 2017 Update 5 and 2018.2. Trying 2018.3 in a moment.
Does anyone have a solution or a workflow that is usable?
The full demo Maya project, demo Xcode project, and descriptive videos are here:
https://bitbucket.org/drewster77/scenekitimportedanimtest/src/master/
I'm also attaching the Maya project and the generated .dae file.
Thank you!
EDIT:
I'm having technical issues uploading the files, so I'll link them here for now: