BioErrorLog Tech Blog

試行錯誤の記録

GDScriptにおけるドルマーク"$"の意味と使い方 | Godot Engine

GDScriptにおけるドルマーク$の意味と使用方法をまとめます。

はじめに

Godot Engineを触り始めた頃、以下のようなGDScriptコードの意味が分かりませんでした。

var sprite = $Sprite

ドルマーク$がGoogle検索で引っ掛からないこともあり、暫くドキュメントを探し回ったものです。

今回は、GDScriptにおけるドルマーク$の意味と、その使い方を整理します。

ドルマーク$get_node()の略記である

GDScriptにおいて、ドルマーク$get_node()の略記を意味します。

以下ドキュメントの引用です。

Literal Type
$NodePath Shorthand for get_node("NodePath")

このようにget_node("NodePath")$NodePathとして表記することができます。

※ドルマーク$略記が開発された経緯は、こちらのissueで見ることが出来ます:
Shorthand for get_node() · Issue #4309 · godotengine/godot · GitHub

それでは、いくつかの基本的な使い方を見ていきます。

使用例

子Nodeの取得

通常の子Nodeの取得は、次のように行います。

var node = $ChildNode


ただし、Node名にスペースや$#などの特殊文字を含む場合は、ダブルクォーテーション""またはシングルクォーテーション''で囲む必要があります。

var node = $"Child Node"


また子Node以降の孫Nodeは、パスを指定することで取得できます。

var node = $ChildNode/GrandChildNode

親Nodeの取得

親Nodeは、次のように取得できます。

var node = $".."

親のパスを意味する .. を利用しています。
$.で始まるパスを与える場合は、ダブルクォーテーション (or シングルクォーテーション)で囲む必要があります。

※なお、get_parent()でも同様に親Nodeを取得できます。

同階層Nodeの取得

同階層のNodeは、親Nodeから辿ることで取得できます。

var node = $"../FrendNode"

自Nodeの取得

自Nodeは、以下で取得できます。

var node = $"."

現在パスを意味する . を利用しています。

絶対パスでの取得

rootからの絶対パスでNodeを取得するには、次のようにします。

var node = $"/root/Node0/Node1"

/rootから始まる絶対パスを指定することで、該当のNodeを取得できます。
$/で始まるパスを与える場合、ダブルクォーテーション (or シングルクォーテーション)で囲む必要があります。

おわりに

以上、Godot Engine: GDScriptにおけるドルマーク$の意味と使用例を整理しました。

私自身、Godot Engineは触り始めたばかりです。
まだ使いこなせてはいない状態ですが、UnityやUnreal Engineに比べてシンプルな哲学・使用感が気に入っています。

これからも、折を見て初心者としての軌跡を残していく所存です。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work

参考

GDScript reference — Godot Engine (stable) documentation in English

Shorthand for get_node() · Issue #4309 · godotengine/godot · GitHub

godot/modules/gdscript/gdscript_parser.cpp at 95cfa9bf74774110ba01a3987a22c9d7d616c1c6 · godotengine/godot · GitHub