インスタンシング

原理

翻訳元:https://github.com/okamstudio/godot/wiki/tutorial_instancing

シーンを持ってノードをそれに投げても小さなプロジェクトだと正常に動作するかもしれませんが、プロジェクトが肥大化し、さらにたくさんのノードが使われたらすぐに取り扱いにくくなるでしょう。これを解決するには、Gogotはプロジェクトをいくつかのシーンに分割することができます。しかしながら、これは他のゲームエンジンと同じようには働きません。実際、それはとても難しいし、だからこそこのチュートリアルを決して読み飛ばさないでください。 再生:シーンは樹形図上に組織されたノードの集まりでして、それらは樹形図の根にあたるノードを一つしか持てません。
tree.png
Godotでは、シーンを作成しディスクに保存することができます。このようにたくさんのシーンを好きなように作成しては保存することができるのです。
instancingpre.png
のちに、元からあるものや新しいシーンを編集する間、他のシーンはそれの要素としてインスタン化されます。 instancing.png
上の画像では、シーンBはシーンAへインスタンスとして加えられています。最初は不自然なように思うかもしれませんが、チュートリアルの最後には完璧になれてしまうでしょう。

インスタンシング、一歩々々着実に
あらかじめ用意されたシーンをダウンロードして使って始めましょう。 このシーンをどこか適当な場所に展開してください。そのあと、Importを選択してこのシーンをプロジェクトマネージャーに加えてください。
importproject.png
簡単にプロジェクトのありかを探して"engine.cfg"ファイルを開いてください。 新たなプロジェクトがプロジェクトリストに出てくるでしょう。"Edit"を選択してそのプロジェクトを編集してください。 このプロジェクトは"ball.scn"と"container.scn"と2つのシーンを含んでいます。ballシーンは物理演算機能を持ったボールでその中にContainerシーンでうまい衝突を再現しています。そのため、ボールをそこから投げることができます。
ballscene.png
contscene.png
containerシーンを開いてルートのノードを選んでください。
controot.png
その後、"+"の形をしたボタンを押してください。これはインスタンス化するボタンです。
continst.png
ballシーン(ball.scn)を選んでください。(0,0)座標からボールが現れるはずです。そしてこのシーンを中央まで移動させてください。(下の画像参照)
continstanced.png
Playを押してみて!
playinst.png
インスタンス化したボタンが下の窪みにはまったでしょう。

後少し シーンに好きなようにインスタンスを置くことができます。早速たくさんのボールをインスタンス化するかそれらを複製しましょう。(ctrl+D もしくは duplicateボタン)
instmany.png
そして再びシーンを実行してみましょう。
instmanyrun.png
すごいかい?これがインスタンス化の機能だよ。

インスタンスの編集
たくさんのボールのコピーから一つ選択して、プロパティエディタに行ってください。ボールにたくさんバウンドさせましょう。だからbounceパラメータをみつけて10にセットしてください。
instedit.png
そしたら緑の戻るボタンが出てくるはずです。このボタンがこうなっている時、インスタンス化したシーンのプロパティの値を無効に変更できるということです。 たとえあのプロパティが最初のシーンから変更されたとしても、元の数値にいつでも戻すことができるのです。戻るボタンを押すとプロパティが前の最初のシーン由来の数値に戻ります。

終わりに
インスタンス化はこれだけでも便利なようですが、今見たよりもたくさんの便利な機能があります。次のパートのインスタンス化のチュートリアルも暇にはならないはずです。

最終更新:2015年02月15日 12:43