写入 dae 时,Scenekit 会自动为节点名称中的空格插入下划线

Posted

技术标签:

【中文标题】写入 dae 时,Scenekit 会自动为节点名称中的空格插入下划线【英文标题】:Scenekit automatically inserts underscores for blank spaces in node names when writing to dae 【发布时间】:2019-02-15 12:24:07 【问题描述】:

我正在尝试编辑 dae 文件以更改节点的名称。我得到了我想要编辑的子节点,我编辑了现在包含空格的名称 - 比如说“节点名称”。一旦我将此场景写入 dae 文件,使用 SceneKit 的 write(to:options:delegate:progressHandler:), 新 dae 文件中的节点名称会自动更改为“Node_Name”。 dae中的节点名称不允许空格吗?

有没有办法覆盖这种行为?

【问题讨论】:

【参考方案1】:

这是Collada 1.4.1 specification 的一部分。 nodenamexs:NCName,不允许包含空格。

这在 Collada 1.5.0 中得到了放松,其中 name 变成了 xs:token

无法覆盖 SceneKit 使用的 Collada 规范,目前是 Collada 1.4。

【讨论】:

以上是关于写入 dae 时,Scenekit 会自动为节点名称中的空格插入下划线的主要内容,如果未能解决你的问题,请参考以下文章

如何为 ARKit 将 dae 导入 SceneKit

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

iOS SceneKit:XCode“中断”导入的 DAE 材质颜色

将 Collada dae 文件加载到 SceneKit 以进行联合操作

SceneKit - 如何获取 .dae 模型的动画?

SceneKit - 具有 DAE 文件格式的动画