为了学习Swift SceneKit,我正在研究苹果“Badger”演示。它的特点是一个沿着铁轨的卡丁车动画。我不明白是什么生成了这个动画。有一个scene.scn文件,其中有一个“Bob root”节点,是卡丁车动画的占位符,而且有许多animation .scn文件有“鲍勃根”,没有动画。我理解“让cartAnimation = scene.rootNode.animation(forKey:cartAnimationName)!”将动画应用到此Bob根节点,使其跟随轨迹。
但是这个动画是怎么产生的呢?卡丁车是怎么沿着轨道运动的呢?scene.scn中没有包含这个运动的节点,我也没有看到任何地方以编程的方式描述这个动画。抱歉,这不完全是一个编码问题,但是我需要理解这个问题才能继续前进。谢谢!
2条答案
按热度按时间jexiocij1#
动画是在3D软件中设计的,然后导出为Collada,导入到Xcode中并存档在.scn文件中。示例代码只是检索这些动画并在需要时触发它们。
cgh8pdjw2#
我们所讨论的具体动画只不过是一个物体沿着某条路径移动的手动动画,“碰巧”与明显的视觉轨迹相同,没有其他内容。
如果你对“模拟”这一点感到好奇(所以,这涉及到实际的逻辑),这是非常常见的。
对于日常游戏引擎(如Unity等),这是如此普遍,以至于有系统在适当的位置。
通常的方法是你只做一个样条曲线,它是轨道,道路或其他东西的三维形状。
然后你有一些代码,来生成一个点,沿着样条曲线,在每个时间单位移动一定的距离,你可以看到这很容易。
(有一些细节,你可以看到,你需要一个法线和切线的样条线在任何一点,以了解哪一个方向的火车,龙,无论是什么,应该在任何时候,以及位置。)
当然,然后生成实际的“道路”,“轨道”或其他什么...
你可以看到,你也会自动地这样做,遵循同样的样条曲线。
(You通常称该过程为“放样”)。
(除此之外,我实际上使用了最早的工具之一来实现自动化,并从中赚了不少钱!就像软件中的任何事情一样,现在它很容易了。)
如果你浏览一下unityassetstore,你会发现有无数的“样条工具”(所有的样条工具都包括“沿着样条追踪”,这确实是样条的主要用途)和“放样”工具(我认为“megashapes”现在或过去是最流行的一个;你可以观看各种“阁楼”工具的视频等,以获得更多关于你所询问的信息。)