2020/11/14(土) [n年前の日記]
#3 [godot] Godot Engineで背景シーンを作成
Godot Engine 3.2.3 x64 を使って3D表示の簡単なシューティングゲームっぽいものを作る。
今回は背景(BG)に相当するシーンを仮で作って表示してみる。
今回は背景(BG)に相当するシーンを仮で作って表示してみる。
◎ BGシーンを作成。 :
以下のようなシーンを作って、res://assets/ 以下に Bg.tscn として保存する。
ルートノードとして Spatialノードを置いて、その下に Spatialノード(BgModelというノード名に変更)や MeshInstance ノードを追加して作成。あくまで仮なので、形状や配置はテキトーでいい。
ただ、スクロールモドキの処理を入れたいので…。
Spatial1 の下に MeshInstance を置きまくって、ある程度それらしい形になったら、その Spatial1 を右クリック → 複製して、複製後の Spatial のz値だけをずらしてやれば、パターンを繰り返しているような見た目にできる。
Mainシーンを開いて、Bgシーンのインスタンスを追加。
Bg の位置を調整。テンキーの5キーを押すと平行投影と透視投影の切り替え、テンキーの3キーを押すと右側面表示になるので、側面を表示しながら調整すれば作業がしやすい。あるいは、右上の「x」と書かれた赤丸をクリックしても側面図になる。
スクリプトファイル res://scripts/Bg.gd を追加してスクリプトを記述。
スクリプトの内容は以下。
_Bg.gd
_process(delta) が呼ばれるたびに、BgModel のz座標を変化させて、ある程度変化したら座標を巻き戻す(?)ようにしている。
Mainシーンを開いて、F6キーを押して動作確認。
スクロールしているような感じで動いてくれた。
ルートノードとして Spatialノードを置いて、その下に Spatialノード(BgModelというノード名に変更)や MeshInstance ノードを追加して作成。あくまで仮なので、形状や配置はテキトーでいい。
ただ、スクロールモドキの処理を入れたいので…。
- ルートノード(Bg)の下に BgModel という名前の Spatial を作成して、その中に全体を入れておく。
- z軸方向にパターン(?)が繰り返すような形にしておく。
Bg (Spatial) │ └─ BgModel (Spatial) │ ├─ Spatial1 ├─ Spatial2 (Spatial1 を複製) └─ Spatial3 (Spatial1 を複製)
Spatial1 の下に MeshInstance を置きまくって、ある程度それらしい形になったら、その Spatial1 を右クリック → 複製して、複製後の Spatial のz値だけをずらしてやれば、パターンを繰り返しているような見た目にできる。
Mainシーンを開いて、Bgシーンのインスタンスを追加。
Bg の位置を調整。テンキーの5キーを押すと平行投影と透視投影の切り替え、テンキーの3キーを押すと右側面表示になるので、側面を表示しながら調整すれば作業がしやすい。あるいは、右上の「x」と書かれた赤丸をクリックしても側面図になる。
スクリプトファイル res://scripts/Bg.gd を追加してスクリプトを記述。
スクリプトの内容は以下。
_Bg.gd
extends Spatial export var scroll_speed = 30 export var limit_z = 40 export var add_z = -40 func _ready(): pass # Replace with function body. func _process(delta): $BgModel.translation.z += scroll_speed * delta if $BgModel.translation.z >= limit_z: $BgModel.translation.z += add_z
_process(delta) が呼ばれるたびに、BgModel のz座標を変化させて、ある程度変化したら座標を巻き戻す(?)ようにしている。
Mainシーンを開いて、F6キーを押して動作確認。
スクロールしているような感じで動いてくれた。
◎ カメラからの見た目を確認。 :
[ ツッコむ ]
以上です。