我试图通过添加一个带有像'panda.scn'和'walk.scn'资产这样的简单动画的模型来试验Apple的Fox游戏SceneKit示例(下面的链接)。
我可以创建一个没有关节或动画的静态模型:在Maya(2017)中,我添加了一个简单的球体,导出选择到FBX_DAE(COLLADA)文件,将其拖入XCode中的项目并将其转换为SCN文件。然后我可以将该模型拖动到'level.scn'中,定位并按照我的预期进行缩放。
然而,只要我在模型中添加任何动画或关节,我就无法在XCode中定位和缩放模型。
在Maya中,我向球体添加两个关节,选择球体和关节,然后如上导出。当我在XCode中检查模型SCN(孤立地或作为另一个场景中的参考)时,我发现我无法应用任何平移或缩放。 XCode允许我在GUI中移动xyz定位器并更新比例,但模型不会改变。我可以在大纲视图中看到网格和关节,我尝试移动关节而不是网格,但它们什么都不做。我甚至尝试忽略GUI并在模型中将模型定位,就像设置了熊猫角色一样,但是将位置或变换应用于节点什么都不做 - 它总是出现在原点和默认比例上。
暂时忽略这一点,通过查看'walk.scn'文件,我的理解是动画只是关键帧的关节导出。我试图通过仅将关节导出到单独的DAE并导入它来重现它,然后在代码中将其应用于'walkAnimation'。这似乎也没有做任何事情。
我已尝试过FBX_DAE导出对话框的各种设置,包括烘焙动画(顺便说一下 - 在导出时烘焙动画与在Maya中烘焙它之间有什么区别?前者似乎做了一些事情而另一部分做了我的测试中没有任何内容。)
我非常喜欢在Maya中创建一些简单角色动画并将它们带入SceneKit的工作流程。非常感谢任何帮助。
供参考:
Apple的来源:https://developer.apple.com/library/content/samplecode/Fox/Introduction/Intro.html
Maya场景为我的琐碎球模型有两个关节: http://pat.net/misc/ball1.mb 和Maya的DAE输出: http://pat.net/misc/ball1.dae
更新:
Mnuages的回答似乎是正确的,因为当我在几何体和关节上添加父控件时,SceneKit允许我移动它们。但即使在了解了这些节点及其变换在Maya中的关系之后,我也不觉得我对SceneKit如何解释它们有了真正的理解。 (如果存在的话,愿意阅读一些关于此的文档会更多地阐明这一点。)
更新#2:
我终于能够通过以下操作创建动画:1)导出完整场景或仅导出动画,确保选择"烘焙动画" DAE导出对话框中的选项或使用Key-> Bake Animation烘焙整个动画。 2)仅当我在scenekit中加载DAE文件而不是将其转换为SCN时才有效。转换为SCN格式似乎失去了动画。
答案 0 :(得分:2)
发生的事情是名为joint1
的节点在joint1-anim
动画中被动画化。因此,即使您在编辑器中移动joint1
,您在屏幕上看到的是评估动画后的结果。
如果您创建一个中间节点,说joint1-parent
,并将joint1
作为joint1-parent
的子节点,那么您将能够自由地翻译和轮换joint1-parent
并查看对joint1
的影响。
至于为什么移动pSphere
不会改变任何东西,这是同样的想法。就像动画覆盖位置一样,骨架将重新定位网格。