ゲームエンジンGodot4.0で3Dスマホゲームを作りたいと思いますが、その前にお勉強しています。
2023/3/1にstable版がリリースされました。
Godot_v4.0-stable_win64.exe.zipを使用しています。
目的
動く障害物を作って配置します。
十字型の回転ドアのようなオブジェを作ります。
ベースプロジェクト
下記で作成したプロジェクトをベースに機能追加をします。
【Godot 4.0】スマホ3Dゲームを作るための勉強 その26 動く障害物を作る
https://qiita.com/FootInGlow/items/fa28fce8a86b18ca8736
github(Godotのプロジェクトマネージャーからインポートして利用できます)
https://github.com/footinglow/Godot4/tree/main/02_study/S26StageItemMovingWall
回転ドアをつくる
新規シーンを作成するして、ドアの1枚を追加する
シーンメニューから新規シーンを実行して、下記のように子ノードを作成します。
StageItemsフォルダーに保存します。
子ノードをそれぞれ選択して、下記の表のように変更します。
項目 | 設定値 |
---|---|
MeshInstance3D/Mesh | 新規BoxMesh |
MeshInstance3D/Mesh/BoxMesh/Size/x | 0.3 |
MeshInstance3D/Mesh/BoxMesh/Size/z | 3.0 |
Node3D/Transform/Positon/y | 0.5 |
項目 | 設定値 |
---|---|
CollisionShape3D/Shape | 新規BoxShape |
CollisionShape3D/Shape/BoxShape/Size/x | 0.3 |
CollisionShape3D/Shape/BoxShape/Size/z | 3.0 |
Node3D/Transform/Positon/y | 0.5 |
ドアを複製して十字型に配置する
MeshInstance3DとCollisionShape3Dをコピーして、ルートノードのRevolvingDoorに貼り付けします。
また貼り付け下ノードをそれぞれ選択して、下記の表のように変更します。
項目 | 設定値 |
---|---|
Node3D/Transform/Rotaion/y | 90 |
項目 | 設定値 |
---|---|
Node3D/Transform/Positon/y | 90 |
ゆっくり回転する
RevolvingDoorにスクリプトをアタッチして保存します。
下記のように修正します。
extends StaticBody3D
@export var m_d_speed_degps = 0.2 # 1秒あたりに回転する角度[degree/s]
func _physics_process(delta):
rotate_y( m_d_speed_degps * delta )
回転ドアをステージに配置する
res://Stages/stage001.tscnを開きます。
ルートノードStageを右クリックして「Instantiate Child Scene」を実行して、「StageItems/revolving_door.tscn」を追加します。
項目 | 設定値 |
---|---|
Node3D/Transform/Positon/z | -7 |
MovingWallの長さを1mにする
MovingWallのZ方向の長さを伸ばすためにScaleのzを3.0にしましたが、Warningがでていたので1.0に戻します。
Node3D/Transform/Scaleの右の鎖アイコンをクリックして鎖をはずして、zを1.0に変更します。
(Scaleのx,y,zすべて1.0にします)
項目 | 設定値 |
---|---|
Node3D/Transform/Scale/z | 1.0 |
実行確認
回転ドアに人が集まって動かされます。
以上です。