俺に解るように説明する "Godot Engine 3.x" 入門+

ゲームエンジン Godot Engine に関すること。入門とか使い方とかチュートリアルとか、あれとかこれとか。日本語解説。

"Godot Engine" 「ノード」の基礎

Godot Engine では、シーンにノードを追加していく事でゲームを作る。これが最も簡潔な表現だと思う。シーンに関しては以前("Godot Engine" 「シーン」の基礎 - 俺に解るように説明する "Godot Engine 3.x" 入門+)触れているので、今回はノードについて。

f:id:ore2wakaru:20170807215154p:plain

そもそもなぜ、シーンに置くものをノードと言うのだろうか? ドロー系のソフトでは、レイヤーに置く文字や図形の事はオブジェクトと言ったりするが・・・。

ノードをネットの英和辞典で引くと一番最初に「結び(目)」と出てくる。そう、ノードとは結び目なのだ。え? 文字や図形が結び目? いや全然分からんゾ。ということで、図解。

イメージ
  1. ヒモとヒモを結べば結び目が出来る。線と線をつなげば、つなぎ目だ。そもそも、このような部分の事を英語でノード(node)と言う。「図1」
  2. ノードとノードをつなぐ線のことを、エッジ(edge)と言う。線の両端にノードを置いて、この図のように、閉じた図形にしてみよう。4つのノードと3つのエッジを持った構造体と言う事が出来る。「図2」
  3. さらに ノードをどんどこドンドコ追加してエッジで繋いだ時、この図のように、が枝を伸ばしていくような構造になる場合、この構造の事をツリー構造木構造)と言う。特に起点になっているノードの事を木の根っこ(root)になぞられて、ルートノードと言う。エッジで繋がれた2つのノードに関して、ルートノードに近い方のノードの事をノード、遠い方をノードと言い、2つのノードには親子関係があると言う。またツリー構造は、1層、2層・・・、と層を成す構造も見受けられるので、階層構造とも呼ばれる。この場合、ルートノードは最上位層に位置する。「図3」

f:id:ore2wakaru:20170807221100p:plain

もう一度、Godot に戻ってみよう。シーンにノードを置いたとき、どのように追加されたのか。

f:id:ore2wakaru:20170806033234p:plain

まさにツリー構造(階層構造)。ルートノードを持ったツリー構造になっている。Godot の場合、シーンに置くものはツリー構造を成すように追加していく規則があるので、シーンに追加する物の事をオブジェクトとかではなく、「ノード」と呼んでいるわけだ。