はじめに
この記事は、matplotlibのFuncAnimationを使用して、胴体が伸びる犬のアニメーションを作成する方法について解説しています。Pythonのmatplotlibライブラリを活用して、基本的な図形を組み合わせた犬のキャラクターを描き、その胴体部分が伸縮するアニメーション効果を実装する手順が示されています。コードの解説と実行結果の視覚的な表現が含まれています。
コード
解説
モジュールのインポート
グラフの設定
図の大きさは、横長の形状を実現するためfigsize(8,4)に設定しています。
犬の作成
犬は、matplotlibの簡単な図形を描画する機能(patches, lines)を使って描きました。詳細は以下にあります。

アニメーション表示するための変数の設定
胴体の伸縮はx_shiftで実装しており、np.linspace()を使って増加する配列と減少する配列を作成し、np.hstack()でそれらを結合しています。
歩行動作については、胴体が1回伸縮する間に10歩歩くよう設計しています。そのため、x_shiftの10分の1のサイズの配列を作成し、np.tile()で10回繰り返すことでx_shiftと同じサイズに調整しています。
後ろ足は前足より少し遅れて動くよう設定しています。これを実現するために、np.zeros(5)を配列の先頭に追加し、末尾の5要素を削除することでサイズを維持しています。
アニメーションの設定
アニメーションの初期設定
initはアニメーションの開始時に実行される関数で、グラフの初期設定を行います。returnステートメントには、アニメーションで動かしたい要素を指定します。
アニメーションの設定
各図形や線は、set_*メソッドを使って動かします。具体的には、FancyBboxPatchはset_xとset_widthで、Wedge、Arc、Ellipse、Circleはset_centerで、そしてLine2Dはset_xdataで位置を制御します。
アニメーションの表示
intervalはアニメーションの各画像が切り替わる間隔の設定で、単位はミリ秒(ms)です。
framesはupdate関数が実行される回数を指定します。interval × frames = 5000[ms]となるため、アニメーションの長さは5秒になります。また、HTML(ani.to_html5_video())を使用すると、Jupyter Notebook上にアニメーションを表示できます。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)まとめ
matplotlibのFuncAnimationを使えば、簡単な図形を組み合わせたキャラクターのアニメーションが作成できます。今回は犬の胴体が伸びるアニメーションを例に、アニメーションの基本的な実装方法を学びました。このテクニックは教育用途やデータ可視化の際に役立つでしょう。
コメント