SceneKit で SCNScene オブジェクトの特定の部分をアニメーション化しようとしています (私の場合、手の指をアニメーション化したい)。Blender から .dae (COLLADA) ファイルをそれぞれのボーンとともに簡単にインポートして、モデルにアーティキュレーションを生成します。
override func viewDidLoad() {
super.viewDidLoad()
var scene = SCNScene(named: "hand.dae")!
sceneView.scene = scene
sceneView.allowsCameraControl = true
sceneView.autoenablesDefaultLighting = true
sceneView.backgroundColor = UIColor.lightGrayColor()
}
私の目標は、ユーザーが生成した 0 から 1 の値を使用して、iOS でこれらのボーンをアニメーション化することです。UISlider を想像してみてください。UISlider では、スライダーの値に応じて特定の指が動くのを確認できます。
これは必要なアニメーションのスクリーンショットです
Apple の Fox の例のようなアニメーション ファイルを呼び出して、モデルをアニメーション化しようとしました。
private var indexFingerAnimation: CAAnimation!
indexFingerAnimation = CAAnimation.animationWithSceneNamed(“move_index_finger.dae”)
indexFingerAnimation = false
indexFingerAnimation = 0.3
indexFingerAnimation = 0.3
indexFingerAnimation = Float.infinity
問題は、人差し指だけではなくグローバル アニメーションであることです。さらに、ユーザー入力によって制御されるアニメーションではなく、常に「事前定義された」アニメーションです。最終的には、アニメーションをミックスしたい (たとえば、人差し指と親指を同時に動かしてジェスチャーを明らかにする)
これは可能ですか?メッシュの特定の部分を操作する方法がわからないので苦労しています。私は MetalKit の研究を始めていますが、それが解決策かどうかはわかりません。
どんな助けでも本当に感謝しています。