尝试在scenekit中使用dae文件作为我的模型以及我的动画。当我尝试缩放模型时,它会正确缩放。动画开始播放后,它将重置为原始比例。这就是我现在要做的事情:
let playerNode = gameScene.rootNode.childNode(withName: "Player", recursively: true)
let animation = CAAnimation.animationWithSceneNamed(name: "GameAssets.scnassets/Objects/WalkAnimation.dae")
playerNode.addAnimation(animation, forKey: "WalkAnimation")
答案 0 :(得分:1)
由于我们无法访问您的Collada文件,因此请以SceneKitAnimations sample code中的walk.dae
为例。
在该文件中,您将找到以下内容:
<library_animations>
<animation id="WalkID">
...
<source id="node-Bip01_matrix-output">
...
<technique_common>
<accessor source="#node-Bip01_matrix-output-array" count="29" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
您可以看到动画文件没有单独的位置和旋转动画,但它有一个动画,可以定位整个变换(cf TRANSFORM
和float4x4
)。
这意味着评估动画将覆盖节点的scale
。如果您不想要position
属性,则必须为rotation
和transform
属性设置不同的动画,而不是scale
属性的动画。被覆盖的。