如何移动从 Blender 导入的节点

Posted

技术标签:

【中文标题】如何移动从 Blender 导入的节点【英文标题】:How to move a node imported from Blender 【发布时间】:2019-11-09 06:18:11 【问题描述】:

我正在尝试在 Scene Kit 中移动动画 3D 模型(来自 Blender)。

我可以使用以下代码旋转我的模型:

let ship = scene.rootNode.childNode(withName: "ship", recursively: true)! ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))

但是这段代码并没有移动它:

ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(moveForward))

此外,我无法在 .scn 文件中拖动我的模型(与我的其他无动画模型不同)。我的动画模型似乎有额外的属性: screenshot. 如何在空间中移动我的动画模型?

【问题讨论】:

0 我没有在所需对象(骨架)上运行动作。 【参考方案1】:

只要您的模型正确加载到节点中,只需移动节点(或像您一样旋转它),它的行为就与其他节点一样。

moveForward 的 runAction.repeat 将重复相同的动作 - 比如说 SCNVector3(5, 0, 0) - 但每次都是一样的,所以一旦它到达那里,它就不会再移动了。一些选项是循环它并调用 runAction moveTo 并每次增加你的 moveForward 向量,或者使用物理引擎并添加速度等。

【讨论】:

以上是关于如何移动从 Blender 导入的节点的主要内容,如果未能解决你的问题,请参考以下文章

Blender 到 Unity 骨架动画变形

Unity 2019.1.0f2:Blender无法将.blend文件转换为FBX文件

blender 和unity3D的一个问题

blender导出mesh

如何将 Blender blend(或 obj)文件转换为 Qualcom Vuforia .h 文件

Blender 到 Unity 的奇怪转换