ノードとシーン

: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

空のシーンでは、左側のシーン ドックに、ルート ノードをすばやく追加するためのオプションがいくつか表示されます。「2D シーン」は Node2D ノードを追加し、「3D シーン」は空間ノードを追加し、「ユーザーインターフェイス」はコントロール ノードを追加し、「その他のノード」では任意のノードを選択できます。これは、「子ノードの追加」ボタンを押すことと同じです。これらのプリセットは便宜上ここにあります。必須ではありません。

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

シーンドックの左上にある「子ノードを追加」ボタンを押して、ノードを作成します。このボタンをクリックすると、選択したノードが現在選択されているノードの子として、または空のシーンにルートとして追加されます。

../../_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

シーンの実行

さて、シーンを実行する準備がすべて整いました!トップバーの右の[シーンを実行]ボタンを押します (または F6 を押します)。

../../_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をオンにします。

メイン シーンの設定

テストシーンを実行するには、「実行」ボタンを使用します。その隣にある別のボタンで、プロジェクトのメインシーンを設定して実行することができます'。その際は F5 を押してください。

../../_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つの重要な概念、シーンのインスタンスの作成について説明します。