Aller au contenu
galdurdocs

Animations

Des animations courtes et discrètes qui donnent vie aux écrans, et un réglage pour que le joueur puisse toutes les couper. Tes propres widgets peuvent utiliser les mêmes outils.

⏱ 4 minGaldur UI 0.1.0Client

Ce qui bouge

  • Survol des boutons et des onglets en fondu.
  • Une case qui se coche en grandissant.
  • Fenêtres et écrans de menu qui montent légèrement à l’ouverture.
  • Contenu d’onglet qui glisse depuis son côté.
  • Défilement fluide des listes.

Les durées sont courtes, entre 90 et 180 ms, avec les courbes de GaldurEasing.

ConstanteDuréePour
HOVER_MS90 msFondu au survol (boutons, onglets)
TOGGLE_MS110 msCoche de la case
PAGE_MS160 msContenu d’onglet qui glisse
OPEN_MS180 msOuverture d’un écran
SCROLL_SMOOTHING_MS45 msConstante de temps du défilement fluide

Elles sont dans GaldurAnimations.

Le joueur peut les couper

Mods → Galdur UI → Configurer → Animations, ou config/galdurui-client.toml. Les changements deviennent alors instantanés partout, y compris dans ton mod si tu utilises les outils ci-dessous.

Animer tes propres widgets

AnimatedValue est un nombre qui va vers une cible en un temps donné, selon une courbe. Donne la cible quand tu veux, à chaque image par exemple : une transition ne démarre que quand la cible change, et elle part de la valeur affichée à ce moment, donc changer de direction en route ne fait jamais de saut.

MyWidget.java
private final AnimatedValue hover = new AnimatedValue(0, GaldurAnimations.HOVER_MS, GaldurEasing.OUT_QUAD);protected void renderWidget(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) {    hover.setTarget(isHovered() ? 1 : 0);    int color = mix(idle, hovered, hover.get());    ...}

Quand le joueur a coupé les animations, get() renvoie directement la cible. snap(value) saute à une valeur sans transition.

Si tu écris une animation sans AnimatedValue, vérifie d’abord GaldurAnimations.enabled().

Courbes d’accélération

Chaque courbe transforme une progression linéaire t de 0 à 1, et donne 0 en 0 et 1 en 1.

CourbeEffet
LINEARVitesse constante.
IN_QUADPart lentement, finit vite.
OUT_QUADPart vite, finit lentement ; plus discret que OUT_CUBIC.
IN_OUT_QUADLent aux deux bouts.
OUT_CUBICPart vite, se pose en douceur : le choix par défaut pour l’interface.
IN_OUT_CUBICLent aux deux bouts, plus marqué que IN_OUT_QUAD.
OUT_BACKDépasse un peu la cible avant de se poser : un petit rebond.
Example.java
double t = Math.min(1, elapsed / (double) durationMs);int y = (int) Math.round(from + (to - from) * GaldurEasing.OUT_CUBIC.applyAsDouble(t));
© 2026 Galdur Studio · galdurstudio.com · Discord · LGPL-3.0-onlyProduit non officiel. Non approuvé par Mojang ou Microsoft, ni associé à eux.