Skip to content

第03回 色と半透明の操作 ​

前回: 第02回 パーティクル / 次回: 第04回 火花・ヒット

今回の授業内容 ​

  • Alphaとブレンドモードを使い、背景への重なり方を選ぶ
  • 粒子の動きを固定し、Materialの設定だけを変えて比較する
  • 寿命に沿って色と透明度を変え、消え方を調整する

開始状態 ​

同じURPプロジェクトでLesson03.unityを作ります。第02回のSceneを別名保存しても構いません。以前の粒子は無効にし、新しいParticle Systemを一つ作ってBlendComparisonと名付け、Position・Rotationを(0, 0, 0)、Scaleを(1, 1, 1)にします。第01回と同じカメラ位置を使います。

比較用の粒子は、LoopingをOn、Start Lifetimeを2、Start Speedを0、Start Sizeを1、Rate over Timeを2にします。Burstは空、ShapeはSphere、Radiusは0.5、Start Colorは白でAlphaを0.5にします。粒子を動かさず、同じ場所で重なる状態にします。

Alphaと背景への合成 ​

Alpha BlendとAdditiveによる重なり方の比較Alpha BlendとAdditiveによる重なり方の比較

Alphaは、通常の半透明合成で不透明さを表す0〜1の係数です。0では背景だけが見え、1では粒子の色が背景を覆います。0.5なら粒子の色と背景の色が半分ずつ混ざります。RGBは色、AはAlphaで、まとめてRGBAと呼びます。

半透明な球体が重なる表示例1
半透明な球体が重なる表示例2

半透明は粒子だけの仕組みではありません。球体の例でも、手前の色を通して背景が見え、重なる部分では見え方が変わります。粒子では、この重なりが発生数や大きさによって変化します。

背景へ色をどのように合成するかを、ブレンドモード(Blending Mode)で選びます。

Blending Mode背景との関係表現の例
AlphaAlphaに応じて粒子の色と背景の色を混ぜる煙、砂埃、霧
Additive背景へ色を加えて明るくする火花、光、魔法

Additiveで重なった部分を明るく見せることと、周囲の物体をライトで照らすことは別です。明るさを強める前に、背景や粒の輪郭が読めるか確かめます。

Particle用Materialの作成 ​

Materialは、使用するShaderと色・画像などの設定を保存するアセットです。Shaderが描画方法を決め、Particle SystemのRendererへMaterialを割り当てて使用します。

URPには標準でUniversal Render Pipeline/Particles/LitとUniversal Render Pipeline/Particles/Unlitなどが用意されています。Litは照明を受けた見え方、Unlitは照明によらない見え方を作るための選択肢です。どちらでも、画像・色・半透明の設定を用途に合わせて選びます。

  1. ProjectのMaterialsでCreate > Materialを選び、ParticleAlphaを作ります。
  2. ShaderをUniversal Render Pipeline/Particles/Unlitにします。今回は照明の違いを混ぜずに比較するため、Unlitを使います。
  3. Surface TypeをTransparentにし、表示されるBlending ModeをAlphaにします。
  4. Color ModeをMultiplyにします。これは粒子色とMaterial色を掛ける設定です。背景との半透明合成を指定する項目ではありません。
  5. Base Mapの色を白、Alphaを1にします。画像がなければ未設定の白い四角で比較できます。
  6. BlendComparisonのRendererを開き、MaterialへParticleAlphaを割り当てます。

Particles Unlitの初期状態。Surface TypeをTransparentへ変更するとBlending Modeが現れるParticles Unlitの初期状態。Surface TypeをTransparentへ変更するとBlending Modeが現れる

Color Mode: Multiplyでは、粒子のStart Color、Material色、Textureの色が組み合わさります。比較の開始時にMaterialを白にすると、粒子側で変えた色を追いやすくなります。Inspectorの項目名と役割はUnityのParticles Unlit資料でも確認できます。

同じ粒子でAlphaとAdditiveを比較する ​

比較前にMainのAuto Random Seedを無効にし、Random Seedへ1を設定します。再生し直したときの粒子配置もそろえるためです。

  1. ParticleAlphaを複製してParticleAdditiveを作り、Blending ModeだけをAdditiveへ変えます。
  2. BlendComparisonをPlay Modeで3秒ほど再生し、Alphaでの重なりを記録します。
  3. Play Modeを終了してRendererのMaterialをParticleAdditiveへ変更し、同じ時間で再生します。
  4. 背景が暗い場所と明るい場所で、粒の重なった部分がどう変わるか観察します。必要ならカメラの背景を変えますが、両Materialに同じ背景を使います。
  5. 比較後はParticleAlphaへ戻し、カメラの背景も比較前へ戻します。

通常のAlpha合成でAlpha0.5の粒が2枚重なると、背景が残る割合は0.5 × 0.5 = 0.25です。Alphaを足して1にする計算ではありません。Additiveでは同じ式にならないため、実際の明るさと輪郭を見て判断します。

Additiveで重なりが白く潰れる比較例Additiveで重なりが白く潰れる比較例

白く潰れたときは、色の明るさ、粒子数、サイズを同時に変えず、一項目ずつ下げて比較します。原因を確かめたら直前の値へ戻し、採用する調整を選びます。

寿命に沿った色と透明度の変更 ​

Color over Lifetimeは、生まれてから寿命を迎えるまでの色を変えます。横軸0が発生時、1が寿命の終わりです。Gradientの下側のキーは色、上側のキーはAlphaを指定します。

  1. BlendComparisonのColor over Lifetimeを有効にし、Gradientを開きます。
  2. 色のキーは両端とも白にします。Alphaのキーは位置0で0、0.2で1、1で0にします。
  3. 再生し、急に四角が現れる表示と、薄く現れて消える表示の違いを確認します。
  4. 最初のAlphaを1へ変えた結果を予想して試し、確認後は0へ戻します。

この設定はStart Colorなどと組み合わさります。Start ColorのAlphaが0.5なら、Gradient側を1にしても、その段階のAlphaは0.5です。見えなくなった場合は、各段階で0を掛けていないか順に確認します。

煙と火花への応用 ​

まずBlendComparisonを無効にし、第02回のLoopParticlesまたはOneShotをSceneへ配置します。前回の成果物がない場合は、第02回の基本設定で作成できます。

煙はParticleAlphaを使い、Start Colorを灰色にします。寿命を2秒、初速を0.3程度から試し、Color over Lifetimeで最後のAlphaを0にします。火花はParticleAdditiveを使い、黄色などの色と短い寿命を選びます。煙と火花の設定は一項目ずつ変え、Materialの違いと動きの違いを区別して記録してください。

同じParticle Systemから始めても、背景との合成方法と色を変えることで異なる質感を作れます。その違いが確認できたら、煙と火花を重ね、ワンショットとループの組み合わせも試してください。先に発生量・速度・サイズで大まかな動きを決め、次に色とAlphaを調整し、必要に応じて動きへ戻る順序で整えます。

ワンショットの自動破棄 ​

単独のワンショットParticle Systemを再生後に削除する場合は、LoopingをOff、Stop ActionをDestroyにします。削除はPlay Modeで確認します。複数の子を持つ親全体の終了は、第04回で扱います。

Particle SystemのStop ActionをDestroyにする設定Particle SystemのStop ActionをDestroyにする設定

発生を終え、残っている粒子も消えた後で、対象のGameObjectが破棄されます。比較を繰り返すSceneではNoneに戻しておき、再生後に片付けたい単発の用途でDestroyを選びます。

Premultiplied Alphaの補足

Premultiplied Alpha(事前乗算アルファ)は、RGBとAlphaの掛け算をどの段階で行うかに関係します。素材が持つ色の形式と合成方法を組にして扱う必要があります。「鮮やかになる設定」として一律に選ぶものではありません。この回の基本比較ではAlphaとAdditiveを使い、Premultiplyを試す場合は輪郭と背景との境界を同じ条件で見比べます。

AdditiveとPremultiplied Alphaの見え方の比較AdditiveとPremultiplied Alphaの見え方の比較

事前乗算ではRGBにAlphaを掛けた色を扱います。画像の色の形式とブレンド方法が合っていないと、境界が暗くなるなど意図しない結果が出ます。設定名だけで判断せず、画像の縁と、粒子同士が重なる部分を確認します。

授業内課題と完成条件 ​

煙と火花を一つずつ作り、画像または動画と比較の説明を提出します。素材画像を使う場合は、利用条件を確認し、出典も記録します。形の作り込みより、合成方法と消え方を説明できることを優先します。

  • Alphaの煙とAdditiveの火花を確認できる
  • Blending ModeとColor Modeの役割を区別できる
  • Color over Lifetimeで寿命の終わりに消える
  • 動きを固定したMaterial比較と、応用後の調整意図を説明できる

Play Modeを終了して採用設定を保存します。SceneをLesson03.unity、作った煙と火花を別名のPrefabとして残してください。次回は短い火花にフラッシュを組み合わせ、命中の瞬間を作ります。