スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コミケ落選お知らせ&エフェクト紹介

1週間前の話ですが、Twitterでも告知した通り夏コミ落選です。夏はこれまで2回中2回とも落選していたので予想通り。受かっていたら死んでいたと言えましょう。とりあえず委託とかの予定もありません。


先日幸運にもエフェクト本( http://www.amazon.co.jp/dp/4798041181/ )の懸賞に当選しました。いい機会だということで、うちのサークルで使っているエフェクト技術についてご紹介

概要


怨霊のころから現在に至るまで、うちのゲームのエフェクトの大部分はパーティクルエフェクトというもので作られています。パーティクルエフェクトというのは小さい画像(パーティクル)を大量に描画することによって表現する技術で、一般的には炎や流体の表現に向いていると言われます。パーティクルの画像や速さ、移動方向などのパラメタを調整することでバリエーションに富んだエフェクトを簡単に量産できるのが特徴です。
エフェクトのサンプルはこんな感じです。どれも以下に書かれた仕組みだけで作られています。



パーティクルエフェクトを使うと適当な調整でもそこそこのエフェクトが1分かからずに作れるので、ゲーム中のあらゆるイベントにエフェクトを付けるというスタイルとの相性がいいというのがメリットです。

当サークルでの実装


簡単に実装しようとするなら普通の2Dキャラクターを表示するのと全く同様にやっても問題ないのですが、ここではパーティクルに初期パラメタを与えたあとの動きは全てGPUに任せるという方法を取っています。パフォーマンス的に有利なのかは測っていないので分かりません(何年もの間の未解決問題)。

それぞれのパーティクルは

  • 初期座標、初速度、加速度の各ベクトル
  • 初期透明度、透明度変化量、透明度変化量の変化量(位置、初速度、加速度に相当)
  • 幅と高さ(noitaまでは幅=高さ)
  • 角度、角度変化量(怨霊までは角度指定なし、noitaまでは角度変化量0)
  • ブレンド色(noitaまではなし)
  • 生成時刻(フレーム数)

という情報をもって生成されます。作品ごとに実装されていないパラメタがあるのは、単に制作当時そのパラメタが必要だと思いつかなかっただけで技術的な理由はありません。
これらのパラメタの配列があれば、あとは現在時刻(フレーム数)とテクスチャがあればパーティクルを描画することができます。時間経過でαが0以下になるようにしてあれば見えなくなった時がパーティクルの寿命といえるでしょう。なお、シェーダーで描画する場合はパーティクルのサイズをピクセルサイズで指定するため、描画先画面サイズの情報も必要です。
このパーティクル情報を頂点データとしてシェーダーに送り、頂点シェーダで表示する座標や色の計算をしているのですが今回はここまで。気が向いたら続きを書きます。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

オーバーイプシロン

Author:オーバーイプシロン
同人ゲームサークル オーバーイプシロン

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
Twitter
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。