Remove Font Family Feature (or improve it) #37923

Closed
opened 2013-12-23 01:56:23 +01:00 by Campbell Barton · 26 comments

3D Text has a font family feature which has existed since blender was open sourced.

I think this is a fairly obscure feature, to figure how to use It I ended up having to check the source code, I'll attach an example file.

While checking the code I noticed some limitations which IMHO should be fixed, unless the feature gets removed.

Limitations:

  • No unicode support (only ascii characters).
  • Max name length was never updated (still 23 chars).
  • Tooltip is wrong (suggests 'family_a' whereas 'familya' is needed).
  • Recursive dupli's dont work.
  • Character rotation isnt supported.
  • Object rotation is ignored (maybe this is best? - but this isn't how dupli-verts work elsewhere).
3D Text has a font family feature which has existed since blender was open sourced. I think this is a fairly obscure feature, to figure how to use It I ended up having to check the source code, I'll attach an example file. While checking the code I noticed some limitations which IMHO should be fixed, unless the feature gets removed. Limitations: - No unicode support (only ascii characters). - Max name length was never updated (still 23 chars). - Tooltip is wrong (suggests 'family_a' whereas 'familya' is needed). - Recursive dupli's dont work. - Character rotation isnt supported. - Object rotation is ignored (maybe this is best? - but this isn't how dupli-verts work elsewhere).
Author
Owner

Changed status to: 'Open'

Changed status to: 'Open'
Campbell Barton self-assigned this 2013-12-23 01:56:23 +01:00
Author
Owner

Added subscriber: @ideasman42

Added subscriber: @ideasman42

Added subscriber: @TerryWallwork-1

Added subscriber: @TerryWallwork-1

Font family feature is used a fair bit, (I recently saw someone post videos on using it).

So this should really be fix it and don't remove it :)

Font family feature is used a fair bit, (I recently saw someone post videos on using it). So this should really be fix it and don't remove it :)

Added subscriber: @JohnNyquist

Added subscriber: @JohnNyquist

Campell,
Even with the limitation of ASCII only, this is a great feature! The ASCII only is not a big problem when working with small character sets because the whole point of the feature is to substitute an object for a character. Not only is this feature good for typography but also for design to easily create and edit patterns of objects in Blender. Coincidentally, I released a video yesterday showing the object font feature:
http://www.youtube.com/watch?v=ZmOHNUr7FBc
Regards,
John R. Nyquist

Campell, Even with the limitation of ASCII only, this is a great feature! The ASCII only is not a big problem when working with small character sets because the whole point of the feature is to substitute an object for a character. Not only is this feature good for typography but also for design to easily create and edit patterns of objects in Blender. Coincidentally, I released a video yesterday showing the object font feature: http://www.youtube.com/watch?v=ZmOHNUr7FBc Regards, John R. Nyquist

Added subscriber: @brecht

Added subscriber: @brecht

In my opinion this should not be a core Blender feature. If someone wants to make an addon for that kind of thing I can see it, but this is probably some hack that was needed for a particular project and that was never removed.

I can see the tutorial but no evidence that someone used this in an actual project?

In my opinion this should not be a core Blender feature. If someone wants to make an addon for that kind of thing I can see it, but this is probably some hack that was needed for a particular project and that was never removed. I can see the tutorial but no evidence that someone used this in an actual project?

The tutorial example was not intended to as an argument for or against it being a core feature or an addon. Campbell said in his note that he had to refer to source to figure out its functionality, I happened to have released the video yesterday demonstrating its usage (we recorded it last week, totally coincidental that Campbell posted this yesterday unless he was looking into it because someone saw my video and had questions), I thought that might be helpful for him to see it.

Blender has many obscure features, but lack of visibility does not mean it is not a useful feature. Graphic designers and illustrators often use patterns as well as custom fonts when doing design, that's why I thought this would be a good topic for a tutorial. Blender's feature makes creating a font or pattern amazingly easy! The beginning of the tutorial shows the word "blender" with custom characters, while that could be made many different ways, it was very easy (and cool) to do using the object font feature in conjunction with the typographic tools. I've used Photoshop and Adobe Illustrator since version 1.0 and you can't do anything like this so easily. Ton has often said that Blender is made for artists, typography tools are very useful to commercial artists. You might want to put a call out to the community before you axe a useful feature reducing Blender's functionality that it's had for years. You may then get the evidence you desire or perhaps it'll inspire the creation of some! :-)

The tutorial example was not intended to as an argument for or against it being a core feature or an addon. Campbell said in his note that he had to refer to source to figure out its functionality, I happened to have released the video yesterday demonstrating its usage (we recorded it last week, totally coincidental that Campbell posted this yesterday unless he was looking into it because someone saw my video and had questions), I thought that might be helpful for him to see it. Blender has many obscure features, but lack of visibility does not mean it is not a useful feature. Graphic designers and illustrators often use patterns as well as custom fonts when doing design, that's why I thought this would be a good topic for a tutorial. Blender's feature makes creating a font or pattern amazingly easy! The beginning of the tutorial shows the word "blender" with custom characters, while that could be made many different ways, it was very easy (and cool) to do using the object font feature in conjunction with the typographic tools. I've used Photoshop and Adobe Illustrator since version 1.0 and you can't do anything like this so easily. Ton has often said that Blender is made for artists, typography tools are very useful to commercial artists. You might want to put a call out to the community before you axe a useful feature reducing Blender's functionality that it's had for years. You may then get the evidence you desire or perhaps it'll inspire the creation of some! :-)

Every feature is useful in some scenario for some artists, but we also shouldn't allow any feature because it is useful in some rare scenario. There's also a cost in code and UI bloat and maintenance.

I think that if you actually tried to use this for typography, you would find out that the lack of control over kerning is going to make the result look bad, and that you would end up using linked objects to get it right anyway.

Every feature is useful in some scenario for some artists, but we also shouldn't allow any feature because it is useful in some rare scenario. There's also a cost in code and UI bloat and maintenance. I think that if you actually tried to use this for typography, you would find out that the lack of control over kerning is going to make the result look bad, and that you would end up using linked objects to get it right anyway.

I agree, nobody wants bloat, I was not making an argument for a core feature. It'd be fine if it was migrated to an addon. I'm not sure what's involved with that.

Regarding typography, Blender's type controls are problem when it comes to kerning of any fonts, not just object fonts.

I agree, nobody wants bloat, I was not making an argument for a core feature. It'd be fine if it was migrated to an addon. I'm not sure what's involved with that. Regarding typography, Blender's type controls are problem when it comes to kerning of any fonts, not just object fonts.

I would echo what Mr Nyquist said, if you are planning to more it from internal code to a Blender Addon that would be awesome.

I would echo what Mr Nyquist said, if you are planning to more it from internal code to a Blender Addon that would be awesome.

I was suggesting to simply remove the functionality, if someone wants to create an addon that's fine, but for me it's not a requirement before removing this.

Regarding the kerning thing, yes the kerning for the text object itself is bad, but solving that would not solve the problem that you would get poor kerning with the custom characters that you design. In fact it would likely make it worse, it's no so much a kerning problem, the characters can also overlap. They are placed based on the character width of the font used in the text object, not the new ones. The only way to solve that is to make the system considerably more complicated, and that seems like a bad idea.

Anyway, we can get more feedback on who uses this feature, but so far I'm not convinced that it's useful in practice.

I was suggesting to simply remove the functionality, if someone wants to create an addon that's fine, but for me it's not a requirement before removing this. Regarding the kerning thing, yes the kerning for the text object itself is bad, but solving that would not solve the problem that you would get poor kerning with the custom characters that you design. In fact it would likely make it worse, it's no so much a kerning problem, the characters can also overlap. They are placed based on the character width of the font used in the text object, not the new ones. The only way to solve that is to make the system considerably more complicated, and that seems like a bad idea. Anyway, we can get more feedback on who uses this feature, but so far I'm not convinced that it's useful in practice.

I'm not sure why one would remove a longstanding useful feature without replacing it, is it the underlying code problematic, preventing Blender to grow in a particular area?

Regarding the kerning, it depends on whether you are talking about kerning tables or individual manual kerning. Designers are usually taught the 80/20 rule with type, spending 80 percent of their time on 20 percent of the type, which translates to spending time manual kerning headlines (for example). Most of the illustrative/design work that I've done over the years involved manual kerning. But Blender does not give you that option, I end up having to break up the text object eventually in order to kern, that's what I was referring to.

I'm not sure why one would remove a longstanding useful feature without replacing it, is it the underlying code problematic, preventing Blender to grow in a particular area? Regarding the kerning, it depends on whether you are talking about kerning tables or individual manual kerning. Designers are usually taught the 80/20 rule with type, spending 80 percent of their time on 20 percent of the type, which translates to spending time manual kerning headlines (for example). Most of the illustrative/design work that I've done over the years involved manual kerning. But Blender does not give you that option, I end up having to break up the text object eventually in order to kern, that's what I was referring to.

Added subscriber: @billrey

Added subscriber: @billrey

Removing this is fine I think.

This is an example of a specialized tool that is perfect for an addon, but should not litter the core Blender feature set. Better to spend resources elsewhere.

Removing this is fine I think. This is an example of a specialized tool that is perfect for an addon, but should not litter the core Blender feature set. Better to spend resources elsewhere.
Author
Owner

Regarding this feature being made to this being an addon, to do this we would need to extend the API to provide access to each characters location.

Basically you wouldn't easily make an addon for this right now.
If the functionality is useful, it doesn't hurt so much to keep it, and even adding unicode support isn't a big deal.

I was just under the impression nobody used. especially after noticing limitations & incorrect tip.

@JohnNyquist - a real coincidence you made a video about this just recently :)

Regarding this feature being made to this being an addon, to do this we would need to extend the API to provide access to each characters location. Basically you wouldn't easily make an addon for this right now. If the functionality is useful, it doesn't hurt so much to keep it, and even adding unicode support isn't a big deal. I was just under the impression nobody used. especially after noticing limitations & incorrect tip. @JohnNyquist - a real coincidence you made a video about this just recently :)

That sounds great Campbell! The functionality is useful and it appears all agree that it would be logical to migrate to an addon at some point. It makes sense to keep the functionality in Blender until the APIs are extended to provide a way to allow the creation of an addon.

Adding character location to the APIs may open up the possibility of improving other typographic functionality (like adding kerning) in addons.

Yes, it was a pretty cool coincidence the timing! Perhaps we could collaborate on the addon when the time comes.

Merry Christmas all!

That sounds great Campbell! The functionality is useful and it appears all agree that it would be logical to migrate to an addon at some point. It makes sense to keep the functionality in Blender until the APIs are extended to provide a way to allow the creation of an addon. Adding character location to the APIs may open up the possibility of improving other typographic functionality (like adding kerning) in addons. Yes, it was a pretty cool coincidence the timing! Perhaps we could collaborate on the addon when the time comes. Merry Christmas all!

Added subscriber: @lowercase

Added subscriber: @lowercase

I think kerning works fine, you place cursor between characters and use Alt + Left / Right arrows... like in PS
but being able to animate characters using python would be a VERY nice feature to have

I think kerning works fine, you place cursor between characters and use Alt + Left / Right arrows... like in PS but being able to animate characters using python would be a VERY nice feature to have

Cool! I didn't know that @lowercase (or I forgot since it appears to be there in 2.49b as well), is there a place in the UI where you could see the amount of kerning? I'm sorry, we're deviating from the topic a little. Feel free to email me if you want to take it offline: blender@nyquist.net

Cool! I didn't know that @lowercase (or I forgot since it appears to be there in 2.49b as well), is there a place in the UI where you could see the amount of kerning? I'm sorry, we're deviating from the topic a little. Feel free to email me if you want to take it offline: blender@nyquist.net

I would still remove this if it was my call, but if Campbell likes to keep it that's fine with me.

I would still remove this if it was my call, but if Campbell likes to keep it that's fine with me.
Member

Added subscriber: @jta

Added subscriber: @jta
Member

I vote keep it. I work a lot with fonts and text and have spoken with others from time to time that do also. I have an interest in eventually coding in 3D text/font area and already have some notes on improvements to things like kerning and leading. I will make note of this issue also. I am also in contact with Elubie on my font preview project and some font family grouping for the File/Asset Browser. It is closer to the bottom of my list than the top but on my list none the less. ; )

I vote keep it. I work a lot with fonts and text and have spoken with others from time to time that do also. I have an interest in eventually coding in 3D text/font area and already have some notes on improvements to things like kerning and leading. I will make note of this issue also. I am also in contact with Elubie on my font preview project and some font family grouping for the File/Asset Browser. It is closer to the bottom of my list than the top but on my list none the less. ; )
Author
Owner

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Author
Owner

Talked with Ton about this and he prefers to leave it in for now.
So I went ahead and made some fixes to the obvious problems.

  • Increase family name length since objects named are longer then they were before.
  • Unicode support.
  • Rotation for text on path (not a bug, but good to support).
  • Corrected tooltip.

The way it places objects at the bottom left of the character is still odd IMHO.

closing task.

Talked with Ton about this and he prefers to leave it in for now. So I went ahead and made some fixes to the obvious problems. - Increase family name length since objects named are longer then they were before. - Unicode support. - Rotation for text on path (not a bug, but good to support). - Corrected tooltip. The way it places objects at the bottom left of the character is still odd IMHO. closing task.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
7 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#37923
No description provided.