TextFitChecker(UI文字のはみ出しチェッカー・ボタンや吹き出しの文字がはみ出す・切れる・変な所で改行する箇所を、ゲームを動かさず一覧にする・TextMeshPro / uGUI Text 対応・Unityエディター拡張) | 買い切り
- ダウンロード商品¥ 1,000





文言の差し替えや翻訳、解像度の違いで、ボタンや吹き出しの文字がはみ出す・「…」で切れる・句読点が行頭に来る。そんな箇所を、画面を1つずつ目で見て回る代わりに、シーンとプレハブを走査して、理由と数値つきの一覧にする Unity エディター拡張です。行をクリックすると、該当オブジェクトを選択して Ping します。 【できること / できないこと】できるのは、TextMeshPro(TextMeshProUGUI・TextMeshPro)と uGUI の Text の「はみ出し・切れ・縮みすぎ・見切れ・変な改行」の検出と一覧表示です。自動修正(フォントサイズや枠の変更)、ゲーム実行中のチェック、翻訳そのものはできません。UI Toolkit(UXML)のテキストは対象外です。数値は目安なので、行をクリックして目視で確認してください。 【対象になる素材・必要なもの(購入前にご確認ください)】 ・TextMeshPro が入った Unity プロジェクト(Unity 6 は標準の UI パッケージに含まれる TMP、2022.3 は com.unity.textmeshpro)。TMP Essentials が未導入なら、先に Window > TextMeshPro > Import TMP Essential Resources を実行してください(TMP の同梱物で、本アセットには含まれません) ・対象は、シーン(開いているもの / Build Settings の全シーン)、プロジェクト内のプレハブ、指定フォルダ内のシーンとプレハブにある、TMP_Text と UnityEngine.UI.Text です。非アクティブなオブジェクトも含めるか選べます ・Unity Localization は任意です。入っていなくても使えます。入っているプロジェクトでは、ロケールごとの文言に置き換えて測る機能が使えるようになります(com.unity.localization 1.5.14 を入れた Unity 6 で確認)。ロケールは切り替えず、テーブルの文言をそのまま測ります({0} などの置き換え部分は展開せず、仮の値「12」に置換して測ります) ・日本語の行は、日本語フォントを割り当てると表示どおりに測れます。同梱のサンプルシーンは、TMP の既定フォントに日本語の字形がないため、日本語の行が □ 表示になります(判定は元の文字で行います)。第三者のフォントは同梱していません 【確認状況(購入前にお読みください)】体験版はありません。購入前の確認は、販売画像と説明文でお願いします。動作確認は Windows / Unity 6(6000.5)のみです。Unity 2022.3 LTS、URP / HDRP の実プロジェクトでの動作は未確認です。ウィンドウの見た目・結果の表・行クリックでの選択と Ping・保存ダイアログ・進捗バーは、制作側では batchmode の自動テストまでで、手で触っての確認をしていません。Localization の PropertyVariants で言語別にフォントを切り替えている構成の実プロジェクトでの確認もしていません。販売画像の UI と数値は、制作側で Unity 6 を実際に動かして描画・測定した出力ですが、エディター画面そのもののスクリーンショットではありません。 買い切り1,000円・追加費用なしです。本製品は SaiRollStudio が制作した非公式ツールであり、Unity Technologies の公式製品ではありません。 【こんなお困りごとに】 ・日本語⇔英語など多言語化したら、ボタンの文字が枠からはみ出した、吹き出しが「…」で切れた ・解像度やアスペクト比を変えると、一部のテキストだけ2行になって枠から出る ・自動縮小(Auto Size)が効いて、一部の文字が小さくなりすぎている ・RectMask2D / Mask の中のテキストが見切れている ・英単語や数字の途中で改行される、行頭に「。」が来る(文字列に改行を入れた場合など) ・全画面を目で見て回る作業を減らしたい 【特長】 ・5種類の判定(各行に種類と数値): はみ出し(枠から出ている量・横/縦 px・許容 px は設定可で既定 3)/ 切れ(TMP の Ellipsis・Truncate、uGUI Text の表示しきれない行)/ 縮みすぎ(自動縮小が最大の N% 未満・既定 60%)/ 見切れ(親の RectMask2D・Mask からの出)/ 改行(日本語の禁則・英単語や数字の途中改行・最終行が1〜2文字だけ。最終行の判定は設定でオン/オフ・既定オン。言語は文字種から自動判定、固定も可) ・範囲: 開いているシーン / Build Settings の全シーン / 全プレハブ / 指定フォルダ ・解像度: 1920x1080・1280x720・2560x1080・1080x1920・任意を複数選べます。Screen Space の Canvas は、CanvasScaler の設定を反映した大きさで測り、解像度ごとに行が出ます(測るあいだだけ切り替え、終わったら元に戻します) ・ストレステスト(既定 OFF): 今の文言を +30% / +50% / 任意の%長くした仮の文でも測ります。元の文言はシーンやプレハブに保存しません(制作側のテストで、実行後にシーン・プレハブのファイルのハッシュが変わらないことを確認) ・「注意」の行: Localization でロケールにキーや文言が無いとき、枠の幅・高さが0以下で測れない文字は、黙って飛ばさず「注意」の行で出します ・結果の表: 種類・アセット・オブジェクトのパス・解像度・ロケール・数値・文字列の先頭。種類で絞り込み、CSV 書き出し(UTF-8 BOM)。走査は進捗バー+キャンセル可 ・走査が終わると、開いていたシーンの構成と全文字を元に戻します。ウィンドウは日本語 / English 切り替え。Editor 専用でビルドには入りません。外部ライブラリの同梱なし ・サンプル付き: わざと問題を仕込んだ UI(はみ出すボタン・切れる吹き出し・縮みすぎ・マスクで見切れる行・英単語の途中改行・日本語の禁則・uGUI Text の切れ・正常な行)のサンプルシーン 【同梱物・導入】 配布ファイルは zip で、中身は unitypackage・README_ja.txt・LICENSE.txt です。unitypackage をインポートすると Assets/TextFitChecker/ に入ります(Editor・Samples・README_ja.txt・LICENSE.txt)。サンプルが不要なら Samples フォルダごと削除して構いません。 【使い方】 1. unitypackage をインポート(TMP Essentials が未導入なら先に導入) 2. メニュー Tools > TextFitChecker > はみ出しチェック を開く 3. 範囲と解像度を選ぶ(必要なら、非アクティブも含める・ストレステストをオン) 4. 「チェック開始」。結果の表で行をクリックすると、該当オブジェクトを選択して Ping(プレハブは開く) 5. 直したあと、もう一度チェック。必要なら CSV 書き出し サンプルは Assets/TextFitChecker/Samples/Scenes/TextFitCheckerSample.unity を開いて「チェック開始」(範囲: 開いているシーン)を押すと、仕込んだ問題だけが出て、正常な行は出ません。 【確認した結果(Unity 6・検証係の自動テスト)】 ・収まっている自作の UI 463 個で、はみ出し系の誤検出は既定(許容 3px)で 0 件でした(旧既定 2px のときは右揃え+太字で 5 件出たため既定を変更)。最終行判定を OFF にすると、日本語の段落の改行の指摘は本物の禁則だけになりました。溢れる単行 20/20、縮みすぎ 10/10 を検出 ・同梱サンプル(文字 18 個)で、仕込んだ 7 種をすべて検出し、誤検出 0 ・ストレステスト・範囲・解像度を変えた 16 通りの実行後も、シーン・プレハブのファイル、開いているシーンの構成、未保存の状態は変わりませんでした。解像度プリセットの測定後、Canvas・CanvasScaler・RectTransform は元どおりでした ・EditMode テストは、Localization なし 14 件・あり(1.5.14)16 件がすべて合格。コンパイルエラー0・警告0。新しい空のプロジェクトへ導入してコンパイルエラー0・警告0、メニューと型があることも確認 ・枠より 20px 長い行 → はみ出し 横 20.00。自動縮小が最大の 50% → 縮みすぎ 50.0%(70% は出ない)。RectMask2D の外へ 30px → 見切れ 29.99。折り返し判定は、行頭「。」・行末「「」・英単語途中・数字途中・最終行1文字を検出し、正常な日本語 / 英語の段落は 0 件 ・Localization 入りで ja / en の2ロケール: en だけ溢れる文言で en の行だけ出る。非アクティブ・空文字・フォント未設定・Canvas 無しでも例外が出ない。CSV がカンマ・引用符・改行・日本語入りでも壊れない ・処理時間: 1,000 個のテキストで約 0.14 秒(batchmode・この PC・1解像度。実 GUI の表示時間は含みません) 上はすべて、制作側が用意した合成 UI と同梱サンプルでの値です。実際のゲームの UI・画面での確認は、制作側では行っていません。日本語の段落では、「最終行が2文字だけ」の判定が約2割に出た例があるため、気になる場合は設定でオフにできます。 【制限・注意(必ずお読みください)】 ・動作確認は Windows / Unity 6 のみです。Unity 2022.3 LTS は未確認です(2022.3 でも動くように書いていますが、実機では確認していません)。URP / HDRP も未確認です(描画には依存しない作りです) ・日本語の禁則: TMP は標準で行頭禁則の規則を適用するため、自動の折り返しだけで違反が出ることは、実機では出にくいです。主な対象は、文字列に入れた改行や、禁則の規則が効いていない設定の場合です。英単語や数字の途中改行は、幅の狭い枠で実際に起きます ・コードで動的に流し込む文言は、実行しないと分かりません(LocalizeStringEvent 以外の仕組みの文言は、ストレステストで代用してください) ・LayoutGroup / ContentSizeFitter が絡む複雑な UI は、文字の周辺の最上位レイアウトだけを再計算する簡易方式のため、実際の見た目と差が出ることがあります。大きく複雑な UI での差は未検証です ・表示する px は Canvas 座標(論理 px)です。倍率が 1 でないときの実画面の px とは異なります ・uGUI Text は、リッチテキストのタグを含むと改行判定を省略します ・できないこと:自動修正、ゲーム実行中のチェック、翻訳、UI Toolkit(UXML)のテキスト ・導入前に、プロジェクトのバックアップをおすすめします(シーンは測定後に元へ戻しますが、未保存の変更があるときは先に保存の確認が出ます) 【ライセンス】 購入者は、本ツールを自分の作品(ゲーム・ワールド・アプリ等)の制作に自由にお使いいただけます(商用利用も可)。本アセット(ツール本体・ソースコード・サンプル)の再配布・転売・譲渡は禁止です。詳細は同梱の LICENSE.txt を参照してください。Unity は Unity Technologies の商標または登録商標です。





