Font Selector - Blender 2.8 Font Management

Hi guys, the new version of Font Selector is available and stable !

As a lot of previous thread messages are no longer relevant, here is the new one !

the Gumroad page

the Github page

Here’s a quick video overview of the version 2.0

And a serie of Gif to show you the addon features :

3D Text

Text Strip

Background refresh of Font list

Startup automatic refresh if Fonts changed

Startup Warning if Fonts changed

Check for changes in Font Folders

Custom Font Folder external storage

Searching and Filtering

Missing Font warning

Relinking of missing Font

New UI

Changelog

version 2

  • Blender 2.8x support
  • Multi File Addon
  • Complete rewrote of the external file system, now works in json, more reliable and fast
  • Startup Check behavior, automatic update of the Font List if changes occur in the Font Folders
  • Refreshing List is now a modal operator, doesn’t freeze Blender UI anymore
  • Open GL Progress Bar to track the progress of the Refreshing of Font List
  • Change Font supports several text objects selected
  • Fake User Font Button, kind of per project favorite with advantage of regular fake user (keep data block in Blend File)
  • Export Fonts additional options (zip or folder, fake user fonts, favorites fonts, or both)
  • Support for Font Changing of Text Strips in the Video Sequence Editor
  • Relink of Font if Font List has changed
  • Missing Font alert if Font no longer exists in Font List, possibility to open the Font Folder of the Font datablock if there is any

A lot of improvements here and there, i hope this could be useful for some ! Feel free to criticize and give some feedback !

Cheers !

14 Likes

continuing from our little discussion on youtube…

I get what you mean with the preview and life environment and so on. Still it is a lot of clicking and trial and error. Would it be possible to have some up and down arrow buttons above the font selection window and use that to scroll through the font while also selecting the next (or previous) font and previewing it in the viewport?

About the position of the font selection window, too bad it can’t be placed higher up. I sometimes just tend to forget about things buried further down in the options panels, for example when I can select the font before that already. But yes, people can move it there themselves, but some might not even know that, maybe mention the option to move in your videos :wink:

I have no idea if it impacted performance as I just tested the addon on a new file. I will report back if performance issues appear and disappear when I disable the addon. But mostly the performance issues come from too much geometry and not fonts.

2 Likes

Oh wow! This looks fantastic! Just like any graphics app. Wonderfull.

1 Like

Just for people to get the discussion :slight_smile:

Toxic Tuba
this is a nice effort. I’d appreciate it even more if you somehow manage to preview the fonts, for example writing the name of the font in the font itself. Or writing that jumpy fox sentence in that font somewhere, maybe in the tooltips? I won’t mind when this needs what normally would be 2 lines in the font selection window, but I’d love to have a preview I can actually see. At the moment the internal blender font preview is one or two more clicks than with this addon, but then you can use big preview and see it all and it works and is again a better preview than with this addon (which has no preview at all). I’d move the “font-selection” option above the “custom properties” by default (it is possible to customly do this) just to make scrolling the font-object-date panel with the mousewheel easier and to make it easier to expand the size of that font list window. Actually a bigger font selection window from start up would be nice. I have a lot of fonts in my fonts folder! And after thinking about it, I’d move the “font-selection” ABOVE the normal “Font” option, as you install the addon exactly to do replace and better the functionality of this. Also to not clog up blend files and system memory it would be cool when the addon could be active in prefs but still blender doesn’t load any font at all unless you are actually adding a font object.There the check for new fonts or refresh would be even better. my 2cents. Keep it up :slight_smile:

samy tichadou
Hi thanks for the feedbacks ! About the font preview, as far as i know, there is no simple way to do it in python. a solution would be to have a thumbnail generated for each font and viewable as a still image in the font selection panel (as asset managers addons does, with thumbnail preview). The downside of this method are the use of external cli utility like image magic to generate 2d thumbnails, so extra setup, and the longer processing time to refresh fonts. And the Blender UI for thes thumbnails displaying is not the fastest out there, so i’m not sure it would be this useful in the end. I tried to wrap my head around this problem, but this solution seems a little overkill to me (at least for my use), i prefer as a user have a way to quickly preview my fonts in real situation (3d viewport) than seeing them used in a dummy sentence disconnected to my environment/world/motion graphics. But you’re not the only one asking for that, and it’s on my suggestion list, i’ll see if i have some extra time how to make this the better possible way ! Yeah i totally get what you’re saying about the panel default position, unfortunately, i didn’t find any way to do this through python, but any user can position it manually, and save his startup file with it in right place ! And about the memory usage, did you experience any trouble ? the loading of font list is a simple read and get of json file, it shouldn’t impact at all the way blender start, and the memory used to store fonts is quite small. I could make blender look for loaded (or not) list of font every time you have a font as active object or selected, but i find this more clunky and i would have to check every scene change to do it. A simple list of path loaded on every startup seems more fluent to me. But if you have any issue with it tell me ! I could be wrong about that ! Thanks again for feedbacks ! if you want to discuss this more, it could be better to do it on BA page : https://blenderartists.org/t/font-selector-blender-2-8-font-management I think it’s a better place to gather opinions and have more person reacting to a statement :slight_smile: cheers !

Yeah i could quite easily add these up and down buttons ! for now, i use up and down arrow on keyboard with mouse hovering the font panel, it works quite ok for me, but being able to do it with mouse only without clicking could be useful !

I also thought about a simple modal operator which would change font every n seconds to show the user several possibility, “Esc” to cancel, “Enter” to validate font change, do you think it could be useful in your use case ?

About the position, yep you’re right, i should give hint about this in the videos or wiki at least, i’ll do it, thanks ! and saving startup file with placed panel allows to make it the default position in new blend file (just in case you didn’t notice it :wink: )
And for your previous suggestion about size of the font panel, i can add a preference to let user choose the default size of it (like in version 1.25) !

About performances : Yep, and the addon doesn’t load all fonts at all (this would be a waste of memory), it just load their file paths in blender memory, so when you click on one, it is loaded on the fly, then replaced by the next one you click ! That’s a way to prevent to much memory for a simple thing like fonts !

Cheers !

Thanks a lot for the kind words ! yep that was the purpose of it ! only disadvantage compared to regular graphic app is to have to set manually the font folder (C://Windows/Fonts … ) but it also allows to use fonts which are not installed on the OS !
Cheers !

Is there a way to change the orientation of the type. As in instead of writing horizontally left-to-right, it goes top-to-bottom or am I just going to have to press enter after each key press?

I am getting an error when refreshing:

Traceback (most recent call last):
File “C:\Users\username\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\FontSelector_blender_addon-master\operators\modal_refresh.py”, line 184, in modal
self.json_font_list.append([datafont.name, path, subdir])
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xf3 in position 5: invalid continuation byte

location: :-1

Hi, i’m at work, can’t take a look right now, but just to get extra informations :

  • are you on windows 10 ?
  • which blender version are you using ?
  • have you updated font list before with the addon ? or is it the first time you use it ?
  • any extra precision you can give me ? :slight_smile:

cheers !

I am using Win10 and Blender Beta. I think its the first time I do it with the 2.8 not sure but I could delete any files created before if you point me to the right path. The refreshing stops midway so it might be caused by a certain font?

1 Like

sorry for the inconvenience, i don’t think it’s a specific font problem, maybe more a reading of external json files with this king of error message.
Yeah for sure, you can go into the addon preferences, copy/paste the path to your external files folder into a windows explorer and delete all files in it.
Then restart Blender, and try to refresh again (it should be automatic unless you set a specific behavior in addon prefs)
Tell me if it worked ! :slight_smile:

Preference folder is empty. I did try restarting Blender before but it always stops at the same refreshing point.

If I add one of the folders inside the fonts folder I get this error instead. It finishes this time and I can see fonts nonetheless and the json file is created in the preferences path. But the font style won’t change at first but it works after I restart Blender.

Traceback (most recent call last):
File “C:\Users\Username\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\FontSelector_blender_addon-master\operators\modal_refresh.py”, line 169, in modal
path, subdir, name = self.font_list[count]
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “C:\Users\Username\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\FontSelector_blender_addon-master\operators\modal_refresh.py”, line 206, in modal
self.finish(context)
File “C:\Users\Username\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\FontSelector_blender_addon-master\operators\modal_refresh.py”, line 288, in finish
change_list_update()
File “C:\Users\Username\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\FontSelector_blender_addon-master\functions\change_list_update.py”, line 17, in change_list_update
avoid_list = avoid_changes_selected()
File “C:\Users\Username\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\FontSelector_blender_addon-master\functions\misc_functions.py”, line 107, in avoid_changes_selected
seq = scn.sequence_editor.sequences_all
AttributeError: ‘NoneType’ object has no attribute ‘sequences_all’

location: :-1

ok can you try to do a dummy font folder (on your desktop for example) with a bunch of font and set it as only font folder in the addon prefs ?

Same error. So when the error displays the json file is created and the fonts only work once I’ve restarted. Actually the json file points to the previews folder and not the desktop one. Let me try again.

Now even removing the folder path from the preferences it always points to the same older folder that worked so I cannot select any other folder as it reverts back even removing and not just changing the folder.

I just uninstalled the Addon and reinstalled and it let me set another folder from the desktop which caused the exact same error.

ok that seems to be a bug, can you report it on github with the hash of the blender version, i’ll try to reproduce it as soon as i can !
sorry for the inconvenience man !

Will do. Its ok man I really appreciate you replied so quickly and that you will look into it.


you’re welcome ! thanks for trying the addon ! :slight_smile:

I just did let me know if that’s ok or you need anything else there.