I don't know if this will help but:
First off I use blender. I create my model, rig it. I then export the model (sans camera and lights etc) normally and convert it to scn in XCode.
Then create an animation and I export JUST the animted skeleton (though the whole model is fine too.) But you don't want to export the rest of the scene (lights/camera etc) . Just the model and it's animated rig or just the animated rig.
I then load the animation:
/
- (CAAnimation *)loadAnimationFromSceneNamed:(NSString *)path
{
SCNScene *scene = [SCNScene sceneNamed:path];
/
/
__block CAAnimation *animation = nil;
/
[scene.rootNode enumerateChildNodesUsingBlock:^(SCNNode *child, BOOL *stop) {
if (child.animationKeys.count > 0) {
animation = [child animationForKey:child.animationKeys[0]];
*stop = YES;
}
}];
return animation;
}
then I call that :
NSString * scenePath = @"Path to my scene"; //(something like art.scnassets/walk.dae or art.scnassets/walk.scn)
CAAnimation * thisAnimation = [self loadAnimationFromScene:scenePath];
Finally I animate the model:
[myCorrispondingModel addAnimation:thisAnimation forKey:@"thisAnimationKey"];
There are timing functions, and setting the number of time it will repeat, like forever or 1 time etc. But by and large this should get you started.
The main thing I'm wondering and please don't take offense for me asking such an amature question, but when you export your model you include the rig right?. Because the animations map to the skeleton in the model. or something like that.
There's one more thing, Some 3d apps export animations and it's not 100% xcode compatible. There is a service script you can download I think it's called ConvertToXcodeCollada. I use it to clean up blender animations but I don't know about cheetah.
FOR 2023. Here is a full, total explanation of the current situation: https://stackoverflow.com/a/75093081/294884