繁体   English   中英

如何缩放和定位附有SCNSkinner的SCNNode?

[英]How to scale and position a SCNNode that has a SCNSkinner attached?

使用SceneKit,我正在加载一个非常简单的.dae文件 ,该文件由一个带有三个相关骨骼的大圆柱体组成。 我想按比例缩小圆柱体并将其放置在地面上。 这是代码

public class MyNode: SCNNode {

    public convenience init() {
        self.init()

        let scene = SCNScene(named: "test.dae")

        let cylinder = (scene?.rootNode.childNode(withName: "Cylinder", recursively: true))!

        let scale: Float = 0.1
        cylinder.scale = SCNVector3Make(scale, scale, scale)
        cylinder.position = SCNVector3(0, scale, 0)

        self.addChildNode(cylinder)
    }
}

这行不通; 当我查看时,圆柱体仍然很大。 我可以使代码正常工作的唯一方法是删除关联的SCNSKinner

cylinder.skinner = nil

为什么会发生这种情况,如何正确缩放和定位模型,骨骼及所有物体?

对几何体蒙皮时,它是由其骨架驱动的。 这意味着不再使用蒙皮节点的变换,重要的是骨骼的变换。

对于此文件, Armature是骨架的根。 如果平移/缩放此节点而不是Cylinder则将获得所需的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM