Mise à jour du joueur
Nous avons redéfini le modèle des joueurs à partir de zéro.
Cela inclut des maillages et matériaux améliorés, des proportions plus réalistes sur un nouveau rig, des graines de tête et de cheveux agrandies, ainsi qu’un passage très nécessaire sur presque tout ce qui concerne le joueur.
L’ancien modèle de joueur nous a bien servi pendant près de 10 ans, mais il a pris du retard par rapport au reste du jeu pendant un certain temps. Visuellement, cela montrait son âge, mais tout aussi important, cela nous empêchait d’apporter des améliorations majeures aux personnages, aux animations et à la mise en œuvre de futures fonctionnalités. Les tentatives précédentes d’améliorer le modèle du joueur ont toujours donné l’impression d’être un simple pansement, il y avait une limite à ce que nous pouvions faire en contournant les limites des anciennes proportions et du squelette. À un moment donné, il est devenu clair que la seule vraie solution était de l’arracher et de le reconstruire correctement.
Parallèlement au nouveau modèle de base, nous avons également :
• Augmentation du nombre de têtes dans le jeu, chaque tête ayant désormais des matériaux uniques et des détails supplémentaires tels que des cils et un éclairage oculaire amélioré.
• Retravailler et élargir les coiffures et les barbes, en utilisant de nouveaux shaders anisotropes pour rendre les cheveux plus naturels.
• Mise à jour de tous les vêtements pour s’adapter au nouveau montage et aux proportions, offrant à de nombreux anciens assets un renouvellement bien nécessaire et corrigeant certains problèmes de longue date.
• Modernisé la chaîne artistique derrière le modèle joueur, rendant les futurs correctifs et améliorations beaucoup plus faciles à diffuser.
Votre visage changera, mais les graines de race et de genre ont été conservées, alors nous espérons que cela ne sera pas trop surprenant pour ceux d’entre vous qui se sont attachés à votre graine aléatoire au fil des années. Nous continuerons à améliorer le modèle des joueurs après la sortie, et nous avons également prévu une mise à jour de personnalisation des joueurs pour l’avenir.
Cela a demandé énormément de travail, surtout que nous le faisons en parallèle avec le développement régulier et les mises à jour mensuelles. Réaliser une chirurgie à cœur ouvert sur l’une des parties les plus interconnectées de Rust, tout en continuant à publier des patchs, a certainement comporté ses défis.
À la fin de l’année, nous espérons avoir mis en place un personnalisateur de joueurs. La façon dont cela fonctionnera exactement est encore en discussion interne, mais nous partagerons des détails dans de futurs blogs.
Performances
Nous savons que « des images améliorées » et des « détails supplémentaires » peuvent être inquiétants à entendre en termes de performance. C’est quelque chose que nous avons suivi de près tout au long du développement. Parallèlement aux améliorations visuelles, nous avons également approfondi notre outillage et nos pipelines, ce qui nous a permis d’optimiser des solutions que nous ne pouvions pas faire avec l’ancienne configuration.
Nos indicateurs internes sont positifs jusqu’à présent, et nous continuerons à surveiller de près les performances après la sortie.
Systèmes d’animation améliorés
L’un des objectifs principaux du nouveau modèle de joueur était de nous offrir une meilleure base pour améliorer les animations des joueurs dans Rust. Nous commençons maintenant à améliorer nos systèmes d'animation pour rendre l'animateur joueur moins robotique et plus réaliste.
Un problème clé auquel nous avons été confronté par le passé est que toutes les animations utilisées par le joueur se trouvent dans une seule machine à états monolithique. Cela représente plus de 250+ animations, ainsi que des ensembles de dérogation pour la plupart des armes. Cette machine à états est pénible et sujette aux erreurs car chaque arme et montable la partage – changer la transition d’une animation pourrait avoir des conséquences imprévisibles pour d’autres situations du jeu.
Pour résoudre cela, nous avons créé un nouvel outil de sous-système qui nous permet d'ajouter une logique d'animation supplémentaire et personnalisée dans certaines situations du jeu. Au lieu d’étendre et d’ajouter encore plus d’animations dans notre immense contrôleur d’animation, nous pouvons désormais créer de petits comportements d’animation autonomes et les appliquer dans des contextes spécifiques.
Tout cela est un peu dense, alors prenons un exemple concret : la humble torche. Nous commençons tous avec un seul, et nous l'avons tous allumé la nuit et avons été immédiatement tués. Il a souffert de quelques problèmes d'animation qui étaient difficiles à résoudre par le passé. Même si elle est tenue uniquement par la main droite, notre système d'animation ne pouvait prendre le contrôle que de tout le haut du corps, donc le bras gauche était toujours raide et robotique. L'animateur du haut du corps n'avait aucune conscience de la locomotion du joueur, donc il ne pouvait pas réagir à la course, aux sauts, etc. (et même s'il en avait conscience, créer toute une série d'animations de course et de saut juste pour la torche est du gaspillage).
Pour résoudre cela, nous avons appliqué un nouveau sous-système qui crée une nouvelle machine à états simplement appliquée au bras droit. Cela préserve les animations de course et de déplacement sur le bras gauche. Nous avons aussi ajouté un support pour fondre le bras gauche lors des animations qui l'exigent – par exemple, pour allumer la torche.
Nous avons simplement déployé ce produit dans quelques petits endroits pour l'instant afin de le tester et de nous assurer qu'il est stable, mais ces nouveaux outils vont nous permettre de travailler plus vite, de produire moins de bugs d'animation et d'obtenir un meilleur résultat à l'avenir.
Armure balistique
Pour la première fois depuis très longtemps, nous ajoutons un nouvel ensemble d'armures haut de gamme à Rust.
Le set Armure Balistique offre une protection accrue par rapport aux alternatives existantes, mais il y a un hic. Il ne peut pas être fabriqué. Si vous voulez mettre la main dessus, il faudra le trouver. Cette armure est comparable à une armure métallique existante avec des plaques.
Nous introduisons également l'uniforme de combat (BDU). Comme l’armure balistique, le BDU est uniquement pour le butin et ne peut pas être fabriqué. Il offre une protection légèrement améliorée par rapport aux vêtements existants, tout en faisant quelques compromis ailleurs.
Les deux ensembles sont conçus pour étendre la progression de l’équipement en fin de partie et créer des opportunités de butin plus précieuses. Si vous cherchez le meilleur équipement disponible, il faudra vous battre pour l'obtenir.
Nouvelle arme : M16A2
Le M16A2 est un fusil de qualité militaire que l’on trouve via le butin de bout et ne peut pas être fabriqué. Conçu autour d’un mode rafale de trois coups, il offre une excellente précision et une cadence de tir élevée, ce qui le rend particulièrement efficace lors des engagements à moyenne portée.
Pour équilibrer le potentiel de dégâts en rafale, le M16A2 inflige moins de dégâts par tir comparé au LR-300.
Comme l'Armure Balistique et le BDU, le M16A2 est un autre objet précieux réservé au butin que vous devrez sortir dans le monde et vous battre. Vous verrez un thème ici.
PSA : Problème de performance avec les souris à taux de sondage élevé
La mise à jour Unity 6 a modifié la façon dont les entrées de la souris sont traitées. Les souris à haut taux de polling (1000Hz+) causent désormais d’importants problèmes de surcharge CPU et des baisses de frames.
à <1000Hz via le logiciel du fabricant de votre souris. (Logitech G HUB, SteelSeries GG, etc.)
Réduisez votre taux de sondage de souris
Nous cherchons une solution correcte de notre côté. Désolé pour le dérangement.
Mises à jour de l’animation
Appariement d’animation
Lorsque c’est possible, nous avons saisi cette occasion pour associer les animations 3p à ce qui se passe dans le viewmodel. Beaucoup des anciennes animations étaient très différentes, tant dans les actions que dans le timing.
Certaines armes partageaient des animations par contrainte de temps mais n'étaient pas toujours adaptées. Il existe désormais plus d’anims sur mesure créés spécifiquement pour chaque arme.
Plus d’anims sur mesure
Position 3/4
L’objectif initial était de passer à autre chose que la visée frontale qui, bien que fonctionnelle, est affreuse visuellement. Cela rend aussi le clipping d’éléments comme la crosse inévitable car le haut du corps ne peut pas « faire de place » à l’arme, qui doit viser correctement.
Nous avons adopté une approche plus de tisserands dans cette mise à jour, afin de réduire certains des problèmes mentionnés ci-dessus.
C'est une posture plus naturelle, surtout avec plus de torsion du corps et des hanches inclinées.
Pack de décoration industrielle
Directement sorti de la forge ce mois-ci, le Industrial Decor Pack, une collection de 20 articles industriels lourds et usinés pour galvaniser votre base. Doté d’objets déposables décoratifs, de rangement utilitaire et d’outils robustes.
Expédition dans la boutique en jeu ou depuis la boutique d’objets Rust Steam
Étagères industrielles
Mises en production après une forte demande, les Étagères Doubles Industrielles, Demi-Étagères et Étagères Murales Industrielles sont des objets et des skins uniques de leurs objets de base respectifs. Contrairement aux étagères industrielles, elles peuvent se voir attribuer une couleur, ce qui vous aide à organiser et optimiser vos solutions de stockage.
Tonneaux de stockage industriels
Pour accompagner les étagères, nous expédions également les barils de stockage industriels en versions horizontales et verticales. Fabriqués en acier et probablement en plusieurs produits chimiques dangereux, ils sont sûrs de protéger votre précieux butin, ou de rester toxique, et en sécurité.
Torche industrielle
Éclairez le chemin devant vous avec ce skin pour la Torche, doté d’un filament électrique et d’animations uniques.
Tourelle automobile industrielle
Mettez en lumière la concurrence avec la tourelle automobile industrielle. Fabriquée dans la structure métallique la plus résistante, cette tenue pour la tourelle automobile est assurée de s’occuper de toute intrusion.
Grande fournaise industrielle
Lancez une révolution industrielle avec cette peau unique et exclusive pour le Grand Four. Passez de l’époque primitive à l’ère moderne avec ce guichet unique pour progresser.
Fournaise électrique industrielle
Saisissez les moyens de production avec cette peau pour le four électrique. Ressemblant à un réacteur nucléaire de sous-sol, vous passerez sûrement toutes les consignes de sécurité à votre charge pour obtenir plus de minerai.
Porte de garage industrielle
Baissez les volets et mettez-vous au travail. Avec une animation unique et des fenêtres en plexiglas pour une sécurité supplémentaire, ce skin pour la porte de garage est sûr de faire avancer les choses.
Fonds peints pour sol en béton peint
Avec 6 papiers peints de sol uniques, vous pouvez créer pratiquement n’importe quelle disposition que vous souhaitez avec ces designs de sols. De la chaîne de production au piège sans issue.
Sprays industriels et emojis
Thématisez votre base, ou simplement insultez vos rivaux, ces sprays et emojis vont assurément faire du bruit.
ARBALÈTE SANS ARC
Ce mois-ci, nous présentons l’Arbalète sans arc, qui est un skin unique pour l’arbalète.
Clairement créée par quelqu’un qui en veut et avec un sérieux mépris pour la santé et la sécurité. Fabriquée à partir de composants récupérés de l’atelier et dotée d’un système de poulie sans arc, cette arbalète promet de donner de la percute.
L’arbalète sans arc peut être achetée en jeu ou auprès de la
Magasin d’objets Rust Steam
Visualiseur de peau
Le visualiseur de peau a bénéficié d’une petite amélioration ce mois-ci. Vous pouvez désormais inspecter les skins dans votre main, directement depuis la boutique ou le menu d’inventaire Steam.
Validation améliorée des coups de serveur
Souvent, vous pouvez toucher des joueurs dans des montgolfières ou des bateaux et vous serez confronté au redouté « projectile invalide ». C’est parce que le serveur a rejeté votre coup.
Ce mois-ci, j’ai étudié l’amélioration de la validation des coups pour les joueurs parentés. La validation des coups prend désormais en compte la position précédente des parents lors de la validation – cela devrait permettre à vos tirs de toucher et offrir une meilleure expérience aux joueurs en général. Cela sera activé dès le départ sur nos serveurs Facepunch. Si tout se passe bien, nous pousserons un correctif pour activer par défaut sur tous les serveurs. Vous pouvez changer ce réglage vous-même en ajustant le convar.
antihack.parenthistory
Discord X Rust - La peluche Wumpus
Nous sommes ravis d’annoncer une collaboration très spéciale, inédite, avec nos amis de Discord. À partir d’aujourd’hui, vous pouvez sortir la mascotte emblématique de Discord, Wumpus, de vos discussions et la rejoindre directement dans votre base ! Dis bonjour à la peluche Wumpus intégrée au jeu.
La peluche Wumpus est une exception unique et est exclusive à la boutique Discord.
Pour les récupérer, il faut les acheter directement via Discord, qui se connecte et débloque l'objet dans l'inventaire de votre compte Steam.
La peluche Wumpus peut être placée n’importe où dans votre base. Mets-les sur ton établi, aligne-en quelques-unes sur ton toit pour embrouiller les pillards, ou garde-les simplement près de ton sac de couchage pour 70 % de confort, et bonne chance avant une grande partie en haute mer. Compagnon déployable : Placement entièrement interactif – rotez, empilez, trouvez l’endroit parfait pour votre nouvel ami et recevez 70 % de confort près de lui. Authenticité Discord : Modélisée avec soin pour intégrer les couleurs et l'esthétique signature de Discord dans l'univers de Rust. 100 % Flex : Montrez aux amis et aux ennemis que vous étiez là pour la toute première collaboration de Rust sur la boutique Discord.
Rendez-vous sur la boutique Rust sur Discord pour obtenir le vôtre !
Améliorations de performance de base
Réécriture du pool
Nous comptons sur un utilitaire interne appelé Pool pour recycler les objets et éviter les allocations – c'est essentiel pour éviter de mettre de la pression sur le ramasse-ordures. Comme c'est vital, il est utilisé partout dans notre base de code.
Il y a quelques mois, j'ai découvert que cela devient un goulot d'étranglement lorsqu'on essaie d'introduire un traitement multithread batch du travail (exemple : envoyer des instantanés d'entités aux joueurs à chaque frame). Pour assurer une sécurité basique contre la course de fils, il est implémenté avec un mutex, et dans les boucles assez chaudes, il peut y avoir beaucoup de tensions sur ce mutex, ralentissant tous les threads de travail.
Après quelques expérimentations avec différentes implémentations, j'ai opté pour un design sans verrou légèrement flou (à soufflet) qui est compétitif avec ConcurrentBag en termes de performance en un seul thread et en threading Producteur unique-Consommateur, mais qui surpasse dans le scénario Multi-Producteur-Consommateur Unique :
FuzzyCB
Comme il est « flou », il a un inconvénient : il ne sait jamais exactement combien d'objets il y a dans la piscine. En conséquence, lorsqu'il y a beaucoup de contention sur la piscine et qu'elle est proche de la capacité, elle peut commencer à déborder des objets de façon sporadique. Le taux de déversement est faible – lors d’un test de recyclage de 32 000 objets provenant de 32 threads, il a été déversé ~0,15 %, soit 48 articles.
Il est maintenant actif dans toute la base de code et je compte dessus dans UsePlayerUpdateJobs 3 pour sauter la préallocation d'objets. Si cela pose problème aux serveurs ou aux clients, vous pouvez revenir à l’implémentation originale du Pool via commande. Une fois que le nouveau pool sera confirmé stable, je supprimerai l'option de secours.
pool.usemutexpool 1
Plus de StringViews
Dans le cadre de l'effort de nettoyage des différentes allocations diverses, j'ai remplacé des parties du système de commandes console pour fonctionner en utilisant , en particulier l'analyse et le stockage des commandes entrantes et de leurs arguments. La plupart de l'interface expose les arguments comme étant des StringViews avec des API de conversion habituelles, mais s'il existe des mods qui font leur propre traitement d'arg sophistiqué via des chaînes, j'ai laissé un appel GetString de compatibilité.
StringView
Bien que changer d'API perturbe les mods serveur, cette réécriture nous a permis de supprimer 60+ allocations/4KB+ lors de l'invocation d'une commande avec 6 arguments, donc cela vaut le coup pour moi de poursuivre. Pour rendre la transition un peu moins pénible, je garde StringView similaire à la fois aux API String et ReadOnlySpan. Au cours des prochains mois, je vais continuer sa propagation et lisser divers problèmes dans sa conception.
SOUS LE CAPOT
Qu’est-ce qu’on gagne sous le capot avec ces améliorations des joueurs ? En nous libérant pour créer un nouveau rig, nous avons réussi à atteindre des proportions plus réalistes. Nous avons également pu choisir une pose de binding plus naturelle, permettant aux illustrations de personnages de sculpter des modèles plus réalistes adaptés à la déformation. Nous avons pu brûler le rig Maya vieux de 12 ans avec du feu et créer un rig de contrôle beaucoup plus robuste et puissant pour l'équipe, qui est aussi à l'épreuve de l'avenir. Le squelette lui-même inclut des os de torsion auxiliaires et des métacarpiens qui, même si nous ne pouvons pas encore en tirer pleinement parti dans Unity, figurent dans la feuille de route comme objectif final. Le tout nouveau rig de contrôle inclut désormais : - ik/fk spine - full body fk/ik/matching et switching - ensembles de sélection personnalisables - bibliothèque de poses - création d'espace - configuration de guide rig pour une régénération et mise à jour faciles - publication de rig - fonctionnalités de référence pour mettre facilement à jour les maillages en cours de processus - communication avec le système HIK de Maya - application de capture de mocap par glisser-déposer Ce rig signifie essentiellement que créer une animation 3p est désormais une expérience plus agréable pour nous, Et nous pouvons produire des résultats de meilleure qualité. Travailler avec ce nouveau rig Maya signifie aussi que la collaboration avec l’équipe de character art (également en Maya) est devenue beaucoup plus symbiotique. Le flux de travail actuel pour les vêtements de personnage consiste à créer un magnifique modèle puis à devoir mutiler et déformer les proportions pour les adapter au modèle existant. Cette étape sera enfin supprimée et les vêtements pourront être vus tels qu'ils étaient destinés dans toute leur splendeur. Tous les assets vestimentaires peuvent désormais être chargés directement dans Maya, avec des fonctions d’outil de recherche et une exportation facile afin que le personnage et les équipes puissent travailler directement sur les mêmes fichiers sources. Beaucoup d'armes étaient configurées avec des décalages Unity un peu bricolés à une époque où nous n'avions pas d'os d'accessoire auquel nous accrocher. Nous avons maintenant profité de cette occasion pour fixer toutes les armes directement à un os d'accessoire et retirer ces décalages. Cela reste en grande partie inchangé. Nous avons vu dans des jeux récents qui ont tenté des mises à jour similaires où, en fin de compte, dans un jeu comme Rust, on exige un temps de réponse instantané, pas des transitions soyeuses entre chaque action. En tant qu’animateur, c’est un plaisir à voir... En général, la base de joueurs sur ces autres titres a vu ces ajouts comme une gêne et a été mal reçue. Vous serez heureux d'apprendre que la mise à jour du joueur est aussi rapide et réactive que la version actuelle, donc si vous vous faites quand même tuer, c'est entièrement votre responsabilité. Nous espérons ajouter des touches plus agréables à l'avenir (une de ces fonctionnalités est expliquée dans la section sous-système de Jarryd), mais tout changement sera mesuré en tenant compte de l'expérience globale des joueurs actuels avec Rust. Ils seront aussi introduits de manière organique, et non lors d’une grande mise à jour qui choque le système.
Rig d’animation
Animation
Animation x illustration des personnages
Animation
Mises à jour des entités
Logique d’animation
NEw navmesh
Ce mois-ci, nous faisons notre premier pas vers le remplacement du navmesh d’Unity par le nôtre. Les administrateurs peuvent activer le nouveau navmesh en utilisant « -useNewNavmesh » comme argument de départ au démarrage du serveur, il sera désactivé par défaut pour l’instant. Vous pouvez alors visualiser le navmesh avec « rustNav.draw ». Cela ouvre beaucoup d’opportunités pour améliorer les performances des PNJ et corriger des bugs de longue date. Voici ce à quoi les joueurs peuvent s’attendre à l’avenir :
• Les animaux et les scientifiques pourront entrer et se déplacer dans les bases de joueurs. Pour l’instant, ils ne peuvent entrer dans une base simple sans porte que lorsque le nouveau navmesh est activé. Cela fait partie des bases pour l’élevage de moutons, vaches, chiens.
• La mort de nouveaux animaux de façon aléatoire se produit moins (cela s’explique par l’absence de chemin de l’unité sur un terrain convexe ou concave).
• Nous pourrons mettre à jour l’IA scientifique sur la cargaison et l’excavatrice (ce qui n’était pas possible auparavant car nous avions besoin d’un navmesh mobile).
• Les nouveaux scientifiques auront un contournement meilleur et moins cher (grâce à un coût personnalisé A* qui décourage les chemins directs).
Côté performance :
• Le Navmesh est construit en arrière-plan après le démarrage du serveur, mais lors des redémarrages, il est chargé instantanément depuis le disque.
• Les obstacles comme les fondations des joueurs sont gérés sur d’autres threads + budgetés, et n’affectent pas le framerate (la façon dont Unity gère les obstacles a une surcharge de performance constante importante).
• Nous limitons le temps maximal qu’une seule requête de pathfinding peut prendre, afin qu’un seul PNJ ne puisse pas créer un pic de latence avec une requête de chemin longue.
• Lors de la recherche de couverture ou d’aperçus, les nouveaux scientifiques pourront rapidement écarter des positions inaccessibles sans avoir besoin de requêtes coûteuses de pathfinding.
Unity, ainsi que beaucoup d’autres moteurs de jeu comme Unreal ou Godot, utilisent en interne une bibliothèque de pathfinding tierce appelée Recast.
Nous utilisons toujours la même bibliothèque, la différence est que nous avons désormais un contrôle total dessus, et nous ne sommes plus limités par l’intégration boîte noire d’Unity.
Accès premium
Nous renommons Premium en Premium Access Pass.
Il s’agit simplement d’un rebranding, il n’y a aucun changement fonctionnel. Si la valeur de votre inventaire Steam est de 15 $ ou plus, vous continuerez à avoir accès aux serveurs Premium Access exactement comme avant.
Ce changement fait partie de quelques bases à plus long terme pour les futurs plans de monétisation (BOO). Nous n'avons pas l'intention de changer le fonctionnement du premium, comme nous l'avons déjà évoqué dans des blogs précédents, il fait un travail correct pour bloquer les tricheurs. Nous encourageons vivement les joueurs à utiliser des serveurs premium.
Le nom Rust Premium sera relancé pour un nouveau système de monétisation que nous envisageons de mettre en place à la fin de cette année. Ce n'est ni un battle pass, ni un système VIP, mais plutôt un opt-in mensuel pour des skins/atouts supplémentaires. Nous finalisons les détails exacts du fonctionnement de ce système. Nous partagerons les détails avant le lancement pour que vous puissiez nous dire à quel point c'est grave, en vous regardant, Reddit.
Nouveau Skin Workshop : Tourelle Automatique
Le skinnable de l’atelier de ce mois-ci est la tourelle automatique. Compagnon constant de nombreuses bases Rust, ce petit est prêt à recevoir un peu d’amour de la communauté du skinning. Assurez-vous simplement qu’il n’est pas hostile lors de la peinture du côté business.
Pour créer votre propre skin Auto Turret, rendez-vous dans l’atelier en jeu et trouvez l’objet déployable Auto Turret. À partir de là, vous pouvez télécharger le fichier du modèle et ajouter vos propres documents.
Nous commencerons à accepter les soumissions de la communauté à partir du 11 juin.
coup d’envoi 2 - DROPS !
Ce mois de juin, Kick ramène son vert unique dans le plus grand jeu de survie sur Steam en accueillant Kick Off 2. Et les joueurs peuvent gagner jusqu’à 10 exclusivités capitaine/co-capitaine, une porte de garage, un skin de casier, ainsi qu’un fond d’écran unique Kick Wallpaper, rien qu’en regardant cet événement PvP riche en action !
Les drops sur Kick sont de retour !
11 juin - 21 juin,
Début de l'événement/diffusion/Drops : 11 juin 16h EDT / 21h BST / 20h UTC Kick skin exclusif : 11-14 juin (15 UTC) Fin des Drops : 21 juin 19h EDT / minuit BST / 23h UTCAs habituelles, n'oubliez pas de synchroniser vos comptes ici - https://kick.facepunch.com/And retrouvez une autre compétition PvP chaotique tout en mettant la main sur ces Drops uniques !
Veilleuse de la chaudière Youtooz
Nous avons lancé une Furnace Night Light avec des partenaires de longue date dans le merchandising, Youtooz !
La nouvelle veilleuse Furnace mesure 1,5 cm de haut et est parfaite pour être posée sur votre table de chevet, votre bureau ou partout où il a besoin d’un peu plus de lumière !
Il faut 2 piles AAA, puis d’un simple interrupteur, vous êtes prêt à la voir s’illuminer d’une lueur spectaculaire qui vous gardera au chaud pendant que vous sentez toute la nuit ! Vous pouvez en savoir plus et précommander le vôtre.
Tiens