第3章 ノードとシーンとゲームの実行
Godotではノードを集めてシーンを作り、シーンを集めてゲームを作ります。具体的にどうすればよいのか、それを確認してみましょう。
1.ノード
2.シーン
3.シーンのインスタンス化
4.ルートノードの追加
5.子ノードの追加
6.シーンの保存
7.シーン(ゲーム)の実行
ノード
Godotでノードはゲームの材料です。家を作るには木材、カレーを作るにはカレー粉、ゲームを作るにはノードです。要するにノードを集めればゲームを作ることができます。
ノードには様々な種類があります。音声を再生するノード、画像を表示するノード、物理的衝突物を担うノード…それ以外にもたくさんの種類が存在します。
しかし難しいことはありません。家にも木材・ガラス・コンクリートなどが使われていて、カレーにもにんじん・じゃがいも・肉が使われています。それと同じようにゲームにも音声を再生するノード・画像を表示するノード・物理的衝突物を担うノードがあるということです。
ノードには以下の5つの性質があります。
1.名前がある
2.編集できるプロパティを持つ(攻撃力・体力などのこと)
3.毎フレームで処理するコールバックを受け取れる
4.拡張できる(機能を追加)
5.ほかのノードを子に持てる
この中でも5番目の「ほかのノードを子に持てる」というところが非常に重要です。ノードがノードを子に持つということは次のような階層構造になります。
図にすると感覚的にとらえやすいですね。覚えることはノードは階層構造になっていることです。
シーン
シーンはノードをグループにしたものです。
シーンは3つの性質を持ちます。
1.必ずルートノードを1つ持つ(最も上位の階層にあるノード)
2.ディスクに保存でき、それを読み込める
3.インスタンス化できる
シーンのインスタンス化
シーンの性質で最も聞きなれない言葉が「インスタンス化できる」です。インスタンス化とは直訳で「生成」、つまりシーンをコピーして生成することです。
言葉では難しいので実例を図で示してみます。
シーン A とシーン B を想像してみてください。
それぞれ別々のシーンで保存されているとします。シーン B をインスタンス化して、シーンAの子に加えてみます。
このようにシーンがコピーされて生成されることをインスタンス化と言います。
ルートノードの追加
いよいよノードを作っていきましょう。まずは一番上の階層となるルートノードを作成していきます。シーンドックの2Dシーンを押してください。
そうすると画面全体が次のように変わります。
シーンドックに先ほど選択した2Dノード(Node2D)がありますね。
たったこれだけでルートノードが完成しました。
子ノードの追加
先ほど作成したルートノードが選択されている状態で画像の赤枠で囲まれた「+」ボタンを押して下さい。
そうすると次のような表示になります。
前述した通りノードには様々の種類があり、ここで選択できるすべてがノードです。
この中から1種類のノードを探し出すのは大変なので検索機能を使いましょう。検索欄に「label」と入力してください。
そうするとLabelノードが選択された状態になります。作成ボタンを押してみましょう。
シーンドックを確認すると「Node2D」に「Label」が追加されました。これがシーンの追加です。
少し脱線しますがシーンドックで「Label」を選択した状態でインスペクタを見てください。
そうするとTextという入力欄があります。そこに半角英数で自由な文字を入れてください。
そうするとビューポートで表示されるLabelも変化します。全角を入れても表示されないのは標準のフォントが対応していないからです。フォントの設定をすればしっかりと変わります。
シーンの保存
シーンの2つ目の性質を覚えていますか?
2.ディスクに保存でき、それを読み込める
そう、つまりシーンは保存ができます。ここでは先ほど作ったNode2Dをルートノードとしてシーンを保存してみます。
メインメニューのシーンを選択してください。
「シーンを保存」を選択すると以下のようになります。
ここではファイル名を「Main.tscn」して保存しますが名前は好きなようにしてかまいません。
保存ボタンを押すとファイルドックに先ほど保存した「Main.tscn」が表示されます。
これでシーンの保存は完了です。
シーン(ゲーム)の実行
いよいよシーン(ゲーム)の実行するときが来ました。左上にあるテストプレイボタンの中の「シーンを実行」を押してください。
画像の左から4番目のボタンです。
そうすると次のようなウィンドウが現れます。
何も映っていないように見えますね。しかし左上をよく見てください。
しっかりとLabelが移っています。
これでシーンの実行ができました。
ノードはいくらでも追加してよいので次のように大量にLabelを貼り付けることもできます。
シーンドックでLabelを選択した時に「Ctrl + D」、あるいは「右クリック→複製」で大量に増やすことができます。
次
前
この記事が気に入ったらサポートをしてみませんか?