有没有办法在 SceneKit 的 Collada 文件中存储动画数据或任意数据?

Posted

技术标签:

【中文标题】有没有办法在 SceneKit 的 Collada 文件中存储动画数据或任意数据?【英文标题】:Is there a way to store either animation data or arbitrary data in a Collada file from SceneKit? 【发布时间】:2015-05-08 08:26:14 【问题描述】:

我正在构建一个工具来将旧的专有网格+动画文件格式转换为 Collada DAE 文件,因此我一直在使用 SceneKit 作弊,只是构建几何图形并运行 [scene writeToUrl]。

我能够为所有模型动画构建正确的 CABasicAnimations,它们基本上是一组变形目标(原始文件中不存在骨骼定义 - 只有网格变形目标)。

有没有办法在文件导出中包含 SceneKit 生成的 CAAnimationGroup 或动画?相关地,有没有办法在导出中写入和读取任意信息?如果我可以写入和读取总动画持续时间和 FPS 速率,那么我可以在游戏引擎端重现动画。

【问题讨论】:

【参考方案1】:

所有动画都应该自动导出。您可以通过将 Collada 文件作为 xml 文件打开来验证它们是否正确导出。如果它们没有正确导出,那么最好提交一个错误。

对于任意数据,您可以使用诸如使用节点名称来存储该信息等技巧。

【讨论】:

以上是关于有没有办法在 SceneKit 的 Collada 文件中存储动画数据或任意数据?的主要内容,如果未能解决你的问题,请参考以下文章

SceneKit + Collada + 动画

带有子节点的 SceneKit Collada 动画

从scenekit中的网络服务器加载collada文件

在 SceneKit 中支持 Collada/DAE 模型都有哪些要求?

SceneKit 进口的 COLLADA 盒子未“点亮”

使用 SceneKit 从 DAE/COLLADA 中提取动画顶点