ゲーム数学を「使える力」に変えよう!ゲーム講座PDF無料プレゼント中>>

ローカル座標とワールド座標の変換が分かる|階層構造で使う座標系

ベクトルと行列で理解するゲーム数学|移動・回転・変換の基本

親オブジェクトと子オブジェクトの座標が、どう関係しているのか分からない。

ローカル座標とワールド座標の変換が、どう行われているのか知りたい。

実は、ローカル座標とワールド座標の変換は、階層構造で使う座標系の変換です。

親オブジェクトの座標系と、子オブジェクトの座標系を変換すれば、正しい位置を計算できます。

この記事では、ローカル座標とワールド座標の変換について、階層構造で使う座標系を見ていきましょう。

  • ローカル座標とワールド座標の変換方法が分からない…
  • 親子関係での座標計算が理解できていない。
  • 階層構造で使う座標系を知りたい。

この記事でわかること

  • ローカル座標とワールド座標の基本概念
  • 親子関係での座標系
  • 変換に必要な計算方法
  • Unityでの変換関数の使い方
  • 初心者でも理解できる座標変換の考え方
ゲーム制作を“理解しながら”始めたい方へ
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます

【ゲームの作り方講座もプレゼント中!】

ローカル座標ワールド座標変換とは何か(ゲーム制作目線)

ローカル座標ワールド座標変換の基本

ローカル座標とワールド座標の変換は、親子関係のあるオブジェクト間での座標系の変換です。

ローカル座標は、親オブジェクトを基準とした座標です。

ワールド座標は、シーン全体を基準とした座標です。

親オブジェクトが移動・回転・拡大すると、子オブジェクトのワールド座標も変化します。

しかし、子オブジェクトのローカル座標は変わりません。

この変換を行うことで、親子関係を正しく処理できます。

Unityでは、Transformコンポーネントの関数を使って、簡単に変換できます。

ゲームでの具体的な使い道

ローカル座標ワールド座標変換のゲームでの使用例

ローカル座標とワールド座標の変換が、ゲームでどう使われているか確認してみましょう。

親子関係での座標計算

親オブジェクトと子オブジェクトの座標を、正しく計算する際に使われます。

親が移動・回転しても、子のローカル座標は変わらないため、変換が必要です。

武器や装備の配置

キャラクターに武器を装備させる際、ローカル座標で配置します。

親(キャラクター)が移動・回転しても、子(武器)が正しい位置に配置されます。

UI要素の配置

UI要素を3Dオブジェクトの上に表示する際、座標変換が使われます。

ワールド座標をスクリーン座標に変換して、UI要素を配置します。

アニメーション

アニメーションで、ローカル座標を使うことで、親の動きに影響されずにアニメーションできます。

ローカル座標ワールド座標変換が使われる場面

  • 親子関係での座標計算
  • 武器や装備の配置
  • UI要素の配置
  • アニメーション

作り方は分かった。
でも完成まで行けない人へ

当たり判定・移動・カメラ・AIまで、
実装しながら学べる「永久会員チケット」です。

買い切り 全講座 今後追加も無料
永久会員チケットを見てみる

※ まずは内容を見るだけでOK

考え方・仕組みを図解イメージで説明

ローカル座標ワールド座標変換の仕組み

ローカル座標とワールド座標の変換は、親オブジェクトの変換行列を使った座標変換で実現できます。

ローカル座標からワールド座標への変換

子オブジェクトのローカル座標を、親オブジェクトの変換(位置・回転・拡大)を使って、ワールド座標に変換します。

親の位置・回転・拡大を考慮して、子の座標を変換します。

ワールド座標からローカル座標への変換

ワールド座標を、親オブジェクトの逆変換を使って、ローカル座標に変換します。

親の位置・回転・拡大の逆を適用して、子の座標を変換します。

変換行列の役割

親オブジェクトの変換行列(位置・回転・拡大)を使って、座標を変換します。

Unityでは、この変換が自動的に行われます。

階層構造の影響

複数の階層がある場合、各階層の変換を順番に適用します。

親 → 子 → 孫の順に、変換を適用します。

⚠️ 重要なポイント

  • ローカル座標は親オブジェクトを基準、ワールド座標はシーン全体を基準
  • 親の位置・回転・拡大を考慮して、座標を変換する
  • UnityのTransform関数を使うことで、簡単に変換できる
  • 階層構造がある場合、各階層の変換を順番に適用する

Unityで実装する際の注意点(代表例)

Unityでのローカル座標ワールド座標変換の実装

Unityでローカル座標とワールド座標を変換する場合の注意点を見ていきましょう。

ローカル座標からワールド座標への変換

Transform.TransformPoint関数を使って、ローカル座標からワールド座標に変換します。

ワールド座標からローカル座標への変換

Transform.InverseTransformPoint関数を使って、ワールド座標からローカル座標に変換します。

武器の配置

武器をキャラクターの手に配置する例です。

UI要素の配置

3Dオブジェクトの上にUI要素を表示する例です。

親の動きに追従

子オブジェクトが親の動きに追従する例です。

実装のコツ

Transform.SetParentを使って、親子関係を設定すると、自動的に変換が行われます。

ローカル座標で配置すれば、親の動きに追従できます。

ワールド座標が必要な場合だけ、Transform.TransformPointを使いましょう。

博士
博士
ローカル座標とワールド座標の変換は、階層構造で使う座標系の変換です。UnityのTransform関数を使うことで、簡単に変換できます。ローカル座標で配置すれば、親の動きに追従できますよ!

まとめ

ローカル座標ワールド座標変換のまとめ

この記事では、ローカル座標とワールド座標の変換について見てきました。

重要なポイントをおさらいします。

重要なポイント:

  • ローカル座標は親オブジェクトを基準、ワールド座標はシーン全体を基準
  • 親の位置・回転・拡大を考慮して、座標を変換する
  • Transform.TransformPointでローカル→ワールド、InverseTransformPointでワールド→ローカルに変換
  • Transform.SetParentを使うと、自動的に変換が行われる
  • ローカル座標で配置すれば、親の動きに追従できる

ローカル座標とワールド座標の変換は、階層構造で使う座標系の変換です。

親子関係を正しく処理するために、重要な技術です。

UnityのTransform関数を使うことで、簡単に変換できます。

実際のゲーム実装とセットで学ぶことで、理解が深まるはずです。

Unity入門の森では、ローカル座標ワールド座標変換を含むベクトルと行列を、実際のゲーム実装とともに体系的に学べます。

ぜひチェックしてみてください。

ゲーム制作を“理解しながら”始めたい方へ
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます

【ゲームの作り方講座もプレゼント中!】

コメント

タイトルとURLをコピーしました