HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0110
ねんねこ5787フォントが使えない23解決


ねんねこ5787

リンク

2022/1/10(Mon) 13:01:54|NO.94939

このフォントがHSPで使えません。
https://fontstruct.com/fontstructions/show/1604747/mars-needs-cunnilingus-ut-font-no-rus

font "Mars Needs Cunnilingus UT Font",30
としましたが、使えません。



この記事に返信する


zrs90(5さい)

リンク

2022/1/10(Mon) 14:19:54|NO.94942

私が思い付いたのはこの3つです。

フォントはWindows用ですか?
他のos用なら、動かないと思います。

Windowsのフォントフォルダに入ってない。
(※入れずに、一時的に使う方法もあった気が
するけど...忘れました。)

mes命令だと表示出来るが、ボタン等のオブジェクトには
使えない場合もあります。


何か他の原因をご存知の方が見えましたら
投稿お願いします。



ねんねこ5787

リンク

2022/1/10(Mon) 14:24:32|NO.94943

>>フォントはWindows用ですか?
はい。試しにメモ帳のフォントにしたら、使えました。
>>Windowsのフォントフォルダに入ってない。
入っています。
>>(※入れずに、一時的に使う方法もあった気がするけど...忘れました。)
これのことですか
http://hsp.tv/play/pforum.php?mode=all&num=93974
>>mes命令だと表示出来るが、ボタン等のオブジェクトには使えない場合もあります。
mes命令で表示させようとしたら、問題発覚



zrs90(5さい)

リンク

2022/1/10(Mon) 16:13:12|NO.94945

当てに出来るか、分かりませんが、色々検索した結果
過去記事で、mes命令で表示出来ない事例(※別のフォントですが。)
がありました。
もしかして、このケースでしょうか?

http://hsp.tv/play/pforum.php?mode=pastwch&num=71850

...これ以上は、私程度ではもう無理です。



とあるプログラマ

リンク

2022/1/10(Mon) 16:23:18|NO.94946

当該のフォントがアカウント作らないとダウンロードできないようなので試していませんが、メモ帳では使用できるということであれば font 命令で指定する名前が間違っている可能性が考えられます。
私もフォント周りで最初の頃にはまったことですが、フォント名は表示名と指定する名前で違うことがあります。

指定用のフォント名を確認するには

コントロールパネル → フォント → 目的のフォントをダブルクリック (→ さらに階層があればその階層内の目的のフォントをダブルクリック) → 左上の「フォント名」

で確認し、それを指定します。
(もしダブルクリック後の左上のフォント名と、そのウィンドウのタイトルバーに表示されているフォント名が違う場合は、タイトルバーに書かれているほうも試してみてください)



ねんねこ5787

リンク

2022/1/10(Mon) 16:23:58|NO.94947

>>94945
違いますね。私の場合はMSgothicになります。

って事は、フォント名を間違えているということでしょうか?



ねんねこ5787

リンク

2022/1/10(Mon) 16:32:46|NO.94948

ちなみに、フォントの名前はこうなっていました。
https://i.imgur.com/lBtLqJA.png



とあるプログラマ

リンク

2022/1/10(Mon) 16:45:40|NO.94949

であれば、font "Mars Needs Cunnilingus UT Font (no rus)" もしくは "Mars Needs Cunnilingus UT Font (no rus) Regular" で使用できると思うのですがどうでしょうか。

(というかなんつー名前しとるんだこのフォント…)



ねんねこ5787

リンク

2022/1/10(Mon) 16:55:07|NO.94950

>>94949
できませんでした。



zrs90(5さい)

リンク

2022/1/10(Mon) 17:11:45|NO.94951

試しに、フォント名とするなら、(no rus) の部分だけ消してもらえますか?
もしかすると、動くかも。



ねんねこ5787

リンク

2022/1/10(Mon) 17:25:34|NO.94952

>>94951
動きませんでした。



とあるプログラマ

リンク

2022/1/10(Mon) 17:53:53|NO.94953

フォントファイル(ttf)からフォント名を取得して、そのフォントを使って文字を描画するプログラムです。
最初のダイアログで使いたい目的のフォントファイル(ttf)を指定してください。

もしこれで駄目なら申し訳ありませんが、ちょっと私にはお手上げですね…

(まさかと思いますが、フォントの未対応文字(日本語)をmesしようとはしてませんよね…?)

#include "gdi32.as" #define global FR_PRIVATE $00000010 #define global QFR_DESCRIPTION 1 #define global QFR_LOGFONT 2 // ttf指定 dialog "ttf", 16 if (stat == 0) : stop sdim path path = refstr // ttf追加 AddFontResource path // フォント名取得 dim bufsize sdim buf GetFontResourceInfoW path, varptr(bufsize), varptr(buf), QFR_DESCRIPTION sdim buf, bufsize GetFontResourceInfoW path, varptr(bufsize), varptr(buf), QFR_DESCRIPTION sdim fontname fontname = cnvwtos(buf) // フォント使って描画 font fontname, 30 mes fontname mes "こんにちは" mes "ABCDEFG" RemoveFontResource path



zrs90(5さい)

リンク

2022/1/10(Mon) 17:54:09|NO.94954

最終手段。

hdl の fontdlg を 開いて
そのページのサンプルを
スクリプトエディタへコピペ。実行して

そこに目的のフォントがあれば
それを指定すれば、hsp3.6では、フォント名だけは
一応、取れるはず。

(※この命令、3.5までは、正常に動いたが、3.6 からダメになった。)



ねんねこ5787

リンク

2022/1/10(Mon) 17:59:14|NO.94955

>>94953
ダメでした。
>>(まさかと思いますが、フォントの未対応文字(日本語)をmesしようとはしてませんよね…?)
最初から英語をmesしようと思ってました。
>>94954
結果はこのようになりました。
https://i.imgur.com/5NitMYN.png



ねんねこ5787

リンク

2022/1/10(Mon) 18:00:12|NO.94956

>>結果はこのようになりました。
それを使ってhspextでクリップボードにそれをコピーしてペーストしても使えませんでした。



とあるプログラマ

リンク

2022/1/10(Mon) 18:05:47|NO.94957

MarsとCunnilingusの間が?になってる通り、ここにShiftJISで未対応の文字(環境依存文字)が含まれていますね。
フォントの配布ページを見るあたり作成者はロシア人のようなので、ロシア語の文字でも入っているのでしょう。

UTF-8版のHSP3ならいけるかもしれませんが、少なくともShiftJIS版のHSP3では難しいと思います。

なので恐らくUTF-8版のHSP3を使えばできるかもしれません。



ねんねこ5787

リンク

2022/1/10(Mon) 18:17:35|NO.94958

>>94957
できませんでした。



とあるプログラマ

リンク

2022/1/10(Mon) 18:23:28|NO.94959

だとしたら申し訳ありませんが、私にはこれ以上分かりません。



zrs90(5さい)

リンク

2022/1/10(Mon) 18:50:35|NO.94960

とあるプログラマさんへ

文字コードの問題ですか?
Windowsのメモ帳で、表示出来たという話
だったので、そこまでは、考えてませんでした。
フォント名の調べ方等、私も勉強になりました。
ありがとうございます。大変助かりました。


ねんねこさんへ

こういったサイト、どうやったら見つかるんですか?
海外のサイトは、英語等が分からないので...
私には、無理です。

(※スマホだけで、検索、返信、未だにpcは
ネット接続出来ないWindows7×2)

(※翻訳ソフトを、使う手もあるけど
技術用語等は、ダメなケースもあるので。)


-追記-

後、先日のスクリーンセーバーの件で調べ物をしていて
10年ほど前から、音信不通だった知人の
手がかりが、偶然つかめました。
ありがとうございました。



こいる

リンク

2022/1/10(Mon) 21:21:19|NO.94961

実際にフォントをインストールして確認してみたところ、NeedsとCunnilingusの間にあるスペースが、ただの半角スペースでなく「ノーブレークスペース」なのが原因のようです。
HTMLで とか書くやつですね。

また、末尾に半角スペースがいるようです。(というかフォント名はNULL文字含めて32文字以下という制限に引っかかって、途中で切れてるっぽいですね)


下記スクリプトのようにすることで、フォントが使えます。
ノーブレークスペースは、HSP標準文字コードのShift-JISには含まれていないので、Unicodeで扱います。

#include "gdi32.as" #define FW_NORMAL 0x190 #define FALSE 0x0 #define ANSI_CHARSET 0x0 #define OUT_DEFAULT_PRECIS 0x0 #define CLIP_DEFAULT_PRECIS 0x0 #define DEFAULT_QUALITY 0x0 #define FF_DONTCARE 0x0 // フォント名を作成 sdim fontName, 32 * 2 cnvstow fontName, "Mars Needs?Cunnilingus UT Font " // Unicodeに変換 wpoke fontName, 0x14, 0xA0 // ノーブレークスペース書き込み // フォント作成 #define FONT_SIZE 30 // フォントサイズ hFont = CreateFontW(FONT_SIZE * -1, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE, varptr(fontName)) // フォントを選択 SelectObject hdc, hFont mes "ABCDEF 1234567890" onexit *quit stop *quit // フォント削除 DeleteObject hFont end


ちなみに、UTF-8にもノーブレークスペースは含まれているので、UTF-8ランタイムのHSPならfont命令でできる……と思ったのですが、できませんでした。
内部での文字セットの指定に問題があるようで、「フォント名に全角文字があれば、SHIFTJIS_CHARSET(日本語)に、なければANSI_CHARSET(欧文)に」としているようなのですが、このチェックがShift-JIS用でUTF-8に対応しておらず、文字セットが「欧文」である必要があるのに、「日本語」になってしまうためだと思われます。
該当行 → http://dev.onionsoft.net/trac/openhsp/browser/tags/3.6/hsp3/win32gui/hspwnd_win.cpp?rev=1204#L1116


■注意
私的利用でしたら構わないのですが、フォントを再配布などする場合はライセンスにお気を付けください。



zrs90(5さい)

リンク

2022/1/11(Tue) 00:01:16|NO.94962

...Unicode を使うのは、海外製のフォントなので
まぁ、理解出来るとして

フォント名の長さの仕様の把握、.html
Windows API、openhsp(c++)の知識に
専用のプログラムまで必要って...
フォント1つ使うのに、こんな手間のかかる物
初めて見ました。

それを、hsp3上で、使えるようにして
しまう方が見えたのも、驚いてます。
ありがとうございました。

−追記ー

...正直、私なら、他の類似したフォント探して使います。
それと、『メモ帳』が、こんなフォント名にまで対応
していたのに、驚きました。


後、今回の顛末を見て、ネットで調べました。(※想定外)

何が起こるか、分からないので、私は使いませんが
(※ 元々、os上では、フォント名の変更自体
出来ない様にしている。)

フォント名を変えられるソフト?が何種類かあるようです。
(※シェアウェアだったりしますが。)



zrs90(5さい)

リンク

2022/1/11(Tue) 09:34:39|NO.94963

補足。

こいる さんが先に、仰っていますが

私的利用でしたら構わないのですが
フォントを再配布などする場合は
ライセンスにお気を付けください。

フォント名を変える件ですが、↑こういった
問題もありますので、やらない方が無難。

(※...にしても、あのフォント名の長さ
わざわざ入れてある、ノーブレークスペース?
...フォント作者さんには、何とかして欲しい。)



ねんねこ5787

リンク

2022/1/11(Tue) 13:11:25|NO.94964

解決しました!ありがとうございます。



こいる

リンク

2022/1/11(Tue) 17:25:51|NO.94968

あ、UTF-8ランタイム使用時の話で、内部での文字セット指定処理を
「フォント名に全角文字があれば、SHIFTJIS_CHARSET(日本語)に、なければANSI_CHARSET(欧文)に」と書きましたが、
「フォント名に全角文字があれば、SHIFTJIS_CHARSET(日本語)に、なければDEFAULT_CHARSET(システムロケールに合わせる)に」の間違いでした。すみません。

なので、全角文字チェックにも問題はありますが、それを解決してもシステムロケールが日本語ならどのみち使えないですね。


ちなみに、フォント名の確認にはNO.94943とNO.94954の投稿を参考に、メモ帳のフォント選択ダイアログを使いました(フォント名をコピーし、バイナリエディタで確認)。
他のフォントを使いたいときにも、この確認方法が便利そうですね。


>zrs90(5さい) さん
いろいろなことを書きましたが、このフォントを使うには「文字コード」と「Windows API」の知識くらいしか要りませんよ。

フォント名の長さ制限も、CreateFont関数のドキュメントを見ている時に、pszFaceName引数の説明に書いてあってそう思っただけですので。
https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-createfontw


>ねんねこ5787 さん
解決してよかったです。

しつこいかもしれませんが、フォントのライセンスにお気を付けください(同梱されてるreadme.txtとlicense.txtに書かれてるようです)。



ONION software Copyright 1997-2023(c) All rights reserved.