Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用dae文件播放动画时,SCNNode比例会更改_Ios_Swift_Animation_Scenekit_Collada - Fatal编程技术网

Ios 使用dae文件播放动画时,SCNNode比例会更改

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

正在尝试将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")

由于我们无法访问您的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>

...
...
您可以看到,动画文件没有针对位置和旋转的单独动画,而是具有针对整个变换的单个动画(cf
TRANSFORM
float4x4

这意味着评估动画将覆盖节点的
比例。如果不希望覆盖
缩放
,则必须为
位置
旋转
属性设置不同的动画,而不是为
变换
属性设置动画