Charaenoでは登録された探索者の情報を取得できるWeb APIを公開しています。本ドキュメントではその仕様を解説します。
GitHub Sponsors にて定期的な金銭的支援をしてくださるスポンサーを募集しています。ご支援いただけましたら幸いです。
https://github.com/sponsors/ysakasin
APIには全てGETメソッドでアクセスします。
エンドポイント | 概要 |
---|---|
/api/v1/7th/{id}/summary | 新クトゥルフ神話TRPGの探索者シートの要約 |
/api/v1/6th/{id}/summary | クトゥルフ神話TRPGの探索者シートの要約 |
Charaenoでは全ての探索者にIDが自動で割り当てられ、https://charaeno.com/7th/{id}
のようにして閲覧できます。IDは21文字の英数記号(A-Za-z0-9_-
)からなる文字列です。これはNano IDというUUID v4に似た、より高性能な乱数により生成されるIDです。
新クトゥルフ神話TRPGの探索者シートの要約をJSONで返却します。
出力例
https://charaeno.com/api/v1/7th/h_wQNXeiHPXDEDtG3r2ac/summary
{
"name": "大宮 龍馬",
"occupation": "学芸員",
"age": "25",
"sex": "男",
"residence": "",
"birthplace": "",
"characteristics": {
"str": 85,
"con": 40,
"pow": 60,
"dex": 45,
"app": 50,
"siz": 70,
"int": 65,
"edu": 70
},
"attribute": {
"hp": 11,
"mp": 12,
"mov": 8,
"build": 1,
"db": "+1D4",
"san": {
"value": 65,
"max": 99
},
"luck": 78
},
"skills": [
{
"name": "威圧",
"value": 15,
"edited": false
},
{
"name": "言いくるめ",
"value": 5,
"edited": false
},
{
"name": "医学",
"value": 1,
"edited": false
},
{
"name": "運転(自動車)",
"value": 20,
"edited": false
},
{
"name": "運転()",
"value": 20,
"edited": false
},
{
"name": "応急手当",
"value": 30,
"edited": false
},
{
"name": "オカルト",
"value": 55,
"edited": true
},
{
"name": "隠密",
"value": 50,
"edited": false
},
{
"name": "回避",
"value": 22,
"edited": false
},
{
"name": "科学()",
"value": 1,
"edited": false
},
{
"name": "鍵開け",
"value": 1,
"edited": false
},
{
"name": "鑑定",
"value": 5,
"edited": false
},
{
"name": "機械修理",
"value": 10,
"edited": false
},
{
"name": "聞き耳",
"value": 20,
"edited": false
},
{
"name": "近接戦闘(格闘)",
"value": 40,
"edited": true
},
{
"name": "近接戦闘()",
"value": 0,
"edited": false
},
{
"name": "クトゥルフ神話",
"value": 0,
"edited": false
},
{
"name": "芸術/制作()",
"value": 5,
"edited": false
},
{
"name": "経理",
"value": 5,
"edited": false
},
{
"name": "考古学",
"value": 1,
"edited": false
},
{
"name": "コンピューター",
"value": 5,
"edited": false
},
{
"name": "サバイバル()",
"value": 10,
"edited": false
},
{
"name": "自然",
"value": 10,
"edited": false
},
{
"name": "射撃(拳銃)",
"value": 20,
"edited": false
},
{
"name": "射撃(ライフル/ショットガン)",
"value": 25,
"edited": false
},
{
"name": "射撃(弓)",
"value": 50,
"edited": true
},
{
"name": "重機械操作",
"value": 1,
"edited": false
},
{
"name": "信用",
"value": 40,
"edited": true
},
{
"name": "心理学",
"value": 10,
"edited": false
},
{
"name": "人類学",
"value": 76,
"edited": true
},
{
"name": "水泳",
"value": 20,
"edited": false
},
{
"name": "精神分析",
"value": 1,
"edited": false
},
{
"name": "説得",
"value": 10,
"edited": false
},
{
"name": "操縦()",
"value": 1,
"edited": false
},
{
"name": "跳躍",
"value": 20,
"edited": false
},
{
"name": "追跡",
"value": 10,
"edited": false
},
{
"name": "手さばき",
"value": 10,
"edited": false
},
{
"name": "電気修理",
"value": 10,
"edited": false
},
{
"name": "電子工学",
"value": 1,
"edited": false
},
{
"name": "投擲",
"value": 20,
"edited": false
},
{
"name": "登攀",
"value": 20,
"edited": false
},
{
"name": "図書館",
"value": 82,
"edited": true
},
{
"name": "ナビゲート",
"value": 10,
"edited": false
},
{
"name": "変装",
"value": 5,
"edited": false
},
{
"name": "法律",
"value": 5,
"edited": false
},
{
"name": "ほかの言語()",
"value": 1,
"edited": false
},
{
"name": "母国語(日本語)",
"value": 70,
"edited": false
},
{
"name": "魅惑",
"value": 15,
"edited": false
},
{
"name": "目星",
"value": 56,
"edited": true
},
{
"name": "歴史",
"value": 35,
"edited": true
},
{
"name": "伝承(馬)",
"value": 31,
"edited": true
},
{
"name": "乗馬",
"value": 60,
"edited": true
}
],
"possessions": [
{
"name": "財布",
"count": "",
"detail": ""
}
],
"weapons": [
{
"name": "素手",
"value": "25",
"damage": "1D3+DB",
"range": "",
"attacks": "",
"ammo": "",
"malfunction": ""
}
],
"credit": {
"spendingLevel": "2万円",
"cash": "16万円",
"assetsDetails": "400万円"
},
"backstory": [
{
"name": "容姿の描写",
"entries": [
{
"text": "肩幅が広く、流鏑馬の経験などから上半身は非常によく鍛えられているが、下半身のトレーニングはおざなりで歪な体格をしている。"
}
]
},
{
"name": "イデオロギー/信念",
"entries": [
{
"text": "人間と多くの動物には不思議な縁がある。それを証明するために興味深い逸話や神話を収集し、分析し、世に広める。",
"keyConnection": true
}
]
},
{
"name": "重要な人々",
"entries": [
{
"text": "祖父、大宮 禅一。馬に関する逸話、神話をいつも話してくれた。そして馬との上手な付き合い方、馬と人間の関係性の素晴らしさを教えてくれた。流鏑馬につても、馬についても最もお手本となる存在。"
}
]
},
{
"name": "意味のある場所",
"entries": [
{
"text": "実家の蔵。先祖と馬に関する膨大な記録が残されており、いまだに目を通しきれていない。訪れるたびに新たな発見がある。"
}
]
},
{
"name": "秘蔵の品",
"entries": [
{
"text": "蹄鉄:実家で共に育った愛馬の蹄鉄。神道としては何の意味もないが、幸運のお守りとして自室のドアに飾っている。"
}
]
},
{
"name": "特徴",
"entries": [
{
"text": "おしゃべり。互いに言葉を使うのだから、馬と比べて人間と心を通じ合わせるのは楽だと思っている。"
}
]
},
{
"name": "負傷、傷跡",
"entries": []
},
{
"name": "恐怖症、マニア",
"entries": []
},
{
"name": "魔導書、呪文、アーティファクト",
"entries": []
},
{
"name": "遭遇した超自然の存在",
"entries": [
{
"text": "ギャア=ヨトン"
},
{
"text": "クン=ヤンの民"
}
]
}
],
"fellows": [
{
"name": "丘 瑠人",
"url": "https://charaeno.sakasin.net/7th/SrHMXtSovC4nDvjyKmgol"
}
],
"note": "家は神社。高校生くらいまで流鏑馬をやらされていた。\n\n\n「まあ、馬みたいなもんだよ」「これは…… 馬じゃないね」\n\n\n【通過シナリオ】\n - 苦難の民は陰界と消ゆ",
"chatpalette": "1D100<={SAN} 正気度ロール\nCC<=78 幸運\nCC<=85 STR\nCC<=40 CON\nCC<=60 POW\nCC<=45 DEX\nCC<=50 APP\nCC<=70 SIZ\nCC<=65 アイディア\nCC<=70 知識\nCC<=55 オカルト\nCC<=22 回避\nCC<=20 聞き耳\nCC<=40 近接戦闘(格闘)\nCC<=50 射撃(弓)\nCC<=40 信用\nCC<=76 人類学\nCC<=82 図書館\nCC<=70 母国語(日本語)\nCC<=56 目星\nCC<=35 歴史\nCC<=31 伝承(馬)\nCC<=60 乗馬\n1D3+{DB} 素手"
}
export interface Investigator {
name: string // 名前
occupation: string // 職業
age: string // 年齢
sex: string // 性別
residence: string // 住所
birthplace: string // 出身
// 各能力値の現在値
characteristics: {
str: number
con: number
pow: number
dex: number
app: number
siz: number
int: number
edu: number
}
// 耐久力等の現在値および最大正気度
attribute: {
hp: number // 耐久力
mp: number // マジック・ポイント
mov: number // 移動率
build: number // ビルド
db: string // ダメージ・ボーナス。0の場合には "+0" となる
san: {
value: number
max: number
},
luck: number
},
skills: Array<Skill>
weapons: Array<Weapon>
possessions: Array<Possession> // 装備と所持品
// 収入と財産
credit: {
spendingLevel: string
cash: string
assetsDetails: string
}
backstory: Array<Backstory>
fellows: Array<Fellow> // 仲間の探索者
note: string
chatpalette: string // チャットパレットに用いるための改行区切りのコマンド一覧
portraitURL?: string // 探索者プロフィール画像のURL
}
interface Skill {
name: string
value: number // 技能の合計値
edited: boolean // 技能値が編集されているかどうか。技能の合計値が初期値と異なる場合 true となる
}
interface Weapon {
name: string // 名前
value: string // 技能値。数値とは限らないことに注意
damage: string // ダメージ
range: string // 射程
attacks: string // 攻撃回数
ammo: string // 装弾数
malfunction: string // 故障ナンバー
}
interface Possession {
name: string // 名前
count: string // 所持数。数値とは限らないことに注意
detail: string // 物品の詳細説明
}
interface Backstory {
name: string
entries: Array<BackstoryEntry>
}
interface BackstoryEntry {
text: string
keyConnection?: boolean // エントリがキーコネクションに指定されていると true となる
}
interface Fellow {
name: string
url: string // 妥当なURLとは限らないことに注意
}
クトゥルフ神話TRPGの探索者シートの要約をJSONで返却します。
出力例
https://charaeno.com/api/v1/6th/Ot1AbujwN3lYS3zpUP_hE/summary
{
"name": "試験 ためす",
"occupation": "試験官",
"degree": "博士(試験)",
"birthplace": "",
"mentalDisorder": "",
"age": "",
"sex": "",
"characteristics": {
"str": 10,
"con": 10,
"pow": 10,
"dex": 10,
"app": 10,
"siz": 10,
"int": 18,
"edu": 21
},
"attribute": {
"hp": 10,
"mp": 10,
"db": "+0",
"san": {
"value": 50,
"max": 99
}
},
"skills": [
{
"name": "言いくるめ",
"value": 5,
"edited": false
},
{
"name": "医学",
"value": 55,
"edited": true
},
{
"name": "運転(自動車)",
"value": 20,
"edited": false
},
{
"name": "運転()",
"value": 20,
"edited": false
},
{
"name": "応急手当",
"value": 30,
"edited": false
},
{
"name": "オカルト",
"value": 5,
"edited": false
},
{
"name": "回避",
"value": 20,
"edited": false
},
{
"name": "化学",
"value": 1,
"edited": false
},
{
"name": "鍵開け",
"value": 1,
"edited": false
},
{
"name": "隠す",
"value": 15,
"edited": false
},
{
"name": "隠れる",
"value": 10,
"edited": false
},
{
"name": "機械修理",
"value": 20,
"edited": false
},
{
"name": "聞き耳",
"value": 25,
"edited": false
},
{
"name": "クトゥルフ神話",
"value": 0,
"edited": false
},
{
"name": "芸術()",
"value": 5,
"edited": false
},
{
"name": "経理",
"value": 60,
"edited": true
},
{
"name": "考古学",
"value": 1,
"edited": false
},
{
"name": "忍び歩き",
"value": 10,
"edited": false
},
{
"name": "写真術",
"value": 10,
"edited": false
},
{
"name": "重機械操作",
"value": 1,
"edited": false
},
{
"name": "乗馬",
"value": 5,
"edited": false
},
{
"name": "信用",
"value": 15,
"edited": false
},
{
"name": "心理学",
"value": 25,
"edited": true
},
{
"name": "人類学",
"value": 1,
"edited": false
},
{
"name": "水泳",
"value": 25,
"edited": false
},
{
"name": "制作()",
"value": 5,
"edited": false
},
{
"name": "精神分析",
"value": 1,
"edited": false
},
{
"name": "生物学",
"value": 1,
"edited": false
},
{
"name": "説得",
"value": 15,
"edited": false
},
{
"name": "操縦()",
"value": 1,
"edited": false
},
{
"name": "地質学",
"value": 1,
"edited": false
},
{
"name": "跳躍",
"value": 25,
"edited": false
},
{
"name": "追跡",
"value": 10,
"edited": false
},
{
"name": "電気修理",
"value": 10,
"edited": false
},
{
"name": "電子工学",
"value": 1,
"edited": false
},
{
"name": "天文学",
"value": 51,
"edited": true
},
{
"name": "投擲",
"value": 25,
"edited": false
},
{
"name": "登攀",
"value": 40,
"edited": false
},
{
"name": "図書館",
"value": 75,
"edited": true
},
{
"name": "ナビゲート",
"value": 10,
"edited": false
},
{
"name": "値切り",
"value": 5,
"edited": false
},
{
"name": "博物学",
"value": 60,
"edited": true
},
{
"name": "物理学",
"value": 51,
"edited": true
},
{
"name": "変装",
"value": 1,
"edited": false
},
{
"name": "法律",
"value": 5,
"edited": false
},
{
"name": "ほかの言語()",
"value": 1,
"edited": false
},
{
"name": "母国語(日本語)",
"value": 99,
"edited": false
},
{
"name": "マーシャルアーツ",
"value": 1,
"edited": false
},
{
"name": "目星",
"value": 75,
"edited": true
},
{
"name": "薬学",
"value": 1,
"edited": false
},
{
"name": "歴史",
"value": 70,
"edited": true
},
{
"name": "拳銃",
"value": 20,
"edited": false
},
{
"name": "サブマシンガン",
"value": 15,
"edited": false
},
{
"name": "ショットガン",
"value": 30,
"edited": false
},
{
"name": "ライフル",
"value": 25,
"edited": false
},
{
"name": "キック",
"value": 25,
"edited": false
},
{
"name": "組みつき",
"value": 25,
"edited": false
},
{
"name": "こぶし",
"value": 50,
"edited": false
},
{
"name": "頭突き",
"value": 10,
"edited": false
}
],
"possessions": [
{
"name": "五角えんぴつ",
"count": "1",
"detail": "「五角」を「合格」にかけた願掛けアイテム"
}
],
"weapons": [
{
"name": "キック",
"value": "",
"damage": "1D6+DB",
"range": "タッチ",
"attacks": "1",
"ammo": "",
"malfunction": "",
"hp": ""
},
{
"name": "こぶし",
"value": "",
"damage": "1D3+DB",
"range": "タッチ",
"attacks": "1",
"ammo": "",
"malfunction": "",
"hp": ""
},
{
"name": "頭突き",
"value": "",
"damage": "1D4+DB",
"range": "タッチ",
"attacks": "1",
"ammo": "",
"malfunction": "",
"hp": ""
}
],
"personalData": {
"address": "",
"description": "",
"family": "",
"insanity": "",
"injuries": "",
"scar": ""
},
"credit": {
"income": "",
"cash": "",
"deposit": "",
"personalProperty": "",
"realEstate": ""
},
"mythosTomes": "",
"artifactsAndSpells": "",
"encounters": "",
"note": "テスト\n\nテスト",
"chatpalette": "1D100<={SAN} 正気度ロール\nCCB<=50 幸運\nCCB<=50 STR×5\nCCB<=50 CON×5\nCCB<=50 POW×5\nCCB<=50 DEX×5\nCCB<=50 APP×5\nCCB<=50 SIZ×5\nCCB<=90 アイディア\nCCB<=105 知識\nCCB<=55 医学\nCCB<=20 回避\nCCB<=25 聞き耳\nCCB<=60 経理\nCCB<=25 心理学\nCCB<=51 天文学\nCCB<=75 図書館\nCCB<=60 博物学\nCCB<=51 物理学\nCCB<=99 母国語(日本語)\nCCB<=75 目星\nCCB<=70 歴史\nCCB<=25 キック\nCCB<=25 組みつき\nCCB<=50 こぶし\nCCB<=10 頭突き\n1D6+{DB} キック\n1D3+{DB} こぶし\n1D4+{DB} 頭突き"
}
export interface Investigator {
name: string // 名前
occupation: string // 職業
birthplace: string // 出身
degree: string // 学校・学位
mentalDisorder: string // 精神的な障害
age: string // 年齢
sex: string // 性別
// 各能力値の現在値
characteristics: {
str: number
con: number
pow: number
dex: number
app: number
siz: number
int: number
edu: number
}
// 耐久力等の現在値および最大正気度
attribute: {
hp: number // 耐久力
mp: number // マジック・ポイント
db: string // ダメージ・ボーナス。0の場合には "+0" となる
san: {
value: number // 正気度
max: number // 最大正気度
},
},
skills: Array<Skill>
weapons: Array<Weapon>
possessions: Array<Possession> // 装備と所持品
personalData: {
address: string // 住所
description: string // 描写
family: string // 家族&友人
insanity: string // 狂気の症状
injuries: string // 負傷
scar: string // 傷跡など
}
credit: {
income: string // 収入
cash: string // 手持ち現金
deposit: string // 預金
personalProperty: string // 個人資産
realEstate: string // 不動産
}
mythosTomes: string // 読んだクトゥルフ神話の魔導書
artifactsAndSpells: string // アーティファクト/学んだ呪文
encounters: string // 遭遇した超自然の存在
note: string
chatpalette: string // チャットパレットに用いるための改行区切りのコマンド一覧
portraitURL?: string // 探索者プロフィール画像のURL
}
interface Skill {
name: string
value: number // 技能の合計値
edited: boolean // 技能値が編集されているかどうか。技能の合計値が初期値と異なる場合 true となる
}
interface Weapon {
name: string // 名前
value: string // 技能値。数値とは限らないことに注意
damage: string // ダメージ
range: string // 射程
attacks: string // 攻撃回数
ammo: string // 装弾数
malfunction: string // 故障ナンバー
hp: string // 耐久力
}
interface Possession {
name: string // 名前
count: string // 所持数。数値とは限らないことに注意
detail: string // 物品の詳細説明
}
/api/v1/6th/{id}/summaryのinterfaceですが、
34行目の
は
のtypoではないでしょうか?