【Godot4】Path2Dを複製すると経路も変わる原因と対処法|Curveをユニーク化する

2025-12-25

Path2Dを複製して別の移動経路を作ろうとしたところ、複製先の経路を編集すると、元の経路まで変わってしまいました。

原因は、2つのPath2Dが同じCurve2Dリソースを参照していたことです。

この記事では、PathFollow2Dによる移動処理を設定済みの状態から、複製した経路が連動する問題を解説します。

前提知識

Path2D / PathFollow2D の基本は以下の記事がわかりやすいです。

環境

  • Godot4.5
  • GDScript

設定方法

Path2Dを複製した際、複製元と複製先が同じCurve2Dを参照している場合があります。 経路を別々に編集するには、複製先のCurveをユニーク化します。

では、実際に以下のようなシーンを複製してステージを徘徊する敵キャラを表現します!

  • Path2D
    • PathFollow2D
      • 移動させたいキャラ(CharacterBody2Dなど)

まず、Path2Dを使ってEnemy1というキャラクター1体を移動させます。

この画像のようにPath2Dを設定すると以下の動画のような動きになります。

Path2Dの子にPathFollow2DとEnemy1を配置し、四角形の移動経路を設定した画面
Path2Dの子にPathFollow2DとEnemy1を配置し、四角形の移動経路を設定した画面

次に先ほど作成したPath2Dを複製し、経路を設定します。

そうすると画像のように複製元の経路まで変更されてしまいます!

複製先の経路を三角形に編集すると、同じCurve2Dを共有する複製元の経路も三角形に変わった状態
複製先の経路を三角形に編集すると、同じCurve2Dを共有する複製元の経路も三角形に変わった状態

今回の複製ではPath2Dノードは2つになりましたが、Curve2Dは同じものを参照していました。 そのため、複製先で経路の点を動かすと、複製元にも変更が反映されます。

「ユニーク化」を行うと、複製先に専用のCurve2Dが作られ、経路を個別に編集できるようになります。

複製した後にCurveをユニーク化する

  1. シーンツリーで、複製先のPath2Dを選択する
  2. インスペクターの「Curve」欄の右端にあるメニューを開く
  3. 「ユニーク化」を選択する
  4. 複製先の経路を編集する
Path2DのインスペクターでCurve欄のメニューを開き、「ユニーク化」を選択する画面
Path2DのインスペクターでCurve欄のメニューを開き、「ユニーク化」を選択する画面

これにより各々が別のCurveを参照するので個別に編集することができます!

ユニーク化後は、複製先を三角形に変更しても、複製元の四角形は変わりません。

Curveをユニーク化し、複製元の四角形を維持したまま複製先の経路を三角形に変更した状態
Curveをユニーク化し、複製元の四角形を維持したまま複製先の経路を三角形に変更した状態

別の方法:Curve未設定のPath2Dを複製する

別の方法として、Curve未設定のPath2Dを複製し、それぞれに新しいCurve2Dを作成する方法があります。

  1. Curve欄が〈空〉のPath2Dを複製する
  2. 各Path2DのCurve欄のメニューから、それぞれ「新規Curve2D」を作成する
  3. それぞれのPath2Dで経路の点を追加し、別々の形に編集する

この方法は、まだ経路を作成していない場合に便利です。 作成済みの経路を残したい場合は、ユニーク化する方法を使います。

Path2Dのインスペクターで、Curve欄が〈空〉になっているCurve2D未設定の状態
Path2Dのインスペクターで、Curve欄が〈空〉になっているCurve2D未設定の状態

まとめ

Path2Dを複製した後、片方の経路を編集するともう片方も変わる場合は、同じCurve2Dを参照している可能性があります。

作成済みの経路を使う場合は、複製先のCurveをユニーク化してから編集すればよい。💯

Curve未設定のPath2Dを複製し、それぞれに新しいCurve2Dを作成する方法もあります。

Godotゲーム開発ブログ