第04回 火花・ヒット
前回: 第03回 色と半透明の操作 / 次回: 第05回 炎・煙
今回の授業内容
- 火花とフラッシュを役割ごとに作り、命中の瞬間を表現する
- 発生時刻と寿命を一つずつ変え、見え方の違いを説明する
- 再生後に親全体が消えるPrefabとして保存する
火花・中心光・リングを組み合わせた構成例。リングは選択課題
命中時には、中心の光が発生位置と瞬間を、外へ飛ぶ火花が勢いを伝えます。最初はこの2要素を作り、リングと煙は必要に応じて足します。短時間でも、何が起きたか読めることが大切です。
開始状態
授業用URPプロジェクトでLesson04.unityを作成し、第01回と同じカメラを使います。前回のSceneを別名保存する場合は、比較用の粒子を無効にしてください。Materialは第03回のParticleAdditiveを使用します。ない場合はMaterialの作成に沿って用意し、Blending ModeをAdditiveへ変更します。
火花の作成
- Hierarchyで空のGameObjectを作り、
HitEffectと名付けます。PositionとRotationを0、Scaleを1にします。 - 子にParticle Systemを作成し、
Sparksと名付けます。子のLocal Positionも0にします。 - 次の値を設定し、RendererのMaterialへ
ParticleAdditiveを割り当てます。
| 場所 | 項目 | 開始値 |
|---|---|---|
| Main | Duration / Looping | 0.5秒 / Off |
| Main | Start Lifetime / Start Speed | 0.25秒 / 5 |
| Main | Start Size / Start Color | 0.08 / 黄色、Alpha 1 |
| Main | Play On Awake / Stop Action | On / None |
| Emission | Rate over Time | 0 |
| Emission | Bursts | Time 0、Count 12、Cycles 1、Probability 1 |
| Shape | Shape / Radius | Sphere / 0.05 |
Burstは指定時刻にまとめて出す設定です。Play Modeで火花が一度だけ出て、外へ移動して消えるか確認します。色や画像の調整より先に、発生回数と移動を確認してください。
Color over Lifetimeを有効にし、色を黄色からオレンジ、Alphaを発生時1から寿命の終わり0へ変えます。Size over Lifetimeも有効にし、横軸0で1、横軸1で0のカーブを設定します。このサイズはStart Sizeへ掛ける倍率です。再生して、火花が徐々に細く消えるかを確かめます。
中心フラッシュの追加
フラッシュは、火花よりも短い中心の光です。動かさない粒子を一つだけ出し、最初の瞬間を強調します。
HitEffectの子に新しいParticle Systemを追加し、Flashと名付けます。Local Position・Rotationを(0, 0, 0)、Scaleを(1, 1, 1)にします。- LoopingをOff、Durationを0.5、Start Lifetimeを0.1、Start Speedを0、Start Sizeを0.8にします。
- Rate over Timeを0、BurstのTimeを0、Countを1、Cyclesを1にし、Shapeを無効にします。
- Start Colorを白、Play On AwakeをOn、Stop ActionをNoneにします。Rendererには
ParticleAdditiveを割り当てます。 - Color over LifetimeでAlphaを1から0へ変えます。
- まず
Sparksを無効にしてFlashだけを再生し、その後Sparksを有効へ戻して全体を再生します。
画像が未設定なら四角い粒で確認できます。円形や柔らかな輪郭の画像を使用する場合はMaterialを複製してFlash専用にし、出典と利用条件を記録してください。発生数・寿命・中心位置が確認できてから形を調整します。
同時再生と時間差の比較
親のHitEffectを複製してHitBaselineと名付け、無効にして残します。比較中は有効な親を一つにし、同じカメラで再生します。
- FlashとSparksのStart Delayがともに0の状態を記録します。
- Play Modeを終了し、SparksのStart Delayだけを0.05秒へ変えます。
- 命中の瞬間と、火花が広がる順序がどう見えるか予想し、再生して確認します。
- Start Delayを0へ戻し、今度はFlashのStart Lifetimeだけを0.1から0.3へ変えます。
- 火花が読みにくくなるか比べ、寿命を0.1へ戻します。最後に採用する値を決めます。
時間差は大きければよいわけではありません。命中とは別の出来事に見えたり、中心の光が長く残って次の動作を隠したりしないか確認します。
親全体の終了とPrefab化
子のParticle SystemにStop Action: Destroyを設定すると、その子は削除できますが、空の親HitEffectは残ります。複合エフェクトでは、すべての要素が終わってから親を削除します。
- 終了処理の補助スクリプトを展開します。第06回でも同じスクリプトを使用します。
- 展開した
Assets/Scripts/DestroyAfterParticles.csと同名の.metaを、プロジェクトのAssets/Scriptsへコピーします。すでに取り込んでいる場合は追加不要です。 - 読み込み後、親
HitEffectにDestroy After Particlesを追加します。 - 子すべてのLoopingをOff、Play On AwakeをOn、Stop ActionをNoneにそろえます。比較で無効にした子も有効へ戻します。
- Play Modeで、Flashが消えた後もSparksが最後まで再生され、その後Hierarchyから親も消えることを確認します。
- Play Modeを終了し、採用設定を編集モードで保存します。親をProjectの
PrefabsへドラッグしてHitEffectを保存します。 - Scene上の親を削除してPrefabを配置し直し、同じ再生と終了を確認します。
親が残る場合は、LoopingがOnの子、長いStart DelayやLifetime、親の補助コンポーネントを確認します。編集時のParticle Effectプレビューでは、このスクリプトによる削除は行われません。
選択課題:リングまたは軌跡
基本の2要素ができたら、どちらか一つを追加できます。
- リングは子のParticle Systemを追加し、Flashと同じ一粒の設定から始めます。リング画像を使い、Size over Lifetimeを0から1へ増やして外へ広げます。Alphaは最後に0へします。
- 火花の軌跡はSparksのTrailsを有効にし、RendererのTrail Materialを割り当てます。第07回で仕組みを詳しく扱うため、今回は短い尾の有無を比較します。
追加した子も、親全体の終了確認に含めてください。
授業内課題と完成条件
- 火花とフラッシュの2要素が一度だけ再生される
- 色またはサイズが寿命に沿って変化する
- 時間差か寿命を一つ変えた比較から、採用理由を説明できる
- 最後の粒子が消えてから親全体が削除され、Prefabの再配置でも再生できる
結果の画像または短い動画と、各要素の役割、変更した値、改善したい点を提出します。録画する場合はUnity Recorderなどを使用できます。SceneをLesson04.unityとして保存してください。次回は、出続ける炎と煙の時間変化を扱います。