“支线任务”,“星空”
《静默转变》是我为《星空》设计并开发的单人关卡,并作为一个独立的支线任务。关卡在一个环绕海王星运行的空间站上展开,关卡运用环境叙事的手法,结合充满悬疑的任务设置,围绕一起神秘的谋杀案展开。
玩家作为“群星组织”的调查员,需要揭开首席科学家Roo突然死亡的真相。通过探索随机的线索、审讯嫌疑人和检查证据,玩家将逐步重建事件的时间线并找出凶手。
与此同时,独特的重力切换机制也为空间探索与解谜的过程增添了深度。
静默转变


开发工具:Creation Kit
开发时长:8周
游玩时长:20分钟
我的角色:独立开发者(关卡设计、程序实现、战斗设计、剧情设计)
< Level Design Overview >
非线性探索路径
《静默转变》让玩家可以在八个互相连接的区域中自由穿行。破案的几个关键证据可以以任意顺序发现,支持多条调查路线。
关卡策划案

关卡开发管线
- 关卡策划案
- 白盒
- 基础玩法
- 玩法实现
- 美学介入
- 发行
关卡特色
零重力环境
作为一款太空主题的游戏,重力是《星空》引人入胜的核心玩法之一。通过编写自定义脚本,我让玩家能够在游戏过程中切换重力。并且,我将这一机制作为我关卡的核心元素,将其与其他机制结合,用于引导玩家、设计谜题,并为战斗增添多样性。
通过启动重力开关,玩家可以在一倍地球重力与零重力模式间来回切换。在零重力状态下,玩家能够穿越狭窄的通风管道,抵达步行无法到达的空中通道。这不仅丰富了谜题设计,还为解谜过程引入了垂直维度的考量。
脚本实现:
Scriptname Scriptname aC34LR:aC34LR_GravitySwift_Button extends ObjectReference
Cell Property targetCell Auto
ObjectReference Property LightEnableMarker Auto Const
WwiseEvent Property WwiseEvent_Gravity_Power_Lights_Off Auto Const
WwiseEvent Property WwiseEvent_Gravity_Power_Lights_On Auto Const
ObjectReference[] Property TargetComputer Auto Const
ObjectReference[] Property ReplaceComputer Auto Const
ObjectReference Property EnableMarker Auto Const
ObjectReference Property DoorToLock Auto Const
Event OnActivate(ObjectReference akActionRef)
ObjectReference PlayerRef = Game.GetPlayer()
Float myGravity = PlayerRef.GetGravityScale()
if myGravity != 0
DisableGravitySequence()
else
EnableGravitySequence()
endif
EndEvent
Function DisableGravitySequence()
; 禁用TargetComputer
int i = 0
while (i < TargetComputer.Length)
if TargetComputer[i] != None
TargetComputer[i].Disable()
endif
i += 1
endwhile
; 启用ReplaceComputer
i = 0
while (i < ReplaceComputer.Length)
if ReplaceComputer[i] != None
ReplaceComputer[i].Enable()
endif
i += 1
endwhile
; 播放关闭电力声音
WwiseEvent_Gravity_Power_Lights_Off.Play(Game.GetPlayer())
; 窗口抖动
Game.ShakeCamera(afStrength = 0.2)
Utility.Wait(2.0)
Game.ShakeCamera()
; 灯光闪烁效果
WwiseEvent_Gravity_Power_Lights_On.Play(Game.GetPlayer())
LightEnableMarker.Disable()
Utility.Wait(0.3)
LightEnableMarker.Enable()
Utility.Wait(0.3)
LightEnableMarker.Disable()
; 实际设置重力
targetCell.setGravityScale(0.0)
EndFunction
Function EnableGravitySequence()
; 启用TargetComputer
int i = 0
while (i < TargetComputer.Length)
if TargetComputer[i] != None
TargetComputer[i].Enable()
endif
i += 1
endwhile
; 禁用ReplaceComputer
i = 0
while (i < ReplaceComputer.Length)
if ReplaceComputer[i] != None
ReplaceComputer[i].Disable()
endif
i += 1
endwhile
; 播放恢复电力声音
WwiseEvent_Gravity_Power_Lights_On.Play(Game.GetPlayer())
Game.ShakeCamera(afStrength = 0.2)
Utility.Wait(2.0)
Game.ShakeCamera()
; 灯光闪烁效果
WwiseEvent_Gravity_Power_Lights_Off.Play(Game.GetPlayer())
LightEnableMarker.Enable()
Utility.Wait(0.3)
LightEnableMarker.Disable()
Utility.Wait(0.3)
LightEnableMarker.Enable()
; 实际开启重力
targetCell.setGravityScale(1.0)
EndFunction



多功能终端
我设计了与故事情节一致的定制终端界面,包含专属文本和次级菜单。
这些终端包含权限锁定的子菜单(钥匙卡),增添了一层探索机制。


环境叙述
关卡中,我以大量的视觉线索取代繁琐的长篇说明,比如天花板上的血迹、在通风口前戛然而止的凌乱足迹,以及使用闪烁的廊灯勾勒出前进的路径。
除此之外,一些道具、贴花和灯光也在默默引导玩家走向导致犯罪的关键时刻。


