Skip to content

第07回 軌跡 ​

前回: 第06回 爆発 / 次回: 第08回 数字の表示とアニメーション

今回の授業内容 ​

  • 移動経路を残すTrailと、指定した点を結ぶLineの役割を区別する
  • 同じ移動で残る時間・太さ・頂点間隔を一つずつ比較する
  • 動きの方向が読める軌跡を作り、調整理由を説明する

開始状態 ​

授業用URPプロジェクトにLesson07.unityを作り、第01回と同じカメラを使います。基本課題では、同じ経路を繰り返し動くオブジェクトへTrail Rendererを付けます。移動を固定すると、軌跡の設定だけを比べられます。

表現残す情報機能
物体の尾物体が通った過去の位置Trail Renderer
火花の尾各粒子の移動履歴Particle SystemのTrails
ビーム指定した始点と終点Line Renderer

同じ経路で動く対象の準備 ​

空のGameObjectを原点に作り、TrailSourceと名付けます。Assets/UNSLOW/EffectPractice/Scripts/TrailMotion.csを作成し、次の全文へ置き換えて保存してください。移動は比較のための補助処理で、基本課題ではコードを変更せず使います。

cs
using UnityEngine;

public class TrailMotion : MonoBehaviour
{
    [SerializeField] private float radius = 1.5f;
    [SerializeField] private float angularSpeed = 1f;
    private Vector3 startPosition;
    private float elapsed;

    private void Awake()
    {
        startPosition = transform.localPosition;
    }

    private void Update()
    {
        elapsed += Time.deltaTime;
        float angle = elapsed * angularSpeed;
        transform.localPosition = startPosition + new Vector3(
            Mathf.Sin(angle), 1f - Mathf.Cos(angle), 0f) * radius;
    }
}

TrailSourceへTrailMotionとTrail Rendererを追加します。TrailMotionは毎フレームの経過秒数を積み上げ、同じ円形の経路へ位置を設定します。比較中はRadiusを1.5、Angular Speedを1に固定します。

Trail Rendererの表示 ​

  1. 第03回のParticleAlphaを複製してTrailMaterialとし、Trail RendererのMaterialsの先頭へ割り当てます。
  2. Trail RendererのEmittingを有効にし、Timeを0.5秒、Min Vertex Distanceを0.05にします。
  3. Widthのカーブを両端とも0.15、Colorを白・Alpha 1にします。
  4. Play Modeで、動く発生源の後ろへ帯が残ることを確認します。

Timeは各点を残す時間です。移動速度が同じなら、長く残すほど長い経路が見えます。Min Vertex Distanceは、新しい頂点を追加する移動距離の目安です。点の間隔と、帯そのものの太さは別の設定です。

長さ・なめらかさ・消え方の比較 ​

各比較はPlay Modeを終了して値を変え、再生開始から3秒後を同じカメラで見ます。

変更項目比較する値観察すること比較後
Time0.5→1同じ速度で残る経路の長さ0.5へ戻す
Min Vertex Distance0.05→0.5曲線の角ばり0.05へ戻す
Width0.15→0.3太さと画面の読みやすさ0.15へ戻す

次にColorのGradientで先頭のAlphaを1、末尾を0にし、Widthも先頭0.15、末尾0へ変えます。これは帯に沿った位置を基準にした変化です。古い末尾が細く薄くなり、移動の向きを読み取れるか確認します。

曲線が角ばるときはWidthを増やす前にMin Vertex Distanceを確認します。色を変えても、点が足りない形状の問題は直りません。

選択課題:粒子のTrails ​

第04回のSparksを複製して使うか、同回の基本設定で短い火花を作ります。TrailSourceは無効にして別々に比べます。

  1. Particle SystemのTrailsを有効にし、ModeをParticles、Ratioを1にします。
  2. RendererのTrail Materialへ、この回で作ったTrailMaterialを割り当てます。粒子本体のMaterialとは別の欄です。
  3. TrailsのLifetimeを短い値から調整します。このLifetimeは粒子の寿命に対する割合なので、秒のTimeを使うTrail Rendererと区別します。
  4. 幅と透明度を調整し、粒子本体と尾が両方読めるか確かめます。

表示されなければTrail MaterialとRatioを先に確認します。基本のTrailRendererへ戻る場合は、火花を無効にしてTrailSourceを有効へ戻します。

選択課題:Line Rendererのビーム ​

  1. 空のGameObjectBeamを原点に作り、Line Rendererを追加します。
  2. Use World SpaceをOn、LoopをOff、PositionsのSizeを2にします。
  3. Element 0を(-2, 0, 0)、Element 1を(2, 0, 0)にします。
  4. この回のTrailMaterialをMaterialへ割り当て、Widthを0.1、Colorを青白い色にして表示を確認します。
  5. Element 1のYだけを1へ変え、終点を動かした結果を予想して比べます。比較後は0へ戻します。

Lineは移動履歴を自動では残しません。始点と終点を指定する方式なので、移動する弾の尾と、二点を結ぶレーザーのどちらに適するかを説明してください。

授業内課題と完成条件 ​

基本のTrailを調整するか、選択課題の粒子の尾・ビームの一つを使います。剣や魔法など表したい対象を決め、輪郭と動きの方向を読み取れる表現へ整えます。

  • 軌跡の種類を選んだ理由を説明できる
  • 長さ・太さ・透明度のうち二つ以上を調整している
  • 同じ条件で一項目を変えた比較を説明できる
  • 必要なScene・Material・補助スクリプトを保存し、再生し直せる

Play Mode終了後に採用設定を保存します。SceneをLesson07.unity、必要なオブジェクトをPrefabとして残し、短い動画と比較結果を提出してください。メッシュを動的生成する剣閃は、この回の基本課題には含めません。