A downloadable asset pack

Download NowName your own price

🇬🇧 A Blender's Geonodes setup that creates customizable displays of number in a seven-segment display style. You can refine design of the segments, though editing the shapes is not available as is and will require you to edit the Geonodes setup. You can edit the number of digits to display, their separator and the format (date/time, etc). You can feed two materials for the digits, one when they are on, the other when they are off. You can animate the value displayed, see below for the exact procedure to synchronize it with the framerate.

This is the intended way of using it :

  • (Append the Geonodes to your file : go to File/Append/ and navigate to the files you downloaded here. Open it, and in the file internals, open the "NodeTree" folder. There, select the LEF_Digits_Complex node tree and hit Append.)
  • Add any mesh to your scene, like a plane, and rotate as if the digits were written on it.
  • In the modifier tab, add the Geometry Nodes modifier. From the dropdown menu, select LEF_Digits_Complex option.
  • Add materials : at the bottom of the Geonodes menu, add a different material to ON Mat and OFF Mat. They can be temporary but are needed to see what you are doing. You might want to switch the Viewport Shading to Material Preview.
  • Add the Number of Islands : how many groups of digits will there be ? (Minutes and seconds are 2 groups, Day/Month/Year are 3 groups)
  • Add the Size of Islands : how many digits will there be in each group ? You have to enter it for each 'Island', assuming that there won't be more than 9 per group. You can just concatenate the numbers one after the other, they will be treated as a serie of single-digit values inside Geonodes. (For Minutes/Seconds it would be 22, for DD/MM/YYYY it would be 224)
  • Set the size of your number : I advise that width should be around half the height. For easier manipulation I recommend to set the number here arbitrarily (like 1 meter width and 0.5m width), and deal with the real size after by scaling the digits up or down).
  • Set the margin and offset : margin should be just below 1, offset just below 0.
  • Set the value of the digits. You can use Value 1, 2 and 3 or in case you need more, store them all in All-value (just like Size of Islands, in a single number that will be divided in multiple values based on the Size of Islands).

To animate the values according to real time, you can use drivers. It is sadly not as easy as #frame/24, so here are the custom formulas I ended up with to avoid bad frames and desynchronization between minutes and seconds :

Minutes
T + (frame - X) / X / 60 

with T as the number of minutes to start from and X the framerate. For ten minutes at 24 fps, it would give :

10 + (frame - 24)/24/60
Seconds
floor((frame - Y)/X%60)

with X the framerate and Y the framerate + 1. At 24 fps, it would give :

floor((frame - 25)/24%60)

To make them start on another second than 00, add ' + (T * X)' after the 'frame' key word on both drivers, with T being the number of seconds to start from and X being the framerate. Also add 1 to the number of minutes.

To make them a countdown, replace the first '+' sign in the minutes driver by a '-', and add '59 - ' in front of the seconds driver. Also, if you want to make it start on another second than 00 like above, T is now 60 - the number of seconds to start from.

Feel free to ask any question !

🇫🇷 Un système de Geonodes dans Blender, qui permet de créer des affichages de chiffres au format sept-segments. Vous pouvez peaufiner l'aspect des segments, même si modifier les formes en elle-même n'est pas possible en l'état, il faut alors modifier depuis les Geometry Nodes. Vous pouvez personnaliser le nombre de chiffres à afficher, leur séparateur et leur format (date/temps). Vous pouvez indiquer deux matériaux, l'un pour les segments allumés, l'autre pour les segments éteints. Vous pouvez animer les valeurs affichées, voir plus bas pour la méthode à appliquer pour synchroniser la valeur au framerate.

Voici la marche à suivre pour utiliser cet outil :

  • (Importez les Geonodes dans votre fichier : File/Append/ et allez jusqu'au fichier que vous avez téléchargé sur cette page. Ouvrez le, et dans l'arborescence ouvrez le dossier "NodeTree". Sélectionnez le Nodetree LEF_Digits_Complex et cliquez sur Append.)
  • Ajoutez n'importe quel mesh de base à votre scène, comme un Plane, et tournez le de manière à ce qu'il vous fasse face, comme si les chiffres allaient être écrits dessus.
  • Dans l'onglet des Modifiers, ajoutez un Modifier Geometry Nodes. Dans le menu déroulant, sélectionnez LEF_Digits_Complex.
  • Ajoutez des matériaux : en bas du Modifier, ajoutez des matériaux différents pour ON Mat et OFF Mat. Ca peut être des matériaux temporaires, mais il faut en avoir pour voir ce qui se passe. Passez dans le mode de vue Material Preview dans le Viewport Shading (en haut à droite).
  • Entrez le nombre de groupes dans Number of Islands : combien de groupes de chiffres y aura-t-il ? (Pour des minutes et des secondes, ce serait deux groupes, pour des Jour/Mois/Année ce serait 3 groupes )
  • Entrez la taille des groupes dans Size of Islands : combien de chiffre y aura-t-il dans chaque groupe ? Vous devez le préciser pour chaque 'Island' (groupe), en supposant qu'il n'y aura pas plus de 9 chiffres par groupe. Vous pouvez simplement concaténer les chiffres les uns après les autres, le nombre qu'ils formeront sera ensuite traité comme une série de plusieurs chiffres dans les Geonodes. (Pour des Min/Sec, ce sera 22, pour des JJ/MM/AAAA ce sera 224).
  • Entrez la taille de vos chiffres : je conseille de donner une largeur à peu près deux fois plus petite que la hauteur. Pour des manipulations facilitées, je recommande de donner des valeurs arbitraires ici (comme 1 mètre de haut et 0.5 mètre de large), et d'ajuster la véritable taille ensuite, en utilisant la Scale de l'objet.
  • Entrez la marge (margin) et le décalage (offset) : la marge devrait être un peu en dessous de 1, le décalage un peu au-dessus de 0.
  • Entrez la valeur des chiffres. Vous pouvez utiliser les cases Value 1, 2 et 3, ou si vous avez besoin de plus de valeur, les stocker toutes dans All-value (comme la taille des groupes de Size of Islands, tout dans un seul nombre qui sera ensuite réparti en plusieurs valeurs selon les tailles indiquées dans Size of Islands).

Pour animer les valeurs en fonction du temps qui passe, on peut utiliser des drivers. Ce n'est malheureusement pas aussi simple que #frame/24, voici donc les formules auxquelles je suis parvenu en cherchant à éviter les sautes de frame et les désyncrhonisations entre minutes et secondes :

Minutes
T + (frame - X) / X / 60 

avec T le nombre de minutes où commencer, et X le framerate. Pour commencer à 10 minutes à 24 fps, cela donnerait :

10 + (frame - 24)/24/60
Seconds
floor((frame - Y)/X%60) 

avec X le framerate et Y le framerate +1. A 24 fps, cela donnerait :

floor((frame - 25)/24%60)

Pour faire démarrer le compte sur une autre seconde que 00, vous pouvez ajouter ( + (T * X)' après le mot 'frame' dans les deux drivers, avec T le nombres de secondes desquelles commencer, et X le framerate. Ajoutez aussi 1 au nombres de minutes auxquelles commencer, sans quoi ça commencerait à celle d'avant.

Pour faire un décompte, remplace le premier signe '+' dans le driver des minutes par un '-', et ajouter '59 - ' devant toute l'expression du driver des secondes. De plus, si vous voulez faire partir le décompte sur une autre seconde que 00 comme au-dessus, considérez que T vaut désormais 60 - le nombre de secondes desquelles commencer.

Si vous avez des questions ou des requêtes, n'hésitez pas !

Specs / Détails

🇬🇧 Made with Blender 4.2. (Should work with Blender 4.0 and above)

File format : .blend.

🇫🇷 Créé avec Blender 4.2. (Devrait fonctionner à partir de la version 4.0 de Blender)

Format des fichiers : .blend.

CREDITS / LICENSE

🇬🇧 Consider this project under CC0 License, so free to use for any project, personal or commercial.

You can credit me as Licorne En Fer or LEF, and/or support me, but neither of those are mandatory.

Don't hesitate to share the creations where you used this tool !

🇫🇷 Vous pouvez considérer ce modèle sous license CC0, et donc libre d'usage dans n'importe quel projet, commercial ou non.

Si vous le souhaitez, vous pouvez me créditer en tant que Licorne En Fer ou LEF, et/ou me soutenir, mais ni l'un ni l'autre ne sont obligatoires.

N'hésitez pas à partager les créations dans lesquelles vous utilisez cet outil !

Download

Download NowName your own price

Click download now to get access to the following files:

LEF_Decompte.zip 271 kB

Leave a comment

Log in with itch.io to leave a comment.