加载外部立绘资源 #
本页内容:添加自定义角色和立绘的完整指南。 前置知识:创建新剧本
本 MOD 支持加载外部立绘资源,支持 jpg/png 格式。
角色定义格式 #
MOD支持两种角色定义格式:
- SimpleCharacters - 简单角色,仅用于对话
- Characters - 完整角色,自动格式化+魔女图鉴支持
两种格式可以共存,根据需求选择使用。
快速对比表 #
| 特性 | SimpleCharacters | Characters |
|---|---|---|
| 自动格式化 | ❌ 需手动添加所有样式标签 | ✅ 自动生成原版风格名称 |
| 魔女图鉴支持 | ❌ 不支持人物档案 | ✅ 支持人物档案 (@update) |
| 所需字段 | Id, DisplayName | Id, Name, FamilyName, Color (必填); Age, Height, Weight (可选) |
| 复杂度 | 简单 | 稍复杂 |
| 适用场景 | 临时NPC, 一次性角色 | 主要角色, 需要档案的角色 |
| 显示效果 | 手动控制 | 符合原版风格 |
推荐: 除非只需要简单的临时角色,否则优先使用 Characters 格式
方法一: SimpleCharacters #
适用场景 #
- 只需要在对话中出场
- 不需要在魔女图鉴中展示
- 需要完全自定义名称样式
字段说明 #
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Id | String | ✅ | 角色ID,脚本中引用 |
| DisplayName | 本地化对象 | ✅ | 显示名称,需手动添加样式标签 |
示例配置 #
{
"Name": "测试用例",
"Description": "测试用例",
"Author": "雪莉苹果汁",
"Enter": "SherryAppleJuice_ExampleMod/Main",
"SimpleCharacters": [
{
"Id": "Taffy",
"DisplayName": {
"zh-Hans": "<color=#FFC0CB>永</color>雏塔菲",
"ja": "<color=#FFC0CB>永</color>雛タフィ"
}
},
{
"Id": "BlackCat",
"DisplayName": {
"zh-Hans": "<color=#606060><size=136>谜</size></color><space=4><voffset=-2><size=73>之黑猫</size></voffset>",
"ja": "<color=#606060><size=136>謎</size></color><space=4><voffset=-2><size=73>の黒猫</size></voffset>"
}
}
]
}
样式标签:
<color=#FFC0CB>文本</color>- 颜色<size=136>文本</size>- 字号<voffset=-2>文本</voffset>- 垂直偏移<space=4>- 空格
方法二: Characters (推荐) #
适用场景 #
- 主要剧情角色
- 需要在魔女图鉴中展示人物档案
- 希望名称样式符合原版风格
字段说明 #
| 字段 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| Id | String | ✅ | 角色ID | EmaNew |
| FamilyName | 本地化对象 | ✅ | 姓氏(首字大号+余字小号) | 樱羽 |
| Name | 本地化对象 | ✅ | 名字(首字大号+余字小号) | 艾玛 |
| Color | String | ✅ | 主题颜色(HEX) | #ffd1d9 |
| Age | String | - | 年龄 | "14" |
| Height | String | - | 身高(cm) | "153" |
| Weight | String | - | 体重(kg) | "36" |
示例配置 #
{
"Name": "梦中审判",
"Description": "增强版示例",
"Author": "MaxMixAlex",
"Enter": "MaxMixAlex_ManosabaModEnhance/Main",
"Characters": [
{
"Id": "EmaNew",
"Name": {
"zh-Hans": "艾玛",
"ja": "エマ"
},
"FamilyName": {
"zh-Hans": "樱羽",
"ja": "桜羽"
},
"Color": "#ffd1d9",
"Age": "14",
"Height": "153",
"Weight": "36"
},
{
"Id": "Detective",
"Name": {
"zh-Hans": "雪莉"
},
"FamilyName": {
"zh-Hans": "苹果汁"
},
"Color": "#66ccff",
"Age": "16",
"Height": "160",
"Weight": "48"
}
]
}
自动格式化效果 #
系统会自动将 FamilyName 和 Name 组合为与原版角色一致的富文本风格:
输入: FamilyName="樱羽", Name="艾玛", Color="#ffd1d9"
↓
自动生成 (与原版模板结构一致):
姓: <color=#ffd1d9><size=136>樱</size></color> <voffset=-2><size=73>羽</size></voffset>
名: <size=118>艾</size> <voffset=-2><size=75>玛</size></voffset>
每个名字部分的首字使用大号字体,其余字使用小号 + 垂直偏移,与原版角色的名称排版完全一致。
优势:
- 自动应用原版风格 (姓氏首字136号字,余字73号字; 名字首字118号字,余字75号字)
- 姓氏首字自动着色 (Color 字段)
- 无需手动编写复杂的富文本标签
混合使用示例 #
{
"Name": "我的MOD",
"Author": "作者",
"Enter": "MyMod/Main",
"SimpleCharacters": [
{
"Id": "NPC1",
"DisplayName": {
"zh-Hans": "<color=#aaaaaa>神秘路人</color>"
}
}
],
"Characters": [
{
"Id": "MainChar",
"Name": { "zh-Hans": "小明" },
"FamilyName": { "zh-Hans": "李" },
"Color": "#66ccff",
"Age": "16",
"Height": "165",
"Weight": "50"
}
]
}
混合使用建议:
- 主要角色 →
Characters- 一次性NPC →
SimpleCharacters
添加立绘资源 #
1. 创建角色立绘目录 #
在MOD目录下创建 Characters 文件夹,然后创建角色ID文件夹:
[MOD根目录]/
├─ Characters/
│ ├─ Taffy/ ← 角色ID文件夹
│ │ └─ Hanna.jpg ← 立绘文件
│ └─ EmaNew/
│ ├─ 1.png
│ └─ 2.png
├─ Scripts/
└─ info.json

2. 准备立绘图片 #
推荐规格:
- 尺寸: 1500x3000 像素(参考原版)
- 格式: PNG(透明背景)或 JPG
- 命名: 任意,建议使用数字或表情名称
文件名示例:
1.png,2.png,3.png(简单编号)Normal.png,Smile.png,Sad.png(表情命名)1_1_2.png(眉毛_眼睛_嘴巴组合)
3. 在脚本中使用 @char 指令 #
基础用法:
; 显示立绘: 角色ID.立绘文件名(不含扩展名)
@char Taffy.Hanna
; 显示 EmaNew 的 1.png
@char EmaNew.1
; 带位置和缩放
@char SubId:"Middle" EmaNew.2 pos:50,0 Scale:1.2
高级用法:
; 表情组合 (如果文件存在)
@char Taffy.1_2_3
; 转向
@char Taffy.Hanna look:Left
; 带转场效果
@char EmaNew.1 transition:DropFade time:0.5
; 隐藏角色
@hide Taffy
效果演示 #
创建了Taffy文件夹,里面有Hanna.jpg:
; 显示背景
@back 1_1
; 显示立绘
@char Taffy.Hanna
; 对话
塔菲: 你好呀!

与魔女图鉴集成 #
使用 Characters 格式定义的角色可以在魔女图鉴中添加人物档案。
1. 添加人物档案图片 #
[MOD根目录]/
├─ WitchBook/
│ └─ Profiles/
│ └─ EmaNew.png ← 与角色ID同名
└─ info.json
推荐尺寸: 400x600 像素
2. 在 info.json 中配置 Profiles #
{
"Characters": [
{
"Id": "EmaNew",
"Name": { "zh-Hans": "艾玛" },
"FamilyName": { "zh-Hans": "樱羽" },
"Color": "#ffd1d9",
"Age": "14",
"Height": "153",
"Weight": "36"
}
],
"Profiles": [
{
"Id": "EmaNew",
"Items": [
{
"Version": 1,
"Description": {
"zh-Hans": "14岁,初中时期的樱羽艾玛。<br><br>希罗的好友。"
}
},
{
"Version": 2,
"Description": {
"zh-Hans": "14岁,初中时期的樱羽艾玛。<br><br>在审判中作为关键证人被传唤。"
}
}
]
}
]
}
3. 在脚本中更新档案 #
; 初次出场时解锁档案
@update "EmaNew" Category:"Profile" Version:1
; 剧情发展后更新档案
@update "EmaNew" Category:"Profile" Version:2
; 在审判中出示人物档案
@evidence correct:"EmaNew" Profile
完整说明: 参见 魔女图鉴
常见问题 #
Q: 应该选择 SimpleCharacters 还是 Characters?
A:
选择 SimpleCharacters 如果:
- 只需要临时NPC, 一两句台词
- 需要完全自定义的名称样式 (如特殊符号, 非人名)
- 不需要魔女图鉴支持
选择 Characters 如果:
- 主要剧情角色
- 需要在魔女图鉴中展示
- 希望名称样式符合原版风格
推荐: 主要角色用 Characters, 路人用 SimpleCharacters
Q: Characters 格式必须填写所有字段吗?
A: Id、Name、FamilyName、Color 是必填字段,系统需要这些数据来生成正确的显示效果。
Age、Height、Weight 是可选字段,不填则默认为空。这些字段用于魔女图鉴中的人物档案显示。
Q: 如何让 Characters 不自动格式化?
A: 如果需要完全自定义名称样式,请使用 SimpleCharacters 而不是 Characters。
Characters 的设计目的就是自动格式化,无法关闭此功能。
Q: Color 字段有什么作用?
A: Color 字段用于:
- 角色名称的颜色 (对话框, 对话日志)
- 人物档案中的主题色
- 可能的UI元素强调色
建议: 选择与角色设定相符的颜色,如温柔角色用粉色 #ffd1d9, 冷静角色用蓝色 #66ccff
Q: 可以覆写原版角色吗?
A: 可以! 如果 Id 与原版角色相同 (如 Ema, Sherry):
Characters: 会替换角色的所有信息 Profiles: 只替换人物档案文本,保留原版图像
示例:
"Profiles": [
{
"Id": "Ema",
"Items": [
{
"Version": 1,
"Description": {
"zh-Hans": "自定义的艾玛介绍……"
}
}
]
}
]
Q: 立绘文件名有什么要求?
A:
- 无特殊字符要求,但建议使用英文/数字
- 不需要扩展名,脚本中写文件名即可
- 支持子表情组合,如
1_2_3.png对应眉毛1、眼睛2、嘴巴3
推荐命名:
简单:
1.png,2.png语义化:
Normal.png,Smile.png组合:
1_1_1.png(如果支持表情分层)
相关教程 #
- 魔女图鉴 - 人物档案与证物系统
- 指令参考 - @char - 立绘显示指令
- 简单对话 - 对话脚本基础