SlideShare a Scribd company logo
CAKeyframeAnimation
2012.08.25
ふじしげ ゆういち
@nakiwo
• ふじしげ ゆういち
• @nakiwo
• 株式会社フィードテイラー
http://feedtailor.jp/
Book+
そら案内
Slidrs
• ふじしげ ゆういち
• @nakiwo
• http://www.nakiwo.com/
洞窟物語
めがね
(Mac AppStore)
今日のテーマ
•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

More from Yuichi Fujishige

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

More from Yuichi Fujishige (6)

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

Recently uploaded

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 

Recently uploaded (9)

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 

CAKeyframeAnimation