変更案: フォントの初期設定をCWに合わせる

Issue #268 new
k4nagatsuki repo owner created an issue

現状の初期設定はフォントの設定が無かった頃からのもので、マルチプラットフォームで動かす事を前提として付属のIPAフォントを使用するようにしています。

現在はフォントを細かくカスタマイズできるようになっているので、日本語Windows環境では初期設定をCWに合わせたものに変更してもいいかもしれません。

Comments (84)

  1. 暗黒 騎士

    MSフォントの他にTimes New RomanとLucida Handwritingが使われているようですが、後者はXPに標準でインストールされてないんですよね…。

    7などではどうなんでしょう。

  2. k4nagatsuki reporter

    その辺は新規登録ダイアログとか普段あまり意識しないところなので、あまり優先度は高くないですね。

    メッセージは現状スキンのオプションでクラシックに合わせる事になっているので(それもどうかと思う、フォント設定に移動するべきかも)、目立つところとしてはカード名・ステータスバーのラベル・使用回数・レベル表記・シナリオ選択やキャラクター情報やカード情報の各種ダイアログのフォント、辺りでしょうか。

  3. Liar_cw NA

    アナログにも程があるかもしれませんが、手探りで調べてみました。


    【カード名:MS UI Gothic (サイズ12 / 太字通常 / 滑らか無し)】

    • ドット単位でほぼ一致。若干 表示が異なる。Py側が微妙に潰れている。(荷物袋の「物」の字など)

    【データ解説文(カード解説):MS ゴシック】

    • ドット単位で一致。荷物袋の解説文を比較。

    【ステータスパネル(SP表示):Times New Roman (サイズ16 / 太字 / 斜体 / 滑らか有り)】

    • あくまでSP表示のみ。戦闘時のステータスパネルは未検証。
    • 限りなく近い表示になるが、Py側は端がぼやけるなどの差異あり。
    • 追加の報告として、Times New RomanやMS UI Gothic等の一部のフォントを斜体として指定すると、SPの増減時にフリーズする。
    • ラウンド表示などもこれに含まれる。(9月9日16時16分:追記)

    【カード使用回数:MS P明朝 (サイズ16 / 太字)】

    • 1文字ドット単位で一致。ただし、そもそもの表示位置が違うなどの細かな差異が数点ある。
    • 文字間の開きが若干違う等。

    【カードレベル:MS P明朝(33/太字/斜体) / MS 明朝】

    • 限りなくCW1.50に近いが、解なし。

    【ダイアログリスト(フォルダ表示):MS P明朝】 20時56分:追記

    • 限りなく近いと思われるが、文字間の開きが若干違う程度の差異がある。
    • 「Contents」のサイズがCW1.50は小さい。別に設定されている?
    • シナリオ説明、フォルダ内シナリオ名にも影響。こちらはMS 明朝だと思われる。(9月9日18時50分:追記)

    【ダイアログ見出し(シナリオ見出):MS P明朝】

    • ほぼ一致。他項目同様、ぼやけ等の細かな差異がある程度。

    • 「宿帳を開く」の項目にも影響。「Times New Roman」が別個に指定されている。宿帳のPC各表記「Lv**Adventurer」。レベルの数字も違和感がない。(9月9日18時22分:追記)

    • キャラ名についてはまた別のフォントが指定されている模様。(明朝体?) (9月9日18時22分:追記)

    【キャラクター解説:MS P明朝?(MS 明朝?)】 15時50分:追記

    • 指定したフォントによってダイアログの大きさまで変わるため、検証不能。フォントサイズを指定できない。
    • 追加の報告として、指定フォントとクーポン名の長さ、数量によってはクーポン名が縦スクロールバーの影に隠れてしまう事がある。(横スクロールバーの有無を問わない)
    • CW1.50では見やすいようにか、解説文の左右にそれとはっきりと分かる余白あり。

    【ダイアログメッセ(確認ダイアログ):MS Pゴシック】

    • メッセージの折り返し部分が違うものの、文字体に違和感なし。
    • 追加の報告として、指定フォント次第(MSゴシック等)ではタイトル画面に戻る際の警告文がはみ出んばかりに汚くなる。

    【キャストカード名:MS UI Gothic(サイズ13 / 太字 / 滑らか無し)】 6時44分:追記

    • ドット単位で一致。カード名同様 若干 表示が異なる。Py側が微妙に潰れている。
  4. k4nagatsuki reporter

    調査ありがとうございます。

    どうもCWでの太字の描画が妙ですね。内部でWindowsAPI関数であるTextOut()を使っているのはどちらも同じだと思うのですが、どの太さを指定しても同じになりません。2倍に描画してから縮めているような変な事をしているとも思えません。

    とりあえずバグ以外はゆっくり対応させてください。バグはこれから直します。表示領域のサイズ変更等はちょっと面倒そうですが、これもできるだけ対応します。なお、一部ダイアログがフォントに合わせて大きくなるのは仕様です。メッセージなどもそうなっているべきでした。

  5. k4nagatsuki reporter

    pull request #1056

    • 履歴で横スクロールバーが出る条件を少し厳しく。
    • 斜体の空文字列描画でエラーになる場合の修正。
    • メッセージがはみ出ないようにした。
  6. Liar_cw NA

    CardWirthPy 0.12.4 Alpha 1 Build: 2015-09-08 21:24:17にて、 pull request #1056 の 3 項目の修正を確認しました。


    大雑把かつ変な所で神経質な調査結果ですが 全体的な雰囲気は一部未調査または断念した項目を除いて、 上記の設定でもそれなりにCW1.50に近づけることが出来ました。 太字や文字間隔などの細かな差異は、神経質な方なら気がつく程度だと思います。 (CW1.50とCWPyのスクリーンショットを重ねたりと、少し神経質な事もしました)

  7. k4nagatsuki reporter

    ご確認ありがとうございます。

    言い訳を少し。

    フォントの描画はOSのバージョンによっても変化してしまうので、細かく合わせるのは難しいものがあります。例えばWinXPとそれ以前のOSではポイントサイズの計算の方法が変わっており、XPの方が少し大きなフォントが選択されるという仕様になっていたりしますし、スムージングのアルゴリズムや、フォントリンク機能が使われる関数がXP→Vista→7で増えたこと、ステータスバーについては全体の外見の変化など、色々食い違う要因があります。当然、WindowsでなくなればWindows用フォントは全て使えなくなります。

    なので、フォント合わせについてのモチベーションは、正直言ってあまりありません。移行の障壁になりそうな部分は手入れしたほうがいいか、程度に私は考えています。その点ご理解いただけるとありがたいです。

  8. Liar_cw NA

    語弊があったようで、申し訳なく思います。

    細かな点は注意しないと気がつかないと思えるようなレベルだったので、 あまり深入りするような問題でもないのでは、という事を伝えたかった次第です。

    私個人としてもフォント合わせについては「大体合っていればいいんじゃないかなぁ」程度に思っています。

  9. k4nagatsuki reporter

    ああいえ、こちらこそ語弊がありました。言い訳は一応書いておくべきかなと思った事を書いただけでして、ニュアンスはちゃんと伝わっております。

    参考までに、Liarさんや他の方が真っ先に気にして変更した部分など教えていただけると、こちらとしても動きやすくなりますので、よろしければお願いします。


    フォントの問題に関連して追加的に取り組むべき事のメモ。

    • カード名の縁取りの設定は描画タブにあるがフォントタブにあるべき。
    • スキンの「メッセージでクラシックなフォントを使用する」設定は、まだCWPyの内容がよく分かっていなかった時期の遺物的なオプションなので、スキンから取り去ってフォント設定に移動するべき。
  10. Liar_cw NA

    コメントを残すということは当事者間以外にも不特定多数へ向けての意思表示や メモ書き、考えをまとめる、経緯ほかを残す等の様々な意味合いも有る事を忘れて、 つい主観的に受け取ってしまいました。

    カード操作ダイアログからフォント設定ときて、CW1.50からの移行の際の違和感などは そろそろ出尽くした感があります。(CW1.50を操作するのが億劫になるほどCWPyに慣れた事も相まって)


    追加の調査報告です。「登録ダイアログ等の優先度は高くない」との事ですし、 そちらについては今回は調査は行いませんでした。

    【ステータスボタン:MS Pゴシック(サイズ12 / 太字 / 滑らか無し)】

    • キャンプ・テーブル、戦闘開始・逃げるなどのボタンのこと。
    • ほぼ一致。やはり太字の微妙な差異が有る程度の誤差。それを除けば完全に一致していると思われる。
    • CWPyではボタン・パネル両方に滑らか設定が適用されるが、CW1.50では別々。滑らか設定はパネルのみと思われる。
  11. 暗黒 騎士

    >Liarさんや他の方が真っ先に気にして変更した部分

    自分は最近までサイズ変更できるのに気づいていなかったのもあり、 そこまで追求はしていなかったのですが、 自分の環境だとキャラクター解説文のIPAMinchoの文字の高さが違うし、滲んでいる感じがしたのでそこだけは真っ先に変えましたね。 MSはMSでビットマップフォントなのでギザ感がひどいんですが、慣れは怖いものです…。

    SS.png

    そういえばPyは本家の方の解説/経歴/編集(状態)/技能カード/アイテムカード/召喚獣カードのラインがなく、 これによって幅1行分ぐらい解説描画領域が広くなっているのですが、 これは仕様なんでしたっけ…前も報告していたらごめんなさい。素で曖昧です(汗)

    >メモ

    かなり狭くなってしまっているのでフォント1、フォント2 というようにタブを増やした方がいいかもしれませんね。

    >調査報告

    設定項目が多く、どこがどこやらという感じだったので参考になります。 将来的にWindowsではデフォで合わせられるにしても、他のOSで使う際の参考にもなりそうですし、 wikiの方に「CW準拠のフォント設定」というような項を作って転載してもよろしいでしょうか?

  12. Liar_cw NA

    思い返してみると、IPAフォントにギョッとして 勢いで全てのフォントをMS UI Gothicに変更・指定してから、 今回のIssuesが立つまでずっとそのままでしたね……。

    文字の滑らか設定もこちらの環境(Win7デスク)では文字が潰れる(ぼやける、滲む)だけなので、 ステータスバー、カード名どちらもOFFにしています。 (CWPyのF4拡大表示は使用していない)

    キャラクター解説なんかは、MS ゴシックとかMS 明朝だと文字が大きすぎると思ったり、 縦スクロールバーが出るような長文解説だとさらにダイアログがぎっちぎちになるので こちらもMS UI Gothicでとりあえずは落ち着いています。文字間隔がアレですけども。

    > 暗黒 騎士 さん

    シナリオ選択時のフォルダ見出の「Contents」はまた別のフォント項目で設定されている等(設定可能っぽい)の 見落としや未調査項目があったり、確証性の低いたかが一個人の調査結果(多人数による確認を行っていない)だったりと。 これ等の調査報告はまだまだ歯抜け(ガバガバ)ですが、それでもよろしければどうぞ。

    CWPyの取っ付き易さに繋がると思いますし。私個人としてはむしろ歓迎です。

  13. Liar_cw NA

    追加の調査報告です。どうでもいいような非常に細かな点を含みます。 CW1.50は何気に細かくフォントを指定しているようですね。 ここまでくるとたとえ調査するだけでも労力に見合わないとさえ思えてきます。


    【パネル見出し:Times New Roman】

    • シナリオ選択時のフォルダ見出しの「Contents」の表記に影響。
    • 比べても違和感は無いが、フォントサイズがCW1.50より大きい。

    【ダイアログ見出し:(一部ダイアログで指定フォントが違う)】

    • 「シナリオ見出」に影響。「MS P明朝」がほぼ一致。他項目同様、ぼやけ等の細かな差異がある程度。
    • 「宿帳を開く」の項目にも影響。CW1.50では「Times New Roman」が別個に指定されている、目測で一致。宿帳のPC各表記「Lv**Adventurer」。レベルの数字のサイズがCW1.50と比べてCWPyは大きい。
    • CW1.50ではキャラ名についてはまた別のフォントが指定されている模様。(明朝体? サイズ等の差異もある)

    【ステータスパネル(SP表示):Times New Roman (サイズ16 / 太字 / 斜体 / 滑らか有り)】

    • SP表示のほかに、ラウンド表示などもこれに含まれる。

    【ダイアログリスト(フォルダ表示):?】 18時57分:追記

    • フォルダ表示に影響。MS P明朝が近い。
    • シナリオ説明、フォルダ内シナリオ名にも影響。こちらはMS 明朝だと思われる。

    あまりのややこしさに混乱してきたので、一旦調査を切り上げます。

  14. 暗黒 騎士

    ありがとうございます。(間違いがあってもその都度修正すればいいので全然問題はないです!) 突貫工事で作ってみました。 http://www9.atwiki.jp/cwpy/pages/13.html#e

    Lucida Handwritingを古いHDDから発掘してきたんですが、 ぱっと見た感じ、CWでは新規冒険者登録ダイアログの1ページ目の全ての項目に使用されていますが、 Pyではダイアログ見出しと項目が別個指定、さらにシナリオ見出しが共通なので上手く噛み合わないようですね。 名前入力欄とデータ解説文を分ける意味がない気がするので将来的にどちらかと置き換えるというのはどうでしょう。 長月さん的にモチベーションがなく、問題ないようであれば自分が作業してみようと思います。

  15. k4nagatsuki reporter

    たぶん細かいところまでは調査していただいても最終的に合わせるところまで行かないので(そこまで合わせる動機がないので)、今の情報で大丈夫かと思います。ありがとうございます。

    とりあえずダイアログのキャラクターやカードの解説はCWに合わせた方がよさそうです。

    カード名はどうでしょう? ぼやけて見えづらいということであれば、少し文字を大きくするという手段も取れそうです(縁取り機能もついたことだし画像への被りには強い)。しかし人によってはCWのままの方がいいという事もあるはずです。

    そういえばPyは本家の方の解説/経歴/編集(状態)/技能カード/アイテムカード/召喚獣カードのラインがなく、 これによって幅1行分ぐらい解説描画領域が広くなっているのですが、 これは仕様なんでしたっけ…前も報告していたらごめんなさい。素で曖昧です(汗)

    これはかなり以前に合わせようと思ったところ、ライン部分を配置するのが思いの外面倒だったのでそのままにしています。知識のついてきた今なら実現できるかもしれませんが、あった方がいいですかね。

    フォント情報のページは、あると私としてもありがたいですね。

  16. k4nagatsuki reporter

    おっと入れ違い。ありがとうございます。

    名前入力欄とデータ解説文を分ける意味がない気がするので将来的にどちらかと置き換えるというのはどうでしょう。

    そこは入力と表示で役割が違うので、分けた方がいいかと思います。増やす分には(煩雑になるという以外には)問題ありません。

    フォントのデフォルト設定はsetting.pyにあります

    さらに、pygame側で使用するフォントは、その情報を元に別の箇所で生成しています

  17. k4nagatsuki reporter

    改めて初期設定を見ると、基本フォントをMS*にするだけであらかた片付きそうな気もします。

  18. 暗黒 騎士

    カード名は縁取りでかなり印象が変わってしまったのでなんとも言えないですね…。 ラインは自分的には塵も積もれば程度なので面倒であれば別の方の要望があるまで放置でもいいと思います。

    >煩雑になる

    ですよね…。うーん、もうすこし方向性が定まってからにしましょうか。

  19. Liar_cw NA

    CardWirthPy 0.12.4 Alpha 1 Build: 2015-09-09 19:37:47

    カード名はどうでしょう? ぼやけて見えづらいということであれば、少し文字を大きくするという手段も取れそうです(縁取り機能もついたことだし画像への被りには強い)。しかし人によってはCWのままの方がいいという事もあるはずです。

    カード名についてはユーザー側でサイズ、太字などの詳細設定が可能なのでその必要はないと思います。 滑らか設定にしてもオプションとしてON/OFFの切替もできますし。

    画像を添付します。拡大せずにプレイしているせいか、 個人的に滑らかというよりもどこか汚く見えるんですよね……。 縁取りが無かったら、よりぼやけて見えます。 (切抜加工前のスクリーンショットを見比べると余計にぼやけて見える)

    上から2行目右のデフォ設定は縁取りが無いように見えますが、 フォントサイズによってはカード別に縁取ったり縁取らなかったりするようです。拠点のメニューカードで確認。(F4拡大なし。滑らか設定OFF)

    滑らか設定を入れるとすべて縁取りました。

    無題.png

  20. k4nagatsuki reporter

    縁取りをすればぼやけて見えるのも多少はましな感じでしょうか……。

    基本フォントをMS*に差し替え・スムージングあり・縁取りあり辺りの初期設定がよいでしょうか。

    フォントのカスタマイズを最初に実装されたTachiGigasさんの意見も聞きたいところです(たぶん不満があるから手入れをされたと思うので)。

  21. k4nagatsuki reporter

    pull request #1060で縁取りのバグを修正しました。


    フォントのカスタマイズを最初に実装されたTachiGigasさんの意見も聞きたいところです(たぶん不満があるから手入れをされたと思うので)。

    @tachi_gigas と書くと通知が飛んだりするのかな?

  22. tachi gigas

    当時は若く、MeiryoKeが非常に見やすかったから対応できないかなと思ってただけでした。ですので、フォントを本家様エンジンに合わせたいという動機ではありません。k4nagatsukiさんがご所望の意見は持っていないのが正直な所です。

    Windows以外のOSで動かす事も想定している事を個人的には気にしていますが(そういう意味でもフォントを自由にしたかった)、そんな個人的事情は置きまして、デフォルトをMS明朝・ゴシック系に合わせるとなれば、Windows版の配布ファイルからIPA系フォントを外す事も検討する必要が出るかと思います。

  23. k4nagatsuki reporter

    呼びつけたみたいですいません。ありがとうございます。

    では、とりあえずデフォルト状態から基本フォントをMS*系(あれは元はリコーのフォントだったかな)にしてプレイしてみて、よさそうならそれらのフォントが使える環境ではそれが初期状態になるようにしてみましょう。

    デフォルトをMS明朝・ゴシック系に合わせるとなれば、Windows版の配布ファイルからIPA系フォントを外す事も検討する必要が出るかと思います。

    サイズがバカにならないですからね。慌てることはないかと思いますが……。

    しかしWindowsもメイリオや游系のフォントがデフォルトとして追加されてきていますし、MSゴシックなどもいつかは主要フォントの舞台から退場する日が来るかもしれませんね。

  24. k4nagatsuki reporter

    フォントのタブを選択して「デフォルト」を押し、基本フォントをMS*に変更するだけで試せるので、よろしければ皆様も試してみてください。ただし元のフォント設定を保存するためにSettings.xmlのバックアップを取っておいたほうがいいです。

    というかそろそろ#247をやるべきか。

  25. 暗黒 騎士

    自分としてもあまり気にしない人ならそれであらかた問題ないように思えますが、 もうPyに慣れきってしまっている勢なので感覚に自信はないです…。

    失礼、上記名前入力欄指定廃止の件ですが、データ解説欄とキャラ解説欄を間違えていました。 名前入力欄はキャラ解説文の入力フォントと共用になっていますが、キャラ解説欄は等間隔で並べる都合上、等幅でなくてはなりません。入力と表示でフォントが一致していないのは混乱の元だし、統一した方がいいように思えたのですが…。

    またどうもフォント設定の上位にある項目の重要度が低いように思えます。 スクロールも面倒なので特に理由がなければメッセージや選択肢などを上位に持ってきたいと思うのですが、いかがでしょう。

    pull request #1062で「宿帳を開く」のレベル表示が大きい件に手を入れてみました。 厳密にSSを撮って比較するとPyは全体的にパーツが右に寄っているのですが、流石にそこまで合わせようとは思わないのでとりあえず気になった部分だけにしました。

  26. k4nagatsuki reporter

    ありがとうございます。pull requestにコメントしました。

    入力と表示でフォントが一致した方がいいというのは、私もその通りだと思います。cwxeditorもそのように実装しています。

    フォント設定の順序は、たしかに私もしょっちゅうスクロールしてますね。設定ダイアログの機能追加のついでに変えてしまいましょう。

  27. k4nagatsuki reporter

    pull request #1064

    基本フォントの変更を実行しました。CWPyの既存のユーザにとってはドラスティックな変更になります。違和感の激しい箇所などあったら指摘してください。

  28. tachi gigas

    ただの感想ですが、昔の感じを出そうとしてカード名の縁取りと文字を滑らかにするを外すとカードの文字が思った以上に大きくなりますね。まぁ大きさを変更すればいいだけですね。お疲れ様でした。

    Windows版の配布ファイルからIPA系フォントを外す事も検討する必要が出るかと書いた件ですが、よく考えてみたら撤回すべきな気がしてきました。

    今現在のsetting.pyで言うと966行目から974行目ですが、Data\Font内にあるIPA系フォントを登録してwx.FontEnumerator().GetFacenames()で呼び出せるようにしています。この状況下では配布ファイルからIPA系フォントを消すと、フォントのカスタマイズに「(デフォルト)」ではなくIPA系フォントを直接指定している人は起動時にエラーになりそうです(もとからIPAフォントを導入している人は大丈夫ですが)。ちょっと考慮不足でしたね。こうなってしまった時デフォルトフォントに設定を変更する等対策も取れそうですが。

  29. k4nagatsuki reporter

    後はカード名のフォントを見て「これじゃだめだ」という人がどれくらいいるかですね。こればかりは多数の意見を集約しないと判断がつかないのですが、CWPyが多数の意見を得られる状況にあるかというと全くそうではないので、どこかで独断して進めるしかないんですよね……。

    フォントのカスタマイズに「(デフォルト)」ではなくIPA系フォントを直接指定している人は起動時にエラーになりそうです(もとからIPAフォントを導入している人は大丈夫ですが)。

    そうした事もあるので、もし外すことになったとしても、別口でインストールする方法を用意するべきかと思います。とはいえ今は外す必要をあまり感じません。

  30. 暗黒 騎士

    pull request #1077でフォント混在の件、大体解消できたと思います。

    提案なのですが、基本フォントに[英文用]を増やすのはどうでしょうか。

    理由:Times New Romanはほぼ全てのWindowsに搭載されているので、CWで表示されている環境が多数のはず。 英数字の大半に指定されているので、気になる人は気になりそう。 Lucida Handwritingは今ではほとんどの環境でインストールされていないし、新規登録1~2P目とデザインダイアログだけなのでMSゴシック指定でいいと思われる。

    問題:IPAの代替フォントがない。 Liberation SerifはTimes New Romanに対応するフォントらしく表示の整合性がある程度取れ、License的にも問題なさそうですが、 容量的にこれ以上フォントを増やすのは厳しい?(140kbほどで日本語フォントよりは軽いですが) https://en.wikipedia.org/wiki/Liberation_fonts

    表示形式の記憶が実装されたんですね。1クリックで全体表示されるのが爽快でした。プレイ用宿で再開するのが楽しみです。

  31. k4nagatsuki reporter

    ありがとうございます。pull requestにコメントしました。

    さて、標準のフォント設定に英文フォントを用いるのは、私は反対です。理由は、そのフォントを用いている箇所で日本語を用いたスキンを作る時に障害となるからです。

    例えば大江戸バリアントはほとんどのメッセージを丁寧に世界観に合わせたものへ置換していて、メッセージ選択肢の「OK」が「 是 」になっているほどなのですが、「sp」は「文」に置換できそうなものなのに「mon」となっており、宿帳の様々な項目や登録時の「Young」などのテキストも英文のまま置換されていません。これはバリアントの作者が見逃したからというより、英文フォントが使用されていたせいで手が出せなかった可能性があります。

    これを解消するにはスキンごとにフォントの設定が必要ですが、現時点では行えません。

    ただ、フォントのタイプ名として「英文見出し」と名付けるのは、別に問題はないかと思います。それでプレイヤーが英文用フォントを選択していざ問題が起きたとしても、それはプレイヤー自身が容易に回避可能です。

  32. 暗黒 騎士

    CWのステータスパネルのフォントとスタイルは、リソースハッカーでTMAINWINDOWを開いてスクリプトをコンパイルするでわりと簡単に書き換えられるのですが、spの変更は少しコツがいるというか、その部分がFont.Charset = ANSI_CHARSETに指定されているので、ただTimes New Romanを書き換えただけでは文字化けするんですよね。たとえば単純に円に書き換えたとすると%。~というような表示になるはずです。 今やってみましたが、SHIFTJIS_CHARSETに書き換えることで問題なく表示できました。

    SS9.png

    大江戸バリアントの作者さんがそこで躓かれたか、単に見栄えを選んだかは定かではないですが、文字化けするのはフォントではなく文字コードの問題ですので、PyでTimes New Romanを指定している箇所を、たとえば上のように円に変えても、フォントリンクによってMSゴシックで表示されると思います。なので特に問題はないと思ったのですが、Linuxだとこのへん事情が変わってくるのでしょうか?

  33. k4nagatsuki reporter

    fontconfigにフォントリンクに似た機能があるようですが、標準で設定されているディストリビューションがあるか分かりません。手元のLinux Mint 17.1でだめだったので、たぶん最近のUbuntu系ディストリビューションでは機能していないかと思います。

    また、フォントリンクはあくまで緊急避難的な仕様であって、思ったフォントで表示されないことには変わりありません。英数字だけセリフ体で表示され、それ以外の文字はサンセリフで表示されるというような状態は、エンジンの標準の設定では作らない方がよいと思います。

  34. 暗黒 騎士

    であればLinuxでは、スキンごとのフォントが指定できるまですべきではないですね…。 Windowsも基本フォントのMS置き換えと混在解消で十分だとは思うので、長月さんが納得できないのであれば無理にという気持ちはありません。

    少々焦りすぎたでしょうか? 多分斜体変更なども不本意なところ折れていただいたかなぁと思うので気を悪くされたら申し訳ないです…。

  35. k4nagatsuki reporter

    すみません。スキン制作者の前に回避不能な問題が立ちはだかる可能性を考えると、その可能性が実際非常に小さいとしても、なかなか立ち向かえません(プレイヤーにフォント設定を変更してくれとは言えないでしょうし)。

    斜体なんかは別に致命的な問題にはならないのでいいんですけどね。

  36. 暗黒 騎士

    スキン設定の「メッセージでクラシックなフォントを使用する」なのですが、 メッセージのフォントを変えられないと悩まれているユーザーの方が多いようです。

    これはスキンごとに全項目を設定できる現在となってはあまり意味がないですし、 撤廃またはクラシックスキン・変換時のデフォルトでオフにしておいた方がいいのではないでしょうか。

  37. k4nagatsuki reporter

    仰る通りです。

    たしかこれ、以前スキン上で廃止して本体側のオプションにつけようとした記憶があるのですが、その時は技術的な問題にぶつかって断念したはずです(旧設定から新設定への移行処置が面倒だったんだったか)。

    簡単な方法がないか考えて、思いついたら試行してみます。

  38. k4nagatsuki reporter

    pull request #1440

    まだマージしていません。

    クラシックなフォントでは、メッセージのスムージングを行いません。これはクラシックなフォント設定だけの特殊な処理で、これまでは設定する方法がありませんでした。それをオプション化して、通常のフォント設定でもクラシックなフォントを再現できるようにしました。

    そこまではいいのですが、問題は既存のプレイ環境の、新しい設定に合わせたアップデートです。とりあえずChangeLogに書いたように対処してみましたが、そこにも記した通り、場合によってはユーザのフォント設定が一部失われる可能性があります。

    しかし他にいい手が思いつきません(全ての環境の確実なアップデートは不可能か?)。よろしければレビューしていただき、何か上手い方法を思いついたら教えていただければと思います。

  39. 暗黒 騎士

    ありがとうございました。

    wssxファイルが<Settings dataVersion="1">になったことで無印時代に保存したファイルの読み込みに失敗するようになりましたが、これは設定を変えた以上仕方ない挙動ですよね?(dataVersion="1"を付ければ読み込めるようです)

  40. k4nagatsuki reporter

    あいや、ダメです。それは読み込めないといけません。修正してきます。

  41. k4nagatsuki reporter

    pull request #1441

    修正しました。

    「ちゃんと外部読込もテストしなきゃな」と作業途中で思ったのにどうして抜けるかな? 思いついた時のメモは大事ですね。

  42. 暗黒 騎士

    確認しました。レビューしたのに素通しでは申し訳ないので、一応確認してよかったです(笑)

  43. 暗黒 騎士

    https://twitter.com/proxi_proxi/status/729013929796493313

    proxiさんの投票結果を見るとパーティ情報等のメニューのグラフィックに4票入っています。(自分は投票していません) 選択肢がなんというか誘導的なので、これは実際には「あえて言えば全体的なフォント・初期設定・UIの違いが気になる」程度かと思います。 (ただ現状最新版がフォント周辺整備前の12.3bなのでそっちだけを見ての票という可能性もあり)

    https://twitter.com/hand_cw/status/690085327357267970

    以前HAND氏もこう仰っていて、他「キャストカードの名前欄に違和感があり、CWに近づけたい」と取れる発言を3方確認しています。

    上記を踏まえて、以下を変更してpull requestしたいと考えているのですが、どうでしょうか。

    1.パーティ情報のボタンが「登録」になっているので「決定」に直す。

    2.デフォルト設定をキャスト&カード名フォントのサイズ15・13→12に変更、縁取り・滑らかオプションをオフ

    3.レベル表示位置の再調整(間隔20→18 横90→92 縦2→0 前回は間隔の設定部分をわかっていなかった)

    縁取り・滑らかについてはデフォでオフになっていると装飾フォント設定のように死にオプションになりかねないので、 これがPyだと割り切ってCW準拠設定にする「CardWirth設定(Windows用).wssx」みたいな感じで同梱する手もあるかと思います。

  44. k4nagatsuki reporter

    ありがとうございます。

    違和感があって変えたいという意見が3件あるとして、問題ないとか、こちらのほうがよいと感じている方がどの程度存在するかが問題です。得てして現状に満足している方の意見は出てこず、変更して始めてトラブルになるからです。私もつい先日エディタの初期値の設定で痛い目を見たばかりです。

    2.と3.については、その辺りの意見を募集した方がよいと思います。

    1.については、問題ないと思います。たぶんそこがどうしても気になるという方はいないでしょう(ってこれも甘い考えかもしれない)。

  45. 暗黒 騎士

    XEditorでの初期値変更はカスタマイズができれば良いが、できないので~という問題だったかと記憶していますが、 変更可能なデフォ設定は純粋により多くの移行者にとってそれが馴染みやすいかが重要かと思います。

    現在のPy使用者は残念ながらそう多くないはずです。 しかも試してもらう中で、ろくに機能を使われずに投げ出されている方が多い印象なので、勿体なく感じているのですよね。(一度慣れてしまえば最強なのに)

    「これこれこうすればCWと同じにできるよ」という説明をしてもライトユーザーにはその時点で壁になってしまうのでそこをなんとかしたいわけです。 なので2.について上記実例では不足という感じであれば、準拠設定のwssxを用意するのが次善かと思います。

    3.についてはCW準拠という明白な需要があり、逆に現状の実装を続けるメリットがないように思えます。 変えてみて反応を待つわけにはいかないでしょうか。

  46. Liar_cw NA

    2.について少し前の話になりますが、スキンのオプション「メッセージでクラシックなフォントを使用する」が廃止されたとき、環境設定が悪かったのか、 私の環境では見た感じそのオプションが無効になっただけで終わったので、 10分くらいかけて手探りでCardWirthと同じフォントになんとか戻せましたね……。

    その時はすぐに自己解決することができたので何も発言しませんでしたが、 初期値を変更する場合は 変更前後の値などをChangeLog.txt等に載せていただけると助けになると思います。

    縁取り設定はともかく、滑らか設定については画面を拡大しない場合は アンチエイリアスが強すぎてCW1.50から移行してきたユーザにとって違和感が激しいものと思いますので、何か案内でもあると良いかもしれません。(以前、滲んで汚く見える、と発言したあれの事です。こういうのもなんですが、CWPy人口が増えすぎないようにあえてばっさりと切り捨てるのもありかもしれませんが。)

    • 3.については、判断材料がないので発言できません。
    • 1.については、特にこれといった意見はありません。
  47. k4nagatsuki reporter

    フォントの設定がソフトウェアの使用を放棄するほどに強烈なものなのか、私には判断できません。その3名の方はそうだったのでしょうか。

    私は縁取り機能に明白なメリットを感じている一人ですし(特に最近はカードサイズでない画像を使ったキャストも増えてきましたので)、アンチエイリアスが無いと長いカード名を縮小した時の表示が汚くなりすぎると思っています。

    前にも書きましたが不満のない部分に意見は出てこないものです。呼びかけなければ出てこないと思います。私が心配しているのはその出てこない部分です。

    CWPyの設定は、初期値のままで使っている限りでは、初期値を変更すると自動的に新しい設定に移行するようにできています。ですから、今まで不満なく使っていたのに突然縁取りが消えた・アンチエイリアスが無くなった、という不満の声が、挙がらないか、挙がっても不満が解消された人数よりは少ないという根拠がほしいです。

    3.は、手許で試してみたのですがそんなに違和感は無いですね。どうなんでしょう。比較的小さな変更なので、これくらいならちょっと変えてみて、不満が出たら元に戻すか設定を追加するくらいの事をしてもいいかもしれません。カード名は、「ちょっと変えてみる」には重い変更ではないかと感じています。

    ところで*.wssxの配布ですが、これはどっちにしろやり方を解説せねばならず、読込のために詳細設定を開く必要がある上、そこまで行けば後はタブを選んでチェックを2つ外すだけなので、解説記事にそうするよう書くほうがずっと簡単かと思います(フォントサイズを合わせた場合ですが)。

  48. 暗黒 騎士

    レベル.png

    3についてですが左がCW1.28以降の表示、右が現在のPyで以前Liarさんが検証された準拠設定にしたものです。(C)GroupASK

    CWと比べアンチエイリアスがかかっており(この点もカード名の滑らかオプションに連動または新規オプションがあったほうが望ましいが、ひとまず保留)、下に2、右に2、レベル10にならないと顕在化しませんが間隔に2ピクセルの空きがあります。 他の方のスクリーンショットを見ても大体そうなっているのでほとんどの環境で起こっているのではないかと思うのですが、良く見てみるとLiarさんはカードレベルについての位置ズレに言及されていませんね。もしかしてそちらの環境では一致しているのでしょうか…。

  49. 暗黒 騎士

    その3名の方はそうだったのでしょうか。

    いえそこまでのトーンではないです。ソフトウェアに馴染むには総合的・複合的な理由があり、 「それをしたから移行者が増えた」というのは極めて捉えにくいことですから、 不満が解消された人数よりは少ないというのは悪魔の証明になるのではないかと…。 しかし仰ることも理解していますのでwssxの同梱が次善と書きました。

    あ、wssxについては勿論記事も書きますが、フォントサイズやステータスパネルにおけるTimes New Roman、Lucida Handwritingの指定なども含めた方がいいと思っています。(前回の却下理由がスキンで指定できないということだったので事情は変わってきているかとも思いますが) 滑らか設定を外さない場合であれば12では滲んで可視性が悪くなると自分も思いますので文字サイズだけ合わせるということは希望しません。

  50. Liar_cw NA

    > @k4nagatsuki さん

    カード名には「MS UI Gothic(12/太字)」を使用していますが、 その他のフォントや長いカード名については深く考えずに軽率な発言をしてしまいました。申し訳ございません。

    • 上記の設定かつ縁取りONで長いカード名も問題なく読めています。カードそのもの拡大縮小時の滑らか設定はONにしています。50%サイズはOFFにしているとさすがに読めません……。

    > @akkw さん CW150.png

    左の画像に違和感を感じてCW1.50で確認してみましたが、 CW1.50では弱めのアンチエイリアスが掛かってるように見えますね。

    あの時「限りなくCW1.50に近いが、解なし」と書いたのは、 手元で設定できるフォントでそれっぽいものであるのと、 その位置ズレや二桁表示時のズレ等があったからだと思います。 CWと比較するとやはり現在もズレていますね。 (余談ですが現在は諦めて別のフォントに変えました)

  51. k4nagatsuki reporter

    多寡を厳密に証明することまでは必要ないかと思います。然るべき場で「こういう提案をしているんだがみんなどう?」と呼びかければ色々な反応を得られるかと思います。その結果から判断しても遅いということはないはずです。

    あと、アンチエイリアスは、滲んでいて違和感が強いというのも分かるのですが、縁取りはそんなに役に立たないでしょうか。CWで一部文字が読めない事が頻発して不満だった人はそこまで少ないでしょうか。

    あ、wssxについては勿論記事も書きますが、フォントサイズやステータスパネルにおけるTimes New Roman、Lucida Handwritingの指定なども含めた方がいいと思っています。

    そういうことでしたら配布した方がよさそうですね。本体へ同梱してもいいのですが、流れからするとその記事からダウンロードできるようにした方がよいような気もします。

  52. k4nagatsuki reporter

    ところでレベルのところのアンチエイリアスですが、これはWindowsのAPIでテキストを描画しているはずです。ですから、環境によって描画が異なると考えて良いと思います(ClearTypeのOn/Offとか)。

  53. 暗黒 騎士

    >Liarさん

    ありがとうございます。 あ、それはOSの設定の違いかなと思います。 上記SSは余計な可能性を排除するため、アンチエイリアス関連の設定を全切りして1.50で撮影しました。

    >長月さん

    なるほど。それについてはproxiさんの投票で問題認識には十分かと思ったのですが、 縁取りが実装されたのは振り返ってみると12.4α1ですので、まだ十分に移行していない可能性も考慮するとPy1での反応を待った方がいいかも知れません。了解いたしました。

    縁取りについては自分は有用だと思いますし、実際有効にしてあります。そこまで言われるとなんだかものすごい駄目出ししてしまった感じ&せっかちで申し訳ないです。

    同梱してもいいのですが、流れからするとその記事からダウンロードできるようにした方がよいような気もします。

    悩み所でした。攻略wikiはあんまり読まれていない感じはあるのでどちらかといえば本体に同梱した方が良いかとは思いますが、本体に含まれるファイルは極力減らした方が良いと思うのでひとまずはwikiで別に配布しようかと思います。

    ではのちほど1・3についてPRさせていただきます。

  54. k4nagatsuki reporter

    すいません、一晩経ってちょっと考えが変わりました。事の軽重はあっても、せっかくのβ期間ですし、カード名をあわせる事を試してみるのも悪くないかと思います。反発が出たら戻す事ができます。ChangeLog.txtに以下のように書いておくのがよいでしょう。

    • CardWirthに合わせて「カード名の文字を滑らかにする」をデフォルトでオフにし、文字サイズを変更した。これは試験的な変更で、このオプションがオンの方がよいという意見が多数あるようであれば再度オンに戻します。

    縁取りはオンのままでよいでしょうか? この機能には明快なメリットがあると思います。

  55. 暗黒 騎士

    試してみたところ良い感じでした。自分的には問題ないかと思います。 では再度pullrequestさせていただきます。

  56. k4nagatsuki reporter
    • pull request #1471
    • pull request #1472

    上記をマージしました。

    テスト版を作る前にちょっと小細工します。すでに自分でカード名のフォントを変更している人は、アンチエイリアスの有無がバージョンアップで変更されるとぎょっとされるかもしれません。そのため、設定のデータバージョンを上げ、以前のバージョンでカード名フォントを変更している場合に限りアンチエイリアスがオンのままになるようにします。

  57. k4nagatsuki reporter

    pull request #1473

    上記の変更を行いました。設定のデータバージョンは2です。

  58. 暗黒 騎士

    お疲れ様です。すいません、まだレベルがズレていて根本的な理由がわかりました。

    現状の式self.levelimg.blit(subimg, (w - subimg.get_width(), cw.s(0))だと subimg.get_width()数字の幅によって描画位置がバラバラになるんですね(レベル7とレベル4で比較するとわかりやすい

    self.levelimg.blit(subimg, (w - 22 , cw.s(0)))にすれば合うと思うのですが、絶対値で指定するとなにか不味いことはあるでしょうか。

  59. k4nagatsuki reporter

    フォントサイズを変更できるので、まずいです(本当は字間もサイズを参照するべきです)。

    ですので描画したサイズを参照するのは必須として、それでも調節すれば合わせられそうな気もするのですが。

  60. 暗黒 騎士
        def set_levelimg(self, level):
    ~~~~~
            for char in reversed(s):
                subimg = font.render(char, True, (0, 0, 0))
                if cw.s(25) < subimg.get_width() < cw.s(30): #このレンジではCWに合わせる
                    self.levelimg.blit(subimg, (w - cw.s(22), cw.s(0)))
                else:
                    self.levelimg.blit(subimg, (w - subimg.get_width(), cw.s(0)))
                w -= min(cw.s(18), font.size(char)[0])
    

    うーん、とりあえずデフォルトで一致すればいいのでこんな感じでどうでしょうか…

  61. k4nagatsuki reporter

    色々試してみてちょっと信じられないような気がしているのですが、どうも文字の配置は数値によって違うようです。5の位置が合うようにすると、6は少し左へ、7は異常に右に寄ります。

    もしかすると勘違いかもしれません。試してみてください。

    もしこれが本当なら、フォントを変更可能なエンジンとしては、そういうどっちつかずの処理はしたくないところです。将来禍根に(といっても小さな禍根でしょうが)なりそうな気がします。

  62. 暗黒 騎士

    あ、levelsize = cw.cwpy.setting.fonttypes["level"][2]でサイズを取得して self.levelimg.blit(subimg, (w - (6 + levelsize / 2), cw.s(0)))でも大体合いますね。

  63. 暗黒 騎士

    おっと入れ違いでした。CW+MS明朝ではそのようなので、get_widthを使って均等に配置しようとすると合わないのではないかと。なのでピンポイントで絶対指定するかサイズ取得で左に寄せていくのが安全かと思うのですが…。

  64. k4nagatsuki reporter

    等幅フォントなので右から計算しても位置は同じになるはずですが、それが揺れ動くのが異様です。で、調べてみたのですが、その揺れ幅の正体は斜体文字のオーバーハング(張り出し)幅でした。等幅フォントであっても、文字によって異なる幅になります。

    これでするべき事が分かりました。

    1. 文字サイズを変更可能なので、必ず右から計算する必要がある。
    2. 文字ごとの張り出し幅の違いが影響しないように配置する必要がある。

    これに基づいてちょっと作業してきます。出来上がったらレビューをお願いします。

  65. k4nagatsuki reporter

    75はCWでは異常に右に寄りすぎていますし、実際に描画サイズがカード幅をはみ出しています(見た目には分かりませんが、内部的にはみ出しています)。

    これを無理やり合わせると、他のフォントで見た目にも文字がはみ出してしまう可能性があります。はみ出さないように調節すると75の位置は合いません。どうしたものでしょう。

  66. 暗黒 騎士

    MS明朝の例外仕様にするというのはダメですかね?

    固定設定で完全に全てのフォント・サイズにマッチさせるのは無理なのではみ出すフォントを切り捨てるかwidth値を任意設定できるようにするかでしょうか…

  67. k4nagatsuki reporter

    例えば私はCWの7の位置は右すぎて非常に気に食わないのですが、この位置でないとダメだという人はいるんですかね? その辺りが疑問です。@akkwさんはどうでしょう。

  68. 暗黒 騎士

    自分はCWに慣れすぎていることもあり、当初よりPyの表示が中央によりすぎているという印象がぬぐえなかったもので、できれば完全に合わせたいところですね…(スクリーンショットでも一目でPyか判別ができてしまうほど目立つところですし)。右すぎるというのもわかるので例外的処理でもいいです。斜体ではかっちりはまっていても非斜体フォントが右に寄りすぎるとバランスが悪いというのはあるのでif not cw.cwpy.setting.fonttypes["level"][5] == True:で分岐させてもいいと思います。

  69. k4nagatsuki reporter

    オーバーハングや実際の描画位置をきちんと考慮すればそこまで中央に寄りません。論より証拠なので試してみてください7の人を68の人と並べると分かりやすいと思います。

    これでも違和感があるのでしたら、仕方ないので何か特殊な手を考えなくてはなりません。

  70. 暗黒 騎士

    確かに7についてはほぼ準拠しているように見えます。

    ただ自分の環境ですと他、特に1が明らかに右に寄りすぎていると感じました(あくまで7のプレビュー目的の設定でしたらすいません) 画像はGroupASK、デフォ設定

  71. k4nagatsuki reporter

    右幅が開きすぎるフォントに引っ張られて調節をやり過ぎましたか。再調節しましょう。

  72. k4nagatsuki reporter

    ところで、これらの数値の描画内容自体が実はCWと完全には一致しません。どうもCWでは普通のボールド体より少し太くなっているように見えます。しかしCreateFont()関数に最大のウェイト値を指定してもその太さにはならないので、何か特殊な加工をしているのかもしれません。これを完全に合わせる事はおそらく容易ではありません。

  73. 暗黒 騎士

    よく見比べないとわからないレベルかと思います。斜体のチェックを外すと見えなくなるのは大丈夫でしょうか。

    どうもCWでは普通のボールド体より少し太くなっているように見えます

    そうですね。これについてはアンチエイリアスの有無が影響しているのかと思っていました。

  74. k4nagatsuki reporter

    あれ、斜体でないとどこかに吹っ飛んでしまいますね。どうしてそんな事になるんだろう。その点だけ直してpull requestします。

    アンチエイリアスの有無は関係ないと思います。7の下端など見ると、字形そのものが違うようです。

  75. 暗黒 騎士

    本当はなんとか自分で出来ればよかったのですが、力不足でご足労お掛けしました。

    だいぶ違和感がなくなったと思います。ありがとうございました。

  76. 暗黒 騎士

    キャラ情報ダイアログの修正に関連して、デフォルト設定を以下のCW準拠に変更したいです。

    ステータスボタン [UI用][可変幅ゴシック] サイズ1412
    ボタン [UI用][可変幅ゴシック]
    タブ [UI用][可変幅ゴシック]
    キャラクタ見出し2 [UI用][可変幅明朝]
    

    ss.png

    また、現在はスキンオプションにより「日本語に置き換えたスキンを作るのに障害となる」という問題がクリアされていることに加え、 太字+斜体が同時に効かないバグが修正されたことで、本家とほぼ同一にできるようになっているのでTimes New Romanをデフォ指定することのメリットが大きくなったように思います。 MSフォントの例外処理と同じように以下のように追加するのはどうでしょうか。

            if u"Times New Roman" in wx.FontEnumerator.GetFacenames():
                self.fonttypes["charaparam"] = "", u"Times New Roman",-1,True, True, True
                self.fonttypes["dlgtitle"] = "", u"Times New Roman",-1,True, True, False
                self.fonttypes["sbarpanel"] = "", u"Times New Roman",15,True, True, True
    

    前々回の英字フォントの導入については、非Windows環境で中途半端に合わせたところでメリットは低い(好きにカスタマイズした方がよい)し同梱フォントは少ない方が良いという風に考えが変ったので撤回します。

  77. k4nagatsuki reporter

    上のデフォルト設定に関しては異存ありません。

    下のTimes New Romanの使用にはなお問題があります。スキンオプションでフォント設定を上書きする事は可能ですが、これは「すべて上書き」するときだけ使用可能です。スキンの作者はプレイヤーのフォント設定を尊重したいかもしれません。その時、ある箇所に英文フォントが使用されていると、スキン作者が取れる選択肢は相当限られてしまします。

    • 日本語を使わない。「銀貨%s枚」のような表示は諦める。
    • Windowsのフォントリンクに任せる。すなわち日本語部分を代替フォントで表示する。ただし、環境にもよりますが、Times New RomanはMS UIゴシックのようなフォントで代替されるようです。数値部分と日本語部分がちぐはぐな表示になるので、選択肢に入らないかもしれません。
    • ユーザのフォント設定の尊重を諦める。

    標準の環境で英文フォントが使用されていると、このようにスキン作者の選択肢はあっちを立てればこっちが立たずで事実上無くなってしまうおそれがあります。

    それに対してエンジン側が提供できる技術的解決策もありますが、

    • フォント設定を一部だけ上書きできるようにする
    • 日本語部分と英文部分のフォントを個別に指定できるようにする

    どちらも実現は容易な事ではありません。


    ただ、まあ、たしかにMS 明朝の表示はそっけない感じがしますし、ずっとここを合わせたいと主張されて来られた事ですから、私としてもすげなく反対するわけにはいきません。

    上記した問題を受け入れた上でここのフォントを合わせるべきかどうか、できれば他の方の意見をお聞きしたいです。賛成者が多いようであれば、私としても強硬に反対はしません。


    もしTimes New Romanの使用を実装する事になった場合、条件の部分にはos.platform == "win32"を加えてください。私はWindows以外のOSでフォントリンクがちゃんと動いているのを見た事がありません。

  78. Iraka.T

    Times New Romanの指定に関しては異議を唱えます。

    「役割別フォント」は項目数が多く、相当の慣れがなければ目当ての項目を探すことが困難です。物理フォントは「基本フォント」で指定し、「役割別フォント」では基本フォント指定を参照する原則から外れると、その部分は一見、フォントを変えられないように感じさせるでしょう。

  79. 暗黒 騎士

    ありがとうございます。では上については今パーティ情報ダイアログとレベル調節のスライダを調整しているのですが (そのうち課題を立てることになると思います)その際一緒にPRさせていただきます。

    フォント設定を一部だけ上書きできるようにする

    あれ? スキンには1つから定義可能なのでは?と思ったらスキン設定>デフォルト設定という構造なんですね。 スキン設定>ユーザー設定>デフォルト設定というような三重構造になっていると勘違いしていました…

  80. Log in to comment