0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Godot 4.0】スマホ3Dゲームを作るための勉強 その27 動く障害物を作る その2 回転ドア

Posted at

 ゲームエンジン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フォルダーに保存します。

スクリーンショット (187).png

子ノードをそれぞれ選択して、下記の表のように変更します。

MeshInstance3Dのインスペクタ変更内容
項目 設定値
MeshInstance3D/Mesh 新規BoxMesh
MeshInstance3D/Mesh/BoxMesh/Size/x 0.3
MeshInstance3D/Mesh/BoxMesh/Size/z 3.0
Node3D/Transform/Positon/y 0.5
CollisionShape3Dのインスペクタ変更内容
項目 設定値
CollisionShape3D/Shape 新規BoxShape
CollisionShape3D/Shape/BoxShape/Size/x 0.3
CollisionShape3D/Shape/BoxShape/Size/z 3.0
Node3D/Transform/Positon/y 0.5

スクリーンショット (188).png

ドアを複製して十字型に配置する

 MeshInstance3DとCollisionShape3Dをコピーして、ルートノードのRevolvingDoorに貼り付けします。
スクリーンショット (189).png

また貼り付け下ノードをそれぞれ選択して、下記の表のように変更します。

MeshInstance3D2のインスペクタ変更内容
項目 設定値
Node3D/Transform/Rotaion/y 90
CollisionShape3D2のインスペクタ変更内容
項目 設定値
Node3D/Transform/Positon/y 90

スクリーンショット (190).png

ゆっくり回転する

RevolvingDoorにスクリプトをアタッチして保存します。
スクリーンショット (191).png
 下記のように修正します。

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」を追加します。
スクリーンショット (319).png

RevolvingDoorのインスペクタ変更内容
項目 設定値
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にします)

MovingWallのインスペクタ変更内容
項目 設定値
Node3D/Transform/Scale/z 1.0

スクリーンショット (320).png

実行確認

 回転ドアに人が集まって動かされます。

スクリーンショット (196).png

 以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?