Ios 使用dae文件播放动画时,SCNNode比例会更改
正在尝试将scenekit中的dae文件用于我的模型和动画。当我尝试缩放模型时,它会正确缩放。动画开始播放后,将重置为原始比例。以下是我目前正在尝试做的事情:Ios 使用dae文件播放动画时,SCNNode比例会更改,ios,swift,animation,scenekit,collada,Ios,Swift,Animation,Scenekit,Collada,正在尝试将scenekit中的dae文件用于我的模型和动画。当我尝试缩放模型时,它会正确缩放。动画开始播放后,将重置为原始比例。以下是我目前正在尝试做的事情: let playerNode = gameScene.rootNode.childNode(withName: "Player", recursively: true) let animation = CAAnimation.animationWithSceneNamed(name: "GameAssets.scnassets/Obje
let playerNode = gameScene.rootNode.childNode(withName: "Player", recursively: true)
let animation = CAAnimation.animationWithSceneNamed(name: "GameAssets.scnassets/Objects/WalkAnimation.dae")
playerNode.addAnimation(animation, forKey: "WalkAnimation")
由于我们无法访问您的Collada文件,让我们以中的
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>
...
...
您可以看到,动画文件没有针对位置和旋转的单独动画,而是具有针对整个变换的单个动画(cfTRANSFORM
和float4x4
)
这意味着评估动画将覆盖节点的比例。如果不希望覆盖缩放
,则必须为位置
和旋转
属性设置不同的动画,而不是为变换
属性设置动画