如何从 Maya 导出简单的装配模型以用于 Scenekit?

How can I export a simple rigged model from Maya for use in Scenekit?

我正在尝试通过添加带有简单动画(如“panda.scn”和“walk.scn”资产的模型来试验 Apple 的 Fox 游戏 SceneKit 示例(下面的 link) .

我可以创建一个没有关节或动画的静态模型:例如在 Maya (2017) 中,我添加了一个简单的球体,将 selection 导出到 FBX_DAE (COLLADA) 文件,将其拖到 XCode 中的项目中并将其转换为 SCN 文件。然后我可以将该模型拖到“level.scn”中,按照我的预期定位和缩放它。

然而,一旦我向我的模型添加任何动画或关节,我就失去了在 XCode 中定位和缩放模型的能力。

在 Maya 中,我将两个关节添加到我的球体 select 球体和关节并按上述方式导出。当我检查 XCode 中的模型 SCN(无论是孤立的还是作为另一个场景中的参考)时,我发现我无法应用任何平移或缩放。 XCode 让我在 GUI 中移动 xyz 定位器并更新比例,但模型没有改变。我可以在轮廓视图中看到网格和关节,我尝试移动关节而不是网格,但它们什么也没做。我什至尝试过忽略 GUI 并在代码中定位模型,就像设置熊猫角色一样,但是对节点应用位置或变换没有任何作用 - 它总是出现在原点和默认比例。

暂时忽略这一点,我通过查看“walk.scn”文件的理解是动画只是带有关键帧的关节的导出。我试图通过仅将关节导出到一个单独的 DAE 并导入它来重现它,然后在代码中应用它,就像它们对“walkAnimation”所做的那样。这似乎也无济于事。

我尝试了 FBX_DAE 导出对话框的各种设置,包括烘焙动画(顺便说一句 - 导出时烘焙动画与导出前在 Maya 中烘焙动画有什么区别?前者似乎在我的测试中做某事而另一个什么都不做。)

我非常喜欢在 Maya 中创建一些简单的角色动画并将它们导入 SceneKit 的工作流程。非常感谢任何帮助。

供参考:

苹果来源: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) 导出完整场景或仅导出带有动画的关节,确保 select DAE 中的 "bake animation" 选项使用 Key->Bake Animation 导出对话框或烘焙整个动画。 2) 只有当我在 scenekit 中加载 DAE 文件而不是将其转换为 SCN 时它才有效。转成SCN格式好像没了动画

发生的事情是名为 joint1 的节点被 joint1-anim 动画所激活。所以即使你在编辑器中移动joint1,你在屏幕上看到的是动画计算后的结果。

如果你创建一个中间节点,比如 joint1-parent,并使 joint1 作为 joint1-parent 的子节点,那么你将能够平移和旋转 joint1-parent 自由查看对 joint1.

的影响

至于为什么搬家pSphere没有任何改变,都是一样的道理。就像动画覆盖位置一样,骨架会重新定位网格。