Saltearse al contenido

Modelos del servidor

Descripcion general

Los archivos de modelos del servidor definen las propiedades fisicas y de comportamiento de la representacion visual de una entidad en el servidor: dimensiones del hitbox, altura de ojos, variacion de escala, seguimiento de camara dirigido a huesos, y la biblioteca completa de conjuntos de animacion nombrados utilizados por los sistemas de IA y fisica. Son separados de los assets visuales solo del cliente — el servidor necesita metadatos de hitbox y animacion para ejecutar colision, IA y logica de sonido. Los modelos soportan herencia mediante un campo Parent.

Ubicacion de archivos

Assets/Server/Models/
Beast/
Bear_Grizzly.json
Bear_Polar.json
Cactee.json
Boss/
Critter/
Deployables/
Elemental/
Flying_Beast/
Flying_Critter/
Flying_Wildlife/
Human/
Mannequin.json
Player.json
Intelligent/
Instances/
Livestock/
Pets/
Projectiles/

Esquema

Nivel superior

CampoTipoRequeridoPredeterminadoDescripcion
ModelstringSiRuta al archivo .blockymodel que define la malla visual.
TexturestringNoRuta a la textura predeterminada aplicada al modelo.
ParentstringNoID de una definicion de modelo padre de la cual heredar campos no establecidos.
EyeHeightnumberSiAltura en unidades desde los pies de la entidad hasta la posicion de sus ojos. Utilizada para colocacion de camara y linea de vision.
CrouchOffsetnumberNo0Desplazamiento vertical aplicado a la posicion de los ojos cuando la entidad esta agachada.
HitBoxHitBoxSiCaja delimitadora alineada con los ejes utilizada para colision y deteccion de impactos.
MinScalenumberNo1Escala aleatoria minima aplicada a esta entidad al aparecer.
MaxScalenumberNo1Escala aleatoria maxima aplicada a esta entidad al aparecer. La escala se elige uniformemente entre min y max.
DefaultAttachmentsobject[]No[]Lista de accesorios de items presentes en la entidad por defecto (por ejemplo, armas sostenidas).
CameraCameraConfigNoConfiguracion de seguimiento de camara dirigido a huesos.
AnimationSetsobjectSiMapa de nombre de conjunto de animacion a AnimationSet. Ver abajo.
IconPropertiesIconPropertiesNoParametros de camara utilizados al renderizar el icono de inventario de la entidad.

HitBox

CampoTipoRequeridoPredeterminadoDescripcion
MinVector3SiEsquina minima del AABB relativa al origen de la entidad (pies).
MaxVector3SiEsquina maxima del AABB relativa al origen de la entidad.

Vector3

CampoTipoRequeridoPredeterminadoDescripcion
XnumberSiComponente X.
YnumberSiComponente Y (vertical).
ZnumberSiComponente Z.

CameraConfig

CampoTipoRequeridoPredeterminadoDescripcion
PitchCameraAxisNoConfiguracion de seguimiento de cabeceo.
YawCameraAxisNoConfiguracion de seguimiento de guiñada.

CameraAxis

CampoTipoRequeridoPredeterminadoDescripcion
AngleRange.MinnumberSiAngulo minimo en grados que la camara puede seguir en este eje.
AngleRange.MaxnumberSiAngulo maximo en grados que la camara puede seguir en este eje.
TargetNodesstring[]SiNombres de huesos a los que apunta la camara al hacer seguimiento.

AnimationSet

Un conjunto de animacion es un grupo nombrado de uno o mas clips de animacion. El motor reproduce un clip del grupo (aleatoriamente o en secuencia dependiendo del contexto).

CampoTipoRequeridoPredeterminadoDescripcion
AnimationsAnimationEntry[]SiUno o mas clips de animacion en este conjunto.

AnimationEntry

CampoTipoRequeridoPredeterminadoDescripcion
AnimationstringSiRuta al archivo de animacion .blockyanim.
SpeednumberNo1Multiplicador de velocidad de reproduccion.
BlendingDurationnumberNo0Tiempo en segundos para hacer transicion desde la animacion anterior a esta.
LoopingbooleanNotrueSi la animacion se repite. Establecer false para animaciones de una sola vez.
SoundEventIdstringNoEvento de sonido disparado cuando esta animacion se reproduce (por ejemplo, sonidos de pasos).

IconProperties

CampoTipoRequeridoPredeterminadoDescripcion
ScalenumberNoNivel de zoom utilizado al renderizar el icono.
Rotation[number, number, number]NoRotacion Euler [X, Y, Z] en grados aplicada al modelo para el renderizado del icono.
Translation[number, number]NoDesplazamiento 2D [X, Y] en pixeles aplicado para centrar el modelo en el marco del icono.

Nombres estandar de conjuntos de animacion

El motor espera conjuntos nombrados especificos. Se pueden agregar conjuntos personalizados para uso con scripts.

NombreProposito
IdleDe pie
Walk / WalkBackwardCaminando hacia adelante/atras
RunCorriendo
Crouch / CrouchWalk / CrouchWalkBackwardEstados agachados
Jump / JumpWalk / JumpRunVariantes de salto
FallCayendo
Swim / SwimIdle / SwimFast / SwimBackwardEstados de natacion
Fly / FlyIdle / FlyFast / FlyBackwardEstados de vuelo
Hurt / DeathReacciones al dano
AlertedActivacion de agresion
Sleep / Laydown / WakeCiclo de descanso
SpawnAnimacion de aparicion
Roar / Search / EatAnimaciones decorativas

Ejemplo

Oso Grizzly (Assets/Server/Models/Beast/Bear_Grizzly.json, condensado):

{
"Model": "NPC/Beast/Bear_Grizzly/Models/Model.blockymodel",
"Texture": "NPC/Beast/Bear_Grizzly/Models/Texture.png",
"EyeHeight": 1.5,
"CrouchOffset": -0.3,
"HitBox": {
"Max": { "X": 0.8, "Y": 1.8, "Z": 0.8 },
"Min": { "X": -0.8, "Y": 0.0, "Z": -0.8 }
},
"MinScale": 0.9,
"MaxScale": 1.25,
"DefaultAttachments": [],
"Camera": {
"Pitch": {
"AngleRange": { "Max": 45, "Min": -45 },
"TargetNodes": ["Head"]
},
"Yaw": {
"AngleRange": { "Max": 45, "Min": -45 },
"TargetNodes": ["Head"]
}
},
"AnimationSets": {
"Idle": {
"Animations": [
{ "Animation": "NPC/Beast/Bear_Grizzly/Animations/Default/Idle.blockyanim", "Speed": 0.6 }
]
},
"Run": {
"Animations": [
{ "Animation": "NPC/Beast/Bear_Grizzly/Animations/Default/Run.blockyanim", "SoundEventId": "SFX_Bear_Grizzly_Run", "Speed": 1 }
]
},
"Death": {
"Animations": [
{ "Animation": "NPC/Beast/Bear_Grizzly/Animations/Damage/Death.blockyanim", "Looping": false, "SoundEventId": "SFX_Bear_Grizzly_Death" }
]
}
}
}

Maniqui (Assets/Server/Models/Human/Mannequin.json) — usa herencia con Parent:

{
"Model": "NPC/MISC/Mannequin/Models/Model.blockymodel",
"Texture": "NPC/MISC/Mannequin/Models/Model_Default.png",
"EyeHeight": 1.6,
"HitBox": {
"Max": { "X": 0.3, "Y": 1.8, "Z": 0.3 },
"Min": { "X": -0.3, "Y": 0.0, "Z": -0.3 }
},
"MinScale": 1,
"MaxScale": 1,
"Parent": "Player",
"DefaultAttachments": [],
"AnimationSets": {
"Hurt": {
"Animations": [
{ "Animation": "Characters/Animations/Damage/Default/Hurt.blockyanim", "BlendingDuration": 0.1, "Looping": false },
{ "Animation": "Characters/Animations/Damage/Default/Hurt2.blockyanim", "BlendingDuration": 0.1, "Looping": false }
]
}
}
}

Paginas relacionadas