Pular para o conteúdo

Efeitos de Câmera

Visão Geral

Arquivos de efeitos de câmera controlam como a câmera responde a eventos de jogabilidade. O sistema possui três camadas: arquivos CameraEffect disparam um tremor de câmera nomeado com um valor de intensidade, arquivos CameraShake definem as curvas de oscilação reais para visões em primeira e terceira pessoa, e arquivos ViewBobbing produzem movimentos rítmicos da câmera durante estados de movimento. Juntos, eles adicionam feedback visceral a golpes de combate, passos e travessias.

Localização dos Arquivos

Assets/Server/Camera/
CameraEffect/
Battleaxe/
Battleaxe_Bash.json
Battleaxe_Sweep.json
Battleaxe_Swing_Horizontal.json
...
Block/
Crossbow/
Daggers/
Greatsword/
Longsword/
Spear/
Warhammer/
CameraShake/
Battleaxe/
Battleaxe_Bash.json
Battleaxe_Sweep.json
...
Daggers/
Greatsword/
Longsword/
Spear/
Warhammer/
ViewBobbing/
Climbing.json
Crouching.json
Flying.json
Idle.json
Mounting.json
None.json
Running.json
Sliding.json
Sprinting.json
SprintMounting.json
Swimming.json
Walking.json

Schema

CameraEffect

CampoTipoObrigatórioPadrãoDescrição
TypestringSimTipo de efeito. Atualmente "CameraShake" é o único tipo suportado.
CameraShakestringSimID da definição de tremor de câmera a ser reproduzida. Resolve para um arquivo em CameraShake/.
IntensityIntensityConfigSimControla a intensidade do efeito.

IntensityConfig

CampoTipoObrigatórioPadrãoDescrição
ValuenumberSimMultiplicador de intensidade aplicado ao tremor. Valores típicos variam de 0.01 a 0.1.

CameraShake

Arquivos de tremor de câmera definem o comportamento de oscilação separadamente para perspectivas em primeira e terceira pessoa.

CampoTipoObrigatórioPadrãoDescrição
FirstPersonShakeViewNãoConfiguração de tremor para câmera em primeira pessoa.
ThirdPersonShakeViewNãoConfiguração de tremor para câmera em terceira pessoa.

ShakeView

CampoTipoObrigatórioPadrãoDescrição
DurationnumberNão0Duração total em segundos. 0 significa que o tremor reproduz uma vez através de seus ciclos de oscilação.
EaseInEaseNãoTransição de fade-in no início do tremor.
EaseOutEaseNãoTransição de fade-out no final do tremor.
OffsetAxisOscillationsNãoOscilações de deslocamento posicional nos eixos X, Y, Z.
RotationRotationOscillationsNãoOscilações rotacionais nos eixos Pitch, Yaw, Roll.

Ease

CampoTipoObrigatórioPadrãoDescrição
TimenumberSimDuração da transição de ease em segundos.
TypestringSimFunção de easing: "Linear", "QuadInOut", "QuadIn", "QuadOut".

Oscillation

Cada eixo em Offset (X, Y, Z) ou Rotation (Pitch, Yaw, Roll) contém um array de entradas de oscilação:

CampoTipoObrigatórioPadrãoDescrição
FrequencynumberSimFrequência de oscilação em Hz. Valores mais altos produzem tremores mais rápidos.
AmplitudenumberSimDeslocamento máximo ou rotação em unidades/graus.
TypestringSimFunção de onda: "Sin", "Cos", "Perlin_Hermite".
ClampClampConfigNãoLimita a saída da oscilação a um intervalo.

ClampConfig

CampoTipoObrigatórioPadrãoDescrição
MinnumberNãoValor mínimo de limitação.
MaxnumberNãoValor máximo de limitação.

ViewBobbing

Arquivos de balanço de visão definem movimentos rítmicos da câmera vinculados a estados de movimento.

CampoTipoObrigatórioPadrãoDescrição
FirstPersonBobViewNãoConfiguração de balanço de visão em primeira pessoa.

BobView

CampoTipoObrigatórioPadrãoDescrição
EaseInEaseNãoTransição para este estado de balanço.
OffsetAxisOscillationsNãoOscilações posicionais (balanço da cabeça).
RotationRotationOscillationsNãoOscilações rotacionais (inclinação da cabeça).

Exemplos

Efeito de câmera (Assets/Server/Camera/CameraEffect/Battleaxe/Battleaxe_Sweep.json):

{
"Type": "CameraShake",
"CameraShake": "Battleaxe_Sweep",
"Intensity": {
"Value": 0.05
}
}

Tremor de câmera (Assets/Server/Camera/CameraShake/Battleaxe/Battleaxe_Sweep.json, resumido):

{
"FirstPerson": {
"Duration": 0.0,
"EaseIn": { "Time": 0.25, "Type": "QuadInOut" },
"EaseOut": { "Time": 0.5, "Type": "QuadInOut" },
"Offset": { "X": [], "Y": [], "Z": [] },
"Rotation": {
"Pitch": [],
"Yaw": [
{ "Frequency": 30.0, "Amplitude": 0.4, "Type": "Sin" }
],
"Roll": []
}
},
"ThirdPerson": {
"Duration": 0.0,
"EaseIn": { "Time": 0.25, "Type": "QuadInOut" },
"EaseOut": { "Time": 0.5, "Type": "QuadInOut" },
"Rotation": {
"Yaw": [
{ "Frequency": 30.0, "Amplitude": 0.2, "Type": "Sin" }
]
}
}
}

Balanço de visão (Assets/Server/Camera/ViewBobbing/Running.json):

{
"FirstPerson": {
"EaseIn": { "Time": 0.5, "Type": "Linear" },
"Offset": {
"X": [
{ "Type": "Sin", "Frequency": 11.0, "Amplitude": 0.02 }
],
"Y": [
{ "Type": "Cos", "Frequency": 22.0, "Amplitude": 0.024, "Clamp": { "Min": -0.5 } },
{ "Type": "Perlin_Hermite", "Frequency": 22.0, "Amplitude": 0.005, "Clamp": { "Min": -0.5 } }
],
"Z": []
},
"Rotation": {
"Pitch": [
{ "Type": "Cos", "Frequency": 22.0, "Amplitude": 0.001 }
],
"Roll": []
}
}
}

Páginas Relacionadas