無料・軽快な 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
🔗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 になります。
Drag Margin の枠の表示
Drag Margin の枠は、Camera2D の Draw Drag Margin プロパティをオンにすることで表示されます。
※シーンドックで Camera2D ノードを選択してから、インスペクタードックの Editor セクションを開くと確認できます。
Draw Drag Margin プロパティをオンにした状態で 2D ワークスペースを表示すると、ピンクの画面表示領域の中心に緑色の枠が表示されます。
この緑色の枠が Drag Margin の範囲で、Camera2D ノードの位置がこの枠内を超えようとすると、超えないようにスクロールします。
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 を小さくすれば、わずかな動きでもスクロールします。
Drag Margin の有効化
Drag Margin の幅を設定するだけでは、スクロールはその枠に対応しません。
対応させるには、drag_horizontal_enabled, drag_vertical_enabled プロパティをオンにして、横と縦それぞれの Drag Margin を有効にします。
bool drag_horizontal_enabled =
false
If
true
, the camera only moves when reaching the horizontal (left and right) drag margins. Iffalse
, the camera moves horizontally regardless of margins.true の場合、カメラは水平(左右)のドラッグ マージンに達した場合にのみ移動します。 false の場合、カメラは余白に関係なく水平に移動します。Camera2D — Godot Engine (4.x)の日本語のドキュメント と Google 翻訳
インスペクタードックでは、 Drag セクションの Horizontal Enabled と Vertical Eanbled プロパティをオンにすることで、横と縦の Drag Margin を有効にして、その枠内を超えようとしたときにスクロールするようになります。
テスト
ステージのシーンを F6 キーで実行すると、わずかな移動ではスクロールせず、ある程度移動するとスクロールするカメラワークが実現できました。
まとめ
今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、操作キャラクターの移動に対応して画面表示を、簡単にスクロールさせることができる Camera2D クラスの Drag Margin の幅を調節して、操作キャラクターがある程度動いたらスクロールさせる手順を紹介しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- Using CharacterBody2D/3D — Godot Engine (4.x)の日本語のドキュメント
- CharacterBody2D — Godot Engine (4.x)の日本語のドキュメント
- Camera2D — Godot Engine (4.x)の日本語のドキュメント
記事一覧 → Compota-Soft-Press
コメント