LoginSignup
2
0

More than 5 years have passed since last update.

Swift:おっぱい関数をつまんでプルンとさせてみた.

Posted at

概要

Swiftでキーフレームアニメーション実装の練習をしようと思い,おっぱい関数選手権大会にて準優勝に輝いた@CHARTMANqさん作のおっぱい関数をつまんでプルンとさせてみました.

できたもの

oppai_demo.gif

GitHubリポジトリ(自分のiPhoneでも動かしてみたい人向け)

実装の軽い説明

1. 基本,静止状態のOppaiCurveを描画して待機(パンジェスチャのイベント待ち)
2. ユーザのドラッグに応じて上下にOppaiCurveを歪ませる
3. ユーザが指を離したらアニメーションを開始(パンジェスチャーの解除:アニメーション中はジェスチャを受け付けない)
 - 減衰しながら揺れるように,OppaiCurveのキーフレームアニメーションを設定する
 -> 上にドラッグして離した場合は下方向に揺れ始めるようにし,その逆の場合は上に揺れ始めるようにする
4. アニメーションが終了したら,パンジェスチャを再登録

キーフレームアニメーション

キーフレームアニメーションにはCAKeyframeAnimationを使います.普通はCAMediaTimingFunctionを使ってキーフレーム間を補間するのですが,今回はOppaiCurveが複雑な関数(実際にはベジェ曲線)だったため,パラパラ漫画のようなコマ送りアニメーションになるようCAMediaTimingFunctionを使わず,CAKeyframeAnimation.calculationMode = .discreteとしました.

参考

また,CHARTMANさんにTwitterで直接アドバイスをいただき,さらに減衰振動のデモまで作っていただきました(お優しい...

所感

CHARTMANさんのアドバイスもあり,比較的簡単におっぱい関数を揺らすことができたのですが,もっと柔軟にプルプルさせたかったというのが本音です.曲線の知識はほぼ高校3年までの二次曲線でストップしているので.自在に曲線をアニメーションさせるには,もう少し深く数学の勉強をする必要がありそうです.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0