Saltearse al contenido

Efectos de Camara

Descripcion General

Los archivos de efectos de camara controlan como la camara responde a los eventos del juego. El sistema tiene tres capas: los archivos CameraEffect activan una sacudida de camara nombrada con un valor de intensidad, los archivos CameraShake definen las curvas de oscilacion reales para las vistas en primera y tercera persona, y los archivos ViewBobbing producen movimiento ritmico de la camara durante los estados de movimiento. Juntos agregan retroalimentacion visceral a golpes de combate, pisadas y desplazamiento.

Ubicacion de Archivos

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

Esquema

CameraEffect

CampoTipoRequeridoPor defectoDescripcion
TypestringSiTipo de efecto. Actualmente "CameraShake" es el unico tipo soportado.
CameraShakestringSiID de la definicion de sacudida de camara a reproducir. Se resuelve a un archivo en CameraShake/.
IntensityIntensityConfigSiControla la fuerza del efecto.

IntensityConfig

CampoTipoRequeridoPor defectoDescripcion
ValuenumberSiMultiplicador de intensidad aplicado a la sacudida. Los valores tipicos van de 0.01 a 0.1.

CameraShake

Los archivos de sacudida de camara definen el comportamiento de oscilacion por separado para las perspectivas de primera y tercera persona.

CampoTipoRequeridoPor defectoDescripcion
FirstPersonShakeViewNoConfiguracion de sacudida para la camara en primera persona.
ThirdPersonShakeViewNoConfiguracion de sacudida para la camara en tercera persona.

ShakeView

CampoTipoRequeridoPor defectoDescripcion
DurationnumberNo0Duracion total en segundos. 0 significa que la sacudida se reproduce una vez a traves de sus ciclos de oscilacion.
EaseInEaseNoTransicion de entrada suave al inicio de la sacudida.
EaseOutEaseNoTransicion de salida suave al final de la sacudida.
OffsetAxisOscillationsNoOscilaciones de desplazamiento posicional en los ejes X, Y, Z.
RotationRotationOscillationsNoOscilaciones rotacionales en los ejes Pitch, Yaw, Roll.

Ease

CampoTipoRequeridoPor defectoDescripcion
TimenumberSiDuracion de la transicion suave en segundos.
TypestringSiFuncion de suavizado: "Linear", "QuadInOut", "QuadIn", "QuadOut".

Oscillation

Cada eje en Offset (X, Y, Z) o Rotation (Pitch, Yaw, Roll) contiene un array de entradas de oscilacion:

CampoTipoRequeridoPor defectoDescripcion
FrequencynumberSiFrecuencia de oscilacion en Hz. Valores mas altos producen sacudidas mas rapidas.
AmplitudenumberSiDesplazamiento maximo o rotacion en unidades/grados.
TypestringSiFuncion de onda: "Sin", "Cos", "Perlin_Hermite".
ClampClampConfigNoLimita la salida de la oscilacion a un rango.

ClampConfig

CampoTipoRequeridoPor defectoDescripcion
MinnumberNoValor minimo de limitacion.
MaxnumberNoValor maximo de limitacion.

ViewBobbing

Los archivos de balanceo de vision definen el movimiento ritmico de la camara vinculado a estados de movimiento.

CampoTipoRequeridoPor defectoDescripcion
FirstPersonBobViewNoConfiguracion de balanceo de vision en primera persona.

BobView

CampoTipoRequeridoPor defectoDescripcion
EaseInEaseNoTransicion hacia este estado de balanceo.
OffsetAxisOscillationsNoOscilaciones posicionales (balanceo de cabeza).
RotationRotationOscillationsNoOscilaciones rotacionales (inclinacion de cabeza).

Ejemplos

Efecto de camara (Assets/Server/Camera/CameraEffect/Battleaxe/Battleaxe_Sweep.json):

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

Sacudida de camara (Assets/Server/Camera/CameraShake/Battleaxe/Battleaxe_Sweep.json, condensado):

{
"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" }
]
}
}
}

Balanceo de vision (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": []
}
}
}

Paginas Relacionadas