"Godot Engine" エアホッケー Part5 もうちょっと準備...シーンパネル
シーンパネルで適当にノードを追加してしまうと、めちゃくちゃなツリー構造になってしまう。ノードを追加する時の基本ルールと、ノードの移動の仕方を押さえておこうと思う。目標としては、写真のようにノードを並べてくれ、と言われてサクッと出来るようになることだ。
ノードの追加
シーンにノードが1つもない場合は、ルートノードを追加する。ルートノードは、ツリー構造の起点なので、ひとつしか置くとこは出来ない。「1シーン、1ルートノード」という厳格なルールがある。
ノードが1つでもあれば、選択されているノードの子として追加される。親子関係が形成される。
選択したノードに既に子ノードがあれば、次男として追加される。次男が長男と同じ名前であった場合は、Godot が勝手に末尾に数字を付る。元々あったノードとは兄弟関係となる。
さらに追加していけば、三男、四男・・・と兄弟が増えていく。兄弟で同じ名前を持てないのは、人間でも同じだす。
ノードの移動
追加する時、間違っちゃった場合は、移動させよう。ドラッグ&ドロップ(D&D)。あるノードの子にしたい場合は、目的のノードの上にD&Dする。移動先が四角に囲われたら、そのノードの子に出来る合図。(四角 > 親子)
兄弟関係の移動もD&Dで、ノードとノードの間にもっていく。行先に横線が入ったら、兄弟関係の移動が出来る合図。(線 > 兄弟)
ルートノードだけは移動させることは出来ない。よく考えて設置しよう。
ノードの削除
[Delete] キー。ルートノードを削除すると全部消えちゃう。慎重に。
ノードの選択
普通にクリック。また、エクスプローラー同様、[Ctrl] + クリック で複数選択、[Shift] + クリック で範囲選択が出来るので、一気に移動や削除が出来る。
ノードの名前
選択されているノードならクリックで、選択されていないノードならダブルクリックで、名前変えられます(ショートカットは [F2])。お好きな名前に変えてもいいとも思いますが、アイコンとノードのタイプが一致しないうちは、変えない方がイイかも。あれ? このノード、なんだっけ? となってしまったら、色から絞って探しましょう。
日本人的に考えると不思議なのですが、親子ノードで名前が同じなのはOKです。Godot が処理する時に何の障害もありません。しかし、兄弟ノードで同じ名前は付けられません。明確に区別してください。親が違えば同じ名前でもOKです。おそらく、パスで判断しているのではと思います。
- 親の本名: 「Label」
- 長男の本名: 「Label/Label」
- 次男の本名: 「Label/Label2」
みたいな長い名前で区別してる?
右クリメニュー
シーンパネルに表示されているノードの上で右クリックすると、メニューが出てくる(右クリメニュー)。上で述べた事と関連が深い項目もあるので、簡潔に説明しておこうと思う。
- “Add Child Node": 選択したノードに子ノードを追加する。普通の追加方法 [+] 。
- “Instance Child Scene": シーンを追加する。シーンのインスタンス化。詳しくは後程。
- “Change Type": ノードのタイプを変える。ラベルノードをパネルノードとかにしちゃう。ルートノードは移動できないし、安易には消せないので、最悪これで、ノードのタイプを変えて対処。
- “Attach Script": ノードにスクリプトを追加する。スクリプトに関しては後程。
- “Clear Script": ノードに付いているスクリプトを外す。
- “Move Up": 兄弟ノードの中で、長男側に移動させる。D&Dで出来る。
- “Move Down": 兄弟ノードの中で、末っ子側に移動させる。D&Dで出来る。
- “Duplicate": ノードを複製する。
- “Reparent": D&Dで親ノードを変えるのと同じ。
- “Merge From Scene": 謎 シーンからノードを持ってきてくっつける?
- “Save Branch as Scene": 謎 ノードをシーンとして登録する?
- “Copy Node Path": 謎 ツリー構造上のパスをコピーするぽい。一応、テキストエディタにペーストしてみると分かります。ルートは”.“?
- “Delete Node(s)": 削除!
これだけ覚えておけば、自由自在にシーンパネル上でノードを配置できるハズ。もうゲームに最適なツリー構造の構築ができる訳だ。試しにトップ画像のように並べてみてくれ。配置だけはプロレベル。やったね!
かなり前準備が長かったように思うが、やっと、次回は、エアホッケーゲームのスタート画面が作れるような気が・・・する・・・ような・・・しないような・・・。頑張れ、俺。