SlideShare a Scribd company logo
CAKeyframeAnimation
2012.08.25
ふじしげ ゆういち
@nakiwo
• ふじしげ ゆういち
• @nakiwo
• 株式会社フィードテイラー
http://feedtailor.jp/
Book+
そら案内
Slidrs
• ふじしげ ゆういち
• @nakiwo
• http://www.nakiwo.com/
洞窟物語
めがね
(Mac AppStore)
CAKeyframeAnimation
今日のテーマ
•CAKeyframeAnimation
•Core Animation
•3つ以上の値を補間
今日のサンプル
https://github.com/nakiwo/KeyFrameSample
CABasicAnimation
•2つの値を補完するアニメーション
•fromValue, toValue
fromValue toValue
CAKeyframeAnimation
•3つ以上の値を補完するアニメーション
•values
•path (CGPoint)
values[0] values[2]values[1]
注意点
•CAKeyframeAnimationはいくつかの
モードを持っている
•モードによって無視されるプロパティ
があるので要注意
パターン1. values
• values[n]
• keyTimes[n] (0...1) duration内の%
• timingFunctions[n-1] (オプション)
timingFunction
values[0] values[2]values[1]
keyTimes[0] = 0 keyTimes[1] = 0..1 keyTimes[2] = 1
timingFunctions[0] timingFunctions[1]
< <
values[0] values[2]values[1]
keyTimes[0] = 0 keyTimes[1] = 0..1 keyTimes[2] = 1
timingFunctions[0] timingFunctions[1]
< <
keyframe
calculationMode
•keyFrameの補間の仕方
•kCAAnimationLinear
•kCAAnimationDiscrete (補間無し)
デモ
※ Keynoteを中断する時は[H]を押す
パターン2. path
• CGPointのアニメーションをCGPathで指定
• animation.path (valuesは無視される)
• 補間モード kCAAnimationPaced
• keyTimesが無効になり、pathを一定のタイ
ミングで辿る
• rotationMode
• kCAAnimationRotateAuto
• kCAAnimationRotateAutoReverse
デモ
※ Keynoteを中断する時は[H]を押す
パターン3. cubic
• valuesでCGPointを指定。指定したポイントを通過す
るようにアニメーションする
• 補間モード kCAAnimationCubic
• Catmull-Rom spline
• 曲線の微調整可能
• 補間モード kCAAnimationPaced
• keyTimesが無効になる
kCAAnimationCubic
• valuesにCGPointを設定
• tensionValues, continuityValues, biasValues で微
調整
• http://en.wikipedia.org/wiki/Kochanek-
Bartels_spline
values[0] values[2]values[1]
keyTimes[0] = 0 keyTimes[1] = 0..1 keyTimes[2] = 1
timingFunctions[0] timingFunctions[1]
tensionValues[0]
continuityValues[0]
biasValues[0]
tensionValues[1]
continuityValues[1]
biasValues[1]
tensionValues[2]
continuityValues[2]
biasValues[2]
http://en.wikipedia.org/wiki/Kochanek-Bartels_spline
kCAAnimationCubicPaced
• valuesにCGPointを設定
• keyTimesは無視される
• 微調整不可
デモ
※ Keynoteを中断する時は[H]を押す
おまけ.timingFunction
• CAKeyframeAnimationは継承している
timingFunctionプロパティを無視する
(timingFunctionsの利用が意図されている)
• timingFunctionsを指定せずに単一のtimingFunction
を指定したい場合は?
• CAAnimationGroupを使う
• Using a Single Timing Function For a Keyframe
Animation
• Core Animation Cookbook
https://developer.apple.com/library/mac/
#documentation/GraphicsImaging/Conceptual/
CoreAnimation_Cookbook/Articles/Timing.html
CAKeyframeAnimation *theAnimation =
[CAKeyframeAnimation animationWithKeyPath:@"position"];
theAnimation.path = path;
CAAnimationGroup *theGroup = [CAAnimationGroup animation];
theGroup.animations = [NSArray arrayWithObject:theAnimation];
theGroup.timingFunction =
[CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseIn];
theGroup.duration = 15.0;
[theLayer addAnimation:theGroup forKey:@"animatePosition"];
おわり

More Related Content

PDF
Core Animationの話 Part.1
PPTX
try! Swift - Advanced Graphics with Core Animation
PDF
サポートベクターマシンを用いたAXL新作タイトルにおける青山ゆかり担当キャラクターの予測
KEY
Ameba × Akamai技術交流会
PPTX
Imagemagickknowhow
PPTX
Jaws days 20200322
PPTX
Jaws days 20200322
PDF
[jaws days 2014]ELB/AutoScaling
Core Animationの話 Part.1
try! Swift - Advanced Graphics with Core Animation
サポートベクターマシンを用いたAXL新作タイトルにおける青山ゆかり担当キャラクターの予測
Ameba × Akamai技術交流会
Imagemagickknowhow
Jaws days 20200322
Jaws days 20200322
[jaws days 2014]ELB/AutoScaling

More from Yuichi Fujishige (6)

PDF
iOSのFileProtection
PDF
Auto Layout の小技
PDF
1画面から始めるStoryboard
PDF
Audio QueueでSin波再生
PDF
iOS 6 のAuto Rotation
PDF
UIViewController のコンテナ機能
iOSのFileProtection
Auto Layout の小技
1画面から始めるStoryboard
Audio QueueでSin波再生
iOS 6 のAuto Rotation
UIViewController のコンテナ機能
Ad

CAKeyframeAnimation