Liminalia

文字数と表記ゆれ

シナリオの台詞と地の文の文字数と、表記ゆれの候補を集計する。lim stats と、Studio のチェックの画面が同じ集計 (packages/lang の textStats と findVariants)を使う。

使い方

lim stats [プロジェクト]                 # exports/stats に 統計.md と CSV を書き、要約を出す
lim stats [プロジェクト] --out 集計       # 書き出すフォルダ(プロジェクトからのパス)
lim stats [プロジェクト] --json          # JSON を出すだけ(ファイルは書かない)

書き出すもの(CSV は Excel で開けるよう BOM 付き):

ファイル中身
統計.md合計、ファイル別、シーン別、話者別の表と、表記ゆれの候補(少ない書き方の場所)
ファイル別.csv / シーン別.csv台詞と地の文の行と文字数、選択肢の数と文字数、ボイスの付いた台詞の数
話者別.csv話者ごとの台詞の行と文字数、ボイスの付いた台詞の数
表記ゆれ.csv組、種類、書き方、件数、場所(ファイルと行)、抜き出し

Studio では、チェックの画面の問題の一覧の下に「文字数」「ボイス」「表記ゆれ」のカードと、ファイル、シーン、話者ごとの内訳の表、 表記ゆれの組の一覧を出す(チェックの画面を開いたときと、保存して構文チェックを取り直したときに数え直す)。表の行と表記ゆれの場所を押すと、 編集のその行へ移る。表記ゆれの組の「除外」は、その組を liminalia.json の stats.variants.ignore に足す。

数え方

  • 台詞と地の文は一行を一つと数え、選択肢の文は別に数える
  • 文字数は表示される文字だけ。ルビは親文字だけ、本文の中のコマンド({@…})、値の埋め込み({= …})、改行、空白(全角の空白を含む)は 数えない。台詞は外側の括弧(「」 『』 ())を数えない
  • シーンはラベルから次のラベルまで(最初のラベルより前は「先頭」)。マクロ(@define)の中の行は、書いてあるシーンで数える
  • ボイスの付いた台詞は、前の行の @voice、本文の中の {@voice …}、@voice-auto で自動にしている話者の台詞 (@voice-auto-off で止めている間は数えない)。番号の固定(voice-lock.json)があれば、固定に無い台詞は鳴らないので数えない

表記ゆれ

同じ語や記号の別の書き方を組にし、プロジェクトの中で二つ以上の書き方が使われている組を候補として出す(多い書き方を先に出し、 少ない書き方の場所を並べる)。組み込みの組は次の種類。

種類例
漢字とかな(kana)出来る/できる、下さい/ください、頂く/いただく、分かる/わかる/解る/判る、私達/私たち
送り仮名(okurigana)終わる/終る、変わる/変る、行う/行なう、当たる/当る
記号(symbol)…/、、、/…、――/——/──、!?/!?/?!
全角と半角(width)!/!、?/?、全角と半角の数字と英字、半角カナ、長音(ー/-/-)、波ダッシュ(〜/~)
キャラクター名(name)ひらがなとカタカナ、全角と半角、中点や空白だけが違う話者の名前(ユイ/ゆい)、本文の中の名前の中点や空白の揺れ(アンナ/アン、ナ)

「事/こと」のように別の語の一部にもなる組は、組み込みに入れていない(出来事の「出来」は「出来る」として数えない)。

辞書

liminalia.json の stats.variants で組を足し、外せる。作者の手元だけで使う辞書は .liminalia/variants.json に同じ形で書く (二つは重ねて使う)。

"stats": {
  "variants": {
    "add": [["好き", "すき"], ["ユイ", "ゆい"]],
    "ignore": ["kana:できる", "…"],
    "off": ["width"]
  }
}
  • add: 足す組。同じ語の別の書き方を並べる。組み込みの組と同じ書き方を含めると、組み込みの組より足した組を使う
  • ignore: 出さない組。組の名前(lim stats の 統計.md と 表記ゆれ.csv に出る kana:できる など。: の後ろだけでもよい)か、 組に入っている書き方のどれか
  • off: 出さない種類(kana okurigana symbol width name)