魔女图鉴

魔女图鉴 #

本页内容:自定义魔女图鉴的完整指南,包括证物、人物档案、规定和记录。 前置知识:创建新剧本加载外部立绘资源

魔女图鉴包含四大分类:

  • Clues (证物) - 可在审判中出示的证据
  • Profiles (人物档案) - 角色的详细介绍
  • Rules (规定) - 魔女游戏的规则条款
  • Notes (记录) - 剧情记录或日志

所有分类的数据都在 info.json 中配置,并通过脚本指令在剧情中动态更新。

版本化结构 #

所有魔女图鉴字段都使用 Id-Items 结构,支持版本管理:

[
    {
        "Id": "条目ID",
        "Items": [
            {
                "Version": 1,
                "字段1": "内容"
            },
            {
                "Version": 2,
                "字段1": "更新后的内容"
            }
        ]
    }
]

通过 @update 指令可以在剧情推进时更新到指定 Version,实现内容随剧情变化。

Clues (证物) #

自定义证物,可在审判中出示。

info.json 配置 #

字段类型必填说明
IdString证物ID,推荐格式: [ModId]_[章节]-[编号]
ItemsArray版本列表
Items[].VersionNumber版本号 (1, 2, 3…)
Items[].Name本地化对象证物名称
Items[].Description本地化对象证物描述,支持 <br> 换行

证物图片路径: [MOD文件夹]/WitchBook/Clues/[Id].png

配置示例:

"Clues": [
    {
        "Id": "MaxMixAlex_ManosabaModEnhance_1-1",
        "Items": [
            {
                "Version": 1,
                "Name": {
                    "zh-Hans": "希罗的日记",
                    "ja": "ヒロの日記"
                },
                "Description": {
                    "zh-Hans": "在牢房中发现的薄笔记本。<br><br>封面没有任何装饰,内页记录着在监牢里度过的日子。",
                    "ja": "牢房で見つかった薄いノート。"
                }
            },
            {
                "Version": 2,
                "Name": {
                    "zh-Hans": "希罗的日记"
                },
                "Description": {
                    "zh-Hans": "在牢房中发现的薄笔记本。<br><br>内页反复出现了艾玛的名字。<br><br>在审判中被当庭公开。"
                }
            }
        ]
    }
]

脚本中使用 #

完整的搜证流程 (带UI动画):

; 显示证物弹窗
@spawn "Clue" Params:MaxMixAlex_ManosabaModEnhance_1-1
; 显示更新提示
@toast "魔女图鉴 更新…"
; 更新到版本1
@update "MaxMixAlex_ManosabaModEnhance_1-1" Category:"Clue" Version:1
@Wait "i1.2"
; 关闭弹窗
@despawn "Clue"
@Wait "0.6"

在审判中出示证据:

@evidence correct:"MaxMixAlex_ManosabaModEnhance_1-1" Clue

Profiles (人物档案) #

角色的详细介绍,需要配合 Characters 使用。

info.json 配置 #

字段类型必填说明
IdString角色ID (对应 Characters 中的 Id)
ItemsArray版本列表
Items[].VersionNumber版本号
Items[].Description本地化对象角色档案介绍

人物档案图片路径: [MOD文件夹]/WitchBook/Profiles/[Id].png (推荐尺寸 400x600)

人物档案的 Id 必须与 Characters 中的 Id 对应,系统会自动关联角色信息

配置示例:

"Profiles": [
    {
        "Id": "EmaNew",
        "Items": [
            {
                "Version": 1,
                "Description": {
                    "zh-Hans": "14岁,初中时期的樱羽艾玛。<br><br>希罗的好友。"
                }
            },
            {
                "Version": 2,
                "Description": {
                    "zh-Hans": "14岁,初中时期的樱羽艾玛。<br><br>在审判中作为关键证人被传唤。"
                }
            }
        ]
    }
]

脚本中使用 #

; 初次出场时解锁档案
@update "EmaNew" Category:"Profile" Version:1

; 剧情发展后更新档案
@update "EmaNew" Category:"Profile" Version:2

; 在审判中出示人物档案
@evidence correct:"EmaNew" Profile

文件结构 #

[MOD根目录]/
  ├─ Characters/
  │   └─ EmaNew/
  │       ├─ 1.png        ← 立绘
  │       └─ 2.png
  ├─ WitchBook/
  │   └─ Profiles/
  │       └─ EmaNew.png   ← 档案图片 (与角色ID同名)
  └─ info.json

Rules (规定) #

游戏规则说明,魔女游戏的核心条款。

info.json 配置 #

字段类型必填说明
IdString规定ID
ItemsArray版本列表
Items[].VersionNumber版本号
Items[].NumberingString章节编号(如 I, II, III),支持任意文本
Items[].Subtitle本地化对象规定名称
Items[].Description本地化对象规定详细说明

配置示例:

"Rules": [
    {
        "Id": "MaxMixAlex_ManosabaModEnhance_1",
        "Items": [
            {
                "Version": 1,
                "Numbering": "I",
                "Subtitle": {
                    "zh-Hans": "游玩规则"
                },
                "Description": {
                    "zh-Hans": "点左键浏览下一条对话,右键隐藏对话框。<br>滚轮可以快速浏览历史对话。"
                }
            }
        ]
    },
    {
        "Id": "MaxMixAlex_ManosabaModEnhance_3",
        "Items": [
            {
                "Version": 1,
                "Numbering": "R",
                "Subtitle": {
                    "zh-Hans": "碎碎念"
                },
                "Description": {
                    "zh-Hans": "Numbering 字段可以使用任意文本,不局限于罗马数字。"
                }
            }
        ]
    }
]

脚本中使用 #

@update "MaxMixAlex_ManosabaModEnhance_1" Category:"Rule" Version:1

Notes (记录) #

剧情记录或日志,用于记载重要事件。

info.json 配置 #

字段类型必填说明
IdString记录ID
ItemsArray版本列表
Items[].VersionNumber版本号
Items[].Title本地化对象记录标题
Items[].Description本地化对象记录内容

配置示例:

"Notes": [
    {
        "Id": "MaxMixAlex_ManosabaModEnhance_1",
        "Items": [
            {
                "Version": 1,
                "Title": {
                    "zh-Hans": "魔女图鉴"
                },
                "Description": {
                    "zh-Hans": "新增魔女图鉴中证物、人物、规定、记录四个分类下数据的自定义……"
                }
            }
        ]
    }
]

脚本中使用 #

@update "MaxMixAlex_ManosabaModEnhance_1" Category:"Note" Version:1

命名规范 #

为避免与原版游戏数据的 Id 发生冲突,所有 Id 字段都推荐以 Mod 文件夹名称作为前缀。

推荐格式:

  • 证物: [ModId]_[章节]-[编号],如 MyMod_1-1, MyMod_2-3
  • 规定/记录: [ModId]_[编号],如 MyMod_1, MyMod_2
  • 人物档案: 与 Characters 中的 Id 保持一致

加载器不会对 Id 格式进行强制校验。

覆写原版内容 #

如果使用了与原版相同的 Id (如 1-1),加载器将自动以 MOD 数据替换对应的原版魔女图鉴条目。

覆写规则:

  • 该 Id 下所有版本的数据都将被 MOD 数据替代
  • 对于人物档案,覆写原版角色时无需在 Characters 中重新定义该角色,原版角色名和颜色样式会被自动使用
  • 系统一次只加载一个 MOD 的魔女图鉴数据,不同 MOD 之间不会发生 Id 冲突

本地化字段格式 #

所有文本字段都使用本地化对象格式:

{
    "zh-Hans": "简体中文文本",
    "ja": "日本語テキスト"
}

目前支持的语言:

  • zh-Hans - 简体中文
  • ja - 日文

即使只需要支持一种语言,也必须使用对象格式而不是直接字符串

完整工作流示例 #

以下是一个从配置到使用的完整示例:

1. info.json 配置 #

{
    "Characters": [
        {
            "Id": "EmaNew",
            "Name": { "zh-Hans": "艾玛" },
            "FamilyName": { "zh-Hans": "樱羽" },
            "Color": "#ffd1d9",
            "Age": "14",
            "Height": "153",
            "Weight": "36"
        }
    ],
    "Clues": [
        {
            "Id": "MyMod_1-1",
            "Items": [
                {
                    "Version": 1,
                    "Name": { "zh-Hans": "神秘信件" },
                    "Description": { "zh-Hans": "一封来历不明的信件。" }
                }
            ]
        }
    ],
    "Profiles": [
        {
            "Id": "EmaNew",
            "Items": [
                {
                    "Version": 1,
                    "Description": { "zh-Hans": "14岁,初中时期的樱羽艾玛。" }
                }
            ]
        }
    ]
}

2. 文件结构 #

[MOD根目录]/
  ├─ Characters/
  │   └─ EmaNew/
  │       └─ 1.png
  ├─ WitchBook/
  │   ├─ Clues/
  │   │   └─ MyMod_1-1.png
  │   └─ Profiles/
  │       └─ EmaNew.png
  ├─ Scripts/
  │   └─ ...
  └─ info.json

3. 脚本中使用 #

; 搜证 - 发现证物
@spawn "Clue" Params:MyMod_1-1
@toast "魔女图鉴 更新…"
@update "MyMod_1-1" Category:"Clue" Version:1
@Wait "i1.2"
@despawn "Clue"
@Wait "0.6"

; 解锁人物档案
@update "EmaNew" Category:"Profile" Version:1

; 审判中出示证据
@evidence correct:"MyMod_1-1" Clue