Godotでホラーゲーム開発チュートリアル Part 6: ホラー演出の強化!カメラの揺れと足音の実装
Godot Engine バージョン4.3
このパートでは、プレイヤーの移動に応じてカメラを揺らし、より臨場感のある視点を作ります。また、足音の処理を追加し、歩行やダッシュ時の音を変化させることで、よりリアルで緊張感のあるホラー体験を演出します。暗闇の中を進む足音や微細な揺れが、恐怖感を引き立てる重要な要素となるでしょう!
プレイヤーの移動のカメラを揺らし
プレイヤーの移動に応じてカメラを揺らし、より臨場感のある視点を作ります!
プレイヤーのスクリプトに追加してください!
# フレームごとの処理func _process(delta): if direction != null: process_camBob(delta) # カメラの揺れを処理
# カメラの揺れを処理func process_camBob(delta): _delta += delta var cam_bob var objCam if is_running: # ダッシュ中のカメラ揺れ cam_bob = floor(abs(direction.z) + abs(direction.x)) * _delta * 10 * 1.5 objCam = origCamPos + Vector3.UP * sin(cam_bob) elif direction != Vector3.ZERO: # 歩行中のカメラ揺れ cam_bob = floor(abs(direction.z) + abs(direction.x)) * _delta * 10 objCam = origCamPos + Vector3.UP * sin(cam_bob) else: # 停止中の微小な揺れ cam_bob = floor(abs(1) + abs(1)) * _delta * 0.6 objCam = origCamPos + Vector3.UP * sin(cam_bob) * 0.1 camera3d.position = camera3d.position.lerp(objCam, delta) # 緩やかに位置を補間
足音の処理を追加
歩行やダッシュ時の音を変化させることで、よりリアルで緊張感のあるホラー体験を演出します!
# 入力がある場合の移動処理 if direction: velocity.x = direction.x * MOVE_SPEED velocity.z = direction.z * MOVE_SPEED # ダッシュボタンが押された場合 if Input.is_action_just_pressed("dash") and %StaminaBar.value > 0: MOVE_SPEED = DASH_SPEED # ダッシュ速度に設定 %StaminaBar.show() # スタミナバーを表示 # ダッシュボタンが離された場合 if Input.is_action_just_released("dash"): MOVE_SPEED = SPEED # 通常速度に戻す processGroundSounds() # 足音処理
# 足音の処理func processGroundSounds(): if is_running: playFootstep = 2 # ダッシュ中の足音間隔 else: playFootstep = 3.5 # 通常歩行の足音間隔 if int(velocity.x) != 0 or int(velocity.z) != 0: distance_footstep += 0.1 # 移動距離を増加 if distance_footstep > playFootstep: foots_sound.pitch_scale = randf_range(0.8, 1.2) # 足音のピッチをランダム化 foots_sound.play() # 足音を再生 distance_footstep = 0.0 # 足音距離をリセット
入力がある場合の移動処理に
processGroundSounds
を追加してください!プレイヤーのスクリプトの毎フレームの物理処理(
_physics_process
)内のdirection
があるときのみ足音の処理をします!# 毎フレームの物理処理func _physics_process(delta): # 入力がある場合の移動処理 if direction: velocity.x = direction.x * MOVE_SPEED velocity.z = direction.z * MOVE_SPEED # ダッシュボタンが押された場合 if Input.is_action_just_pressed("dash") and %StaminaBar.value > 0: MOVE_SPEED = DASH_SPEED # ダッシュ速度に設定 %StaminaBar.show() # スタミナバーを表示 # ダッシュボタンが離された場合 if Input.is_action_just_released("dash"): MOVE_SPEED = SPEED # 通常速度に戻す processGroundSounds() # 足音処理
これで、ホラー演出の強化完了!カメラの揺れと足音の実装しました!
ホラーゲームのベースができました!このチュートリアルは怪物に見つからないようにアイテムを集める仕様なので
NavigationRegion3D
の範囲内でアイテムをランダムの位置に生成するちょっとした小技を別のチュートリアルで紹介します!
あなたの作りたいホラーゲームのお役に立てたらすごく嬉しいです!
わからないことはコメントでお待ちしております!
1
100%