它有什么用?
核心目的:
让静态画面产生"跟随感"和"空间感",提升沉浸感。
1. 增强画面层次感
普通:
玩家
|
Camera
|
固定画面
感觉像在看截图。
加入鼠标偏移:
鼠标 →
Camera轻微移动
玩家视角产生变化
玩家感觉:
我正在观察这个世界。
2. 主菜单常用
很多游戏主菜单:
比如:
- 角色展示
- 武器展示
- 游戏Logo背景
鼠标移动:
鼠标 →
角色背景轻微移动
让界面感觉更高级。
例如:
背景层 移动 5px
角色层 移动 15px
前景粒子 移动 30px
这就是 Parallax(视差)。
3. 增强战斗反馈
肉鸽游戏非常常见。
例如:
玩家攻击:
普通:
角色挥刀
加入 Camera Offset:
鼠标方向 →
镜头稍微偏移
攻击方向更明显
玩家会感觉:
- 攻击更有力量
- 视野更开阔
- 操作更跟手
4. 第三人称游戏常用
类似:
- 《荒野大镖客》
- 《最后生还者》
- 《原神》
都有类似概念。
比如:
鼠标向右:
角色
镜头偏右
看到更多右侧空间
方便玩家观察。
5. 恐怖游戏增强压迫感
比如:
鼠标移动:
你看向左边
镜头稍微跟过去
产生:
- 人在观察环境
- 不是固定摄像机
- 更真实
Godot鼠标视差Camera脚本
python
extends Camera2D
@export_category("Mouse Camera Follow")
# 鼠标影响摄像机的最大偏移距离
@export var mouse_strength: float = 20.0
# 镜头平滑速度
@export var smooth_speed: float = 5.0
var target_offset: Vector2 = Vector2.ZERO
var mouse_inside: bool = true
func _ready():
# 监听鼠标进入/离开窗口
get_viewport().mouse_entered.connect(_on_mouse_entered)
get_viewport().mouse_exited.connect(_on_mouse_exited)
func _process(delta):
if mouse_inside:
# 获取鼠标位置
var mouse_position = get_viewport().get_mouse_position()
# 获取屏幕中心
var screen_center = get_viewport_rect().size / 2
# 鼠标相对于中心的位置 (-1 ~ 1)
var mouse_direction = (
mouse_position - screen_center
) / screen_center
# 计算目标偏移
target_offset = mouse_direction * mouse_strength
else:
# 鼠标离开窗口,回到默认位置
target_offset = Vector2.ZERO
# 平滑移动摄像机
offset = offset.lerp(target_offset, smooth_speed * delta)
func _on_mouse_entered():
mouse_inside = true
func _on_mouse_exited():
mouse_inside = false