El archivo del holograma
Nunca necesitas tocar los archivos: el editor web y los comandos los escriben. Esta página es para quien quiera hacerlo, y para entender lo que escribió el editor.
Cada holograma es un archivo, plugins/HologramBB/holograms/<id>.yml. Después de editarlo a mano, ejecuta /hbb reload; un error se avisa en la consola con el archivo y la clave, y los demás hologramas cargan igual.
Ajustes y capas
location: { world: world, x: 0.5, y: 65.0, z: 0.5, yaw: 0 }
view-distance: 48 # bloques
look-radius: 1.0 # qué tan cerca de su centro debe apuntar un jugador para mirarlo
update-interval: 20 # ticks entre refrescos de placeholders del texto, 0 para nunca
hitbox: [1.0, 2.5] # opcional: ancho y alto de la caja de click
layers: # se dibujan en este orden
title:
type: text # text | item | block
text: "<gold>TIENDA" # MiniMessage, {player}, %placeholders%
offset: [0, 2.2, 0] # o un solo número, solo para la altura
scale: 1.0 # o [x, y, z]
rotation: [0, 0, 0] # grados alrededor de x, y, z
billboard: center # fixed | vertical | horizontal | center
background: transparent # transparent | default | "#AARRGGBB"
shadow: false
see-through: false
line-width: 200
alignment: center # center | left | right
opacity: 255
brightness: -1 # 0..15, o -1 para la luz del mundo
glow: none # "#RRGGBB" para un contorno de color
shadow-radius: 0 # sombra en el suelo; 0 para ninguna
shadow-strength: 1
icon:
type: item
item: EMERALD
display: fixed # none | head | gui | ground | fixed | ...
base:
type: block
block: "minecraft:oak_log[axis=x]"
visibility: # todo opcional
permission: tienda.ver
condition: "%player_level% >= 10"
manual: falseComportamiento
Lo que hace un holograma es un pequeño conjunto de estados, que cada jugador recorre por su cuenta. Un estado repite sus animaciones de loop mientras el jugador está en él; su lista on reacciona a los activadores, de arriba abajo, y el primero que tiene goto termina la lista.
behavior:
initial: idle
states:
idle:
loop: [ "bob", "spin@icon" ]
on:
- when: { near: 4 }
play: [ "pop-in@title" ]
goto: close
close:
loop: [ "bob", "spin(period=30)@icon" ]
on:
- when: look
play: [ "wiggle@icon" ]
- when: right-click
play: [ "bounce" ]
run: [ "[player] warp tienda", "[sound] entity.villager.yes" ]
- when: { placeholder: "%vault_eco_balance% < 100" }
text: { title: "<red>Sin dinero" }
- when: { far: 6 }
goto: idleUn holograma que solo repite animaciones puede usar la forma corta loop: [ bob ] en vez de behavior.
Activadores
Cada uno se dispara una vez, en el momento en que se cumple.
| Activador | Se dispara cuando |
|---|---|
near: 4 | el jugador se acerca a menos de 4 bloques |
far: 6 | el jugador se aleja a más de 6 bloques (usa más que near, para que no parpadee) |
look / look-away | empieza / deja de mirarlo, sin un bloque en medio |
click, left-click, right-click | le hace click |
after: 200 | 200 ticks después de que empezó el estado |
placeholder: "%x% >= 10" | la comparación se cumple: < <= > >= == != |
A un jugador que entra en la distancia de visión se le trata como a uno que acaba de alejarse: si el primer estado se acerca a un estado que se aleja con animaciones, el holograma empieza como quedaría después de alejarse, ya escondido si alejarse lo esconde.
Qué hace un activador
| Clave | Hace |
|---|---|
play | Animaciones que se reproducen una vez |
text | Cambios de texto para ese jugador: { capa: "texto nuevo" } |
run | [player] comando, [console] comando, [message] texto, [sound] nombre volumen tono. Una línea sin etiqueta se ejecuta como el jugador. |
goto | El estado al que pasa |
Animaciones
Una animación se nombra nombre, nombre@capa o nombre(ajuste=valor,…)@capa. Sin @capa se reproduce en todas las capas. Las que vienen listas están en Efectos.
Las tuyas van en clips: dentro del archivo, o en plugins/HologramBB/clips.yml para compartirlas entre hologramas:
clips:
balanceo:
duration: 40
loop: true
tracks:
- layer: title # opcional; si no, la capa donde se reproduce
property: rotation-z # translation-x/y/z, rotation-x/y/z, scale, opacity,
# reveal, count, rainbow, glow
keyframes:
- { t: 0, value: -4, ease: ease-in-out-sine }
- { t: 20, value: 4, ease: ease-in-out-sine }
- { t: 40, value: -4 }ease da forma al tramo que empieza en ese fotograma: cualquier nombre de easings.net (ease-out-back, easeInOutSine), linear, step, o cubic-bezier(x1,y1,x2,y2).
La sección editor
Un holograma guardado desde el editor web también tiene una sección editor:: los momentos y sus líneas de tiempo, para que se abra otra vez como lo dejaste. El plugin la ignora y reproduce el behavior y los clips que el editor escribió al lado. Si editas esos dos a mano y dejas editor:, el editor escribirá encima de tus cambios la próxima vez que guarde; quita editor: si pasas a editarlo a mano.