エフェクト実習 後期
前期の粒子表現とシェーダーを発展させ、光粒子の流れ、メッシュ表面からの生成、魔法弾、雨景、照明を受ける煙などを制作します。VFX Graphを中心に、メッシュ表面、衝突位置、地面、照明、画面全体へ表現対象を広げます。
完成見本の用途を確認し、必要な要素を分けて学んだ後、一つの演出へ組み合わせます。制作環境はUnity 6.6(6000.6.0f1)、URP・Visual Effect Graph 17.6.0です。
授業計画(全12回)
複数回で一つの演出を作る場合も、各回で完成させる部分を決めて進めます。第13回はVFX Graphの基本、第14回はメッシュ表面からの生成へ進みます。第15回は雨とSDFの衝突を比較し、第16回の軌跡の学習へつなげます。第17・18回では、最初の回で二回分の完成見本を確認します。
| 回 | 題材 | その回で完成させること |
|---|---|---|
| 13 | VFX Graphによる大量のパーティクル生成と流れの制御 | 大量の光粒子を生成し、生成後のTurbulence・Force・Dragで一つの流れを作る |
| 14 | 第14回 メッシュ表面からのパーティクル生成 | 表面の位置と法線で毛を配置し、変形への追従を実習する。発展課題ではディゾルブと粒子を同期する |
| 15 | 第15回 GPU完結での衝突判定とパーティクル生成 | 雨粒から波紋と飛沫を生成し、SDFでの反射と衝突時の発光を比較する |
| 16 | Particle Stripsによる魔法弾の軌跡 | 移動中の軌跡と衝突による反応を一続きの演出にする |
| 17 | Decalによる地面の濡れと痕跡 | 地面への投影で、濡れた範囲と乾いた範囲を作り分ける |
| 18 | カメラに追従する雨と地面の反応 | 雨・飛沫・濡れを重ね、移動中も成立する雨景を作る |
| 19 | 地形になじむ霧の配置と境界処理 | 地形との交差を目立ちにくくし、奥行きのある霧を配置する |
| 20 | Six-Way Lightingによる煙の照明 | 光の向きが変わっても立体感を保つ煙を作る |
| 21 | SDFによる物体表面への粒子の追従 | 動いている粒子を、物体表面付近へ引き戻す |
| 22 | 画面全体への効果と状態変化の表現 | 集中や転送などの状態変化を画面全体の効果で伝える |
| 23 | Timelineによる複合演出の同期 | 既習のVFX・シェーダー・音を同期し、再生と終了を整える |
| 24 | 既習エフェクトの応用と作品の記録 | 一つの用途へ応用し、条件変更と品質・負荷の比較を記録する |
第13〜15回は本文と回別Unity Packageを用意しています。第16〜24回の手順書と回別Packageは準備中です。使用するファイルは配布ファイルで確認できます。
授業のつながり
第13・14回:大量の粒子による流れから、メッシュ表面の表現へ
第13回はVFX GraphのContextの役割を確認し、大量の粒子を生成します。初期速度だけの状態と、生成後にTurbulence・Force・Dragを加えた状態を比較し、光粒子の流れを作ります。第14回は発生位置をメッシュ表面へ変更し、表面の位置と法線を使って毛を配置します。前期のディゾルブと粒子を同期する消滅表現は、基本完成後の発展課題とします。
第15・16回:衝突による反応から、粒子の軌跡へ
第15回は、雨粒が消えて波紋と飛沫を残す作例と、ウサギのSDFで反射して接触位置が光る作例を比較します。親の衝突応答、子を生成する通知、位置の引き継ぎを分けて学びます。第16回は点の並びから帯状の軌跡を作り、移動と衝突の反応を一続きにします。
第17・18回:地面の濡れから、雨のある場面へ
第17回は地面へ濡れの模様を投影し、乾いた部分との質感の違いを作ります。第18回は雨の発生範囲をカメラへ追従させ、既習の風、衝突位置からの飛沫、地面の濡れを組み合わせます。
第19〜24回:空間との関係から、同期と応用へ
霧と地形の境界、煙と照明の関係、移動する粒子と物体表面との距離、画面全体の効果を順に学びます。第23回で既習のエフェクトと音をTimelineで同期し、第24回で一つの用途に応用して、条件変更と品質・負荷の比較を記録します。
学習の進め方
- 完成見本がゲーム内で何を伝えるかを考え、今回作る要素を確認します。
- 小さな構成から始め、一つの値や接続を変えた結果を予想して、実際の表示と比較します。
- 要素を組み合わせ、その回の完成形として再生します。
- 対象や条件を一つ変えて応用し、設定を選んだ理由を説明します。
比較では初期位置、再生開始時刻、乱数のSeed、カメラなどを必要に応じてそろえ、比較後は基準値へ戻します。各回で必要な前提を確認し、前の課題が未完成の場合も、用意する開始素材から次の主題へ進める構成とします。
到達目標
- 前期の技法と新しく学ぶ方法を組み合わせ、用途に合う表現を作る
- メッシュ、衝突位置、地面、距離、照明のデータを表現へ接続する
- 共通の操作値と時間軸で演出を同期し、再利用できる形へ整える
- 条件を一つ変えて予想と結果を比較し、設定の採用理由を説明する
- 品質と負荷を同じ条件で比較し、応用した作品を記録する
教材の公開状況
第13回では、配布プロジェクトのSparkleFlowを観察し、SceneとGraphを複製して実習します。第14回では、毛の配置と密度を比較し、Skinned Meshへの追従を実習します。ディゾルブとの組み合わせは応用課題です。第13・14回のサンプルは回別Unity Packageで取り込みます。第15回は雨とSDF衝突のサンプルを回別Unity Packageで取り込みます。第16〜24回の手順書・回別Packageは準備中です。配布ファイルで実習環境を確認してください。
以下の解説は、改訂前の構成による参考資料です。下の番号は旧掲載番号であり、上の授業計画の回番号とは一致しません。
改訂前の技法解説
旧掲載番号01〜02はGraphの構成・操作手順、03〜12は原理・数値例・確認課題が中心です。
| 旧掲載番号 | 内容 | 本文で確認すること |
|---|---|---|
| 01 | GPU粒子の配置と群れの変形 | 共通の操作値と粒子ごとの保存位置から、変形結果を求める |
| 02 | 速度場とCurl Noiseによる流れ | 位置から速度を読む処理と、風・渦の合成を説明する |
| 03 | メッシュからの発生と出現・崩壊 | 表面位置・法線・飛散開始の役割を区別する |
| 04 | Particle Stripsによるリボンの構成 | 帯の番号、点の順序、点間隔から形を考える |
| 05 | GPU Eventsと粒子の連鎖 | 通知・引継ぎデータ・子の生存数を追う |
| 06 | SDFによる衝突・接近・吸着 | 距離の符号、接近係数、運動の変更を区別する |
| 07 | 空間に分布する霧と塵 | 分布、Alpha合成、地形との境界を分けて考える |
| 08 | Six-Way Lightingによる煙の照明 | 六方向の記録、コマ、光の向きの対応を読む |
| 09 | カメラに追従する雨・雪 | 発生範囲、座標空間、風による移動量を説明する |
| 10 | ゲームからのデータ入力と制御 | 入力の名前・型・単位と、値が反映される時点を読む |
| 11 | 負荷の診断と品質調整 | 比較条件をそろえ、観測と原因の推測を分ける |
| 12 | イベント・Timeline・再利用 | 開始、発生停止、余韻終了、再初期化を追う |