Godot4 Camera2D ある程度キャラが動いたらスクロールする設定

無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、操作キャラクターの移動に対応して画面表示を、簡単にスクロールさせることができる Camera2D クラスの Drag Margin の幅を調節して、操作キャラクターがある程度動いたらスクロールさせる手順を紹介します。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※紹介するスクリプトは自己責任でお使いください。

前回の記事

前回は、Camera2D クラスを使って、操作キャラクターの移動に対応して、画面をスクロールさせる例を紹介しました。

Drag Margin について

Drag Margin の枠は Top, Bottom, Left, Right の上下左右の幅で設定します。
この中心はデフォルトでは画面の中央です。
※ Drag Margin 枠の中心は drag_horizontal_offset, drag_vertical_offset で調節できます。

Camera2D の位置が、画面の Drag Margin の枠をはみ出そうになったときに、そちら側にスクロールします。
例えば、drag_right_margin (Drag Margin の右端) = 1.0 の場合、画面の右端0.2 の場合は画面中央から横幅の2割のライン超えそうになったとき右側にスクロールします。

float drag_right_margin = 0.2 🔗

  • void set_drag_margin(margin: Side, drag_margin: float)
  • float get_drag_margin(margin: Side) const

Right margin needed to drag the camera. A value of 1 makes the camera move only when reaching the right edge of the screen.

カメラをドラッグするには右マージンが必要です。値を 1 にすると、画面の右端に到達した場合にのみカメラが動きます。
Camera2D — Godot Engine (4.x)の日本語のドキュメント と Google 翻訳

画面サイズの確認

Camera2D の Drag Margin の枠は、画面サイズの比率(初期はそれぞれ 0.2 = サイズの2割)で上下左右に指定します。

画面サイズは、メニュー「プロジェクト」→「プロジェクト設定」で表示されるダイアログの「一般」タブツリー「表示」→「ウィンドウ」サイズ項目の「ビューポートの幅」、「ビューポートの高さ」から確認と変更ができます。

例えば Drag Margin が上下左右それぞれ 0.2 の場合、画面のサイズが 1152 × 648 なので、Right Margin, Left Margin は 1152 * 0.2 で 288、 Top Margin, Bottom Margin は 648 * 0.2 で 129.6 になります。

Godot4 画面サイズをプロジェクト設定で確認します

Drag Margin の枠の表示

Drag Margin の枠は、Camera2D の Draw Drag Margin プロパティをオンにすることで表示されます。
シーンドックで Camera2D ノード選択してから、インスペクタードックの Editor セクションを開くと確認できます。

Draw Drag Margin プロパティをオンにした状態で 2D ワークスペースを表示すると、ピンクの画面表示領域中心緑色の枠が表示されます。
この緑色の枠が Drag Margin の範囲で、Camera2D ノードの位置がこの枠内を超えようとすると、超えないようにスクロールします。

Godot4 Camera2D の Drag Margin 領域の表示

Drag Margin の幅の調節

Drag Margin の幅は、画面全体の幅を 1.0 として、中心から比率の距離上下左右に設定します。
初期値は Top, Bottom, Left, Right Margin、中心から上下左右への全ての幅が 0.2 なので、画面サイズの縦、横の2割ずつの幅が設定されています。

幅を設定するには、 Camera2D ノードインスペクタードックで、 Drag セクションを開きます。

Top, Bottom, Left, Right Margin を 0.2 から 0.4 にすると、緑色の Drag Margin の枠は2倍に拡大しました。
Drag Margin を大きくするほど画面の端の方までいかないとスクロールしなくなり
逆に Drag Margin を小さくすれば、わずかな動きでもスクロールします。

Godot4 Camera2D の Drag Margin 領域の拡大1

Drag Margin の有効化

Drag Margin の幅を設定するだけでは、スクロールはその枠に対応しません。
対応させるには、drag_horizontal_enabled, drag_vertical_enabled プロパティをオンにして、横と縦それぞれの Drag Margin を有効にします。

bool drag_horizontal_enabled = false 

  • void set_drag_horizontal_enabled(value: bool)
  • bool is_drag_horizontal_enabled()

If true, the camera only moves when reaching the horizontal (left and right) drag margins. If false, the camera moves horizontally regardless of margins.

true の場合、カメラは水平(左右)のドラッグ マージンに達した場合にのみ移動します。 false の場合、カメラは余白に関係なく水平に移動します。
Camera2D — Godot Engine (4.x)の日本語のドキュメント と Google 翻訳

インスペクタードックでは、 Drag セクションHorizontal EnabledVertical Eanbled プロパティオンにすることで、横と縦の Drag Margin を有効にして、その枠内を超えようとしたときにスクロールするようになります。

Godot4 Camera2D の Drag Margin 領域の拡大2

テスト

ステージのシーンを F6 キー実行すると、わずかな移動ではスクロールせずある程度移動するとスクロールするカメラワークが実現できました。

まとめ

今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、操作キャラクターの移動に対応して画面表示を、簡単にスクロールさせることができる Camera2D クラスの Drag Margin の幅を調節して、操作キャラクターがある程度動いたらスクロールさせる手順を紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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