Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do you have any sample code that loads fbx animation? (I have it loading fbx) #14

Closed
johndpope opened this issue Aug 8, 2020 · 1 comment

Comments

@johndpope
Copy link

johndpope commented Aug 8, 2020

I can see the method.

  public func addAnimation(from animNode: SCNNode,
                             forKey animKey: String,
                             with settings: AssetImporterAnimSettings,
                             hasEvents: inout Bool,
                             hasDelegate: inout Bool)

looking for just a sample / snippet of code to load an fbx animation and associate / or trigger.
My project loads t-pose model from fbx https://github.com/johndpope/demo-unistroy

just want to bring it alive now
I've seen this (related?) code in objective-c ...
My fbx has an animation out of the box.....

print("animations:",assimpScene.animations)
animations: {
    "ely-1" = "<AssetImportKit.AssetImporterAnimation: 0x281757f00>";
}

how can I trigger this to play?

my

  // Load the animation scene
    if (self.animFilePath)
    {
        SCNAssimpScene *animScene =
            [SCNScene assimpSceneWithURL:[NSURL URLWithString:self.animFilePath]
                        postProcessFlags:AssimpKit_Process_FlipUVs |
                                         AssimpKit_Process_Triangulate];
        NSArray *animationKeys = animScene.animationKeys;
        // If multiple animations exist, load the first animation
        if (animationKeys.count > 0)
        {
            SCNAssimpAnimSettings *settings =
                [[SCNAssimpAnimSettings alloc] init];
            settings.repeatCount = 3;

            NSString *key = [animationKeys objectAtIndex:0];
            SCNAnimationEventBlock eventBlock =
                ^(CAAnimation *animation, id animatedObject,
                  BOOL playingBackward) {
                  NSLog(@" Animation Event triggered ");

                  // To test removing animation uncomment
                  // Then the animation wont repeat 3 times
                  // as it will be removed after 90% of the first loop
                  // is completed, as event key time is 0.9
                  // [scene.rootNode removeAnimationSceneForKey:key
                  //                            fadeOutDuration:0.3];
                  // [scene.rootNode pauseAnimationSceneForKey:key];
                  // [scene.rootNode resumeAnimationSceneForKey:key];
                };
            SCNAnimationEvent *animEvent =
                [SCNAnimationEvent animationEventWithKeyTime:0.5f
                                                       block:eventBlock];
            NSArray *animEvents =
                [[NSArray alloc] initWithObjects:animEvent, nil];
            settings.animationEvents = animEvents;
            settings.delegate = self;

            SCNScene *animation = [animScene animationSceneForKey:key];
            [scene.modelScene.rootNode addAnimationScene:animation
                                                  forKey:key
                                            withSettings:settings];
        }
    }

seems like I need
AssetImporterAnimSettings

@IBAction func unzipButton() {
        //                   unzipFile()
        
        if let pathToObject = Bundle.main.path(forResource: "ely", ofType: "fbx") {
            
            let scaleFactor:Float = 0.0025
            
            do {
                //            let assimpScene = try SCNScene.assimpScene(filePath: pathToObject, postProcessSteps: [.optimizeGraph, .optimizeMeshes]) //для дае
                let assimpScene = try SCNScene.assimpScene(filePath: pathToObject, postProcessSteps:[.defaultQuality])
                
                print("skeletonNode:",assimpScene.skeletonNode)
                print("animations:",assimpScene.animations)
                
                let modelScene = assimpScene.modelScene!
                modelScene.rootNode.childNodes.forEach {
                    $0.position =   $0.position * scaleFactor
                    $0.scale = $0.scale * scaleFactor
                    sceneView.scene.rootNode.addChildNode($0)
                    self.robotNode = $0
                    
                }
                
                for animation in assimpScene.animations{
                    
                    if let animation = animation as? AssetImporterAnimation{
                        print("animation:",animation.frameAnims)
                    }
                }
                
                for (index,animScene) in assimpScene.animationScenes{
                    print("animScene:",animScene)
                    if let animScene = animScene as? SCNScene{
                        var settings = AssetImporterAnimSettings()
                        settings.delegate = self
                        settings.repeatCount = 3
                        let eventBlock: SCNAnimationEventBlock = { animation, animatedObject, playingBackwards in
                            print("Animation Event triggered")
                        }
                        
                        let animEvent = SCNAnimationEvent.init(keyTime: 0.5, block: eventBlock)
                        let animEvents = [animEvent]
                        settings.animationEvents = animEvents
                        //self.robotNode?.addAnimationScene(animScene, forKey: "ely-1", with: settings)
                        sceneView.scene.rootNode.addAnimationScene(animScene, forKey: "ely-1", with: settings)

                    }
                }
                
            }catch {
            
            }
        }
    }

UPDATE

it seems makeAnimationScenes does this automagically.....
is there something I'm missing to trigger them?

https://dmsurti.github.io/AssimpKit/appledocs/html/index.html

Screen Shot 2020-08-08 at 12 08 17 pm

2020-08-10 15:54:59.747870+1000 demo-uni[3668:1289525] Metal GPU Frame Capture Enabled
2020-08-10 15:54:59.748448+1000 demo-uni[3668:1289525] Metal API Validation Enabled
2020-08-10 15:54:59.906564+1000 demo-uni[3668:1289525] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<NSLayoutConstraint:0x280b6acb0 UILayoutGuide:0x28113a760'UIViewSafeAreaLayoutGuide'.top == UIView:0x103b2dc30.top + 11   (active)>",
    "<NSLayoutConstraint:0x280b6aee0 V:|-(9)-[UIView:0x103b2dc30]   (active, names: '|':UIView:0x103b2cc50 )>",
    "<NSLayoutConstraint:0x280b6ad00 'UIViewSafeAreaLayoutGuide-top' V:|-(0)-[UILayoutGuide:0x28113a760'UIViewSafeAreaLayoutGuide']   (active, names: '|':UIView:0x103b2cc50 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x280b6acb0 UILayoutGuide:0x28113a760'UIViewSafeAreaLayoutGuide'.top == UIView:0x103b2dc30.top + 11   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2020-08-10 15:54:59.991548+1000 demo-uni[3668:1289525] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<NSLayoutConstraint:0x280b6ac60 UIView:0x103b2dc30.width == 104   (active)>",
    "<NSLayoutConstraint:0x280b6ae40 H:[UIView:0x103b2dc30]-(135.5)-|   (active, names: '|':UIView:0x103b2cc50 )>",
    "<NSLayoutConstraint:0x280b6ae90 H:|-(135.5)-[UIView:0x103b2dc30]   (active, names: '|':UIView:0x103b2cc50 )>",
    "<NSLayoutConstraint:0x280b07d90 'UIView-Encapsulated-Layout-Width' UIView:0x103b2cc50.width == 414   (active)>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x280b6ac60 UIView:0x103b2dc30.width == 104   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView center]
PID: 3668, TID: 1289732, Thread name: com.apple.scenekit.scnview-renderer, Queue name: com.apple.scenekit.renderingQueue.ARSCNView0x103c17fd0, QoS: 33
Backtrace:
4   demo-uni                            0x0000000102049e9c $s8demo_uni13WallChainsSetC9sceneViewACSo9ARSCNViewC_tcfc + 516
5   demo-uni                            0x0000000102049c88 $s8demo_uni13WallChainsSetC9sceneViewACSo9ARSCNViewC_tcfC + 56
6   demo-uni                            0x000000010206dd0c $s8demo_uni14ViewControllerC13wallChainsSetAA04WallfG0Cvg + 404
7   demo-uni                            0x0000000102070134 $s8demo_uni14ViewControllerC8renderer_12updateAtTimeySo16SCNSceneRenderer_p_SdtF + 216
8   demo-uni                            0x00000001020701f4 $s8demo_uni14ViewControllerC8renderer_12updateAtTimeySo16SCNSceneRenderer_p_SdtFTo + 80
9   SceneKit                            0x00000001a19f9244 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1483332
10  SceneKit                            0x00000001a19fba4c C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1493580
11  SceneKit                            0x00000001a19fc028 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1495080
12  SceneKit                            0x00000001a19fc3f8 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1496056
13  SceneKit                            0x00000001a1a9ac7c C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 2145404
14  ARKit                               0x00000001a956809c A0E267E8-217F-3175-97D2-B922D090597E + 1085596
15  SceneKit                            0x00000001a19582d8 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 824024
16  SceneKit                            0x00000001a1a64dc4 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1924548
17  libdispatch.dylib                   0x00000001037c318c _dispatch_client_callout + 20
18  libdispatch.dylib                   0x00000001037d2c34 _dispatch_lane_barrier_sync_invoke_and_complete + 176
19  SceneKit                            0x00000001a1a64d48 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1924424
20  GPUToolsCore                        0x0000000103a08114 -[DYDisplayLinkInterposer forwardDisplayLinkCallback:] + 172
21  QuartzCore                          0x00000001939bb354 37156F21-0D15-38C3-9745-B1F78F698DA8 + 74580
22  QuartzCore                          0x0000000193a8b1a4 37156F21-0D15-38C3-9745-B1F78F698DA8 + 926116
23  CoreFoundation                      0x000000018cde9584 9624AAFD-5437-3772-A507-0F357875808D + 537988
24  CoreFoundation                      0x000000018ce13f44 9624AAFD-5437-3772-A507-0F357875808D + 712516
25  CoreFoundation                      0x000000018ce135e8 9624AAFD-5437-3772-A507-0F357875808D + 710120
26  CoreFoundation                      0x000000018ce0e0e0 9624AAFD-5437-3772-A507-0F357875808D + 688352
27  CoreFoundation                      0x000000018ce0d660 CFRunLoopRunSpecific + 480
28  Foundation                          0x000000018d1576a8 2B7BD2F3-10A8-3CBA-9DE3-5E1F48D9213E + 34472
29  SceneKit                            0x00000001a19586e0 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 825056
30  SceneKit                            0x00000001a1958968 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 825704
31  libsystem_pthread.dylib             0x000000018cb9d8fc _pthread_start + 168
32  libsystem_pthread.dylib             0x000000018cba59d4 thread_start + 8
2020-08-10 15:55:00.085690+1000 demo-uni[3668:1289732] [reports] Main Thread Checker: UI API called on a background thread: -[UIView center]
PID: 3668, TID: 1289732, Thread name: com.apple.scenekit.scnview-renderer, Queue name: com.apple.scenekit.renderingQueue.ARSCNView0x103c17fd0, QoS: 33
Backtrace:
4   demo-uni                            0x0000000102049e9c $s8demo_uni13WallChainsSetC9sceneViewACSo9ARSCNViewC_tcfc + 516
5   demo-uni                            0x0000000102049c88 $s8demo_uni13WallChainsSetC9sceneViewACSo9ARSCNViewC_tcfC + 56
6   demo-uni                            0x000000010206dd0c $s8demo_uni14ViewControllerC13wallChainsSetAA04WallfG0Cvg + 404
7   demo-uni                            0x0000000102070134 $s8demo_uni14ViewControllerC8renderer_12updateAtTimeySo16SCNSceneRenderer_p_SdtF + 216
8   demo-uni                            0x00000001020701f4 $s8demo_uni14ViewControllerC8renderer_12updateAtTimeySo16SCNSceneRenderer_p_SdtFTo + 80
9   SceneKit                            0x00000001a19f9244 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1483332
10  SceneKit                            0x00000001a19fba4c C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1493580
11  SceneKit                            0x00000001a19fc028 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1495080
12  SceneKit                            0x00000001a19fc3f8 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1496056
13  SceneKit                            0x00000001a1a9ac7c C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 2145404
14  ARKit                               0x00000001a956809c A0E267E8-217F-3175-97D2-B922D090597E + 1085596
15  SceneKit                            0x00000001a19582d8 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 824024
16  SceneKit                            0x00000001a1a64dc4 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1924548
17  libdispatch.dylib                   0x00000001037c318c _dispatch_client_callout + 20
18  libdispatch.dylib                   0x00000001037d2c34 _dispatch_lane_barrier_sync_invoke_and_complete + 176
19  SceneKit                            0x00000001a1a64d48 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 1924424
20  GPUToolsCore                        0x0000000103a08114 -[DYDisplayLinkInterposer forwardDisplayLinkCallback:] + 172
21  QuartzCore                          0x00000001939bb354 37156F21-0D15-38C3-9745-B1F78F698DA8 + 74580
22  QuartzCore                          0x0000000193a8b1a4 37156F21-0D15-38C3-9745-B1F78F698DA8 + 926116
23  CoreFoundation                      0x000000018cde9584 9624AAFD-5437-3772-A507-0F357875808D + 537988
24  CoreFoundation                      0x000000018ce13f44 9624AAFD-5437-3772-A507-0F357875808D + 712516
25  CoreFoundation                      0x000000018ce135e8 9624AAFD-5437-3772-A507-0F357875808D + 710120
26  CoreFoundation                      0x000000018ce0e0e0 9624AAFD-5437-3772-A507-0F357875808D + 688352
27  CoreFoundation                      0x000000018ce0d660 CFRunLoopRunSpecific + 480
28  Foundation                          0x000000018d1576a8 2B7BD2F3-10A8-3CBA-9DE3-5E1F48D9213E + 34472
29  SceneKit                            0x00000001a19586e0 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 825056
30  SceneKit                            0x00000001a1958968 C0BD5E5F-5534-3E55-8C5E-117A3C96F734 + 825704
31  libsystem_pthread.dylib             0x000000018cb9d8fc _pthread_start + 168
32  libsystem_pthread.dylib             0x000000018cba59d4 thread_start + 8
2020-08-10 15:55:08.130319+1000 demo-uni[3668:1289732] [SceneKit] Error: Scene <SCNScene: 0x281d34600> is modified within a rendering callback of another scene (<SCNScene: 0x281d3f180>). This is not allowed and may lead to crash
2020-08-10 15:55:09.326974+1000 demo-uni[3668:1289820] [Technique] World tracking performance is being affected by resource constraints [1]
2020-08-10 15:55:09.327135+1000 demo-uni[3668:1289820] [Technique] VIO error callback: 188258.653859, 1, Frame processing rate has fallen below pre-set threshold
2020-08-10 15:55:09.738028+1000 demo-uni[3668:1289820] [Technique] VIO error callback: 188259.053859, 1, Frame processing rate has fallen below pre-set threshold
2020-08-10 15:55:09.788730+1000 demo-uni[3668:1289820] [Technique] VIO error callback: 188259.153859, 1, Frame processing rate has fallen below pre-set threshold
2020-08-10 15:55:09.871152+1000 demo-uni[3668:1289820] [Technique] VIO error callback: 188259.253859, 1, Frame processing rate has fallen below pre-set threshold
2020-08-10 15:55:09.969366+1000 demo-uni[3668:1289820] [Technique] VIO error callback: 188259.353859, 1, Frame processing rate has fallen below pre-set threshold
2020-08-10 15:55:10.068804+1000 demo-uni[3668:1289820] [Technique] VIO error callback: 188259.453859, 1, Frame processing rate has fallen below pre-set threshold
2020-08-10 15:55:10.173277+1000 demo-uni[3668:1289820] [Technique] VIO error callback: 188259.553859, 1, Frame processing rate has fallen below pre-set threshold
2020-08-10 15:55:28.237068+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.237121+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.237936+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.238088+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.238326+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.238777+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.239647+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.241327+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.244694+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX6ObjectE, N6Assimp3FBX5ModelE, N6Assimp3FBX5ModelE.
2020-08-10 15:55:28.245363+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.245401+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.245464+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.245523+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.245617+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.245825+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.246162+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.246873+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
2020-08-10 15:55:28.248116+1000 demo-uni[3668:1289525] dynamic_cast error 2: One or more of the following type_info's has hidden visibility or is defined in more than one translation unit. They should all have public visibility. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE, N6Assimp3FBX13TypedPropertyIbEE.
2020-08-10 15:55:28.248212+1000 demo-uni[3668:1289525] dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N6Assimp3FBX8PropertyE, N6Assimp3FBX13TypedPropertyIiEE.
Make an SCNScene
Creating node RootNode with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 0.0, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node RootNode position is: SCNVector3()
Creating node Armature with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 0.0, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node Armature position is: SCNVector3()
Creating node mixamorig:Hips with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -0.05676341, b1: 0.0, b2: 1.0, b3: 0.0, b4: 98.255325, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.65341663, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:Hips position is: SCNVector3()
Creating node mixamorig:Spine with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99999905, a2: 0.001180674, a3: 0.000113031885, a4: 0.012471489, b1: -0.0011860721, b2: 0.9954811, b3: 0.09494987, b4: 10.445221, c1: -4.1626885e-07, c2: -0.09494992, c3: 0.99548197, c4: -0.996275, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:Spine position is: SCNVector3()
Creating node mixamorig:Spine1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 1.38994665e-08, b1: 0.0, b2: 0.9999999, b3: 0.0, b4: 12.241415, c1: 0.0, c2: 0.0, c3: 1.0, c4: 3.0601677e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:Spine1 position is: SCNVector3()
Creating node mixamorig:Spine2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -2.3253051e-08, b1: 0.0, b2: 1.0, b3: 0.0, b4: 13.990198, c1: 0.0, c2: 0.0, c3: 0.99999994, c4: 8.951937e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:Spine2 position is: SCNVector3()
Creating node mixamorig:Neck with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9999995, a2: -0.0011939885, a3: 9.458743e-11, a4: -1.5756541e-08, b1: 0.0011885941, b2: 0.99548155, b3: -0.09494989, b4: 15.738949, c1: 0.000113369024, c2: 0.09494987, c3: 0.9954818, c4: 1.7221214e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:Neck position is: SCNVector3()
Creating node mixamorig:Head with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -7.594281e-11, b1: 0.0, b2: 1.0000001, b3: 0.0, b4: 7.0878143, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.8886855, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:Head position is: SCNVector3()
Creating node mixamorig:HeadTop_End with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 2.3851499e-10, b1: 0.0, b2: 1.0, b3: 0.0, b4: 21.324432, c1: 0.0, c2: 0.0, c3: 1.0, c4: 2.6737056, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:HeadTop_End position is: SCNVector3()
Creating node mixamorig:HeadTop_End_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 21.491394, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:HeadTop_End_end position is: SCNVector3()
Creating node mixamorig:LeftShoulder with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: -0.02237853, a2: 0.96580726, a3: -0.25829428, a4: 6.218054, b1: -0.006378694, b2: -0.25849187, b3: -0.96599185, b4: 12.662543, c1: -0.99972916, c2: -0.019969918, c3: 0.0119452495, c4: -0.26091203, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftShoulder position is: SCNVector3()
Creating node mixamorig:LeftArm with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99292433, a2: -0.022500962, a3: 0.11659544, a4: -8.940697e-08, b1: -0.008682878, b2: 0.96549773, b3: 0.2602685, b4: 13.884763, c1: -0.1184287, c2: -0.2594392, c3: 0.95847166, c4: 2.1904707e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftArm position is: SCNVector3()
Creating node mixamorig:LeftForeArm with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.96166635, a2: 6.189588e-07, a3: 0.2742239, a4: 1.179511e-06, b1: -2.8164177e-07, b2: 1.0000001, b3: -1.2694495e-06, b4: 21.715612, c1: -0.2742241, c2: 1.1435538e-06, c3: 0.9616656, c4: -4.4800872e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftForeArm position is: SCNVector3()
Creating node mixamorig:LeftHand with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.996433, a2: 0.083389595, a3: -0.012855671, a4: 1.2059332e-05, b1: -0.08347981, b2: 0.9964872, b3: -0.0066535827, b4: 26.413311, c1: 0.012255662, c2: 0.007703048, c3: 0.999895, c4: -3.0285853e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHand position is: SCNVector3()
Creating node mixamorig:LeftHandThumb1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.79987085, a2: 0.5754535, a3: -0.17047077, a4: -2.8091161, b1: 0.60000664, b2: -0.76003724, b3: 0.2496715, b4: 3.7278607, c1: 0.014110214, c2: -0.3019885, c3: -0.9532073, c4: 1.3310765, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandThumb1 position is: SCNVector3()
Creating node mixamorig:LeftHandThumb2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9987312, a2: 0.049602795, a3: 0.008693145, a4: -0.20260704, b1: -0.04960069, b2: 0.9987695, b3: -0.00045510498, b4: -3.8777673, c1: -0.00870502, c2: 2.3341583e-05, c3: 0.99996185, c4: -9.283423e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandThumb2 position is: SCNVector3()
Creating node mixamorig:LeftHandThumb3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9975761, a2: 0.06958419, a3: 0.00059370877, a4: -0.010765195, b1: -0.06958422, b2: 0.997576, b3: -2.427754e-06, b4: -4.193759, c1: -0.0005924388, c2: -3.889089e-05, c3: 0.9999997, c4: 6.4969063e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandThumb3 position is: SCNVector3()
Creating node mixamorig:LeftHandThumb4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99999994, a2: 0.0, a3: 0.0, a4: 0.21334791, b1: 0.0, b2: 0.9999998, b3: 0.0, b4: -3.1771622, c1: 0.0, c2: 0.0, c3: 0.9999999, c4: -1.3947487e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandThumb4 position is: SCNVector3()
Creating node mixamorig:LeftHandThumb4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 3.1843288, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandThumb4_end position is: SCNVector3()
Creating node mixamorig:LeftHandIndex1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99945354, a2: 0.032647464, a3: -0.005486314, a4: -3.9728847, b1: 0.032608062, b2: -0.9994422, b3: -0.007136986, b4: 13.386845, c1: -0.0057162694, c2: 0.006954171, c3: -0.9999597, c4: -0.13160533, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandIndex1 position is: SCNVector3()
Creating node mixamorig:LeftHandIndex2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9991777, a2: 0.040114306, a3: 0.005912489, a4: -0.12627149, b1: -0.040113226, b2: 0.9991952, b3: -0.00030116018, b4: -2.4779737, c1: -0.0059198104, c2: 6.3743566e-05, c3: 0.9999826, c4: 9.768453e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandIndex2 position is: SCNVector3()
Creating node mixamorig:LeftHandIndex3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9978454, a2: 0.06560028, a3: 0.0006955773, a4: -0.021886706, b1: -0.06560023, b2: 0.9978466, b3: -8.635647e-06, b4: -2.0279047, c1: -0.0006946454, c2: -3.7013033e-05, c3: 0.9999996, c4: 2.1860033e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandIndex3 position is: SCNVector3()
Creating node mixamorig:LeftHandIndex4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.14815676, b1: 0.0, b2: 1.0, b3: 0.0, b4: -2.6993263, c1: 0.0, c2: 0.0, c3: 1.0, c4: -6.576738e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandIndex4 position is: SCNVector3()
Creating node mixamorig:LeftHandIndex4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.7033772, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandIndex4_end position is: SCNVector3()
Creating node mixamorig:LeftHandMiddle1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9971607, a2: 0.074955575, a3: 0.0072571915, a4: -1.1493235, b1: 0.0750001, b2: -0.997165, b3: -0.0060690846, b4: 13.719024, c1: 0.0067816027, c2: 0.00659604, c3: -0.9999706, c4: -0.09166986, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandMiddle1 position is: SCNVector3()
Creating node mixamorig:LeftHandMiddle2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9999858, a2: -0.004786521, a3: 0.002391056, a4: -0.023430526, b1: 0.0047865757, b2: 0.99998856, b3: -1.6872256e-05, b4: -2.7363927, c1: -0.0023909484, c2: 2.8316987e-05, c3: 0.9999971, c4: 1.6348167e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandMiddle2 position is: SCNVector3()
Creating node mixamorig:LeftHandMiddle3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9994995, a2: 0.03162944, a3: 0.00028729052, a4: -0.030904174, b1: -0.031629413, b2: 0.9995003, b3: -4.643484e-06, b4: -2.3167245, c1: -0.00028729351, c2: -4.4456724e-06, c3: 1.0000002, c4: -6.180402e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandMiddle3 position is: SCNVector3()
Creating node mixamorig:LeftHandMiddle4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.05434227, b1: 0.0, b2: 0.99999994, b3: 0.0, b4: -2.9673038, c1: 0.0, c2: 0.0, c3: 0.99999994, c4: 1.378615e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandMiddle4 position is: SCNVector3()
Creating node mixamorig:LeftHandMiddle4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.9677951, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandMiddle4_end position is: SCNVector3()
Creating node mixamorig:LeftHandRing1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99049634, a2: 0.13388945, a3: 0.03149125, a4: 1.7641125, b1: 0.13408084, b2: -0.990962, b3: -0.0040340214, b4: 13.235846, c1: 0.03066656, c2: 0.008218056, c3: -0.9994954, c4: 0.54892105, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandRing1 position is: SCNVector3()
Creating node mixamorig:LeftHandRing2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9977095, a2: -0.06755327, a3: -0.003450696, a4: 0.13226986, b1: 0.06755303, b2: 0.997716, b3: -0.00017532856, b4: -2.6051326, c1: 0.0034546596, c2: -5.8178048e-05, c3: 0.99999315, c4: -1.2151344e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandRing2 position is: SCNVector3()
Creating node mixamorig:LeftHandRing3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9998436, a2: -0.017150264, a3: -0.0043431795, a4: -0.036605358, b1: 0.017150747, b2: 0.99985313, b3: 7.426572e-05, b4: -2.1703362, c1: 0.004341264, c2: -0.00014874278, c3: 0.9999914, c4: 1.864633e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandRing3 position is: SCNVector3()
Creating node mixamorig:LeftHandRing4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -0.095641136, b1: 0.0, b2: 1.0, b3: 0.0, b4: -2.809536, c1: 0.0, c2: 0.0, c3: 1.0, c4: 1.6119695e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandRing4 position is: SCNVector3()
Creating node mixamorig:LeftHandRing4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.8111646, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandRing4_end position is: SCNVector3()
Creating node mixamorig:LeftHandPinky1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.98181117, a2: 0.14927787, a3: 0.11732408, a4: 4.13332, b1: 0.14994164, b2: -0.9886898, b3: 0.003199596, b4: 12.87177, c1: 0.11647478, c2: 0.014450344, c3: -0.99308914, c4: 2.2160537, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandPinky1 position is: SCNVector3()
Creating node mixamorig:LeftHandPinky2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9943223, a2: -0.106393225, a3: -0.0016498831, a4: 0.12179518, b1: 0.10639313, b2: 0.99432415, b3: -0.00011092411, b4: -1.8226079, c1: 0.0016523198, c2: -6.524196e-05, c3: 0.99999833, c4: -9.197072e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandPinky2 position is: SCNVector3()
Creating node mixamorig:LeftHandPinky3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99996376, a2: 0.0068212464, a3: 0.0051141228, a4: -0.05990243, b1: -0.0068202903, b2: 0.99997675, b3: -0.00020449085, b4: -1.5017302, c1: -0.0051154, c2: 0.00016960366, c3: 0.9999866, c4: -9.43456e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandPinky3 position is: SCNVector3()
Creating node mixamorig:LeftHandPinky4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99999994, a2: 0.0, a3: 0.0, a4: -0.061891317, b1: 0.0, b2: 0.99999994, b3: 0.0, b4: -1.8725207, c1: 0.0, c2: 0.0, c3: 0.99999994, c4: 1.4186953e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandPinky4 position is: SCNVector3()
Creating node mixamorig:LeftHandPinky4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 1.8735473, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftHandPinky4_end position is: SCNVector3()
Creating node mixamorig:RightShoulder with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: -0.032777578, a2: -0.96522003, a3: 0.2593769, a4: -6.2143745, b1: 0.008455266, b2: -0.25977486, b3: -0.96563256, b4: 12.653912, c1: 0.99942714, c2: -0.029457984, c3: 0.01667598, c4: -0.32676837, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightShoulder position is: SCNVector3()
Creating node mixamorig:RightArm with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9962646, a2: 0.03265323, a3: -0.07994098, a4: -7.748604e-07, b1: -0.01077842, b2: 0.9655316, b3: 0.2600615, b4: 13.891395, c1: 0.085677445, c2: -0.25822845, c3: 0.9622768, c4: -2.3543835e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightArm position is: SCNVector3()
Creating node mixamorig:RightForeArm with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9478643, a2: -9.3263324e-08, a3: -0.31867322, a4: -1.3505069e-06, b1: -2.431147e-08, b2: 0.9999996, b3: -3.6497366e-07, b4: 21.716059, c1: 0.31867313, c2: 3.5369294e-07, c3: 0.9478646, c4: 6.178394e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightForeArm position is: SCNVector3()
Creating node mixamorig:RightHand with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99497455, a2: -0.10009315, a3: -0.002540526, a4: -2.7565184e-06, b1: 0.100099884, b2: 0.99497426, b3: 0.0027172675, b4: 26.37904, c1: 0.0022557767, c2: -0.0029579215, c3: 0.9999929, c4: 1.00354955e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHand position is: SCNVector3()
Creating node mixamorig:RightHandThumb1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.78485173, a2: -0.592917, a3: 0.1801545, a4: 3.1704636, b1: -0.6196669, b2: -0.74889076, b3: 0.23489192, b4: 3.8157814, c1: -0.004355379, c2: -0.29599127, c3: -0.9551804, c4: 1.1497728, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandThumb1 position is: SCNVector3()
Creating node mixamorig:RightHandThumb2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99879056, a2: -0.048283745, a3: -0.009296369, a4: 0.2232164, b1: 0.04828107, b2: 0.9988341, b3: -0.0005108082, b4: -4.067917, c1: 0.00931019, c2: 6.135177e-05, c3: 0.9999568, c4: 9.596348e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandThumb2 position is: SCNVector3()
Creating node mixamorig:RightHandThumb3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99579173, a2: -0.09160059, a3: -0.0028443877, a4: 0.02614975, b1: 0.09160092, b2: 0.99579567, b3: -1.7778071e-05, b4: -4.0238333, c1: 0.0028340577, c2: -0.00024284523, c3: 0.9999958, c4: -9.23872e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandThumb3 position is: SCNVector3()
Creating node mixamorig:RightHandThumb4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99999994, a2: 0.0, a3: 0.0, a4: -0.24937534, b1: 0.0, b2: 1.0, b3: 0.0, b4: -2.9194899, c1: 0.0, c2: 0.0, c3: 0.9999999, c4: 5.364418e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandThumb4 position is: SCNVector3()
Creating node mixamorig:RightHandThumb4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.9301155, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandThumb4_end position is: SCNVector3()
Creating node mixamorig:RightHandIndex1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9997214, a2: -0.02259251, a3: 0.0066141854, a4: 4.2313375, b1: -0.02260658, b2: -0.99974257, b3: 0.0020660553, b4: 13.3323765, c1: 0.006565803, c2: -0.0022150106, c3: -0.99997467, c4: -0.33492133, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandIndex1 position is: SCNVector3()
Creating node mixamorig:RightHandIndex2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99731463, a2: -0.072718106, a3: -0.008644692, a4: 0.19383323, b1: 0.07271496, b2: 0.99735266, b3: -0.0006735776, b4: -2.4899895, c1: 0.008670773, c2: 4.3170392e-05, c3: 0.99996346, c4: -1.8032442e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandIndex2 position is: SCNVector3()
Creating node mixamorig:RightHandIndex3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9967106, a2: -0.08104003, a3: 0.0006302017, a4: 0.010123104, b1: 0.08104006, b2: 0.99671054, b3: 2.7400633e-06, b4: -2.064481, c1: -0.00062835094, c2: 4.8340535e-05, c3: 0.99999964, c4: 2.525354e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandIndex3 position is: SCNVector3()
Creating node mixamorig:RightHandIndex4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -0.20395756, b1: 0.0, b2: 0.99999994, b3: 0.0, b4: -2.6706846, c1: 0.0, c2: 0.0, c3: 0.99999994, c4: -1.2058037e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandIndex4 position is: SCNVector3()
Creating node mixamorig:RightHandIndex4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.6784697, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandIndex4_end position is: SCNVector3()
Creating node mixamorig:RightHandMiddle1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99682087, a2: -0.079580545, a3: -0.0039850664, a4: 1.4031386, b1: -0.07956836, b2: -0.9968247, b3: 0.0031338406, b4: 13.946581, c1: -0.0042217984, c2: -0.0028067864, c3: -0.99998915, c4: 0.038103327, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandMiddle1 position is: SCNVector3()
Creating node mixamorig:RightHandMiddle2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99986863, a2: -0.015918521, a3: -0.0030936936, a4: 0.055424213, b1: 0.015918404, b2: 0.9998733, b3: -6.29391e-05, b4: -2.6883934, c1: 0.003094307, c2: 1.3684174e-05, c3: 0.99999434, c4: 1.974983e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandMiddle2 position is: SCNVector3()
Creating node mixamorig:RightHandMiddle3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99963266, a2: -0.02708387, a3: -0.0007628385, a4: 0.010795355, b1: 0.027083868, b2: 0.9996332, b3: -4.79657e-06, b4: -2.3054323, c1: 0.00076268805, c2: -1.5865804e-05, c3: 1.0000001, c4: 3.6942103e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandMiddle3 position is: SCNVector3()
Creating node mixamorig:RightHandMiddle4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -0.06621766, b1: 0.0, b2: 1.0, b3: 0.0, b4: -2.9545326, c1: 0.0, c2: 0.0, c3: 0.99999994, c4: -5.8407895e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandMiddle4 position is: SCNVector3()
Creating node mixamorig:RightHandMiddle4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.955281, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandMiddle4_end position is: SCNVector3()
Creating node mixamorig:RightHandRing1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9878348, a2: -0.15406115, a3: -0.02115659, a4: -1.3726916, b1: -0.1539921, b2: -0.9880607, b3: 0.0048611094, b4: 13.538776, c1: -0.021652896, c2: -0.0015440264, c3: -0.99976414, c4: 0.9085393, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandRing1 position is: SCNVector3()
Creating node mixamorig:RightHandRing2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9932655, a2: 0.11585798, a3: -0.00052631024, a4: -0.13469505, b1: -0.11585804, b2: 0.9932651, b3: 2.9859111e-05, b4: -2.4726834, c1: 0.0005262255, c2: 3.131924e-05, c3: 0.9999993, c4: -1.3506826e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandRing2 position is: SCNVector3()
Creating node mixamorig:RightHandRing3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99810225, a2: -0.06132086, a3: 0.0055700643, a4: 0.1337905, b1: 0.06131986, b2: 0.99811834, b3: 0.00034435658, b4: -2.1659026, c1: -0.0055806967, c2: -2.1475084e-06, c3: 0.99998444, c4: -6.0039456e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandRing3 position is: SCNVector3()
Creating node mixamorig:RightHandRing4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0009013489, b1: 0.0, b2: 1.0, b3: 0.0, b4: -2.660405, c1: 0.0, c2: 0.0, c3: 1.0, c4: 2.8822105e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandRing4 position is: SCNVector3()
Creating node mixamorig:RightHandRing4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.6604085, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandRing4_end position is: SCNVector3()
Creating node mixamorig:RightHandPinky1 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9792566, a2: -0.17652892, a3: -0.09946592, a4: -3.1343532, b1: -0.17614232, b2: -0.9842827, b3: 0.012724311, b4: 11.769386, c1: -0.10014869, c2: 0.0050597936, c3: -0.99496007, c4: 1.9060074, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandPinky1 position is: SCNVector3()
Creating node mixamorig:RightHandPinky2 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9831697, a2: 0.18264659, a3: -0.0041451124, a4: -0.1743331, b1: -0.18264693, b2: 0.98317796, b3: 0.0003198645, b4: -2.2420824, c1: 0.004133809, c2: 0.0004426109, c3: 0.99999076, c4: -9.9082245e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandPinky2 position is: SCNVector3()
Creating node mixamorig:RightHandPinky3 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99297154, a2: -0.11830571, a3: 0.0033212898, a4: 0.20481968, b1: 0.118305214, b2: 0.99297684, b3: 0.00035566845, b4: -1.9230525, c1: -0.0033400427, c2: 3.9757277e-05, c3: 0.9999943, c4: 8.705945e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandPinky3 position is: SCNVector3()
Creating node mixamorig:RightHandPinky4 with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99999994, a2: 0.0, a3: 0.0, a4: -0.030481696, b1: 0.0, b2: 0.99999994, b3: 0.0, b4: -2.4423075, c1: 0.0, c2: 0.0, c3: 0.99999994, c4: -2.2445893e-05, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandPinky4 position is: SCNVector3()
Creating node mixamorig:RightHandPinky4_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 2.4425006, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightHandPinky4_end position is: SCNVector3()
Creating node mixamorig:LeftUpLeg with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: -0.9998969, a2: 0.013694213, a3: 0.0040844493, a4: 10.128629, b1: -0.013496454, b2: -0.9988943, b3: 0.04504206, b4: -5.802905, c1: 0.004696745, c2: 0.044982374, c3: 0.9989762, c4: -0.5827036, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftUpLeg position is: SCNVector3()
Creating node mixamorig:LeftLeg with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9996037, a2: 0.027928252, a3: -0.0036632833, a4: 8.260831e-07, b1: -0.026940541, b2: 0.98590773, b3: 0.16510718, b4: 41.134518, c1: 0.008222813, c2: -0.16494292, c3: 0.98626935, c4: 4.7311187e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftLeg position is: SCNVector3()
Creating node mixamorig:LeftFoot with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.9919146, a2: -0.122593984, a3: 0.032797195, a4: 1.3839453e-06, b1: 0.09234006, b2: 0.5199465, b3: -0.84919286, b4: 37.253517, c1: 0.08705317, c2: 0.8453555, c3: 0.52706295, c4: 5.5879354e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftFoot position is: SCNVector3()
Creating node mixamorig:LeftToeBase with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.98678595, a2: -0.10396436, a3: -0.124280445, a4: 9.834766e-07, b1: -6.299515e-07, b2: 0.76701224, b3: -0.6416328, b4: 19.919283, c1: 0.16203159, c2: 0.63315463, c3: 0.7568758, c4: 7.4505806e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftToeBase position is: SCNVector3()
Creating node mixamorig:LeftToe_End with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -2.2351742e-08, b1: 0.0, b2: 1.0, b3: 0.0, b4: 7.718031, c1: 0.0, c2: 0.0, c3: 1.0, c4: 1.7881393e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftToe_End position is: SCNVector3()
Creating node mixamorig:LeftToe_End_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 7.7180314, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:LeftToe_End_end position is: SCNVector3()
Creating node mixamorig:RightUpLeg with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: -0.9998958, a2: -0.013681309, a3: -0.0042653535, a4: -10.015044, b1: 0.0134532815, b2: -0.99868125, b3: 0.04954859, b4: -5.8028994, c1: -0.0049376115, c2: 0.04948614, c3: 0.9987622, c4: -0.7206612, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightUpLeg position is: SCNVector3()
Creating node mixamorig:RightLeg with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99960494, a2: -0.027863145, a3: 0.0038109142, a4: 4.461035e-07, b1: 0.026803436, b2: 0.98494464, b3: 0.1707801, b4: 41.135094, c1: -0.00851201, c2: -0.17061035, c3: 0.98530227, c4: 8.195639e-08, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightLeg position is: SCNVector3()
Creating node mixamorig:RightFoot with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.99190784, a2: 0.122666225, a3: -0.03273101, a4: -3.5390258e-08, b1: -0.09243344, b2: 0.52102804, b3: -0.8485198, b4: 37.26747, c1: -0.08703095, c2: 0.8446786, c3: 0.5281507, c4: 1.0430813e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightFoot position is: SCNVector3()
Creating node mixamorig:RightToeBase with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 0.98649526, a2: 0.105438195, a3: 0.12533915, a4: 9.3877316e-07, b1: 1.9027635e-08, b2: 0.76524365, b3: -0.6437401, b4: 19.857279, c1: -0.16378993, c2: 0.63504696, c3: 0.7549088, c4: -9.983778e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightToeBase position is: SCNVector3()
Creating node mixamorig:RightToe_End with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: -7.1525574e-07, b1: 0.0, b2: 1.0, b3: 0.0, b4: 7.6497264, c1: 0.0, c2: 0.0, c3: 1.0, c4: 1.4901161e-07, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightToe_End position is: SCNVector3()
Creating node mixamorig:RightToe_End_end with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: 1.0, a2: 0.0, a3: 0.0, a4: 0.0, b1: 0.0, b2: 1.0, b3: 0.0, b4: 7.6497254, c1: 0.0, c2: 0.0, c3: 1.0, c4: 0.0, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node mixamorig:RightToe_End_end position is: SCNVector3()
Creating node ely_vanguardsoldier_kerwinatienza_Mesh with 1 meshes
vertexCount : 30748
Getting vertices
Getting normals
Getting texture coordinates
Material name is ely_vanguardsoldier_kerwinatienza_M
Loading texture type : Diffuse
has textures: 1
has embedded textures: 0
tex file name is ely_diffuse.png
tex path is /private/var/containers/Bundle/Application/08A56B20-E8C4-4BD8-A40A-B623FAFE4BDA/demo-uni.app/ely_diffuse.png
Generating external texture
Loading texture type : Specular
has textures: 1
has embedded textures: 0
tex file name is ely_specular.png
tex path is /private/var/containers/Bundle/Application/08A56B20-E8C4-4BD8-A40A-B623FAFE4BDA/demo-uni.app/ely_specular.png
Generating external texture
Loading texture type : Ambient
has textures: 0
has embedded textures: 0
Extracting color
Loading texture type : Emissive
has textures: 0
has embedded textures: 0
Extracting color
Loading texture type : Reflection
has textures: 0
has embedded textures: 0
Extracting color
Loading texture type : Opacity
has textures: 0
has embedded textures: 0
Extracting color
Loading texture type : Normals
has textures: 0
has embedded textures: 0
Extracting color
Loading texture type : Height
has textures: 0
has embedded textures: 0
Extracting color
Loading texture type : Displacement
has textures: 0
has embedded textures: 0
Extracting color
Loading texture type : Shininess
has textures: 0
has embedded textures: 0
Extracting color
Loading multiply color
Loading blend mode
Using alpha blend mode
Loading cull/double sided mode
Loading shininess
shininess: 0
Loading lighting model
aiNodeTransform: aiMatrix4x4(a1: 0.9999999, a2: 0.0, a3: 0.0, a4: -1.9073486e-06, b1: 0.0, b2: 1.0, b3: 0.0, b4: -1.9767913, c1: 0.0, c2: 0.0, c3: 1.0, c4: -1.0969205e-06, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node ely_vanguardsoldier_kerwinatienza_Mesh position is: SCNVector3()
Creating node Lamp with 0 meshes
vertexCount : 0
Creating light for node Lamp
ambient 0.0, 0.0, 0.0 
diffuse 0.0, 0.0, 0.0 
specular 0.0, 0.0, 0.0 
inner angle 6.2831855
outer angle 6.2831855
att const 0.0
att linear 0.0
att quad 2.2222247e-07
position 0.0, 0.0, 0.0 
Setting color: 1.0 1.0 1.0 
aiNodeTransform: aiMatrix4x4(a1: -29.086468, a2: 56.639313, a3: 77.1101, a4: 116.68258, b1: -5.5189037, b2: 79.46724, b3: -60.45247, b4: 325.3772, c1: -95.51712, c2: -21.839115, c3: -19.988338, c4: 424.66467, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node Lamp position is: SCNVector3()
Creating node Camera with 0 meshes
vertexCount : 0
aiNodeTransform: aiMatrix4x4(a1: -65.15583, a2: -32.401337, a3: 68.59206, a4: 748.11316, b1: -44.527134, b2: 89.53957, b3: -1.1920928e-05, b4: 534.3665, c1: -61.41703, c2: -30.542088, c3: -72.76763, c4: 650.764, d1: 0.0, d2: 0.0, d3: 0.0, d4: 1.0)
Node Camera position is: SCNVector3()
bone names 50: ["mixamorig:Hips", "mixamorig:Spine", "mixamorig:Spine1", "mixamorig:Spine2", "mixamorig:Neck", "mixamorig:Head", "mixamorig:LeftShoulder", "mixamorig:LeftArm", "mixamorig:LeftForeArm", "mixamorig:LeftHand", "mixamorig:LeftHandThumb1", "mixamorig:LeftHandThumb2", "mixamorig:LeftHandIndex1", "mixamorig:LeftHandIndex2", "mixamorig:LeftHandIndex3", "mixamorig:LeftHandMiddle1", "mixamorig:LeftHandMiddle2", "mixamorig:LeftHandMiddle3", "mixamorig:LeftHandRing1", "mixamorig:LeftHandRing2", "mixamorig:LeftHandRing3", "mixamorig:LeftHandPinky1", "mixamorig:LeftHandPinky2", "mixamorig:RightShoulder", "mixamorig:RightArm", "mixamorig:RightForeArm", "mixamorig:RightHand", "mixamorig:RightHandThumb1", "mixamorig:RightHandThumb2", "mixamorig:RightHandThumb3", "mixamorig:RightHandIndex1", "mixamorig:RightHandIndex2", "mixamorig:RightHandIndex3", "mixamorig:RightHandMiddle1", "mixamorig:RightHandMiddle2", "mixamorig:RightHandMiddle3", "mixamorig:RightHandRing1", "mixamorig:RightHandRing2", "mixamorig:RightHandRing3", "mixamorig:RightHandPinky1", "mixamorig:RightHandPinky2", "mixamorig:RightHandPinky3", "mixamorig:LeftUpLeg", "mixamorig:LeftLeg", "mixamorig:LeftFoot", "mixamorig:LeftToeBase", "mixamorig:RightUpLeg", "mixamorig:RightLeg", "mixamorig:RightFoot", "mixamorig:RightToeBase"]
unique bone names 50: ["mixamorig:Hips", "mixamorig:Spine", "mixamorig:Spine1", "mixamorig:Spine2", "mixamorig:Neck", "mixamorig:Head", "mixamorig:LeftShoulder", "mixamorig:LeftArm", "mixamorig:LeftForeArm", "mixamorig:LeftHand", "mixamorig:LeftHandThumb1", "mixamorig:LeftHandThumb2", "mixamorig:LeftHandIndex1", "mixamorig:LeftHandIndex2", "mixamorig:LeftHandIndex3", "mixamorig:LeftHandMiddle1", "mixamorig:LeftHandMiddle2", "mixamorig:LeftHandMiddle3", "mixamorig:LeftHandRing1", "mixamorig:LeftHandRing2", "mixamorig:LeftHandRing3", "mixamorig:LeftHandPinky1", "mixamorig:LeftHandPinky2", "mixamorig:RightShoulder", "mixamorig:RightArm", "mixamorig:RightForeArm", "mixamorig:RightHand", "mixamorig:RightHandThumb1", "mixamorig:RightHandThumb2", "mixamorig:RightHandThumb3", "mixamorig:RightHandIndex1", "mixamorig:RightHandIndex2", "mixamorig:RightHandIndex3", "mixamorig:RightHandMiddle1", "mixamorig:RightHandMiddle2", "mixamorig:RightHandMiddle3", "mixamorig:RightHandRing1", "mixamorig:RightHandRing2", "mixamorig:RightHandRing3", "mixamorig:RightHandPinky1", "mixamorig:RightHandPinky2", "mixamorig:RightHandPinky3", "mixamorig:LeftUpLeg", "mixamorig:LeftLeg", "mixamorig:LeftFoot", "mixamorig:LeftToeBase", "mixamorig:RightUpLeg", "mixamorig:RightLeg", "mixamorig:RightFoot", "mixamorig:RightToeBase"]
unique bone nodes 50: [<SCNNode: 0x28143e800 'mixamorig:Hips' pos(-0.056763 98.255325 0.653417) | 3 children>, <SCNNode: 0x28143d000 'mixamorig:Spine' pos(0.012471 10.445221 -0.996275) rot(-0.999899 0.000597 -0.012462 0.095102) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143d500 'mixamorig:Spine1' pos(0.000000 12.241415 0.000000) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143fd00 'mixamorig:Spine2' pos(-0.000000 13.990198 0.000001) scale(1.000000 1.000000 1.000000) | 3 children>, <SCNNode: 0x28143c800 'mixamorig:Neck' pos(-0.000000 15.738949 0.000000) rot(0.999925 -0.000597 0.012546 0.095100) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143e900 'mixamorig:Head' pos(-0.000000 7.087814 0.888686) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143eb00 'mixamorig:LeftShoulder' pos(6.218054 12.662543 -0.260912) rot(-0.611953 -0.479611 0.628877 4.025076) scale(1.000000 1.000000 0.999999) | 1 child>, <SCNNode: 0x28143f100 'mixamorig:LeftArm' pos(-0.000000 13.884763 0.000022) rot(-0.910892 0.411927 0.024219 0.289292) scale(1.000000 1.000000 1.000001) | 1 child>, <SCNNode: 0x28143e500 'mixamorig:LeftForeArm' pos(0.000001 21.715612 -0.000004) rot(0.000004 1.000000 -0.000002 0.277783) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143ea00 'mixamorig:LeftHand' pos(0.000012 26.413311 -0.000030) rot(0.084770 -0.148273 -0.985298 0.084782) scale(0.999999 1.000000 1.000000) | 5 children>, <SCNNode: 0x28143d800 'mixamorig:LeftHandThumb1' pos(-2.809116 3.727861 1.331077) rot(0.947481 0.317019 -0.042170 3.436989) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143fe00 'mixamorig:LeftHandThumb2' pos(-0.202607 -3.877767 -0.000009) rot(0.004750 0.172738 -0.984945 0.050382) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143dc00 'mixamorig:LeftHandIndex1' pos(-3.972885 13.386845 -0.131605) rot(0.999863 0.016316 -0.002801 3.134546) scale(1.000002 0.999999 1.000000) | 1 child>, <SCNNode: 0x28143d400 'mixamorig:LeftHandIndex2' pos(-0.126271 -2.477974 0.000010) rot(0.004500 0.145925 -0.989424 0.040555) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28143df00 'mixamorig:LeftHandIndex3' pos(-0.021887 -2.027905 0.000002) rot(-0.000216 0.010595 -0.999895 0.065655) scale(1.000000 1.000001 1.000000) | 1 child>, <SCNNode: 0x281425b00 'mixamorig:LeftHandMiddle1' pos(-1.149323 13.719024 -0.091670) rot(0.999290 0.037516 0.003512 3.135256) scale(1.000000 1.000000 1.000015) | 1 child>, <SCNNode: 0x281427d00 'mixamorig:LeftHandMiddle2' pos(-0.023431 -2.736393 0.000002) rot(0.004224 0.447014 0.894877 0.005349) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281426300 'mixamorig:LeftHandMiddle3' pos(-0.030904 -2.316725 -0.000006) rot(0.000003 0.009084 -1.000133 0.031629) scale(1.000000 1.000001 1.000000) | 1 child>, <SCNNode: 0x281424500 'mixamorig:LeftHandRing1' pos(1.764112 13.235846 0.548921) rot(0.997621 0.067153 0.015577 3.135452) scale(1.000000 1.000000 0.999999) | 1 child>, <SCNNode: 0x281427100 'mixamorig:LeftHandRing2' pos(0.132270 -2.605133 -0.000012) rot(0.000866 -0.051044 0.998707 0.067693) scale(1.000000 1.000000 0.999999) | 1 child>, <SCNNode: 0x281425600 'mixamorig:LeftHandRing3' pos(-0.036605 -2.170336 0.000019) rot(-0.006305 -0.245523 0.969743 0.017686) scale(1.000000 1.000000 1.000001) | 1 child>, <SCNNode: 0x281424200 'mixamorig:LeftHandPinky1' pos(4.133320 12.871770 2.216054) rot(0.995442 0.075148 0.058718 3.135942) scale(1.000001 1.000000 1.000001) | 1 child>, <SCNNode: 0x281424d00 'mixamorig:LeftHandPinky2' pos(0.121795 -1.822608 -0.000009) rot(0.000215 -0.015517 0.999860 0.106610) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281426500 'mixamorig:RightShoulder' pos(-6.214375 12.653912 -0.326768) rot(0.607836 -0.480497 0.632185 2.262614) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281419900 'mixamorig:RightArm' pos(-0.000001 13.891395 -0.000002) rot(-0.949529 -0.303420 -0.079569 0.276427) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28141b000 'mixamorig:RightForeArm' pos(-0.000001 21.716059 0.000006) rot(0.000001 -1.000001 0.000000 0.324329) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281419c00 'mixamorig:RightHand' pos(-0.000003 26.379040 0.000010) rot(-0.028329 -0.023942 0.999324 0.100333) scale(1.000000 1.000001 1.000000) | 5 children>, <SCNNode: 0x281419000 'mixamorig:RightHandThumb1' pos(3.170464 3.815781 1.149773) rot(0.943509 -0.327919 0.047541 3.426777) scale(0.999999 0.999999 1.000000) | 1 child>, <SCNNode: 0x28141a700 'mixamorig:RightHandThumb2' pos(0.223216 -4.067917 0.000010) rot(0.005818 -0.189213 0.981980 0.049189) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28141af00 'mixamorig:RightHandThumb3' pos(0.026150 -4.023833 -0.000009) rot(-0.001228 -0.030981 0.999523 0.091774) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281418300 'mixamorig:RightHandIndex1' pos(4.231338 13.332376 -0.334921) rot(0.999931 -0.011301 0.003295 3.143733) scale(0.999999 1.000000 0.999999) | 1 child>, <SCNNode: 0x281419200 'mixamorig:RightHandIndex2' pos(0.193833 -2.489990 -0.000002) rot(0.004894 -0.118223 0.992961 0.073298) scale(1.000000 1.000000 1.000001) | 1 child>, <SCNNode: 0x281418e00 'mixamorig:RightHandIndex3' pos(0.010123 -2.064481 0.000025) rot(0.000281 0.007765 0.999972 0.081131) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281419f00 'mixamorig:RightHandMiddle1' pos(1.403139 13.946581 0.038103) rot(0.999205 -0.039819 -0.002053 3.144565) scale(1.000000 1.000000 1.000002) | 1 child>, <SCNNode: 0x28141b400 'mixamorig:RightHandMiddle2' pos(0.055424 -2.688393 0.000020) rot(0.002364 -0.190886 0.982097 0.016209) scale(1.000000 1.000000 0.999999) | 1 child>, <SCNNode: 0x281419b00 'mixamorig:RightHandMiddle3' pos(0.010795 -2.305432 0.000037) rot(-0.000204 -0.028160 0.999876 0.027090) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x28141b500 'mixamorig:RightHandRing1' pos(-1.372692 13.538776 0.908539) rot(0.996954 -0.077249 -0.010735 3.144805) scale(1.000000 1.000001 1.000000) | 1 child>, <SCNNode: 0x281412900 'mixamorig:RightHandRing2' pos(-0.134695 -2.472683 -0.000014) rot(0.000006 -0.004542 -1.000007 0.116118) scale(1.000000 0.999999 0.999999) | 1 child>, <SCNNode: 0x281410700 'mixamorig:RightHandRing3' pos(0.133790 -2.165903 -0.000006) rot(-0.002814 0.090545 0.995856 0.061615) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281410a00 'mixamorig:RightHandPinky1' pos(-3.134353 11.769386 1.906007) rot(0.994801 -0.088629 -0.050165 3.145445) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281410900 'mixamorig:RightHandPinky2' pos(-0.174333 -2.242082 -0.000010) rot(0.000336 -0.022658 -0.999748 0.183725) scale(1.000000 0.999999 0.999999) | 1 child>, <SCNNode: 0x281411e00 'mixamorig:RightHandPinky3' pos(0.204820 -1.923053 0.000009) rot(-0.001335 0.028141 0.999587 0.118633) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281413b00 'mixamorig:LeftUpLeg' pos(10.128629 -5.802905 -0.582704) rot(0.002196 0.022513 0.999744 3.155192) scale(0.999999 1.000000 0.999999) | 1 child>, <SCNNode: 0x281411c00 'mixamorig:LeftLeg' pos(0.000001 41.134518 0.000000) rot(-0.985850 -0.035503 -0.163892 0.168186) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281413800 'mixamorig:LeftFoot' pos(0.000001 37.253517 0.000001) rot(0.991552 -0.031747 0.125767 1.024575) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281413f00 'mixamorig:LeftToeBase' pos(0.000001 19.919283 0.000001) rot(0.972619 -0.218446 0.079321 0.714629) scale(1.000000 1.000001 1.000000) | 1 child>, <SCNNode: 0x281413500 'mixamorig:RightUpLeg' pos(-10.015044 -5.802899 -0.720661) rot(-0.002302 0.024767 0.999691 3.128021) scale(0.999999 1.000000 1.000000) | 1 child>, <SCNNode: 0x281413000 'mixamorig:RightLeg' pos(0.000000 41.135094 0.000000) rot(-0.986801 0.035620 0.158016 0.173853) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281413d00 'mixamorig:RightFoot' pos(-0.000000 37.267471 0.000000) rot(0.991526 0.031798 -0.125961 1.023309) scale(1.000000 1.000000 1.000000) | 1 child>, <SCNNode: 0x281410100 'mixamorig:RightToeBase' pos(0.000001 19.857279 -0.000001) rot(0.972241 0.219820 -0.080163 0.717694) scale(1.000000 1.000000 0.999999) | 1 child>]
unique bone transforms 50: [__C.SCNMatrix4(m11: 0.9999999, m12: 0.0, m13: 0.0, m14: 0.0, m21: 0.0, m22: 1.0, m23: -1.6292067e-07, m24: 0.0, m31: 0.0, m32: 1.6292067e-07, m33: 1.0, m34: 0.0, m41: 0.067430995, m42: -99.25183, m43: -15.462143, m44: 1.0), __C.SCNMatrix4(m11: 0.9999993, m12: 0.0011885901, m13: 0.000113368966, m14: 0.0, m21: -0.0011939845, m22: 0.9954814, m23: 0.09494962, m24: 0.0, m31: -5.384209e-10, m32: -0.09494969, m33: 0.99548215, m34: 0.0, m41: 0.18593584, m42: -107.827805, m43: -24.816217, m44: 1.0), __C.SCNMatrix4(m11: 0.9999993, m12: 0.0011885901, m13: 0.00011336904, m14: 0.0, m21: -0.0011939848, m22: 0.9954814, m23: 0.09494978, m24: 0.0, m31: -3.856258e-10, m32: -0.09494986, m33: 0.99548215, m34: 0.0, m41: 0.18593591, m42: -120.069214, m43: -24.816233, m44: 1.0), __C.SCNMatrix4(m11: 0.9999993, m12: 0.0011885896, m13: 0.00011336899, m14: 0.0, m21: -0.0011939842, m22: 0.9954814, m23: 0.09494972, m24: 0.0, m31: -4.365575e-10, m32: -0.09494979, m33: 0.99548215, m34: 0.0, m41: 0.18593587, m42: -134.0594, m43: -24.816225, m44: 1.0), __C.SCNMatrix4(m11: 0.9999999, m12: -1.9184638e-11, m13: 8.9477065e-11, m14: 0.0, m21: -4.2632557e-11, m22: 1.0, m23: -1.5134046e-07, m24: 0.0, m31: -5.4513238e-11, m32: 1.4551891e-07, m33: 1.0, m34: 0.0, m41: 0.0050735483, m42: -151.47794, m43: -10.480775, m44: 1.0), __C.SCNMatrix4(m11: 0.9999999, m12: -1.6740022e-10, m13: 8.0035596e-11, m14: 0.0, m21: 2.3925031e-10, m22: 1.0, m23: -2.0626135e-07, m24: 0.0, m31: -5.093172e-11, m32: 2.0626135e-07, m33: 1.0000001, m34: 0.0, m41: 0.0050735325, m42: -158.56575, m43: -11.369449, m44: 1.0), __C.SCNMatrix4(m11: -0.042036895, m12: 0.895135, m13: -0.44380844, m14: 0.0, m21: -0.09481588, m22: -0.44577053, m23: -0.89011145, m24: 0.0, m31: -0.9946069, m32: 0.004662603, m33: 0.10361187, m34: 0.0, m41: 24.786566, m42: 60.53766, m43: 133.74414, m44: 0.99999994), __C.SCNMatrix4(m11: 0.010898933, m12: 0.5794067, m13: -0.81496567, m14: 0.0, m21: 0.0114273215, m22: -0.81503296, m23: -0.57930195, m24: 0.0, m31: -0.9998755, m32: -0.0029990708, m33: -0.015504064, m34: 0.0, m41: 8.74856, m42: 105.12531, m43: 97.726364, m44: 1.0), __C.SCNMatrix4(m11: 0.46226612, m12: 0.41322914, m13: -0.78457093, m14: 0.0, m21: -0.23189315, m22: -0.7976551, m23: -0.55675113, m24: 0.0, m31: -0.85588306, m32: 0.43930387, m33: -0.272904, m34: 0.0, m41: 23.435125, m42: 81.78463, m43: 96.67618, m44: 1.0), __C.SCNMatrix4(m11: 0.6367329, m12: 0.2718283, m13: -0.7215819, m14: 0.0, m21: -0.091787815, m22: -0.9024278, m23: -0.4209497, m24: 0.0, m31: -0.7656019, m32: 0.33426505, m33: -0.54965514, m34: 0.0, m41: -0.40321463, m42: 74.48844, m43: 86.09734, m44: 0.9999999), __C.SCNMatrix4(m11: 0.6801306, m12: 0.32256818, m13: 0.65830994, m14: 0.0, m21: -0.57938343, m22: 0.7867019, m23: 0.2131083, m24: 0.0, m31: -0.44915202, m32: -0.5263551, m33: 0.7219507, m34: 0.0, m41: 41.452923, m42: -78.46882, m43: -65.745674, m44: 1.0), __C.SCNMatrix4(m11: 0.6801305, m12: 0.42549485, m13: 0.5969728, m14: 0.0, m21: -0.5793832, m22: 0.8109088, m23: 0.08211165, m24: 0.0, m31: -0.44915265, m32: -0.40172255, m33: 0.79804826, m34: 0.0, m41: 41.655552, m42: -84.30434, m43: -52.71702, m44: 1.0), __C.SCNMatrix4(m11: 0.67862004, m12: 0.0011207301, m13: 0.73448867, m14: 0.0, m21: -0.27284095, m22: 0.92882824, m23: 0.2506701, m24: 0.0, m31: -0.6819323, m32: -0.3705091, m33: 0.6306265, m34: 0.0, m41: 15.883295, m42: -74.277115, m43: -73.56784, m44: 1.0), __C.SCNMatrix4(m11: 0.67862016, m12: 0.14068235, m13: 0.72089064, m14: 0.0, m21: -0.27284002, m22: 0.9595393, m23: 0.06958672, m24: 0.0, m31: -0.68193245, m32: -0.24391167, m33: 0.689546, m34: 0.0, m41: 16.009493, m42: -84.47152, m43: -58.582344, m44: 1.0), __C.SCNMatrix4(m11: 0.6786201, m12: 0.117865115, m13: 0.7249707, m14: 0.0, m21: -0.27284014, m22: 0.9568656, m23: 0.09982971, m24: 0.0, m31: -0.6819325, m32: -0.26554844, m33: 0.6815059, m34: 0.0, m41: 16.031427, m42: -80.55404, m43: -61.154636, m44: 1.0), __C.SCNMatrix4(m11: 0.63672215, m12: -0.1602448, m13: 0.7542472, m14: 0.0, m21: -0.09175094, m22: 0.95547414, m23: 0.28044048, m24: 0.0, m31: -0.7656151, m32: -0.24777088, m33: 0.59366035, m34: 0.0, m41: 0.74353313, m42: -73.04021, m43: -76.06843, m44: 0.9999999), __C.SCNMatrix4(m11: 0.6367222, m12: 0.0064371815, m13: 0.77105516, m14: 0.0, m21: -0.091751024, m22: 0.9934922, m23: 0.06746133, m24: 0.0, m31: -0.76561534, m32: -0.113706276, m33: 0.6331619, m34: 0.0, m41: 0.7669897, m42: -85.073586, m43: -59.089073, m44: 1.0000001), __C.SCNMatrix4(m11: 0.6367221, m12: -0.08259266, m13: 0.76664615, m14: 0.0, m21: -0.09175105, m22: 0.97906816, m23: 0.18166862, m24: 0.0, m31: -0.7656154, m32: -0.18601915, m33: 0.61580825, m34: 0.0, m41: 0.7979228, m42: -75.384384, m43: -68.24516, m44: 1.0000001), __C.SCNMatrix4(m11: 0.60543567, m12: 0.01758827, m13: 0.7957002, m14: 0.0, m21: 0.001413538, m22: 0.9997304, m23: -0.023173383, m24: 0.0, m31: -0.7958932, m32: 0.015154859, m33: 0.6052479, m34: 0.0, m41: -8.448981, m42: -92.2586, m43: -49.920914, m44: 1.0), __C.SCNMatrix4(m11: 0.6054356, m12: 0.17779897, m13: 0.7757808, m14: 0.0, m21: 0.0014146351, m22: 0.9744859, m23: -0.22444332, m24: 0.0, m31: -0.7958932, m32: 0.13698359, m33: 0.58973724, m34: 0.0, m41: -8.581333, m42: -97.882996, m43: -30.801731, m44: 1.0), __C.SCNMatrix4(m11: 0.60543585, m12: 0.04373034, m13: 0.7946921, m14: 0.0, m21: 0.0014140985, m22: 0.99842846, m23: -0.05601863, m24: 0.0, m31: -0.79589295, m32: 0.035039578, m33: 0.6044231, m34: 0.0, m41: -8.544707, m42: -89.106735, m43: -46.579468, m44: 0.99999994), __C.SCNMatrix4(m11: 0.5346669, m12: 0.15938242, m13: 0.82989585, m14: 0.0, m21: 0.16554846, m22: 0.9432698, m23: -0.28781214, m24: 0.0, m31: -0.8286888, m32: 0.2912716, m33: 0.4779496, m34: 0.0, m41: -21.671741, m42: -99.22054, m43: -23.21426, m44: 1.0), __C.SCNMatrix4(m11: 0.53466624, m12: 0.2598579, m13: 0.80411726, m14: 0.0, m21: 0.16554873, m22: 0.90090185, m23: -0.40121025, m24: 0.0, m31: -0.8286891, m32: 0.3476341, m33: 0.43866265, m34: 0.0, m41: -21.793581, m42: -99.508316, m43: -11.106523, m44: 1.0), __C.SCNMatrix4(m11: -0.052397292, m12: -0.8952406, m13: 0.4424912, m14: 0.0, m21: 0.094881475, m22: -0.4455583, m23: -0.89021075, m24: 0.0, m31: 0.99410856, m32: -0.004660412, m33: 0.108287826, m34: 0.0, m41: -24.79176, m42: 60.590893, m43: 133.71458, m44: 1.0), __C.SCNMatrix4(m11: -0.015019545, m12: -0.57939535, m13: 0.814908, m14: 0.0, m21: 0.019721681, m22: -0.8150132, m23: -0.57910657, m24: 0.0, m31: 0.9996928, m32: 0.0073734326, m33: 0.023667771, m34: 0.0, m41: -13.465044, m42: 105.00213, m43: 97.30525, m44: 1.0000001), __C.SCNMatrix4(m11: 0.46742532, m12: -0.41376442, m13: 0.78122497, m14: 0.0, m21: 0.2254531, m22: -0.79869145, m23: -0.55790913, m24: 0.0, m31: 0.8548008, m32: 0.4369105, m33: -0.28004414, m34: 0.0, m41: -22.47753, m42: 81.89982, m43: 96.81628, m44: 1.0), __C.SCNMatrix4(m11: 0.696373, m12: -0.29543415, m13: 0.65405136, m14: 0.0, m21: 0.03145783, m22: -0.89790016, m23: -0.4390737, m24: 0.0, m31: 0.71699035, m32: 0.32633406, m33: -0.6159799, m34: 0.0, m41: 10.279617, m42: 73.21015, m43: 86.57817, m44: 1.0000001), __C.SCNMatrix4(m11: 0.7355213, m12: -0.32002175, m13: -0.59715587, m14: 0.0, m21: 0.5593576, m22: 0.78415996, m23: 0.26872554, m24: 0.0, m31: 0.38226804, m32: -0.53167653, m33: 0.75577265, m34: 0.0, m41: -35.560814, m42: -77.77521, m43: -69.64634, m44: 1.0), __C.SCNMatrix4(m11: 0.7355217, m12: -0.41824308, m13: -0.53299254, m14: 0.0, m21: 0.5593576, m22: 0.81876236, m23: 0.12941584, m24: 0.0, m31: 0.38226724, m32: -0.3933212, m33: 0.8361645, m34: 0.0, m41: -35.783997, m42: -84.6172, m43: -55.886295, m44: 1.0), __C.SCNMatrix4(m11: 0.73552144, m12: -0.37871414, m13: -0.5617685, m14: 0.0, m21: 0.5593577, m22: 0.80729645, m23: 0.1881284, m24: 0.0, m31: 0.38226718, m32: -0.45260155, m33: 0.8056204, m34: 0.0, m41: -35.81022, m42: -76.353004, m43: -61.55327, m44: 0.99999994), __C.SCNMatrix4(m11: 0.74790645, m12: 0.0043960484, m13: -0.66379017, m14: 0.0, m21: 0.25329384, m22: 0.9224268, m23: 0.29149967, m24: 0.0, m31: 0.613581, m32: -0.38614693, m33: 0.68877614, m34: 0.0, m41: -8.999896, m42: -72.97529, m43: -75.95693, m44: 1.0), __C.SCNMatrix4(m11: 0.7479065, m12: -0.13354473, m13: -0.6502324, m14: 0.0, m21: 0.2532938, m22: 0.9628521, m23: 0.09359077, m24: 0.0, m31: 0.6135809, m32: -0.23469536, m33: 0.75394976, m34: 0.0, m41: -9.193771, m42: -84.72221, m43: -59.663788, m44: 1.0), __C.SCNMatrix4(m11: 0.7479063, m12: -0.14500403, m13: -0.64777344, m14: 0.0, m21: 0.25329396, m22: 0.9643544, m23: 0.0765767, m24: 0.0, m31: 0.6135811, m32: -0.22134775, m33: 0.75797576, m34: 0.0, m41: -9.203954, m42: -83.69826, m43: -58.195118, m44: 1.0), __C.SCNMatrix4(m11: 0.7137817, m12: 0.15073195, m13: -0.6839555, m14: 0.0, m21: 0.08860187, m22: 0.9492857, m23: 0.30167112, m24: 0.0, m31: 0.69474095, m32: -0.27592775, m33: 0.66422635, m34: 0.0, m41: 5.082544, m42: -71.878815, m43: -76.7316, m44: 1.0), __C.SCNMatrix4(m11: 0.7137818, m12: -0.01860387, m13: -0.70012087, m14: 0.0, m21: 0.08860189, m22: 0.994014, m23: 0.06391676, m24: 0.0, m31: 0.694741, m32: -0.10765555, m33: 0.71115613, m34: 0.0, m41: 5.0271134, m42: -85.648315, m43: -57.787743, m44: 1.0), __C.SCNMatrix4(m11: 0.7137821, m12: 0.04167921, m13: -0.6991265, m14: 0.0, m21: 0.08860085, m22: 0.98483396, m23: 0.14916946, m24: 0.0, m31: 0.6947409, m32: -0.16841848, m33: 0.6992625, m34: 0.0, m41: 5.0164437, m42: -78.06403, m43: -64.74144, m44: 1.0), __C.SCNMatrix4(m11: 0.6862833, m12: -0.05333014, m13: -0.7253772, m14: 0.0, m21: 0.0019170358, m22: 0.99743724, m23: -0.071518, m24: 0.0, m31: 0.7273317, m32: 0.04769146, m33: 0.68462753, m34: 0.0, m41: 13.608107, m42: -94.265274, m43: -44.324017, m44: 1.0), __C.SCNMatrix4(m11: 0.68628365, m12: -0.15721922, m13: -0.7101394, m14: 0.0, m21: 0.0019170137, m22: 0.976746, m23: -0.2143906, m24: 0.0, m31: 0.72733146, m32: 0.14577201, m33: 0.6706267, m34: 0.0, m41: 13.742838, m42: -97.218185, m43: -30.645153, m44: 1.0), __C.SCNMatrix4(m11: 0.6862832, m12: -0.02797979, m13: -0.7267966, m14: 0.0, m21: 0.0019167359, m22: 0.9993258, m23: -0.036660966, m24: 0.0, m31: 0.7273317, m32: 0.023767216, m33: 0.68587494, m34: 0.0, m41: 13.609035, m42: -88.0585, m43: -47.114384, m44: 1.0), __C.SCNMatrix4(m11: 0.58176553, m12: 0.02904911, m13: -0.81283754, m14: 0.0, m21: -0.228503, m22: 0.9649507, m23: -0.12905931, m24: 0.0, m31: 0.7805994, m32: 0.26081836, m33: 0.568013, m34: 0.0, m41: 30.542631, m42: -93.21381, m43: -38.76349, m44: 1.0000001), __C.SCNMatrix4(m11: 0.5817661, m12: -0.2033472, m13: -0.78752625, m14: 0.0, m21: -0.22850323, m22: 0.8883859, m23: -0.39819157, m24: 0.0, m31: 0.7805989, m32: 0.4116069, m33: 0.47036743, m34: 0.0, m41: 30.717035, m42: -98.23984, m43: -11.287221, m44: 1.0), __C.SCNMatrix4(m11: 0.5817656, m12: -0.14677322, m13: -0.800004, m14: 0.0, m21: -0.22850198, m22: 0.91447747, m23: -0.33394262, m24: 0.0, m31: 0.78059965, m32: 0.3770791, m33: 0.4984736, m34: 0.0, m41: 30.5121, m42: -95.26906, m43: -18.114779, m44: 1.0), __C.SCNMatrix4(m11: -0.99468595, m12: 0.10296304, m13: 9.158982e-08, m14: 0.0, m21: -0.10296249, m22: -0.9946796, m23: 0.003343006, m24: 0.0, m31: 0.00034434724, m32: 0.0033252267, m33: 0.9999944, m34: 0.0, m41: 19.624392, m42: 91.8663, m43: -15.191778, m44: 1.0), __C.SCNMatrix4(m11: -0.99720347, m12: 0.0737415, m13: 0.012201801, m14: 0.0, m21: -0.07474382, m22: -0.9843627, m23: -0.15951015, m24: 0.0, m31: 0.00024852925, m32: -0.15997595, m33: 0.98712105, m34: 0.0, m41: 18.179338, m42: 53.059746, m43: -6.6176767, m44: 1.0), __C.SCNMatrix4(m11: -0.9922815, m12: 0.12313272, m13: -0.01471903, m14: 0.0, m21: -0.0884585, m22: -0.6196267, m23: 0.77989566, m24: 0.0, m31: 0.08691041, m32: 0.775178, m33: 0.62573606, m34: 0.0, m41: 17.52814, m42: 0.70961213, m43: -17.78704, m44: 0.9999999), __C.SCNMatrix4(m11: -0.9815543, m12: 0.18828706, m13: 0.03317476, m14: 0.0, m21: 0.039078463, m22: 0.027729416, m23: 0.9988511, m24: 0.0, m31: 0.1871508, m32: 0.98172253, m33: -0.03457592, m34: 0.0, m41: 14.414444, m42: -27.81827, m43: -3.3154383, m44: 0.99999994), __C.SCNMatrix4(m11: -0.9946862, m12: -0.10296104, m13: -1.3096734e-08, m14: 0.0, m21: 0.102959014, m22: -0.9946657, m23: 0.006305074, m24: 0.0, m31: -0.0006492962, m32: 0.0062715583, m33: 0.9999801, m34: 0.0, m41: -19.640753, m42: 91.81984, m43: -15.330408, m44: 1.0), __C.SCNMatrix4(m11: -0.9972006, m12: -0.07371295, m13: -0.012604057, m14: 0.0, m21: 0.07478128, m22: -0.98398876, m23: -0.16178371, m24: 0.0, m31: -0.00047680218, m32: -0.16227324, m33: 0.9867458, m34: 0.0, m41: -18.199074, m42: 53.07072, m43: -6.4821177, m44: 1.0), __C.SCNMatrix4(m11: -0.9922379, m12: -0.123518154, m13: 0.01444218, m14: 0.0, m21: 0.08870504, m22: -0.62157524, m23: 0.7783157, m24: 0.0, m31: -0.087159246, m32: 0.773555, m33: 0.6277068, m34: 0.0, m41: -17.559282, m42: 0.8270561, m43: -17.718748, m44: 0.99999994), __C.SCNMatrix4(m11: -0.9812038, m12: -0.18996924, m13: -0.03395047, m14: 0.0, m21: -0.03997338, m22: 0.02796285, m23: 0.99880946, m24: 0.0, m31: -0.18879364, m32: 0.9813919, m33: -0.0350311, m34: 0.0, m41: -14.419991, m42: -27.666416, m43: -3.3263946, m44: 1.0000001)]
bone with depth is (min depth): mixamorig:Hips -> 3 ( -1 )
bone with depth is (min depth): mixamorig:Spine -> 4 ( 3 )
bone with depth is (min depth): mixamorig:Spine1 -> 5 ( 3 )
bone with depth is (min depth): mixamorig:Spine2 -> 6 ( 3 )
bone with depth is (min depth): mixamorig:Neck -> 7 ( 3 )
bone with depth is (min depth): mixamorig:Head -> 8 ( 3 )
bone with depth is (min depth): mixamorig:LeftShoulder -> 7 ( 3 )
bone with depth is (min depth): mixamorig:LeftArm -> 8 ( 3 )
bone with depth is (min depth): mixamorig:LeftForeArm -> 9 ( 3 )
bone with depth is (min depth): mixamorig:LeftHand -> 10 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandThumb1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandThumb2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandIndex1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandIndex2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandIndex3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandMiddle1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandMiddle2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandMiddle3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandRing1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandRing2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandRing3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandPinky1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:LeftHandPinky2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:RightShoulder -> 7 ( 3 )
bone with depth is (min depth): mixamorig:RightArm -> 8 ( 3 )
bone with depth is (min depth): mixamorig:RightForeArm -> 9 ( 3 )
bone with depth is (min depth): mixamorig:RightHand -> 10 ( 3 )
bone with depth is (min depth): mixamorig:RightHandThumb1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:RightHandThumb2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:RightHandThumb3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:RightHandIndex1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:RightHandIndex2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:RightHandIndex3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:RightHandMiddle1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:RightHandMiddle2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:RightHandMiddle3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:RightHandRing1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:RightHandRing2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:RightHandRing3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:RightHandPinky1 -> 11 ( 3 )
bone with depth is (min depth): mixamorig:RightHandPinky2 -> 12 ( 3 )
bone with depth is (min depth): mixamorig:RightHandPinky3 -> 13 ( 3 )
bone with depth is (min depth): mixamorig:LeftUpLeg -> 4 ( 3 )
bone with depth is (min depth): mixamorig:LeftLeg -> 5 ( 3 )
bone with depth is (min depth): mixamorig:LeftFoot -> 6 ( 3 )
bone with depth is (min depth): mixamorig:LeftToeBase -> 7 ( 3 )
bone with depth is (min depth): mixamorig:RightUpLeg -> 4 ( 3 )
bone with depth is (min depth): mixamorig:RightLeg -> 5 ( 3 )
bone with depth is (min depth): mixamorig:RightFoot -> 6 ( 3 )
bone with depth is (min depth): mixamorig:RightToeBase -> 7 ( 3 )
min depth nodes are: (
    "<SCNNode: 0x28143e800 'mixamorig:Hips' pos(-0.056763 98.255325 0.653417) | 3 children>"
)
skeleton bone is : <SCNNode: 0x28143e800 'mixamorig:Hips' pos(-0.056763 98.255325 0.653417) | 3 children>
Making Skinner for node: ely_vanguardsoldier_kerwinatienza_Mesh vertices: 30748 max-weights: 5, nBones: 50
weight counter 153740
Making bone indices geometry source: ["mixamorig:Hips", "mixamorig:Spine", "mixamorig:Spine1", "mixamorig:Spine2", "mixamorig:Neck", "mixamorig:Head", "mixamorig:LeftShoulder", "mixamorig:LeftArm", "mixamorig:LeftForeArm", "mixamorig:LeftHand", "mixamorig:LeftHandThumb1", "mixamorig:LeftHandThumb2", "mixamorig:LeftHandIndex1", "mixamorig:LeftHandIndex2", "mixamorig:LeftHandIndex3", "mixamorig:LeftHandMiddle1", "mixamorig:LeftHandMiddle2", "mixamorig:LeftHandMiddle3", "mixamorig:LeftHandRing1", "mixamorig:LeftHandRing2", "mixamorig:LeftHandRing3", "mixamorig:LeftHandPinky1", "mixamorig:LeftHandPinky2", "mixamorig:RightShoulder", "mixamorig:RightArm", "mixamorig:RightForeArm", "mixamorig:RightHand", "mixamorig:RightHandThumb1", "mixamorig:RightHandThumb2", "mixamorig:RightHandThumb3", "mixamorig:RightHandIndex1", "mixamorig:RightHandIndex2", "mixamorig:RightHandIndex3", "mixamorig:RightHandMiddle1", "mixamorig:RightHandMiddle2", "mixamorig:RightHandMiddle3", "mixamorig:RightHandRing1", "mixamorig:RightHandRing2", "mixamorig:RightHandRing3", "mixamorig:RightHandPinky1", "mixamorig:RightHandPinky2", "mixamorig:RightHandPinky3", "mixamorig:LeftUpLeg", "mixamorig:LeftLeg", "mixamorig:LeftFoot", "mixamorig:LeftToeBase", "mixamorig:RightUpLeg", "mixamorig:RightLeg", "mixamorig:RightFoot", "mixamorig:RightToeBase"]
50
50
 assigned skinner <SCNSkinner: 0x283aeca80> skeleton: Optional(<SCNNode: 0x28143e800 'mixamorig:Hips' pos(-0.056763 98.255325 0.653417) | 3 children>)
Number of animations in scene: 1
Animation data for animation at index: 0
Generated animation name: ely-1
This animation ely-1 has 66 channels with duration 1.0 ticks per sec: 30.0
 The channel Armature has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:Head has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:HeadTop_End has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:Hips has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftArm has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftFoot has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftForeArm has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHand has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandIndex1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandIndex2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandIndex3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandIndex4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandMiddle1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandMiddle2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandMiddle3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandMiddle4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandPinky1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandPinky2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandPinky3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandPinky4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandRing1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandRing2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandRing3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandRing4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandThumb1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandThumb2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandThumb3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftHandThumb4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftLeg has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftShoulder has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftToeBase has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftToe_End has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:LeftUpLeg has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:Neck has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightArm has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightFoot has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightForeArm has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHand has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandIndex1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandIndex2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandIndex3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandIndex4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandMiddle1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandMiddle2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandMiddle3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandMiddle4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandPinky1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandPinky2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandPinky3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandPinky4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandRing1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandRing2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandRing3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandRing4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandThumb1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandThumb2 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandThumb3 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightHandThumb4 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightLeg has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightShoulder has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightToeBase has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightToe_End has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:RightUpLeg has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:Spine has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:Spine1 has data for 2 position, 2 rotation, 2 scale keyframes
 The channel mixamorig:Spine2 has data for 2 position, 2 rotation, 2 scale keyframes
skeletonNode: <SCNNode: 0x28143e800 'mixamorig:Hips' pos(-0.056763 98.255325 0.653417) | 3 children>
animations: {
    "ely-1" = "<AssetImportKit.AssetImporterAnimation: 0x281126920>";
}
animationKeys: (Function)
animScene: <SCNScene: 0x281d2bf00>
 no root: nil nil
no root animNode
2020-08-10 15:55:28.865705+1000 demo-uni[3668:1289525] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<NSLayoutConstraint:0x280b6ae40 H:[UIView:0x103b2dc30]-(135.5)-|   (active, names: '|':UIView:0x103b2cc50 )>",
    "<NSLayoutConstraint:0x280b6ae90 H:|-(135.5)-[UIView:0x103b2dc30]   (active, names: '|':UIView:0x103b2cc50 )>",
    "<NSLayoutConstraint:0x280b07d90 'UIView-Encapsulated-Layout-Width' UIView:0x103b2cc50.width == 0   (active)>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x280b6ae40 H:[UIView:0x103b2dc30]-(135.5)-|   (active, names: '|':UIView:0x103b2cc50 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2020-08-10 15:55:28.866226+1000 demo-uni[3668:1289525] [LayoutConstraints] Unable to simultaneously satisfy constraints.
	Probably at least one of the constraints in the following list is one you don't want. 
	Try this: 
		(1) look at each constraint and try to figure out which you don't expect; 
		(2) find the code that added the unwanted constraint or constraints and fix it. 
(
    "<NSLayoutConstraint:0x280b6acb0 UILayoutGuide:0x28113a760'UIViewSafeAreaLayoutGuide'.top == UIView:0x103b2dc30.top + 11   (active)>",
    "<NSLayoutConstraint:0x280b6aee0 V:|-(9)-[UIView:0x103b2dc30]   (active, names: '|':UIView:0x103b2cc50 )>",
    "<NSLayoutConstraint:0x280b6ad00 'UIViewSafeAreaLayoutGuide-top' V:|-(44)-[UILayoutGuide:0x28113a760'UIViewSafeAreaLayoutGuide']   (active, names: '|':UIView:0x103b2cc50 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x280b6acb0 UILayoutGuide:0x28113a760'UIViewSafeAreaLayoutGuide'.top == UIView:0x103b2dc30.top + 11   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
@johndpope
Copy link
Author

I got the fbx animations loading with carthage -
https://github.com/johndpope/swift-2

Screen Shot 2020-08-10 at 5 21 01 pm

I interfaced to objective-c library
func loadAnimation() {

    // Load the scene

    let modelFileURL = URL(fileURLWithPath: modelFilePath)

// let flipUVs = AssimpKitPostProcessSteps.process_FlipUVs
let trianglulate = AssimpKitPostProcessSteps.process_Triangulate
// let flags = [flipUVs,trianglulate]
let scene = SCNScene.assimpScene(with: modelFileURL,postProcessFlags:trianglulate)

    // Load the animation scene
    let animFileURL = URL(fileURLWithPath: animFilePath)
    let animScene = SCNScene.assimpScene( with: animFileURL,postProcessFlags:trianglulate)
    
    if let animationKeys = animScene?.animationKeys(){

        let settings = SCNAssimpAnimSettings()
        settings.repeatCount = 300
        settings.delegate = self
        let eventBlock: SCNAnimationEventBlock = { animation, animatedObject, playingBackwards in
            print("Animation Event triggered")
        }

        let animEvent = SCNAnimationEvent.init(keyTime: 1, block: eventBlock)
        let animEvents = [animEvent]
        settings.animationEvents = animEvents
        
        let key = animationKeys[0] as! String
        let animation = animScene!.animationScene(forKey: key)
        scene!.modelScene.rootNode.addAnimationScene(animation,forKey: key, with: settings)
    }
    
   // scale down models
     let scaleFactor:Float = 0.0025
    scene!.modelScene.rootNode.childNodes.forEach {
        $0.position =   $0.position * scaleFactor
        $0.scale = $0.scale * scaleFactor
      
    }
    
    let scnView = view as? SCNView
    
    // set the scene to the view
    scnView?.scene = scene!.modelScene
    
    // allows the user to manipulate the camera
    scnView?.allowsCameraControl = true
    
    // show statistics such as fps and timing information
    scnView?.showsStatistics = true
    
    // configure the view
    //scnView?.backgroundColor = UIColor.black
    
    scnView?.isPlaying = true
    
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant