ios – 如何从SceneKit中的Collada文件中分割出多个动画

ios – 如何从SceneKit中的Collada文件中分割出多个动画,第1张

概述我将第三方.dae Collada文件作为场景加载到SceneKit项目中. .dae文件中有许多不同的动画,设置在不同的时间/帧.我试图弄清楚如何将这些分开并通过引用名称引用每个单独的动画. dae文件中没有可理解的引用名称 – 动画都设置为单个动画. 我能够将动画解析为CAAnimation对象,并使用以下代码验证我是否成功完成了此 *** 作: SCNScene *scene = [SCNScene 我将第三方.dae Collada文件作为场景加载到SceneKit项目中.

.dae文件中有许多不同的动画,设置在不同的时间/帧.我试图弄清楚如何将这些分开并通过引用名称引用每个单独的动画. dae文件中没有可理解的引用名称 – 动画都设置为单个动画.

我能够将动画解析为CAAnimation对象,并使用以下代码验证我是否成功完成了此 *** 作:

SCNScene *scene = [SCNScene scenenamed:@"art.scnassets/man.dae"];SCNNode *man = [scene.rootNode childNodeWithname:@"Bip01" recursively:YES];CAAnimation *animation = [man animationForKey:@"test_Collada_DAE-1"];[man removeAllAnimations];[man addAnimation:animation forKey:@"animation"];

有没有办法为我的CAAnimation对象设置开始和结束帧或时间?解析各种动画的最佳方法是什么?我希望我不必手动将dae文件拆分成多个并单独加载每个文件.

解决方法 3d工具通常将多个动画导出为具有子动画的单个动画.在这种情况下,SceneKit会将这些动画加载为具有子动画的CAAnimationGroup.因此,一个选项是“解析”动画组的子动画并检索所需的动画.另一种选择是使用SCNScenesource按名称检索(子)动画(但这仅在您的3d工具导出DAE时导出名称时才有效).

如果你需要“裁剪”动画(即从较长的动画中提取一个以持续时间D开始于t0的动画),CoreAnimation有一个API:

>创建一个动画组以“裁剪”持续时间D.>将要裁剪的动画添加为子动画并设置它timeOffset到t0.

总结

以上是内存溢出为你收集整理的ios – 如何从SceneKit中的Collada文件中分割出多个动画全部内容,希望文章能够帮你解决ios – 如何从SceneKit中的Collada文件中分割出多个动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1058597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存