LoginSignup
24
19

More than 5 years have passed since last update.

[Unity] ParticleSystemで連番テクスチャを扱う (TextureSheetAnimation)

Last updated at Posted at 2017-02-01

実行環境

  • Unity5.6.0b1 (beta)

第6回ゲームエフェクトコンテスト

image

  • https://www.gameeffectcontest.com/
  • 2017年2月25日までエントリーを受け付けているコンテスト
  • 第6回からUnity部門も開催!
  • 決められたテクスチャ群を利用するテクニカル部門とフリー部門が存在する
    • テクニカル部門は素材を1から用意する必要が無いのでUnityを多少扱えるエンジニアでも戦えそう

image

連番テクスチャ

  • テクニカル部門の素材に含まれる以下のような画像がある
  • このようにアトラス化されたTextureをUnityのParticleSystem(Shuriken)でどのように扱えば良いか?

image

TextureSheetAnimation

image

項目名
Tiles X/Yのそれぞれに対して何分割するか
Animation WholeSheetはテクスチャシート全体を左から右、上から下へとアニメーションする設定 / SingleRowはシートの1列のみを左から右にアニメーションする
RandomRow AnimationがSingleRowのとき、どの列を再生するかランダムで決定する
Row AnimationがSingleRowかつRandomRowが無効のとき、どの列を再生するか指定する
FrameOverTime アニメーションのフレームが進行するにつれてどのように切り替わるか
StartFrame どのフレームからパーティクルを開始するか
Cycles パーティクルの生存時間中に何回アニメーションをループさせるか
FlipU U座標を反転させて、水平に鏡映したように見せる
FlipV V座標を反転させて、垂直に鏡映したように見せる
EnabledUVChannels 指定したUVに対してマスクを適応する

サンプル

下準備

  • Materialを生成
    • 任意のShaderを指定 (今回は Mobile/Particle/Additive)
    • アトラス化されたテクスチャを指定
  • ParticleSystemをScene上に追加

create_material.gif

ParticleSystemの設定

  • Renderer
    • Materialを指定
    • MaxParticleSizeを1に指定
  • TextureSheetAnimation
    • 有効にする
    • TileXに8 / TileYに4を指定する
  • Shape
    • 無効にして出現位置/射出方向を拡散しないようにする
  • ParticleSystem
    • StartSpeedを0にしてその場に留まるようにする
    • StartSizeを10に設定に設定し大きく描画
    • Duration / StartLifetime 共に2に設定し、再生時間を調整
  • Emission
    • RateOverTimeを0にし、継続して射出しないようにする
    • Burstsを有効にし、0.00時点でMin/Maxを1に指定し、1個だけ表示されるようにする

particle_setting.gif

再生

  • 通常再生

particle_effect.gif

  • フレーム送り (ショートカットキー: mでフレーム毎にコマ送り再生)

particle_effect_frame.gif

後は加工して好みのエフェクトにするだけ!

  • (色味を加え、RateOverTimeに変更しつつ、ランダム回転加え、重力を逆方向に指定した図)

effect.gif

24
19
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
24
19