Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ノードとシーン

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

ノード

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

../../_images/nodes_and_scenes_nodes.webp

すべてのノードには次の特性があります。

  • 名前。

  • 編集できるプロパティ。

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

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

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

最後の特性が重要です。 ノードは集まってツリーを形成します 。これは、プロジェクトを構成するための強力な機能です。 異なるノードには異なる機能があるため、それらを組み合わせるとより複雑な動作が実現できます。 前に説明したように、カメラが追従するプレイアブルキャラクターを、 CharacterBody2D ノード、 Sprite2D ノード、 Camera2D ノード、および CollisionShape2D ノードを使って作成することができます。

../../_images/nodes_and_scenes_character_nodes.webp

シーン

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

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

../../_images/nodes_and_scenes_3d_scene_example.png

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

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

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

  2. ローカルドライブに保存しておいて、後で読み込むことができます。

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

最初のシーンを作る

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

../../_images/nodes_and_scenes_01_empty_editor.webp

空のシーンでは、左側のシーン ドックに、ルートノードをすばやく追加するための選択肢がいくつか表示されます。「2D Scene (2Dシーン)」は Node2D ノードを追加し、「3D Scene (3Dシーン)」は Node3D ノードを追加し、「User Interface (ユーザーインターフェイス)」は Control ノードを追加します。これらのプリセットは便宜上用意されているもので、必ずしもこのボタンを使わなければならないというわけではありません。「Other Node (その他のノード)」では任意のノードを選択できます。空のシーンにおいては、「その他のノード」はシーンドックの上部左側にある「Add Child Node (子ノードを追加)」と全く同じ機能で、その機能は通常、現在選択しているノードの子として新しいノードを追加するときに使います。

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

"子ノードを追加"ボタンをクリックするか、その他のノードをクリックして親ノードを作成します。

../../_images/nodes_and_scenes_02_scene_dock.webp

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

../../_images/nodes_and_scenes_03_create_node_window.webp

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

../../_images/nodes_and_scenes_04_create_label_window.webp

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

../../_images/nodes_and_scenes_05_editor_with_label.webp

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

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

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

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

../../_images/nodes_and_scenes_06_label_text.webp

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

参考

Text プロパティで行ったように、インスペクターに表示されたプロパティを編集することができます。インスペクター ドックの詳細なリファレンスについては インスペクタ をご覧ください。

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

../../_images/nodes_and_scenes_07_move_tool.webp

クリックアンドドラッグで選択した [Label] を、ビューポート内の任意の場所に動かせるので、長方形で区切られたビューの中心に移動させます。

../../_images/nodes_and_scenes_08_hello_world_text.webp

シーンの実行

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

../../_images/nodes_and_scenes_09_play_scene_button.webp

シーンを保存するように促すポップアップが表示されますが、シーンの実行のために必要となります。ファイルブラウザの保存ボタンを押して、シーンを "label.tscn" という名前で保存してください。

../../_images/nodes_and_scenes_10_save_scene_as.webp

注釈

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

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

../../_images/nodes_and_scenes_11_final_result.webp

ウィンドウを閉じるか、 F8`(macOS では :kbd:`Cmd + .)を押すと、実行中のシーンを終了します。

メイン シーンの設定

テストシーンを実行する際、これまでは「現在のシーンを実行」ボタンを使用していました。その隣にある別のボタンを使用することで、プロジェクトのメインシーンを設定して実行することができます。あるいは F5 (macOSでは Cmd + B) を押すことでも同様に実行できます。

../../_images/nodes_and_scenes_12_play_button.webp

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

../../_images/nodes_and_scenes_13_main_scene_popup.webp

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

../../_images/nodes_and_scenes_14_select_main_scene.webp

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

注釈

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

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