BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

#12 パスデータをモーフィングしてみたーC4のパスであそぶ(1)

この記事は「一人アドベントカレンダー2013〜Lonely Advent Calender 2013〜」の13日目の記事です。

今回からはパスデータを使ったアニメーションを試してみたいと思います。

Morphing C4Shapes from [C4] on Vimeo.

この動画を見て、C4だと手軽にパスアニメーションを作れるということもあり、ひと通り試してみたいと思います。 パスデータを使ったモーションはObjective-Cでゴリゴリ書いていくのも大変そうなので、これは使えそうですね。

C4Shapeを初期化

ひとつのC4Shapeオブジェクトをつくり、そのオブジェクトに形のデータを与えていくことでモーフィングのアニメーションを作り出しています。 まずはsetupでC4Shapeオブジェクトを矩形として初期化してcanvasに配置します。

-(void)setup {
    
    //setup up the initial shape
    theShape = [C4Shape rect:CGRectMake(0,0,240,240)];
    theShape.center = self.canvas.center;
    
    //set its animation duration which will be used for all animations
    theShape.animationDuration = 1.0f;
    
    //add it to the canvas
    [self.canvas addShape:theShape];
}

変化する先の形

次に形を変化させるためのメソッドを追加します。 C4Shapeクラスのインスタンスメソッドであるellipse:を呼び出します。 ellipse:は文字通り、楕円形にするためのメソッドです。引数に矩形を渡し、その矩形内に楕円を描きます。

-(void)ellipse {
    [theShape ellipse:theShape.frame];
}

これを先ほどのsetupの一番最後に呼び出します。

-(void)setup {
    
   (略)
    [self ellipse];
}

チュートリアル通りですが、たったこれだけでモーフィングができちゃいました。