ノードとシーン

:ref:`doc_key_concepts_overview`では、Godotゲームはシーンのツリーで構成され、各シーンはノードのツリーで構成されることを知りました。このレッスンでは、それらについてもう少し詳しく説明します。また、最初のシーンを作成します。

ノード

ノードとは、ゲームの基礎的な構成要素のことです 。ノードはレシピの材料のようなものです。ノードには、画像を表示したり、音を鳴らしたり、カメラを表現したりと、様々な種類があります。

../../_images/nodes_and_scenes_nodes.png

すべてのノードは以下の属性を持っています。

  • 名前

  • 編集できるプロパティ

  • 毎フレーム、更新するためのコールバックを受け取ります。

  • 新しいプロパティと関数を使用して拡張できます。

  • 別のノードを子として追加できます。

最後の属性が重要です。 ノードは集まってツリーを形成 し、プロジェクトを整理するための強力に作用します。異なるノードは異なる関数を持つため、それらを組み合わせると、より複雑な動作が生成されます。前に説明したように、"Character" という名前のキネマティックボディノード、スプライトノード、カメラノード、そしてコリジョンシェイプノードを使用して、カメラが追従する操作可能なキャラクターを構築できます。

../../_images/nodes_and_scenes_character_nodes.png

シーン

このキャラクタのようにツリー内のノードを編成したものをシーンと呼びます。保存すると、シーンはエディタの新しいタイプのノードのように動作し、既存のノードの子として追加できます。シーンのインスタンスは、内部が非表示になっている単一のノードとして表示されます。

シーンを使用すると、ゲームのコードを好きなように構成できます。 ノードを構成 して、走ったりジャンプしたりするゲームキャラクター・ライフバー・操作できるチェストなど、独自で複雑なノードタイプを作成できます。

../../_images/nodes_and_scenes_3d_scene_example.png

Godotエディタは基本的に**シーンエディタ**です。2Dや3Dのシーンを編集するためのツールや、ユーザーインターフェースなどが充実しています。1つのGodotプロジェクトには、必要なだけのシーンを含めることができます。エンジンが最低限で必要とするのは、アプリケーションの メインシーン の1つだけです。これは、あなたやプレイヤーがゲームを実行したときに、Godotが最初にロードするシーンです。

ノードのように機能することに加えて、シーンには次の属性があります。

  1. この例の「キャラクター」のように、常に1つのルートノードがあります。

  2. ハードディスクに保存しておいて、後で読み込むことができます。

  3. シーンのインスタンスはいくつでも作成できます。5人でも10人でも、キャラクターシーンから、キャラクターをゲームに保持することが出来ます。

最初のシーンを作る

それでは、最初のシーンをノード1つだけで作成してみましょう。そのためには、まず新しいプロジェクトを作成する必要があります。プロジェクトを開くと、空のエディタが表示されているはずです。

../../_images/nodes_and_scenes_01_empty_editor.png

In an empty scene, the Scene dock on the left shows several options to add a root node quickly. "2D Scene" adds a Node2D node, "3D Scene" adds a Spatial node, and "User Interface" adds a Control node. These presets are here for convenience; they are not mandatory. "Other Node" lets you select any node to be the root node. In an empty scene, "Other Node" is equivalent to pressing the "Add Child Node" button at the top-left of the Scene dock, which usually adds a new node as a child of the currently selected node.

ここでは、Labelノードを1つシーンに追加します。このノードの役割は、スクリーンにテキストを描くことです。

Press the "Add Child Node" button or "Other Node" to create a root node.

../../_images/nodes_and_scenes_02_scene_dock.png

するとノード作成のダイアログが開いて、作成できるノードの長いリストが表示されます。

../../_images/nodes_and_scenes_03_create_node_window.png

[Label] ノードを選択します。名前を入力して、リストを絞り込むことができます。

../../_images/nodes_and_scenes_04_create_label_window.png

[ラベル]ノードをクリックして選択し、ウィンドウの下部にある[作成]ボタンをクリックします。

../../_images/nodes_and_scenes_05_editor_with_label.png

シーンの最初のノードを追加すると、多くのことが起こります。[ラベル]が 2D ノード タイプであるため、シーンは 2D ワークスペースに変わります。ビューポートの左上隅に[ラベル]が表示されます。ノードは左側のシーン ドックに表示され、ノードのプロパティは右側のインスペクター ドックに表示されます。

ノードのプロパティの変更

次の一歩はLabelの「Text(テキスト)」プロパティを変更することです。「Hello world」に変えてみましょう。

ビューポートの右側にあるインスペクター ドックに向かいます。Text プロパティの下のフィールドをクリックし、「Hello World」と入力します。

../../_images/nodes_and_scenes_06_label_text.png

入力すると、ビューポートにテキストが描画されるのがわかります。

ビューポート内のLabelノードを移動するには、ツールバーの移動ツールを選択します。

../../_images/nodes_and_scenes_07_move_tool.png

[ラベル]を選択した状態で、ビューポート内の任意の場所をクリックしてドラッグすると、長方形で区切られたビューの中心に移動します。

../../_images/nodes_and_scenes_08_hello_world_text.png

シーンの実行

Everything's ready to run the scene! Press the Play Scene button in the top-right of the screen or press F6 (Cmd + R on macOS).

../../_images/nodes_and_scenes_09_play_scene_button.png

シーンを実行する必要があるため、ポップアップはシーンを保存するように案内します。

../../_images/nodes_and_scenes_10_save_scene_popup.png

[Yes]ボタンをクリックするとファイルブラウザーが開くので、"Label.tscn"と名前をつけ[保存]ボタンを押して保存しましょう。

../../_images/nodes_and_scenes_11_save_scene_as.png

注釈

Save Scene As ダイアログは、エディタの他のファイルダイアログと同様に、プロジェクト内のファイルのみ保存可能です。ウィンドウ上部の``res://`` パスはプロジェクト'のルートディレクトリを表し、 "resource path" を意味しています。Godotのファイルパスについての詳細は、 ファイルシステム を参照してください。

アプリケーションが新しいウィンドウで開き、"Hello World"のテキストが表示されるはずです。

../../_images/nodes_and_scenes_12_final_result.png

ウィンドウを閉じるか、 F8 を押すと、実行中のシーンを終了します。

注釈

もし、これがすぐに機能せず、(マルチモニターまたはシングルモニターでの使用環境を問わず)少なくとも1つのモニターに高DPIディスプレイがある場合は、プロジェクト → プロジェクト設定 → Display → Windowに進み、DpiAllow Hidpiをオンにします。

メイン シーンの設定

To run our test scene, we used the Play Scene button. Another button next to it allows you to set and run the project's main scene. You can press F5 (Cmd + B on macOS) to do so.

../../_images/nodes_and_scenes_13_play_button.png

ポップアップウィンドウが表示され、メインシーンを選択するように促されます。

../../_images/nodes_and_scenes_14_main_scene_popup.png

選択ボタンをクリックし、表示されたファイルダイアログで、Label.tscnをダブルクリックします。

../../_images/nodes_and_scenes_15_select_main_scene.png

デモが再び実行されるはずです。今後、プロジェクトを実行するたびに、Godot はこのシーンを開始点として使用します。

注釈

エディターは、メインシーンのパスを、project.godotファイルとして、プロジェクトのディレクトリに保存します。このテキストファイルを直接編集してプロジェクトの設定を変更することもできますが、"Project -> Project Settings"ウィンドウを使用して変更することも可能です。

次のパートでは、ゲームとGodotのもう1つの重要な概念、シーンのインスタンスの作成について説明します。