オブジェクトを波のように動かしたい。
でも、どう計算すればいいのか分からない。
実は、波の動きは、sin関数を使って表現できるものです。
これらを理解すれば、自然な波の動きを実装できます。
この記事では、波の動きを数学で表現する方法として、sin関数で作る自然な動きを見ていきましょう。
- 波の動きの実装方法が分からない…
- sin関数を使った動きの計算方法が理解できていない。
- 自然な波の動きを実装したい。
✨ この記事でわかること
- 波の動きの基本となるsin関数
- 振幅と周波数の考え方
- 波の動きの実装方法
- Unityでの波の動きの実装手順
- 初心者でも理解できる三角関数の基礎
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます
波動きとは何か(ゲーム制作目線)

波の動きは、sin関数やcos関数を使って、周期的な動きを実現する処理です。
オブジェクトが上下や左右に周期的に動く動きを表現します。
波の動きの基本要素は、以下のものです。
- 振幅:波の大きさ(動きの範囲)
- 周波数:波の周期(動きの速さ)
- 位相:波の開始位置
Unityでは、Mathf.SinやMathf.Cosを使って、簡単に実装できます。
ゲームでの具体的な使い道

波の動きが、ゲームでどう使われているか確認してみましょう。
背景の動き
背景の雲や海などが、波のように動きます。
sin関数を使って、自然な動きを実現します。
アイテムのアニメーション
アイテムが上下に浮遊するアニメーションに使われます。
sin関数を使って、滑らかな動きを実現します。
UIのアニメーション
UI要素が波のように動くアニメーションに使われます。
sin関数を使って、目を引く動きを実現します。
- 背景の動き
- アイテムのアニメーション
- UIのアニメーション
- パーティクルエフェクト
作り方は分かった。
でも完成まで行けない人へ
当たり判定・移動・カメラ・AIまで、
実装しながら学べる「永久会員チケット」です。
※ まずは内容を見るだけでOK
考え方・仕組みを図解イメージで説明

波の動きは、「時間の経過 → sin関数の計算 → 位置の更新」という流れで実現できます。
sin関数の周期
sin関数は、0から2πまでで1周期です。
時間に周波数をかけることで、周期を調整できます。
振幅の調整
sin関数の結果に振幅をかけることで、動きの範囲を調整できます。
振幅が大きいほど、動きの範囲が広がります。
位相の調整
sin関数の引数に位相を加えることで、開始位置を調整できます。
複数のオブジェクトに異なる位相を設定すると、波が連続しているように見えます。
- sin関数は、周期的な動きを表現する
- 振幅で動きの範囲を、周波数で動きの速さを制御できる
- 位相を調整すれば、開始位置を変更できる
- Mathf.SinやMathf.Cosを使って、簡単に実装できる
Unityで実装する際の注意点(代表例)

Unityで波の動きを実装する場合の注意点を見ていきましょう。
基本的な波動き
sin関数を使って、上下に動くアニメーションを実装します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class WaveMotion : MonoBehaviour { public float amplitude = 1f; // 振幅 public float frequency = 1f; // 周波数 private Vector3 startPosition; void Start() { startPosition = transform.position; } void Update() { float y = startPosition.y + Mathf.Sin(Time.time * frequency) * amplitude; transform.position = new Vector3(startPosition.x, y, startPosition.z); } } |
複数方向の波動き
X軸とY軸で異なる波の動きを組み合わせます。
|
1 2 3 4 5 6 7 |
void Update() { float x = startPosition.x + Mathf.Sin(Time.time * frequencyX) * amplitudeX; float y = startPosition.y + Mathf.Cos(Time.time * frequencyY) * amplitudeY; transform.position = new Vector3(x, y, startPosition.z); } |

まとめ

この記事では、波の動きについて見てきました。
重要なポイントをおさらいします。
- sin関数は、周期的な動きを表現する
- 振幅で動きの範囲を、周波数で動きの速さを制御できる
- 位相を調整すれば、開始位置を変更できる
- Mathf.SinやMathf.Cosを使って、簡単に実装できる
- 複数の方向に波の動きを組み合わせることで、より複雑な動きを実現できる
波の動きは、ゲーム開発で頻繁に使われる重要な技術です。
sin関数を理解すれば、様々な動きを実装できます。
実際のゲーム実装とセットで学ぶことで、理解が深まるはずです。
Unity入門の森では、波動きを含むシェーダーと描画処理を、実際のゲーム実装とともに体系的に学べます。
ぜひチェックしてみてください。
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます





コメント