2013年3月6日水曜日

pygameでフレームアニメ作成ツール作ってました

あけましておめでとうございます。
今回は創作活動の道中の様子を少し。



ゲーム作りともなると色々な開発用ツールが生み出されるのですが、
その中の1つを紹介してみたいと思います。

本来はゲーム制作を目的としたpygameというpythonモジュールですが、
これが割と内容のあるものでして、ビットマップのピクセル編集や音声のサンプルデータ編集もいくらか行う事ができます。(音声まわりはまだ触ってません)
単純な画像編集は普段PILを使いますが、編集内容によってはpygameを持ち出す事も多いです。

そこで、ゲーム演出に重要なアニメーションエフェクトについてはpygameで制作環境を作成する事にしました。
今回はその環境を使い、1つのサンプルが出来るまでの手順を紹介したいと思います。


1.GIMPたんで以下のような画像を描く
想定より大きめに描いておきます。


2.pythonで挙動を定義するコードを描きます。(当サンプルはちょうど100行ほどで書ける演出です)
ここでインポートしてるモジュールが主な成果物です。



3.以上のpyを実行するとテスト画面が現れる。


このウィンドウからエクスポートフォームを開き、
フレームスキップやセルサイズの設定をしてフレームアニメとして吐く事ができます。

以下、吐いたもの。(128*128セル設定(全長3200*128)で吐いたものを縮小しました)


非常に小さくなりました。一応ぬるぬる動いていい感じなのです。
一応この工程で"特定色を透明度にする"という操作を行っています。




感想

AviUtlの拡張編集でも同じような事はできる事に気づき、存在意義が疑わしくなってきました。もう黒歴史ですか。

結局今回のプラクティスで実践できたメリットというと・・・
1. ループなどを含めた値変化を利用してアニメーション定義が可能
   → 何千個といったパーティクルを簡単に定義、描画できる
   (もっと他の値に依存させれば活用の幅が広がる??)
2. フレームアニメの自動抽出。
くらいのものでしょうか。

スクリプティングについても、パーティクルの拡散を表す式など、
もっと可読性が上がるような構造化、マクロの用意など、課題が残ります。



成果物のモジュールの公開については、
まだ完成度が至ってない事、そして公開時の心得(ライセンスなど)について僕自身知らない事が多すぎる事があり、ひとまず未定とさせて頂きます。

0 件のコメント:

コメントを投稿