Skip to content

第03回 色と半透明の操作

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

注意

この授業には提出課題があります

提出方法は 授業内で説明します

前回の振り返り

パーティクルに動きをつけました

  • 第02回では Particle System を使って パーティクルの発生、寿命、速度、サイズ、色変化の調整を試し 簡単なパーティクルを作成しました
  • パーティクル発生のワンショットとループの違いを整理し エフェクトの用途に合わせた発生方法を選ぶことができるようになりました
  • 今回はパーティクルのビジュアルを操作して より実践的なエフェクトの作成を目指します

今回の授業の目的

用途に合わせた基本的な描画設定を理解する

  • 透明度とブレンドモードの設定によって 様々なエフェクトの表現が可能になることを理解します
  • 火、煙、花火のような典型的なエフェクトを通して 用途に合った設定の選び方を学びます
  • 表現したい用途に合わせて 適切な設定を選んで調整できるようになることを目標にします

今回の授業内容

ブレンディングモードと標準マテリアル

  • 半透明とブレンド方法の使い分け
  • 色と明るさ
  • Renderer と描画設定
  • 煙と火花の作り分け
  • Unity の標準マテリアルの利用方法
  • 授業内課題

エフェクトの印象を決める要素

動きと色と質感

  • パーティクルエフェクトは 色や画像を乗せたポリゴンを動かす仕組みです
  • 動きの印象を決めるのは 発生量、速度、サイズの変化などの動きの要素です
  • 一方で、色や半透明の設定は 質感や見た目の印象を大きく左右します
  • 今回の授業では色と半透明の設定を中心に学びます

半透明とブレンドモード

背景への重なり方を決める

Alpha Blend と Additive の比較

  • 煙や霧、炎のような実体のない現象をエフェクトで表現するためには 背景を透かして表示する必要があります
  • パーティクルを描画する際に 半透明 の設定を 使えば、これらの表現が可能になります
  • 半透明の設定には ブレンドモード という 描画方法の選択肢があります
  • 用途に合わせた使い分けで、パーティクルを 濁らせたり光らせたりといった表現が可能です

アルファとは

透明度を表す数値

半透明な球体の表示例 1
半透明な球体の表示例 2

  • アルファ(α, A)は 0 から 1 の値で 透明度を表します 0 は完全に透明、1 は完全に不透明です
  • 値を下げるほど薄く見え 背景が透けて見えるようになります
  • 映像表現の世界ではアルファ値を透明度として RGBとセットのRGBAとして扱うのが一般的です

半透明と加算半透明

基本的な二つのブレンドモード

アルファブレンド

  • 背景に馴染ませるように描画します 煙、砂埃、霧のような濁る表現に向いています

加算ブレンド

  • 背景に色を足して明るく見せます 炎、火花のような発光表現に向いています

加算半透明は便利ですが

明るすぎるのも問題

Alpha Blend と Additive の白飛び比較
右が加算半透明の例 白くなりすぎているのがわかる

  • Additive は手軽に発光を表現できますが 光りかたの調節が難しい場合があります
  • 発生量が多すぎたり、色が明るすぎたりすると 値が大きくなりすぎて背景の形が見えず 白飛びしやすくなります
  • 色と発生量を抑えて調整する必要がありますが エフェクトの同時発生数はゲームの内容に よるため限界もあります

事前乗算アルファとは

アルファと色が掛け合わされた状態

Additive と Premultiplied Alpha の比較

  • アルファは画像の透明度を表す数値ですが RGBと乗算されるためにアルファが低いと 色が暗くなります
  • このため、表示のエッジ付近に暗い縁取りが できたり、意図した色が出ない場合があります
  • 乗算済みアルファは、あらかじめ色が アルファと掛け合わされている状態を指します ビビッドな色を出すのに便利です

Particle System とマテリアル

自由にマテリアルを設定できます

  • Renderer にはパーティクル描画に用いる マテリアルを自由に設定することができます
  • URP では Universal Render Pipeline/Particles/Unlit のように パーティクル用のシェーダーがデフォルトで複数用意されています
  • 自作のシェーダーを用意して適用すれば エフェクトの表現力を大きく広げることができま*

Unity の標準マテリアルを設定する

標準でも機能は十分

Particles Unlit マテリアルの Inspector

  • URP であれば標準で Universal Render Pipeline/Particles/Lit Universal Render Pipeline/Particles/Unlit などのパーティクル用のシェーダーが 用意されています
  • 色やテクスチャー、ブレンドモードなどの設定に 対応しており、基本的なエフェクトの表現は 十分可能です

標準マテリアルの利用方法

おすすめの設定手順

  1. まずは用途に合った Shader を選ぶ 光の向きを考慮するなら Lit、常に同じ明るさでいいなら Unlit など
  2. Surface Type を選ぶ 不透明なら Opaque、透明なら Transparent
  3. ブレンドモード(ここでは Color Mode)を選ぶ 半透明なら Multiply 加算なら Additive など
  4. テクスチャー、色、アルファ値を調整
  • ※ Color Mode には他にも様々な選択肢があります ぜひ試してみてください

パーティクルエフェクトの調整手順

動きと見た目を同時に扱う

  • 先に発生量や速度、サイズで大雑把な動きの印象を固めます
  • 次に色と Alpha の変化を調整して色味をまとめます
  • ある程度の形が見えたら その後はパーティクル挙動と色味を反復的に調整します
  • エフェクトの調整は動きだけでも色味だけでも完結しません 時間を使って、納得いくまで調整してみましょう

実習 1

煙と火花のエフェクトを作る

煙は半透明で、火花は加算半透明で 作成してみてください

なれると 簡単

煙と火花を作り分ける

ブレンドモードと色味だけでも別のエフェクトに

  1. 同じ Particle System を 2 つ用意します
  2. 一方は Alpha Blend を使って煙にします
  3. もう一方は Additive を使って火花にします
  • 違いを確認できたら 個別に色味や発生量を調整してみてください
  • ワンショットとループを組み合わせて 複合的なエフェクトにしてみるのもおすすめです

ワンショットエフェクトのゲーム内実装

StopAction での自動破棄設定

Particle System の Stop Action Destroy 設定

  • Particle System のワンショットエフェクトは 発生後に自動で破棄されるように設定できます
  • Stop ActionDestroy に設定すれば エフェクトの寿命が尽きたときに自動でオブジェクトが破棄されます
  • つまり、後片付けのコードは必要ありません 接触時のエフェクトなど、短時間で完結する エフェクトの実装に便利です 活用してみてください

今回のまとめ

色と半透明を用途に合わせて選択する

  • 半透明を使うと煙や火花のような実体のない現象を表現できます
  • ブレンドモードの使い分けで半透明の計算方法を選択できます Alpha Blend は実体感のある表現に向いています Additive は発光感のある表現に向いています
  • 標準のパーティクル用マテリアルを使えば 色やテクスチャー、ブレンドモードを簡単に調整できます

おつかれさまでした!

次回予告 第04回 火花・ヒット

次回はいよいよ 本格的なやつ