coz-m / MPLUS_FONTS

M+ FONTS
https://mplusfonts.github.io
SIL Open Font License 1.1
885 stars 62 forks source link

Adding merged Kanji file #1

Closed aaronbell closed 3 years ago

aaronbell commented 3 years ago

I have merged in the Thin / Medium / Black Kanji characters from the source files. Many characters are still incompatible, which will need to be resolved, but I wanted to upload this so that it is available for others to work on :)

aaronbell commented 3 years ago

If you're OK with what I've done here, please feel free to merge the PR into your repository!

coz-m commented 3 years ago

Thank you for the merged work.

Many kanji glyphs have complex elements, so most glyphs are fine-tuned for each weight. Therefore, there is often no compatibility between Thin-Medium-Black weights.

For the above reasons, I am not thinking about converting the kanji glyphs to Variable fonts at this time. Unless there is a guarantee for work over several years ;-)

So, in addition to the 3 masters of Thin-Medium-Black, can you set 7 Instances of Thin-Light-Regular-Medium-Bold-ExtraBold-Black and migrate from the original font file of each weight?

aaronbell commented 3 years ago

Thank you for the feedback! A question—from my examination of the files there were master incompatibilities but in the kanji that I looked at I didn’t see any issues that weren’t solvable. Can you provide an example of a kanji that you don’t think can be made compatible?

coz-m commented 3 years ago

Perhaps the word compatibility wasn't used properly. There is no continuity in the components of each weight of most Kanji glyphs (for that reason it is difficult to make them Variable fonts).

As the weights get heavier, it becomes necessary for each weight to decide to touch or overlap previously separated elements.

For Kanji glyphs with complex elements, it was also necessary to adjust the thickness of each weight in order to express the 7 weights.

At this stage, I think it is not realistic to reconstruct the fine adjustment of each weight of each Kanji glyph with the instance of Glyphs.app.

Therefore, I think it would be good if the 7 weights of each kanji glyph could be transferred to 7 instances.

As a reference, I attach a screenshot of a kanji design example created with Illustrator.app. I am adjusting for each weight like this.

Screen Shot 2020-11-14 at 17 00 39
aaronbell commented 3 years ago

Thanks for the context. In Latin design we will also often tweak each weight carefully to ensure that the glyphs are rendering exactly as desired. The downside of this approach, though, is that it means that any changes made must be done for every weight, rather than just for the masters. And given that it would make sense to work towards this being a variable font someday, I thought it would be worth investigating a bit more.

So, I thought I would do a little test 😄 . I took the 3 master version that I made previously and exported out each instance (aligning with the values in your Latin file), then compared three randomly selected characters (乭箋龕) against the OTF instances you provided.

Between Thin and Medium, I found that you have controlled the stem weights in the Light to keep things relatively monolinear, before adding more weight to vertical stems up toward the Medium. So, by adding an additional master at Light, I could preserve your desired monolinear look at the lightest weights and still obtain a Regular that aligns closely with the original:

Regular In this sample, the interpolated version is in the foreground, and the designed OTF in the background. As you can see, they are close to identical.

Between Medium and Black, things are a bit more interesting—below are the Bold and Heavy. While the actual stem weighting and such is fairly consistent across the range (as you can see the 龕 is identical), the 箋 shows one of the modifications that you mentioned wherein the strokes in the upper left corner are swapped in order to achieve proper rendering:

Bold Heavy

You might be aware that Glyphs has a function called the "bracket trick" in which the master is swapped across an interpolation axis. This allows the design of a character to vary, sometimes quite radically, from the original design. In the case of Latin, it is often used for glyphs like the $ where the vertical bar needs to be split in half to ensure the glyph renders clearly:

teaser

We can use the same theory for changing the relative positions of the strokes in 箋:

Screen Shot 2020-11-16 at 10 51 57 AM

In this sample, I have added variant design masters that apply from weight 700 and higher. As you can see in the sample at the bottom, the two heaviest weights now show the different position. In a variable font, this switch will happen automatically: demo.mov.zip

I really think that it is worth while to convert the Kanji to being Variable Font ready—else we'll have a variable Latin / Kana set, but are locked to the 7 weights for the Kanji. I'm actually pretty happy with the results of my explorations, especially once we implement the bracket trick on any glyph that has special adjustments, like 箋. What do you think about how the Kanji are rendering? If you feel comfortable with the results of this semi-interpolated approach (Thin, Light, Medium, Black masters), then we'll move forward on our end with converting the Kanji set to compatible masters.

Look forward to hearing your thoughts.

coz-m commented 3 years ago

Thank you for your very careful verification.

Because of that difficulty, I feel that the work of converting Kanji glyphs into variable fonts is well worth it. Especially if it can be realized as a free font, it will be very interesting.

However, it will take a tremendous amount of time to make a variable font while re-examining the design of the current Kanji glyph with nearly 6,000 characters. Even if I prepare nearly 3,000 first-level Kanji as a first step, it will probably take 30 months if I concentrate on the task. It will take another 40 months to prepare the second level of kanji as the next step. Even if I cancel other work and concentrate on this work.

As I said at the beginning, this task is very rewarding if I get enough guarantees, and I feel very honored to be entrusted with it. However, that would delay the time when it could be provided as a Japanese font.

Last year's contract was to divert Kanji glyphs from the previous ones and redesign Kana and Latin glyphs.

For the time being, at this stage, it is best to publish it as a 7-weight Japanese font (it is also useful to release it separately as a variable font for Latin and kana glyphs).

At next stage, as a future font expansion plan, can you talk about variations of Latin and kana glyphs and production of variable fonts of kanji glyphs, as a new contract?

aaronbell commented 3 years ago

Thank you for your comments. I’m glad that you’re onboard with the prospect of converting the font to variable! That said, we certainly don’t want to delay your current workload and progression.

If I may, let me suggest an approach. Rather than distract you from your current work, we are happy to take a first pass ourselves at converting the Kanji to a variable font, fixing any compatibility errors and adding the bracket masters (like I described) when necessary. Once we are happy with the results we can pass it over to you for a review. If you are happy with it, then great. If not, we can still always ship the full font as a 7 weight Japanese font only, until you have an opportunity to fully review / correct the Kanji set at a later date. Or we can take a staged approach wherein the variable Kanji are first released as a V1 and then updated by you later for optimal quality (this is not uncommon for open source fonts).

Unfortunately I don’t have any influence over future contracts / budgeting, but I know that everyone wants the font to be of optimal quality and we will work towards that goal 😄 .

coz-m commented 3 years ago

I'm sorry for the late reply.

I read it over and over again because it would be a nuisance if I misunderstood Aaron-san's comment. Is it correct for me to understand that Aaron-san will convert it to a (provisional?) kanji variable font?

As you know, many Kanji glyphs have complex elements. Elements that were separated by thin weights come into contact with or overlap with bolder weights. I thought it would be difficult to apply the "bracket trick" while checking each elements, and it would take many years of work.

However, it may be possible to apply the "bracket trick" only to the important changes and divide the others to some extent. I also think it is more important to release Japanese fonts as variable fonts at this stage.

Aaron-san, is my understanding correct?

aaronbell commented 3 years ago

Yes, that is correct. We will do a conversion to a provisional kanji variable font.

TBH, I think you did all the hard work in keeping the overlaps preserved! Now it is primarily a job to get the outlines to be compatible, and then sort out any extra-special modifications you've implemented like we saw with the 箋.

In any case, we'll make a go at it and then can compare :)

coz-m commented 3 years ago

It is expected to be a difficult task, but thank you.

By the way, I noticed that all the kanji glyphs in the sample image are down in the 1,000 * 1,000 box. The answer is correct if the "亜" glyph fits in the horizontal and vertical center.