Godot入門:Parallax2Dの使い方と活用法

対象読者:Godotの基本操作を少し触ったことがある初級者の方

はじめに

横スクロールゲームなどで、背景を手前と奥で違う速度で動かして奥行きを出したいときに使うのが Parallax2D です。Godot 4.3以降で追加された、1つのノードだけで視差効果を作れる仕組みです。

Parallax2Dとは?

Parallax2Dは、カメラの動きに対して独自の速度でスクロールする2Dノードです。以前のParallaxBackground・ParallaxLayerの2階層構成に代わり、1つのノードだけで視差スクロールを実現できます。

たとえるなら、電車の窓から見える景色です。近くの電柱は速く流れ、遠くの山はゆっくり動きます。この速度差を各レイヤーごとに設定できるのがParallax2Dです。

Parallax2D は Node2D → CanvasItem → Node を継承しています。scroll_scaleプロパティでカメラに対する追従割合を指定し、repeat_sizeで画像を横(または縦)に繰り返し表示できます。

このノードを使うべき場面

  • 横スクロールアクションなどで多層の背景に奥行きを出したいとき
  • 一定間隔で同じ絵柄を繰り返す背景(星空、雲、山並みなど)を作りたいとき
  • カメラの動きに合わせて背景をゆっくり/速く動かして立体感を出したいとき

背景の層が増えるほど、Parallax2Dによる速度調整の効果が際立ちます。

使わない・別のノードが適切な場合:

  • 背景が動かない・視差が不要 → Sprite2Dをそのまま配置する
  • 既存プロジェクトでParallaxBackground/ParallaxLayerを使っている → 無理に置き換える必要はなく、そのまま利用を続けてよい(互換性のため両方とも使用可能)

使うかどうかの目安:新規プロジェクトで視差スクロール背景を作るなら、まずParallax2Dを検討するとよいでしょう。

主なプロパティと機能

プロパティ/メソッド役割
scroll_offsetスクロールの基準位置をずらすオフセットVector2
scroll_scaleカメラの移動量に対する追従割合(小さいほどゆっくり動く)Vector2
repeat_size画像を繰り返す間隔のサイズVector2
repeat_times繰り返し表示する回数int
autoscrollカメラと無関係に自動でスクロールさせる速度Vector2

もっと使いこなす:カスタマイズできるパラメータ

複数レイヤーで奥行きを出す

貼り付け先の準備:①シーンツリーで+ボタンから「Parallax2D」を検索して追加(背景レイヤーの数だけ複数作成) ②各ノードの子にSprite2Dを配置して背景画像を設定 ③いずれか1つのParallax2Dを右クリックして「アタッチスクリプト」→GDScriptのまま「作成」を押し、開いたエディタに以下を貼り付け

extends Parallax2D

func _ready() -> void:
	scroll_scale = Vector2(0.5, 1.0)
	repeat_size = Vector2(1024, 0)
	repeat_times = 3

よくある質問:似たノードとの違い

Q. ParallaxBackgroundやParallaxLayerとの違いは?

以前はParallaxBackgroundの子にParallaxLayerを配置する2階層構成が必要でしたが、Parallax2Dは1つのノードだけで同じ効果を実現できます。既存プロジェクトの資産はそのまま使えますが、新規で作るならParallax2Dの方が手軽です。詳しくはParallaxBackgroundParallaxLayerの記事を参照してください。

Q. CanvasLayerで固定表示する背景との違いは?

CanvasLayerはカメラの影響を受けずに固定表示するための仕組みで、視差効果はありません。奥行きのある動きを付けたい場合はParallax2D、常に画面に固定したいUIなどはCanvasLayerを使い分けます。詳しくはCanvasLayerの記事を参照してください。

まとめ

Parallax2Dは、1つのノードだけでカメラに対する視差スクロール背景を作れる、Godot 4.3以降の新しい仕組みです。

  • scroll_scaleでカメラへの追従割合を層ごとに調整できる
  • repeat_sizeで背景の繰り返し表示ができる
  • 既存のParallaxBackground/ParallaxLayerもそのまま使用可能

これでNode解説シリーズの新規追加分は完了です。今後も新しいノードが追加され次第、随時解説記事を公開していきます。

関連性の高いノード解説記事

この記事はGodot 4.xをもとに執筆しています。

コメント