キャラッシュ形式(JSON) の読み方 ■ これは何か キャラッシュのキャラクター1人分を、機械が読み書きできる形(JSON)で書き出したものです。 人が読んで手で直す用途にはキャラッシュテキスト(txt)があります。画像を一緒に持ち出して戻せるのはこの形式だけです。 ■ ZIP の中身 character.json キャラクターのデータ(この説明の対象) images/1.webp, 2.png … 画像(1 がメイン。character.json の images に並ぶ順) キャラッシュ形式の読み方.txt この説明(取り込みでは無視されます) 複数人をまとめて書き出した ZIP では、「キャラ名_キャラクターID」のフォルダに1人ずつ入ります。 ■ character.json の構造 format "charash-character"(固定) formatVersion 1(形が変わると上がります。取り込みは過去の版も読みます) exportedAt 書き出した日時 generator 書き出したサイト profile 共通部。名前・プロフィール・タグ・自由項目・メモ・所持品・経験の記録・セッション記録・公開状態 images 画像の一覧(file がZIP内のファイル名。label・main・mimeType) systems システム別部。emoklore / gaiacare / coc6 / coc7 / 10_st / none のうち、書き出したもの charash キャラッシュ固有部。書き出し元のID(sourceToken)・設定・ネタバレ用メモ・画像の表示位置・年齢修正の適用記録 外部ツールは無視してかまいません。中身は定めていません 数値は「最終値(value)」と「内訳」の両方があります。読むだけなら value を見てください。 書き戻すときは内訳(能力値なら base・ageBonus・otherBonus、技能なら base・occupation・interest・growth・other)を書きます。 value・合計・判定値・自動計算の値は参照用で、取り込みでは読み飛ばします。 ■ 取り込みの規則(キャラッシュテキストと同じ) ・書き出しで外したグループ・システムは JSON に入らず、取り込みでも触れません ・項目が無い → 今の値を維持。項目があって空(""・[]・null) → 空にする(自動計算の項目は自動に戻る) ・一覧(メモ・所持品・セッション記録・武器など) → 書いてある内容で丸ごと置き換え ・技能だけは例外 → 書いた技能だけ更新し、書かなかった技能は維持。取り込みで技能は削除しません ・技能の行の中でも、書いた項目だけ更新します。内訳が無く value だけなら、差分を「その他」に入れます ・画像 → images があれば置き換え(images: [] なら全部消す。確認画面の「画像は現在のものを残す」で止められます)。  images が無ければ画像には触れません(「画像を含めない」で書き出したときはこの形です) ・形式に合わないファイル(知らない項目・型違い・知らないID)はファイル全体を取り込みません。どこが合わないかを表示します ■ 取り込み先の決まり方 ・charash.sourceToken が自分のキャラクターのIDと一致 → そのキャラクターを上書き ・一致しない、または無い → 同名(空白・括弧の中を無視)のキャラクターがいれば、そのキャラクターにまとめる(確認画面で「別のキャラクターとして作成」も選べます)。いなければ新しいキャラクターとして作成 ・上書き・まとめるの前の状態は保存履歴に残ります ■ IDについて 技能・能力値・採用ルール・技能の分類には、サイトが定めたID(例: spot_hidden・STR・supp_2010)と表示名の両方が入っています。 取り込みはIDで照合し、表示名は読む人のためのものです。 自分で作ったもの(独自技能・武器・メモ・セッション記録)には外に出すIDがありません。取り込みでは内容の一致と位置で対応づけます。 ■ 形式の定義書と見本 形式の定義書(JSON Schema): https://charash.jp/api/v1/schema/character-1.json 見本: https://charash.jp/api/v1/samples/emoklore.json ・ coc6.json ・ coc7.json 説明ページ: https://charash.jp/developers